diff --git a/.vs/ZebraPrinterUtilities/v16/.suo b/.vs/ZebraPrinterUtilities/v16/.suo
new file mode 100644
index 0000000..4ea4201
Binary files /dev/null and b/.vs/ZebraPrinterUtilities/v16/.suo differ
diff --git a/App.config b/App.config
new file mode 100644
index 0000000..11d2c36
--- /dev/null
+++ b/App.config
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Application.xaml b/Application.xaml
new file mode 100644
index 0000000..14a4ef6
--- /dev/null
+++ b/Application.xaml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/Application.xaml.vb b/Application.xaml.vb
new file mode 100644
index 0000000..cdf8e42
--- /dev/null
+++ b/Application.xaml.vb
@@ -0,0 +1,14 @@
+Class Application
+
+ ' Gli eventi a livello di applicazione, ad esempio Startup, Exit e DispatcherUnhandledException,
+ ' possono essere gestiti in questo file.
+ Protected Overrides Sub OnStartup(e As StartupEventArgs)
+ MyBase.OnStartup(e)
+ ShutdownMode = System.Windows.ShutdownMode.OnMainWindowClose
+ ' Avvio il modulo per la stampa
+ Dim MyZebraPronter As New ZebraPrinter(e.Args)
+ ' Termino il programma
+ Application.Current.Shutdown()
+ End Sub
+
+End Class
diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb
new file mode 100644
index 0000000..c2ed7b8
--- /dev/null
+++ b/My Project/AssemblyInfo.vb
@@ -0,0 +1,59 @@
+Imports System
+Imports System.Globalization
+Imports System.Reflection
+Imports System.Resources
+Imports System.Runtime.InteropServices
+Imports System.Windows
+
+' Le informazioni generali relative a un assembly sono controllate dal seguente
+' set di attributi. Modificare i valori di questi attributi per modificare le informazioni
+' associate a un assembly.
+
+' Controllare i valori degli attributi degli assembly
+
+
+
+
+
+
+
+
+
+'Per iniziare a creare applicazioni localizzabili, impostare
+'CultureYouAreCodingWith nel file VBPROJ
+'all'interno di un . Ad esempio, se si utilizza l'inglese (Stati Uniti)
+'nei file di origine, impostare su "en-US". Rimuovere quindi il commento
+'dall'attributo NeutralResourceLanguage seguente. Aggiornare "en-US" nella riga
+'seguente in modo che corrisponda all'impostazione di UICulture nel file di progetto.
+
+'
+
+
+'L'attributo ThemeInfo indica la possibile posizione dei dizionari risorse generici e specifici del tema.
+'Primo parametro: posizione dei dizionari risorse specifici del tema
+'(da usare se nella pagina non viene trovata una risorsa,
+' oppure nei dizionari delle risorse dell'applicazione)
+
+'Parametro 2: posizione del dizionario risorse generico
+'(da usare se nella pagina non viene trovata una risorsa,
+'un'applicazione e alcun dizionario risorse specifico del tema)
+
+
+
+
+'Se il progetto viene esposto a COM, il GUID seguente verrà usato come ID del typelib
+
+
+' Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori:
+'
+' Versione principale
+' Versione secondaria
+' Numero di build
+' Revisione
+'
+' È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
+' usando l'asterisco '*' come illustrato di seguito:
+'
+
+
+
diff --git a/My Project/MyExtensions/MyWpfExtension.vb b/My Project/MyExtensions/MyWpfExtension.vb
new file mode 100644
index 0000000..2184d9b
--- /dev/null
+++ b/My Project/MyExtensions/MyWpfExtension.vb
@@ -0,0 +1,121 @@
+#If _MyType <> "Empty" Then
+
+Namespace My
+ '''
+ ''' Modulo utilizzato per definire le proprietà disponibili nello spazio dei nomi My per WPF
+ '''
+ '''
+ _
+ Module MyWpfExtension
+ Private s_Computer As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Devices.Computer)
+ Private s_User As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.ApplicationServices.User)
+ Private s_Windows As New ThreadSafeObjectProvider(Of MyWindows)
+ Private s_Log As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Logging.Log)
+ '''
+ ''' Restituisce l'oggetto applicazione per l'applicazione in esecuzione
+ '''
+ _
+ Friend ReadOnly Property Application() As Application
+ Get
+ Return CType(Global.System.Windows.Application.Current, Application)
+ End Get
+ End Property
+ '''
+ ''' Restituisce le informazioni sul computer host.
+ '''
+ _
+ Friend ReadOnly Property Computer() As Global.Microsoft.VisualBasic.Devices.Computer
+ Get
+ Return s_Computer.GetInstance()
+ End Get
+ End Property
+ '''
+ ''' Restituisce le informazioni per l'utente corrente. Se si desidera eseguire l'applicazione con le
+ ''' credenziali utente di Windows correnti, chiamare My.User.InitializeWithWindowsUser().
+ '''
+ _
+ Friend ReadOnly Property User() As Global.Microsoft.VisualBasic.ApplicationServices.User
+ Get
+ Return s_User.GetInstance()
+ End Get
+ End Property
+ '''
+ ''' Restituisce il registro applicazioni. I listener possono essere configurati dal file di configurazione dell'applicazione.
+ '''
+ _
+ Friend ReadOnly Property Log() As Global.Microsoft.VisualBasic.Logging.Log
+ Get
+ Return s_Log.GetInstance()
+ End Get
+ End Property
+
+ '''
+ ''' Restituisce la raccolta di oggetti Window definiti nel progetto.
+ '''
+ _
+ Friend ReadOnly Property Windows() As MyWindows
+ _
+ Get
+ Return s_Windows.GetInstance()
+ End Get
+ End Property
+ _
+ _
+ Friend NotInheritable Class MyWindows
+ _
+ Private Shared Function Create__Instance__(Of T As {New, Global.System.Windows.Window})(ByVal Instance As T) As T
+ If Instance Is Nothing Then
+ If s_WindowBeingCreated IsNot Nothing Then
+ If s_WindowBeingCreated.ContainsKey(GetType(T)) = True Then
+ Throw New Global.System.InvalidOperationException("The window cannot be accessed via My.Windows from the Window constructor.")
+ End If
+ Else
+ s_WindowBeingCreated = New Global.System.Collections.Hashtable()
+ End If
+ s_WindowBeingCreated.Add(GetType(T), Nothing)
+ Return New T()
+ s_WindowBeingCreated.Remove(GetType(T))
+ Else
+ Return Instance
+ End If
+ End Function
+ _
+ _
+ Private Sub Dispose__Instance__(Of T As Global.System.Windows.Window)(ByRef instance As T)
+ instance = Nothing
+ End Sub
+ _
+ _
+ Public Sub New()
+ MyBase.New()
+ End Sub
+ Private Shared s_WindowBeingCreated As Global.System.Collections.Hashtable
+ Public Overrides Function Equals(ByVal o As Object) As Boolean
+ Return MyBase.Equals(o)
+ End Function
+ Public Overrides Function GetHashCode() As Integer
+ Return MyBase.GetHashCode
+ End Function
+ _
+ _
+ Friend Overloads Function [GetType]() As Global.System.Type
+ Return GetType(MyWindows)
+ End Function
+ Public Overrides Function ToString() As String
+ Return MyBase.ToString
+ End Function
+ End Class
+ End Module
+End Namespace
+Partial Class Application
+ Inherits Global.System.Windows.Application
+ _
+ _
+ Friend ReadOnly Property Info() As Global.Microsoft.VisualBasic.ApplicationServices.AssemblyInfo
+ _
+ Get
+ Return New Global.Microsoft.VisualBasic.ApplicationServices.AssemblyInfo(Global.System.Reflection.Assembly.GetExecutingAssembly())
+ End Get
+ End Property
+End Class
+#End If
\ No newline at end of file
diff --git a/My Project/Resources.Designer.vb b/My Project/Resources.Designer.vb
new file mode 100644
index 0000000..b22e10f
--- /dev/null
+++ b/My Project/Resources.Designer.vb
@@ -0,0 +1,62 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:$clrversion$
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My.Resources
+
+ 'This class was auto-generated by the StronglyTypedResourceBuilder
+ 'class via a tool like ResGen or Visual Studio.
+ 'To add or remove a member, edit your .ResX file then rerun ResGen
+ 'with the /str option, or rebuild your VS project.
+ '''
+ ''' A strongly-typed resource class, for looking up localized strings, etc.
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' Returns the cached ResourceManager instance used by this class.
+ '''
+ _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' Overrides the current thread's CurrentUICulture property for all
+ ''' resource lookups using this strongly typed resource class.
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set(ByVal value As Global.System.Globalization.CultureInfo)
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/My Project/Resources.resx b/My Project/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/My Project/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/My Project/Settings.Designer.vb b/My Project/Settings.Designer.vb
new file mode 100644
index 0000000..7f82a57
--- /dev/null
+++ b/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
+
+#Region "My.Settings Auto-Save Functionality"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.ZebraPrinterUtilities.My.MySettings
+ Get
+ Return Global.ZebraPrinterUtilities.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/My Project/Settings.settings b/My Project/Settings.settings
new file mode 100644
index 0000000..40ed9fd
--- /dev/null
+++ b/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ZebraPrinter.vb b/ZebraPrinter.vb
new file mode 100644
index 0000000..3edd4b4
--- /dev/null
+++ b/ZebraPrinter.vb
@@ -0,0 +1,197 @@
+Imports System.IO
+Imports System.Text
+Imports System.Threading.Tasks
+Imports Zebra.Sdk.Comm
+Imports Zebra.Sdk.Printer
+Imports Zebra.Sdk.Printer.Discovery
+
+Class ZebraPrinter
+
+ Private m_FileLog As String
+ Private m_Values As New Dictionary(Of String, String)
+ Private m_LabelBytes As Byte()
+ Private m_printerConnection As Connection = Nothing
+ Private m_sDataRoot As String
+ Private m_Waiting As Boolean = True
+
+ ' dichiarazione funzione per lettura file ini
+ Private Declare Auto Function GetPrivateProfileString Lib "kernel32" (
+ ByVal lpAppName As String,
+ ByVal lpKeyName As String,
+ ByVal lpDefault As String,
+ ByVal lpReturnedString As StringBuilder,
+ ByVal nSize As Integer,
+ ByVal lpFileName As String) As Integer
+
+
+ ' inizilizzo il file di log inserendo la data dell'esecuzione
+ Sub InitLog()
+ ' Impostazione path radice per i dati
+ m_sDataRoot = System.AppDomain.CurrentDomain.BaseDirectory
+ Dim sb = New StringBuilder(500)
+ If GetPrivateProfileString("Data", "DataRoot", "", sb, sb.Capacity, m_sDataRoot & "DataRoot.ini") = 0 Then
+ m_sDataRoot = System.AppDomain.CurrentDomain.BaseDirectory
+ Else
+ m_sDataRoot = sb.ToString
+ End If
+ m_FileLog = m_sDataRoot & "\ZebraPrinterUtilityLog.txt"
+ If Not File.Exists(m_FileLog) Then
+ Try
+ File.Create(m_FileLog).Close()
+ Catch ex As Exception
+ End Try
+ End If
+ Try
+ Dim sMessage As StreamWriter = File.AppendText(m_FileLog)
+ sMessage.WriteLine(DateTime.Now.ToString)
+ sMessage.Close()
+ Catch ex As Exception
+ End Try
+
+ End Sub
+
+ ' Funzione per scrivere nel file di Log
+ Sub EmitLog(sLine As String)
+ Dim sMessage As StreamWriter = File.AppendText(m_FileLog)
+ sMessage.WriteLine(sLine)
+ sMessage.Close()
+ End Sub
+
+ ' collego la stampante
+ Friend Function ConnectPrinter() As Boolean
+ Try
+ Dim discoPrinters As List(Of DiscoveredPrinterDriver) = UsbDiscoverer.GetZebraDriverPrinters()
+ m_printerConnection = New DriverPrinterConnection(discoPrinters(0).PrinterName)
+ Return True
+ Catch ex As ConnectionException
+ EmitLog("Printer connection error: " & ex.Message)
+ Return False
+ End Try
+ End Function
+
+ ' creo e stampo l'etichetta (ricevo il nome del template da usare)
+ Public Async Sub Print(FilePath As String)
+ Await Task.Run(Async Function()
+
+ Try
+ ' Connecting...
+ m_printerConnection.Open()
+ EmitLog("Connessione stampante: APERTA")
+ ' Sending Data...
+ Dim LabelFile As String = File.ReadAllText(FilePath)
+ For Each Variable In m_Values
+ LabelFile = LabelFile.Replace(Variable.Key, Variable.Value)
+ Next
+ Dim LabelBytes As Byte() = Encoding.UTF8.GetBytes(LabelFile)
+ Await Task.Delay(200)
+ ' stampo etichetta
+ 'm_printerConnection.Write(LabelBytes)
+ m_Waiting = False
+ EmitLog("Etichetta pronta")
+ Catch __unusedConnectionException1__ As ConnectionException
+ EmitLog(__unusedConnectionException1__.ToString)
+ ' Communications Error
+ Catch __unusedZebraPrinterLanguageUnknownException2__ As ZebraPrinterLanguageUnknownException
+ EmitLog(__unusedZebraPrinterLanguageUnknownException2__.ToString)
+ End Try
+
+ ' Chiudo la connessione
+ Try
+ 'Threading.Thread.Sleep(500)
+ Threading.Thread.Sleep(200)
+ ' Disconnecting...
+ If m_printerConnection IsNot Nothing Then
+ m_printerConnection.Close()
+ EmitLog("Connessione stampante: CHIUSA")
+ Threading.Thread.Sleep(1000)
+ End If
+ ' Not Connected
+ Catch __unusedConnectionException1__ As ConnectionException
+ EmitLog(__unusedConnectionException1__.ToString)
+ End Try
+
+ End Function)
+ End Sub
+
+
+ ' Lettura file ini
+ Private Function ReadValue(FilePath As String) As Boolean
+ ' verifico che il file esiste
+ If Not File.Exists(FilePath) Then
+ EmitLog("File '" & FilePath & "' non esiste.")
+ Return False
+ End If
+
+ Dim sb = New StringBuilder(500)
+ Dim Index As Integer = 1
+ Dim nResult As Integer = -1
+ ' leggo l'elenco delle variabili
+ While nResult <> 0
+ Try
+ nResult = GetPrivateProfileString("Main", "Var" & Index.ToString, "", sb, sb.Capacity, FilePath)
+ Catch ex As Exception
+ EmitLog(ex.ToString)
+ Index = Index + 1
+ Continue While
+ End Try
+ Dim sItems As String() = sb.ToString.Split(","c)
+ If sItems.Count = 2 Then
+ m_Values.Add(sItems(0).Trim, sItems(1).Trim)
+ End If
+ Index = Index + 1
+ End While
+
+ EmitLog("Dati caricati")
+ Return True
+ End Function
+
+ Sub New(args As String())
+
+ InitLog()
+ ConnectPrinter()
+
+ ' verifico che il numero di argomenti sia superiore a 2 (migliorare l'interpretazione dell'errore)
+ If args.Length < 2 Then
+ EmitLog("Non sono stati esplicictati tutti i file")
+ Return
+ End If
+
+ EmitLog("File template: " & args(0))
+ ' verifico che l'estensione del file sia corretta
+ If Path.GetExtension(args(0)) <> ".prn" Then
+ EmitLog("Estensione file template non corretta, diversa da .prn")
+ Return
+ End If
+ ' verifico che il file esiste
+ If Not File.Exists(args(0)) Then
+ EmitLog("File '" & args(0) & "' non esiste.")
+ End If
+
+ EmitLog("File dati: " & args(1))
+ ' verifico che l'estensione del file sia corretta
+ If Path.GetExtension(args(1)) <> ".ini" Then
+ EmitLog("Estensione file dati non corretta, diversa da .ini")
+ Return
+ End If
+
+ ' leggo l'elenco dei dati da stampare
+ If Not ReadValue(args(1)) Then Return
+ ' stampo etichetta
+ Print(args(0))
+
+ ' metto il programmma in attesa
+ Dim nCiclo As Integer = 0
+ While m_Waiting And nCiclo < 6
+ Threading.Thread.Sleep(1000)
+ nCiclo += 1
+ End While
+ End Sub
+
+
+End Class
+
+
+
+
+
+
diff --git a/ZebraPrinterUtilities.sln b/ZebraPrinterUtilities.sln
new file mode 100644
index 0000000..809f0ab
--- /dev/null
+++ b/ZebraPrinterUtilities.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.31205.134
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ZebraPrinterUtilities", "ZebraPrinterUtilities.vbproj", "{0F641DB6-033E-4DCB-AA5C-37B39A134049}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0F641DB6-033E-4DCB-AA5C-37B39A134049}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0F641DB6-033E-4DCB-AA5C-37B39A134049}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0F641DB6-033E-4DCB-AA5C-37B39A134049}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0F641DB6-033E-4DCB-AA5C-37B39A134049}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {5419D469-6B05-4820-8802-D2844799CDC2}
+ EndGlobalSection
+EndGlobal
diff --git a/ZebraPrinterUtilities.vbproj b/ZebraPrinterUtilities.vbproj
new file mode 100644
index 0000000..e1785db
--- /dev/null
+++ b/ZebraPrinterUtilities.vbproj
@@ -0,0 +1,194 @@
+
+
+
+ Debug
+ AnyCPU
+ {0F641DB6-033E-4DCB-AA5C-37B39A134049}
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}
+ WinExe
+ ZebraPrinterUtilities
+ ZebraPrinterUtilities
+ v4.7.2
+ Custom
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ true
+ true
+ true
+ bin\Debug\
+ ZebraPrinterUtilities.xml
+ 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314
+
+
+ AnyCPU
+ pdbonly
+ false
+ false
+ true
+ false
+ true
+ bin\Release\
+ ZebraPrinterUtilities.xml
+ 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+
+ packages\Portable.BouncyCastle.1.8.2\lib\net40\BouncyCastle.Crypto.dll
+
+
+ packages\Csv.1.0.31\lib\net40\Csv.dll
+
+
+ packages\FluentFTP.19.2.2\lib\net45\FluentFTP.dll
+
+
+
+ packages\Microsoft.DotNet.PlatformAbstractions.2.1.0\lib\net45\Microsoft.DotNet.PlatformAbstractions.dll
+
+
+ packages\Microsoft.Extensions.DependencyModel.2.1.0\lib\net451\Microsoft.Extensions.DependencyModel.dll
+
+
+ packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll
+
+
+ packages\Zebra.Printer.SDK.2.15.2634\lib\net471\SdkApi.Core.dll
+
+
+ packages\Zebra.Printer.SDK.2.15.2634\lib\net471\SdkApi.Desktop.dll
+
+
+ packages\Zebra.Printer.SDK.2.15.2634\lib\net471\SdkApi.Desktop.Usb.dll
+
+
+ packages\Lextm.SharpSnmpLib.10.0.9\lib\net452\SharpSnmpLib.dll
+
+
+ packages\System.Collections.Specialized.4.3.0\lib\net46\System.Collections.Specialized.dll
+ True
+ True
+
+
+
+
+ packages\System.Net.NameResolution.4.3.0\lib\net46\System.Net.NameResolution.dll
+ True
+ True
+
+
+ packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll
+ True
+ True
+
+
+ packages\System.Runtime.InteropServices.RuntimeInformation.4.0.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll
+ True
+ True
+
+
+
+
+
+
+
+
+ 4.0
+
+
+ packages\System.Xml.XmlDocument.4.3.0\lib\net46\System.Xml.XmlDocument.dll
+ True
+ True
+
+
+
+
+
+
+ packages\Zebra.Printer.SDK.2.15.2634\lib\net471\ZebraPrinterSdk.dll
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+
+ Application.xaml
+ Code
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Code
+
+
+ Microsoft.VisualBasic.WPF.MyExtension
+ 1.0.0.0
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.vb
+
+
+
+
+
+
+
+
+ IF "$(ConfigurationName)" == "Release" copy $(TargetPath) c:\EgtProg\OmagPHOTO\ZebraPrinterUtilitiesR32.exe
+IF "$(ConfigurationName)" == "Debug" copy $(TargetPath) c:\EgtProg\OmagPHOTO\ZebraPrinterUtilituiesD32.exe
+
+
\ No newline at end of file
diff --git a/ZebraPrinterUtilities.vbproj.user b/ZebraPrinterUtilities.vbproj.user
new file mode 100644
index 0000000..ea542bd
--- /dev/null
+++ b/ZebraPrinterUtilities.vbproj.user
@@ -0,0 +1,7 @@
+
+
+
+ Project
+ C:\EgtProg\OmagPHOTO\ZebraPrinterUtilitiesD32.exe
+
+
\ No newline at end of file
diff --git a/bin/Debug/BouncyCastle.Crypto.dll b/bin/Debug/BouncyCastle.Crypto.dll
new file mode 100644
index 0000000..b870046
Binary files /dev/null and b/bin/Debug/BouncyCastle.Crypto.dll differ
diff --git a/bin/Debug/BouncyCastle.Crypto.xml b/bin/Debug/BouncyCastle.Crypto.xml
new file mode 100644
index 0000000..e43aa62
--- /dev/null
+++ b/bin/Debug/BouncyCastle.Crypto.xml
@@ -0,0 +1,25101 @@
+
+
+
+ BouncyCastle.Crypto
+
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ Return the DER encoding of the object, null if the DER encoding can not be made.
+
+ @return a DER byte array, null otherwise.
+
+
+ a general purpose ASN.1 decoder - note: this class differs from the
+ others in that it returns null after it has read the last object in
+ the stream. If an ASN.1 Null is encountered a Der/BER Null object is
+ returned.
+
+
+ Create an ASN1InputStream where no DER object will be longer than limit.
+
+ @param input stream containing ASN.1 encoded data.
+ @param limit maximum size of a DER encoded object.
+
+
+ Create an ASN1InputStream based on the input byte array. The length of DER objects in
+ the stream is automatically limited to the length of the input array.
+
+ @param input array containing ASN.1 encoded data.
+
+
+ build an object given its tag and the number of bytes to construct it from.
+
+
+ A Null object.
+
+
+ Create a base ASN.1 object from a byte array.
+ The byte array to parse.
+ The base ASN.1 object represented by the byte array.
+
+ If there is a problem parsing the data, or parsing an object did not exhaust the available data.
+
+
+
+ Read a base ASN.1 object from a stream.
+ The stream to parse.
+ The base ASN.1 object represented by the byte array.
+ If there is a problem parsing the data.
+
+
+ return an Octet string from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return an Octet string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ @param string the octets making up the octet string.
+
+
+ return an Asn1Sequence from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 sequence from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ sequence - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sequences you really should
+ be using this method.
+
+ @param obj the tagged object.
+ @param explicitly true if the object is meant to be explicitly tagged,
+ false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return the object at the sequence position indicated by index.
+
+ @param index the sequence number (starting at zero) of the object
+ @return the object at the sequence position indicated by index.
+
+
+ return an ASN1Set from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 set from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ set - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sets you really should
+ be using this method.
+
+ @param obj the tagged object.
+ @param explicitly true if the object is meant to be explicitly tagged
+ false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return the object at the set position indicated by index.
+
+ @param index the set number (starting at zero) of the object
+ @return the object at the set position indicated by index.
+
+
+ ASN.1 TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if the object is explicitly tagged.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ return whether or not the object may be explicitly tagged.
+
+ Note: if the object has been read from an input stream, the only
+ time you can be sure if isExplicit is returning the true state of
+ affairs is if it returns false. An implicitly tagged object may appear
+ to be explicitly tagged, so you need to understand the context under
+ which the reading was done as well, see GetObject below.
+
+
+ return whatever was following the tag.
+
+ Note: tagged objects are generally context dependent if you're
+ trying to extract a tagged object you should be going via the
+ appropriate GetInstance method.
+
+
+ Return the object held in this tagged object as a parser assuming it has
+ the type of the passed in tag. If the object doesn't have a parser
+ associated with it, the base object is returned.
+
+
+
+
+
+ SHA-2.SHA-256; 1.3.6.1.4.1.22554.1.2.1
+
+
+ SHA-2.SHA-384; 1.3.6.1.4.1.22554.1.2.2
+
+
+ SHA-2.SHA-512; 1.3.6.1.4.1.22554.1.2.3
+
+
+ SHA-2.SHA-224; 1.3.6.1.4.1.22554.1.2.4
+
+
+ PKCS-5(1)|PKCS-12(2)
+ SHA-1.PKCS5; 1.3.6.1.4.1.22554.1.1.1
+
+
+ SHA-1.PKCS12; 1.3.6.1.4.1.22554.1.1.2
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.1
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.2
+
+
+ AES(1) . (CBC-128(2)|CBC-192(22)|CBC-256(42))
+ 1.3.6.1.4.1.22554.1.1.2.1.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.42
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.42
+
+
+ signature(2) algorithms
+
+
+ Sphincs-256
+
+
+ XMSS
+
+
+ XMSS^MT
+
+
+ key_exchange(3) algorithms
+
+
+ NewHope
+
+
+ A BER Null object.
+
+
+ convert a vector of octet strings into a single byte string
+
+
+ The octets making up the octet string.
+
+
+ return the DER octets that make up this string.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty sequence
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ BER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+
+ CAKeyUpdAnnContent ::= SEQUENCE {
+ oldWithNew CmpCertificate, -- old pub signed with new priv
+ newWithOld CmpCertificate, -- new pub signed with old priv
+ newWithNew CmpCertificate -- new pub signed with new priv
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertConfirmContent ::= SEQUENCE OF CertStatus
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertifiedKeyPair ::= SEQUENCE {
+ certOrEncCert CertOrEncCert,
+ privateKey [0] EncryptedValue OPTIONAL,
+ -- see [CRMF] for comment on encoding
+ publicationInfo [1] PKIPublicationInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertOrEncCert ::= CHOICE {
+ certificate [0] CMPCertificate,
+ encryptedCert [1] EncryptedValue
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRepMessage ::= SEQUENCE {
+ caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL,
+ response SEQUENCE OF CertResponse
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertResponse ::= SEQUENCE {
+ certReqId INTEGER,
+ -- to match this response with corresponding request (a value
+ -- of -1 is to be used if certReqId is not specified in the
+ -- corresponding request)
+ status PKIStatusInfo,
+ certifiedKeyPair CertifiedKeyPair OPTIONAL,
+ rspInfo OCTET STRING OPTIONAL
+ -- analogous to the id-regInfo-utf8Pairs string defined
+ -- for regInfo in CertReqMsg [CRMF]
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertStatus ::= SEQUENCE {
+ certHash OCTET STRING,
+ -- the hash of the certificate, using the same hash algorithm
+ -- as is used to create and verify the certificate signature
+ certReqId INTEGER,
+ -- to match this confirmation with the corresponding req/rep
+ statusInfo PKIStatusInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Note: the addition of attribute certificates is a BC extension.
+
+
+
+ CMPCertificate ::= CHOICE {
+ x509v3PKCert Certificate
+ x509v2AttrCert [1] AttributeCertificate
+ }
+
+ Note: the addition of attribute certificates is a BC extension.
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CrlAnnContent ::= SEQUENCE OF CertificateList
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenRepContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+ Example InfoTypeAndValue contents include, but are not limited
+ to, the following (un-comment in this ASN.1 module and use as
+ appropriate for a given environment):
+
+ id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1}
+ CAProtEncCertValue ::= CMPCertificate
+ id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
+ SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3}
+ EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
+ PreferredSymmAlgValue ::= AlgorithmIdentifier
+ id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5}
+ CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent
+ id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6}
+ CurrentCRLValue ::= CertificateList
+ id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7}
+ UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER
+ id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10}
+ KeyPairParamReqValue ::= OBJECT IDENTIFIER
+ id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11}
+ KeyPairParamRepValue ::= AlgorithmIdentifer
+ id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12}
+ RevPassphraseValue ::= EncryptedValue
+ id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13}
+ ImplicitConfirmValue ::= NULL
+ id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14}
+ ConfirmWaitTimeValue ::= GeneralizedTime
+ id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15}
+ OrigPKIMessageValue ::= PKIMessages
+ id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16}
+ SuppLangTagsValue ::= SEQUENCE OF UTF8String
+
+ where
+
+ id-pkix OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
+ and
+ id-it OBJECT IDENTIFIER ::= {id-pkix 4}
+
+
+
+
+ InfoTypeAndValue ::= SEQUENCE {
+ infoType OBJECT IDENTIFIER,
+ infoValue ANY DEFINED BY infoType OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ KeyRecRepContent ::= SEQUENCE {
+ status PKIStatusInfo,
+ newSigCert [0] CMPCertificate OPTIONAL,
+ caCerts [1] SEQUENCE SIZE (1..MAX) OF
+ CMPCertificate OPTIONAL,
+ keyPairHist [2] SEQUENCE SIZE (1..MAX) OF
+ CertifiedKeyPair OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OobCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the Der encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PbmParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiBody.
+ @param type one of the TYPE_* constants
+ @param content message content
+
+
+
+ PkiBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiConfirmContent ::= NULL
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIFailureInfo ::= BIT STRING {
+ badAlg (0),
+ -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2),
+ -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5),
+ -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+ certRevoked (10),
+ certConfirmed (11),
+ wrongIntegrity (12),
+ badRecipientNonce (13),
+ timeNotAvailable (14),
+ -- the TSA's time source is not available
+ unacceptedPolicy (15),
+ -- the requested TSA policy is not supported by the TSA
+ unacceptedExtension (16),
+ -- the requested extension is not supported by the TSA
+ addInfoNotAvailable (17)
+ -- the additional information requested could not be understood
+ -- or is not available
+ badSenderNonce (18),
+ badCertTemplate (19),
+ signerNotTrusted (20),
+ transactionIdInUse (21),
+ unsupportedVersion (22),
+ notAuthorized (23),
+ systemUnavail (24),
+ systemFailure (25),
+ -- the request cannot be handled due to system failure
+ duplicateCertReq (26)
+
+
+
+ Basic constructor.
+
+
+ Return the number of string elements present.
+
+ @return number of elements present.
+
+
+ Return the UTF8STRING at index.
+
+ @param index index of the string of interest
+ @return the string at index.
+
+
+
+ PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
+
+
+
+ Value for a "null" recipient or sender.
+
+
+
+ PkiHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiMessage.
+
+ @param header message header
+ @param body message body
+ @param protection message protection (may be null)
+ @param extraCerts extra certificates (may be null)
+
+
+
+ PkiMessage ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody,
+ protection [0] PKIProtection OPTIONAL,
+ extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiMessages ::= SEQUENCE SIZE (1..MAX) OF PkiMessage
+
+ @return a basic ASN.1 object representation.
+
+
+ @param status
+
+
+ @param status
+ @param statusString
+
+
+
+ PkiStatusInfo ::= SEQUENCE {
+ status PKIStatus, (INTEGER)
+ statusString PkiFreeText OPTIONAL,
+ failInfo PkiFailureInfo OPTIONAL (BIT STRING)
+ }
+
+ PKIStatus:
+ granted (0), -- you got exactly what you asked for
+ grantedWithMods (1), -- you got something like what you asked for
+ rejection (2), -- you don't get it, more information elsewhere in the message
+ waiting (3), -- the request body part has not yet been processed, expect to hear more later
+ revocationWarning (4), -- this message contains a warning that a revocation is imminent
+ revocationNotification (5), -- notification that a revocation has occurred
+ keyUpdateWarning (6) -- update already done for the oldCertId specified in CertReqMsg
+
+ PkiFailureInfo:
+ badAlg (0), -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2), -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5), -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+
+
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PollReqContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyChallContent ::= SEQUENCE OF Challenge
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyRespContent ::= SEQUENCE OF INTEGER
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ProtectedPart ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevAnnContent ::= SEQUENCE {
+ status PKIStatus,
+ certId CertId,
+ willBeRevokedAt GeneralizedTime,
+ badSinceDate GeneralizedTime,
+ crlDetails Extensions OPTIONAL
+ -- extra CRL details (e.g., crl number, reason, location, etc.)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevReqContent ::= SEQUENCE OF RevDetails
+
+ @return a basic ASN.1 object representation.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attribute ::= SEQUENCE {
+ attrType OBJECT IDENTIFIER,
+ attrValues SET OF AttributeValue
+ }
+
+
+
+
+ Attributes ::=
+ SET SIZE(1..MAX) OF Attribute -- according to RFC 5652
+
+ @return
+
+
+ Return the first attribute matching the given OBJECT IDENTIFIER
+
+
+ Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be
+ empty if there are no attributes of the required type present.
+
+ @param oid type of attribute required.
+ @return a vector of all the attributes found of type oid.
+
+
+ Return a new table with the passed in attribute added.
+
+ @param attrType
+ @param attrValue
+ @return
+
+
+ return an AuthenticatedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthenticatedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ The other Revocation Info arc
+ id-ri OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7) ri(16) }
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= Sequence {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ return a CompressedData object from a tagged object.
+
+ @param ato the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a CompressedData object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= SEQUENCE {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ MQVuserKeyingMaterial ::= SEQUENCE {
+ ephemeralPublicKey OriginatorPublicKey,
+ addedukm [0] EXPLICIT UserKeyingMaterial OPTIONAL }
+
+
+
+ return an EncryptedContentInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedData ::= SEQUENCE {
+ version CMSVersion,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ return an EnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an EnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= Sequence {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ return a KekIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekIdentifier ::= Sequence {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+
+
+ return a KekRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 4
+ kekID KekIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return an KeyAgreeRecipientIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an KeyAgreeRecipientIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyAgreeRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ rKeyId [0] IMPLICIT RecipientKeyIdentifier
+ }
+
+
+
+ return a KeyAgreeRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KeyAgreeRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ * Produce an object suitable for an Asn1OutputStream.
+ *
+ * KeyAgreeRecipientInfo ::= Sequence {
+ * version CMSVersion, -- always set to 3
+ * originator [0] EXPLICIT OriginatorIdentifierOrKey,
+ * ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
+ * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ * recipientEncryptedKeys RecipientEncryptedKeys
+ * }
+ *
+ * UserKeyingMaterial ::= OCTET STRING
+ *
+
+
+ return a KeyTransRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyTransRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 0 or 2
+ rid RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+
+ MetaData ::= SEQUENCE {
+ hashProtected BOOLEAN,
+ fileName UTF8String OPTIONAL,
+ mediaType IA5String OPTIONAL,
+ otherMetaData Attributes OPTIONAL
+ }
+
+ @return
+
+
+ return an OriginatorIdentifierOrKey object from a tagged object.
+
+ @param o the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorIdentifierOrKey object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorKey [1] OriginatorPublicKey
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ return an OriginatorInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorInfo ::= Sequence {
+ certs [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL
+ }
+
+
+
+ return an OriginatorPublicKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorPublicKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorPublicKey ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+ }
+
+
+
+ return an OtherKeyAttribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherKeyAttribute ::= Sequence {
+ keyAttrId OBJECT IDENTIFIER,
+ keyAttr ANY DEFINED BY keyAttrId OPTIONAL
+ }
+
+
+
+ return a OtherRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherRecipientInfo ::= Sequence {
+ oriType OBJECT IDENTIFIER,
+ oriValue ANY DEFINED BY oriType }
+
+
+
+ return a OtherRevocationInfoFormat object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRevocationInfoFormat object from the given object.
+
+ @param obj the object we want converted.
+ @exception IllegalArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ OtherRevocationInfoFormat ::= SEQUENCE {
+ otherRevInfoFormat OBJECT IDENTIFIER,
+ otherRevInfo ANY DEFINED BY otherRevInfoFormat }
+
+
+
+ return a PasswordRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a PasswordRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ PasswordRecipientInfo ::= Sequence {
+ version CMSVersion, -- Always set to 0
+ keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
+ OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+
+
+ return an RecipientEncryptedKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientEncryptedKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientEncryptedKey ::= SEQUENCE {
+ rid KeyAgreeRecipientIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return a RecipientIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientInfo ::= CHOICE {
+ ktri KeyTransRecipientInfo,
+ kari [1] KeyAgreeRecipientInfo,
+ kekri [2] KekRecipientInfo,
+ pwri [3] PasswordRecipientInfo,
+ ori [4] OtherRecipientInfo }
+
+
+
+ return a RecipientKeyIdentifier object from a tagged object.
+
+ @param _ato the tagged object holding the object we want.
+ @param _explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientKeyIdentifier object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientKeyIdentifier ::= Sequence {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+
+ ScvpReqRes ::= SEQUENCE {
+ request [0] EXPLICIT ContentInfo OPTIONAL,
+ response ContentInfo }
+
+ @return the ASN.1 primitive representation.
+
+
+ a signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+
+ SignedData ::= SEQUENCE {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+ return a SignerIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ SignerIdentifier sid,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+
+ TimeStampAndCRL ::= SEQUENCE {
+ timeStamp TimeStampToken, -- according to RFC 3161
+ crl CertificateList OPTIONAL -- according to RFC 5280
+ }
+
+ @return
+
+
+
+ TimeStampedData ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ dataUri IA5String OPTIONAL,
+ metaData MetaData OPTIONAL,
+ content OCTET STRING OPTIONAL,
+ temporalEvidence Evidence
+ }
+
+ @return
+
+
+
+ TimeStampTokenEvidence ::=
+ SEQUENCE SIZE(1..MAX) OF TimeStampAndCrl
+
+ @return
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertId ::= SEQUENCE {
+ issuer GeneralName,
+ serialNumber INTEGER }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new CertReqMsg.
+ @param certReq CertRequest
+ @param popo may be null
+ @param regInfo may be null
+
+
+
+ CertReqMsg ::= SEQUENCE {
+ certReq CertRequest,
+ pop ProofOfPossession OPTIONAL,
+ -- content depends upon key type
+ regInfo SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRequest ::= SEQUENCE {
+ certReqId INTEGER, -- ID for matching request and reply
+ certTemplate CertTemplate, -- Selected fields of cert to be issued
+ controls Controls OPTIONAL } -- Attributes affecting issuance
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Sets the X.509 version. Note: for X509v3, use 2 here.
+
+
+ Sets the issuer unique ID (deprecated in X.509v3)
+
+
+ Sets the subject unique ID (deprecated in X.509v3)
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ EncKeyWithID ::= SEQUENCE {
+ privateKey PrivateKeyInfo,
+ identifier CHOICE {
+ string UTF8String,
+ generalName GeneralName
+ } OPTIONAL
+ }
+
+ @return
+
+
+
+ EncryptedKey ::= CHOICE {
+ encryptedValue EncryptedValue, -- deprecated
+ envelopedData [0] EnvelopedData }
+ -- The encrypted private key MUST be placed in the envelopedData
+ -- encryptedContentInfo encryptedContent OCTET STRING.
+
+
+
+
+ EncryptedValue ::= SEQUENCE {
+ intendedAlg [0] AlgorithmIdentifier OPTIONAL,
+ -- the intended algorithm for which the value will be used
+ symmAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- the symmetric algorithm used to encrypt the value
+ encSymmKey [2] BIT STRING OPTIONAL,
+ -- the (encrypted) symmetric key used to encrypt the value
+ keyAlg [3] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used to encrypt the symmetric key
+ valueHint [4] OCTET STRING OPTIONAL,
+ -- a brief description or identifier of the encValue content
+ -- (may be meaningful only to the sending entity, and used only
+ -- if EncryptedValue might be re-examined by the sending entity
+ -- in the future)
+ encValue BIT STRING }
+ -- the encrypted value itself
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OptionalValidity ::= SEQUENCE {
+ notBefore [0] Time OPTIONAL,
+ notAfter [1] Time OPTIONAL } --at least one MUST be present
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiArchiveOptions ::= CHOICE {
+ encryptedPrivKey [0] EncryptedKey,
+ -- the actual value of the private key
+ keyGenParameters [1] KeyGenParameters,
+ -- parameters which allow the private key to be re-generated
+ archiveRemGenPrivKey [2] BOOLEAN }
+ -- set to TRUE if sender wishes receiver to archive the private
+ -- key of a key pair that the receiver generates in response to
+ -- this request; set to FALSE if no archival is desired.
+
+
+
+
+ PkiPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+ @return a basic ASN.1 object representation.
+
+
+ Password-based MAC value for use with POPOSigningKeyInput.
+
+
+ Creates a new PKMACValue.
+ @param params parameters for password-based MAC
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+ Creates a new PKMACValue.
+ @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+
+ PKMACValue ::= SEQUENCE {
+ algId AlgorithmIdentifier,
+ -- algorithm value shall be PasswordBasedMac 1.2.840.113533.7.66.13
+ -- parameter value is PBMParameter
+ value BIT STRING }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoPrivKey ::= CHOICE {
+ thisMessage [0] BIT STRING, -- Deprecated
+ -- possession is proven in this message (which contains the private
+ -- key itself (encrypted for the CA))
+ subsequentMessage [1] SubsequentMessage,
+ -- possession will be proven in a subsequent message
+ dhMAC [2] BIT STRING, -- Deprecated
+ agreeMAC [3] PKMACValue,
+ encryptedKey [4] EnvelopedData }
+
+
+
+ Creates a new Proof of Possession object for a signing key.
+ @param poposkIn the PopoSigningKeyInput structure, or null if the
+ CertTemplate includes both subject and publicKey values.
+ @param aid the AlgorithmIdentifier used to sign the proof of possession.
+ @param signature a signature over the DER-encoded value of poposkIn,
+ or the DER-encoded value of certReq if poposkIn is null.
+
+
+
+ PopoSigningKey ::= SEQUENCE {
+ poposkInput [0] PopoSigningKeyInput OPTIONAL,
+ algorithmIdentifier AlgorithmIdentifier,
+ signature BIT STRING }
+ -- The signature (using "algorithmIdentifier") is on the
+ -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg
+ -- certReq CertTemplate contains the subject and publicKey values,
+ -- then poposkInput MUST be omitted and the signature MUST be
+ -- computed on the DER-encoded value of CertReqMsg certReq. If
+ -- the CertReqMsg certReq CertTemplate does not contain the public
+ -- key and subject values, then poposkInput MUST be present and
+ -- MUST be signed. This strategy ensures that the public key is
+ -- not present in both the poposkInput and CertReqMsg certReq
+ -- CertTemplate fields.
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PopoSigningKeyInput with sender name as authInfo.
+
+
+ Creates a new PopoSigningKeyInput using password-based MAC.
+
+
+ Returns the sender field, or null if authInfo is publicKeyMac
+
+
+ Returns the publicKeyMac field, or null if authInfo is sender
+
+
+
+ PopoSigningKeyInput ::= SEQUENCE {
+ authInfo CHOICE {
+ sender [0] GeneralName,
+ -- used only if an authenticated identity has been
+ -- established for the sender (e.g., a DN from a
+ -- previously-issued and currently-valid certificate
+ publicKeyMac PKMacValue },
+ -- used if no authenticated GeneralName currently exists for
+ -- the sender; publicKeyMac contains a password-based MAC
+ -- on the DER-encoded value of publicKey
+ publicKey SubjectPublicKeyInfo } -- from CertTemplate
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a ProofOfPossession with type raVerified.
+
+
+ Creates a ProofOfPossession for a signing key.
+
+
+ Creates a ProofOfPossession for key encipherment or agreement.
+ @param type one of TYPE_KEY_ENCIPHERMENT or TYPE_KEY_AGREEMENT
+
+
+
+ ProofOfPossession ::= CHOICE {
+ raVerified [0] NULL,
+ -- used if the RA has already verified that the requester is in
+ -- possession of the private key
+ signature [1] PopoSigningKey,
+ keyEncipherment [2] PopoPrivKey,
+ keyAgreement [3] PopoPrivKey }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ SinglePubInfo ::= SEQUENCE {
+ pubMethod INTEGER {
+ dontCare (0),
+ x500 (1),
+ web (2),
+ ldap (3) },
+ pubLocation GeneralName OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Table of the available named parameters for GOST 3410-2001 / 2012.
+
+
+
+ return the ECDomainParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+
+ Gost28147-89-Parameters ::=
+ SEQUENCE {
+ iv Gost28147-89-IV,
+ encryptionParamSet OBJECT IDENTIFIER
+ }
+
+ Gost28147-89-IV ::= OCTET STRING (SIZE (8))
+
+
+
+ table of the available named parameters for GOST 3410-94.
+
+
+ return the GOST3410ParamSetParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for parameters
+ contained in this structure.
+
+
+ Base class for an application specific object
+
+
+ Return the enclosed object assuming explicit tagging.
+
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ Return the enclosed object assuming implicit tagging.
+
+ @param derTagNo the type tag that should be applied to the object's contents.
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ return a Bit string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Bit string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ @param data the octets making up the bit string.
+ @param padBits the number of extra bits at the end of the string.
+
+
+ Return the octets contained in this BIT STRING, checking that this BIT STRING really
+ does represent an octet aligned string. Only use this method when the standard you are
+ following dictates that the BIT STRING will be octet aligned.
+
+ @return a copy of the octet aligned data.
+
+
+ @return the value of the bit string as an int (truncating if necessary)
+
+
+ Der BMPString object.
+
+
+ return a BMP string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a BMP string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a bool from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a DerBoolean from the passed in bool.
+
+
+ return a Boolean from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Enumerated from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Class representing the DER-type External
+
+
+ Creates a new instance of DerExternal
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param externalData The external data in its encoded form.
+
+
+ Creates a new instance of DerExternal.
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param encoding The encoding to be used for the external data
+ @param externalData The external data
+
+
+ The encoding of the content. Valid values are
+
+ 0 single-ASN1-type
+ 1 OCTET STRING
+ 2 BIT STRING
+
+
+
+ Generalized time object.
+
+
+ return a generalized time from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Generalized Time object from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYYYMMDDHHMMSS[.f]Z, or without the Z
+ for local time, or Z+-HHMM on the end, for difference between local
+ time and UTC time. The fractional second amount f must consist of at
+ least one number with trailing zeroes removed.
+
+ @param time the time string.
+ @exception ArgumentException if string is an illegal format.
+
+
+ base constructor from a local time object
+
+
+ Return the time.
+ @return The time string as it appeared in the encoded object.
+
+
+ return the time - always in the form of
+ YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyyyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+
+ return a Graphic String from the passed in object
+
+ @param obj a DerGraphicString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ return a Graphic String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der IA5String object - this is an ascii string.
+
+
+ return a IA5 string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an IA5 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in an IA5String.
+
+
+ return true if the passed in String can be represented without
+ loss as an IA5String, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Integer from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ in some cases positive values Get crammed into a space,
+ that's not quite big enough...
+
+
+ A Null object.
+
+
+ Der NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
+
+
+ return a Numeric string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Numeric string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation..
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a NumericString.
+
+
+ Return true if the string can be represented as a NumericString ('0'..'9', ' ')
+
+ @param str string to validate.
+ @return true if numeric, fale otherwise.
+
+
+ return an Oid from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an object Identifier from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Return true if this oid is an extension of the passed in branch, stem.
+ @param stem the arc or branch that is a possible parent.
+ @return true if the branch is on the passed in stem, false otherwise.
+
+
+ The octets making up the octet string.
+
+
+ Der PrintableString object.
+
+
+ return a printable string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Printable string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor - this does not validate the string
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a PrintableString.
+
+
+ return true if the passed in String can be represented without
+ loss as a PrintableString, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ A Der encoded set object
+
+
+ create an empty set
+
+
+ @param obj - a single object that makes up the set.
+
+
+ @param v - a vector of objects making up the set.
+
+
+ Der T61String (also the teletex string) - 8-bit characters
+
+
+ return a T61 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an T61 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - with string.
+
+
+ DER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+ Der UniversalString object.
+
+
+ return a Universal string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Universal string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ UTC time object.
+
+
+ return an UTC Time from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTC Time from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYMMDDHHMMSSZ (it used to be that seconds were
+ never encoded. When you're creating one of these objects from scratch, that's
+ what you want to use, otherwise we'll try to deal with whatever Gets read from
+ the input stream... (this is why the input format is different from the GetTime()
+ method output).
+
+ @param time the time string.
+
+
+ base constructor from a DateTime object
+
+
+ return the time as a date based on whatever a 2 digit year will return. For
+ standardised processing use ToAdjustedDateTime().
+
+ @return the resulting date
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time as an adjusted date
+ in the range of 1950 - 2049.
+
+ @return a date in the range of 1950 to 2049.
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time - always in the form of
+ YYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+ Note: In some cases, due to the local date processing, this
+ may lead to unexpected results. If you want to stick the normal
+ convention of 1950 to 2049 use the GetAdjustedTime() method.
+
+
+
+ Return a time string as an adjusted date with a 4 digit year.
+ This goes in the range of 1950 - 2049.
+
+
+
+ Der UTF8String object.
+
+
+ return an UTF8 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTF8 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a Videotex String from the passed in object
+
+ @param obj a DERVideotexString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ return a Videotex String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der VisibleString object.
+
+
+ return a Visible string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Visible string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+
+ RFC 3126: 4.3.1 Certificate Values Attribute Definition
+
+ CertificateValues ::= SEQUENCE OF Certificate
+
+
+
+
+
+ CommitmentTypeIndication ::= SEQUENCE {
+ commitmentTypeId CommitmentTypeIdentifier,
+ commitmentTypeQualifier SEQUENCE SIZE (1..MAX) OF
+ CommitmentTypeQualifier OPTIONAL }
+
+
+
+ Commitment type qualifiers, used in the Commitment-Type-Indication attribute (RFC3126).
+
+
+ CommitmentTypeQualifier ::= SEQUENCE {
+ commitmentTypeIdentifier CommitmentTypeIdentifier,
+ qualifier ANY DEFINED BY commitmentTypeIdentifier OPTIONAL }
+
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param as CommitmentTypeQualifier structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a DER-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+ RFC 3126: 4.2.1 Complete Certificate Refs Attribute Definition
+
+ CompleteCertificateRefs ::= SEQUENCE OF OtherCertID
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CompleteRevocationRefs ::= SEQUENCE OF CrlOcspRef
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlIdentifier ::= SEQUENCE
+ {
+ crlissuer Name,
+ crlIssuedTime UTCTime,
+ crlNumber INTEGER OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CRLListID ::= SEQUENCE
+ {
+ crls SEQUENCE OF CrlValidatedID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlOcspRef ::= SEQUENCE {
+ crlids [0] CRLListID OPTIONAL,
+ ocspids [1] OcspListID OPTIONAL,
+ otherRev [2] OtherRevRefs OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlValidatedID ::= SEQUENCE {
+ crlHash OtherHash,
+ crlIdentifier CrlIdentifier OPTIONAL}
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspIdentifier ::= SEQUENCE {
+ ocspResponderID ResponderID,
+ -- As in OCSP response data
+ producedAt GeneralizedTime
+ -- As in OCSP response data
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspListID ::= SEQUENCE {
+ ocspResponses SEQUENCE OF OcspResponsesID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspResponsesID ::= SEQUENCE {
+ ocspIdentifier OcspIdentifier,
+ ocspRepHash OtherHash OPTIONAL
+ }
+
+
+
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+
+
+
+
+
+ OtherHash ::= CHOICE {
+ sha1Hash OtherHashValue, -- This contains a SHA-1 hash
+ otherHash OtherHashAlgAndValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ Summary description for OtherHashAlgAndValue.
+
+
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OtherHashValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OtherRevRefs ::= SEQUENCE
+ {
+ otherRevRefType OtherRevRefType,
+ otherRevRefs ANY DEFINED BY otherRevRefType
+ }
+
+ OtherRevRefType ::= OBJECT IDENTIFIER
+
+
+
+
+
+ RFC 3126: 4.3.2 Revocation Values Attribute Definition
+
+ OtherRevVals ::= SEQUENCE
+ {
+ otherRevValType OtherRevValType,
+ otherRevVals ANY DEFINED BY otherRevValType
+ }
+
+ OtherRevValType ::= OBJECT IDENTIFIER
+
+
+
+
+
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+
+
+
+
+ RFC 5126: 6.3.4. revocation-values Attribute Definition
+
+ RevocationValues ::= SEQUENCE {
+ crlVals [0] SEQUENCE OF CertificateList OPTIONAL,
+ ocspVals [1] SEQUENCE OF BasicOCSPResponse OPTIONAL,
+ otherRevVals [2] OtherRevVals OPTIONAL
+ }
+
+
+
+
+
+
+ SignaturePolicyId ::= SEQUENCE {
+ sigPolicyIdentifier SigPolicyId,
+ sigPolicyHash SigPolicyHash,
+ sigPolicyQualifiers SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo OPTIONAL
+ }
+
+ SigPolicyId ::= OBJECT IDENTIFIER
+
+ SigPolicyHash ::= OtherHashAlgAndValue
+
+
+
+
+
+
+ SignaturePolicyIdentifier ::= CHOICE {
+ SignaturePolicyId SignaturePolicyId,
+ SignaturePolicyImplied SignaturePolicyImplied
+ }
+
+ SignaturePolicyImplied ::= NULL
+
+
+
+
+
+
+ SignerAttribute ::= SEQUENCE OF CHOICE {
+ claimedAttributes [0] ClaimedAttributes,
+ certifiedAttributes [1] CertifiedAttributes }
+
+ ClaimedAttributes ::= SEQUENCE OF Attribute
+ CertifiedAttributes ::= AttributeCertificate -- as defined in RFC 3281: see clause 4.1.
+
+
+
+ Signer-Location attribute (RFC3126).
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1.. MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+
+
+ SigPolicyQualifierInfo ::= SEQUENCE {
+ sigPolicyQualifierId SigPolicyQualifierId,
+ sigQualifier ANY DEFINED BY sigPolicyQualifierId
+ }
+
+ SigPolicyQualifierId ::= OBJECT IDENTIFIER
+
+
+
+
+ constructor
+
+
+
+ ContentHints ::= SEQUENCE {
+ contentDescription UTF8String (SIZE (1..MAX)) OPTIONAL,
+ contentType ContentType }
+
+
+
+ Create from OCTET STRING whose octets represent the identifier.
+
+
+ Create from byte array representing the identifier.
+
+
+ The definition of ContentIdentifier is
+
+ ContentIdentifier ::= OCTET STRING
+
+ id-aa-contentIdentifier OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 7 }
+
+
+ constructor
+
+
+
+ EssCertID ::= SEQUENCE {
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+
+
+
+ EssCertIDv2 ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier
+ DEFAULT {algorithm id-sha256},
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+ Hash ::= OCTET STRING
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serialNumber CertificateSerialNumber
+ }
+
+
+
+ constructor
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+ OtherHash ::= CHOICE {
+ sha1Hash OCTET STRING,
+ otherHash OtherHashAlgAndValue }
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OCTET STRING }
+
+
+
+
+ constructors
+
+
+ The definition of OtherSigningCertificate is
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-ets-otherSigCert OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 19 }
+
+
+ constructors
+
+
+ The definition of SigningCertificate is
+
+ SigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF EssCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 12 }
+
+
+ The definition of SigningCertificateV2 is
+
+ SigningCertificateV2 ::= SEQUENCE {
+ certs SEQUENCE OF EssCertIDv2,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 47 }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ 1.3.6.1.4.1.11591.15 - ellipticCurve
+
+
+ Marker interface for CHOICE objects - if you implement this in a roll-your-own
+ object, any attempt to tag the object implicitly will convert the tag to an
+ explicit one as the encoding rules require.
+
+ If you use this interface your class should also implement the getInstance
+ pattern which takes a tag object and the tagging mode used.
+
+
+
+ basic interface for Der string objects.
+
+
+ The CscaMasterList object. This object can be wrapped in a
+ CMSSignedData to be published in LDAP.
+
+
+ CscaMasterList ::= SEQUENCE {
+ version CscaMasterListVersion,
+ certList SET OF Certificate }
+
+ CscaMasterListVersion :: INTEGER {v0(0)}
+
+
+
+ The DataGroupHash object.
+
+ DataGroupHash ::= SEQUENCE {
+ dataGroupNumber DataGroupNumber,
+ dataGroupHashValue OCTET STRING }
+
+ DataGroupNumber ::= INTEGER {
+ dataGroup1 (1),
+ dataGroup1 (2),
+ dataGroup1 (3),
+ dataGroup1 (4),
+ dataGroup1 (5),
+ dataGroup1 (6),
+ dataGroup1 (7),
+ dataGroup1 (8),
+ dataGroup1 (9),
+ dataGroup1 (10),
+ dataGroup1 (11),
+ dataGroup1 (12),
+ dataGroup1 (13),
+ dataGroup1 (14),
+ dataGroup1 (15),
+ dataGroup1 (16) }
+
+
+
+
+ The LDSSecurityObject object (V1.8).
+
+ LDSSecurityObject ::= SEQUENCE {
+ version LDSSecurityObjectVersion,
+ hashAlgorithm DigestAlgorithmIdentifier,
+ dataGroupHashValues SEQUENCE SIZE (2..ub-DataGroups) OF DataHashGroup,
+ ldsVersionInfo LDSVersionInfo OPTIONAL
+ -- if present, version MUST be v1 }
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier,
+
+ LDSSecurityObjectVersion :: INTEGER {V0(0)}
+
+
+
+
+ LDSVersionInfo ::= SEQUENCE {
+ ldsVersion PRINTABLE STRING
+ unicodeVersion PRINTABLE STRING
+ }
+
+ @return
+
+
+ The id-isismtt-cp-accredited OID indicates that the certificate is a
+ qualified certificate according to Directive 1999/93/EC of the European
+ Parliament and of the Council of 13 December 1999 on a Community
+ Framework for Electronic Signatures, which additionally conforms the
+ special requirements of the SigG and has been issued by an accredited CA.
+
+
+ Certificate extensionDate of certificate generation
+
+
+ DateOfCertGenSyntax ::= GeneralizedTime
+
+
+
+ Attribute to indicate that the certificate holder may sign in the name of
+ a third person. May also be used as extension in a certificate.
+
+
+ Attribute to indicate admissions to certain professions. May be used as
+ attribute in attribute certificate or as extension in a certificate
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST
+ be used in new certificates in place of the extension/attribute
+ MonetaryLimit since January 1, 2004. For the sake of backward
+ compatibility with certificates already in use, SigG conforming
+ components MUST support MonetaryLimit (as well as QcEuLimitValue).
+
+
+ A declaration of majority. May be used as attribute in attribute
+ certificate or as extension in a certificate
+
+
+
+ Serial number of the smart card containing the corresponding private key
+
+
+ ICCSNSyntax ::= OCTET STRING (SIZE(8..20))
+
+
+
+
+ Reference for a file of a smartcard that stores the public key of this
+ certificate and that is used as �security anchor�.
+
+
+ PKReferenceSyntax ::= OCTET STRING (SIZE(20))
+
+
+
+ Some other restriction regarding the usage of this certificate. May be
+ used as attribute in attribute certificate or as extension in a
+ certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Restriction
+
+
+
+ (Single)Request extension: Clients may include this extension in a
+ (single) Request to request the responder to send the certificate in the
+ response message along with the status information. Besides the LDAP
+ service, this extension provides another mechanism for the distribution
+ of certificates, which MAY optionally be provided by certificate
+ repositories.
+
+
+ RetrieveIfAllowed ::= BOOLEAN
+
+
+
+ SingleOCSPResponse extension: The certificate requested by the client by
+ inserting the RetrieveIfAllowed extension in the request, will be
+ returned in this extension.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate
+
+
+ Base ObjectIdentifier for naming authorities
+
+
+ SingleOCSPResponse extension: Date, when certificate has been published
+ in the directory and status information has become available. Currently,
+ accrediting authorities enforce that SigG-conforming OCSP servers include
+ this extension in the responses.
+
+
+ CertInDirSince ::= GeneralizedTime
+
+
+
+ Hash of a certificate in OCSP.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.CertHash
+
+
+
+ NameAtBirth ::= DirectoryString(SIZE(1..64)
+
+
+ Used in
+ {@link Org.BouncyCastle.Asn1.X509.SubjectDirectoryAttributes SubjectDirectoryAttributes}
+
+
+ Some other information of non-restrictive nature regarding the usage of
+ this certificate. May be used as attribute in atribute certificate or as
+ extension in a certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdditionalInformationSyntax
+
+
+ Indicates that an attribute certificate exists, which limits the
+ usability of this public key certificate. Whenever verifying a signature
+ with the help of this certificate, the content of the corresponding
+ attribute certificate should be concerned. This extension MUST be
+ included in a PKC, if a corresponding attribute certificate (having the
+ PKC as base certificate) contains some attribute that restricts the
+ usability of the PKC too. Attribute certificates with restricting content
+ MUST always be included in the signed document.
+
+
+ LiabilityLimitationFlagSyntax ::= BOOLEAN
+
+
+
+ ISIS-MTT PROFILE: The responder may include this extension in a response to
+ send the hash of the requested certificate to the responder. This hash is
+ cryptographically bound to the certificate and serves as evidence that the
+ certificate is known to the responder (i.e. it has been issued and is present
+ in the directory). Hence, this extension is a means to provide a positive
+ statement of availability as described in T8.[8]. As explained in T13.[1],
+ clients may rely on this information to be able to validate signatures after
+ the expiry of the corresponding certificate. Hence, clients MUST support this
+ extension. If a positive statement of availability is to be delivered, this
+ extension syntax and OID MUST be used.
+
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertHash:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param hashAlgorithm The hash algorithm identifier.
+ @param certificateHash The hash of the whole DER encoding of the certificate.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ ISIS-MTT-Optional: The certificate requested by the client by inserting the
+ RetrieveIfAllowed extension in the request, will be returned in this
+ extension.
+
+ ISIS-MTT-SigG: The signature act allows publishing certificates only then,
+ when the certificate owner gives his isExplicit permission. Accordingly, there
+ may be �nondownloadable� certificates, about which the responder must provide
+ status information, but MUST NOT include them in the response. Clients may
+ get therefore the following three kind of answers on a single request
+ including the RetrieveIfAllowed extension:
+
+ - a) the responder supports the extension and is allowed to publish the
+ certificate: RequestedCertificate returned including the requested
+ certificate
+ - b) the responder supports the extension but is NOT allowed to publish
+ the certificate: RequestedCertificate returned including an empty OCTET
+ STRING
+ - c) the responder does not support the extension: RequestedCertificate is
+ not included in the response
+
+ Clients requesting RetrieveIfAllowed MUST be able to handle these cases. If
+ any of the OCTET STRING options is used, it MUST contain the DER encoding of
+ the requested certificate.
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+
+ Constructor from a given details.
+
+ Only one parameter can be given. All other must be null.
+
+ @param certificate Given as Certificate
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ Some other information of non-restrictive nature regarding the usage of this
+ certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+
+ Constructor from a given details.
+
+ @param information The describtion of the information.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @return an Asn1Object
+
+
+ An Admissions structure.
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ Parameter professionInfos is mandatory.
+
+ @param admissionAuthority The admission authority.
+ @param namingAuthority The naming authority.
+ @param professionInfos The profession infos.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate admissions to certain professions.
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+
+ ISIS-MTT PROFILE: The relatively complex structure of AdmissionSyntax
+ supports the following concepts and requirements:
+
+ - External institutions (e.g. professional associations, chambers, unions,
+ administrative bodies, companies, etc.), which are responsible for granting
+ and verifying professional admissions, are indicated by means of the data
+ field admissionAuthority. An admission authority is indicated by a
+ GeneralName object. Here an X.501 directory name (distinguished name) can be
+ indicated in the field directoryName, a URL address can be indicated in the
+ field uniformResourceIdentifier, and an object identifier can be indicated in
+ the field registeredId.
+ - The names of authorities which are responsible for the administration of
+ title registers are indicated in the data field namingAuthority. The name of
+ the authority can be identified by an object identifier in the field
+ namingAuthorityId, by means of a text string in the field
+ namingAuthorityText, by means of a URL address in the field
+ namingAuthorityUrl, or by a combination of them. For example, the text string
+ can contain the name of the authority, the country and the name of the title
+ register. The URL-option refers to a web page which contains lists with
+ officially registered professions (text and possibly OID) as well as
+ further information on these professions. Object identifiers for the
+ component namingAuthorityId are grouped under the OID-branch
+ id-isis-at-namingAuthorities and must be applied for.
+ - See http://www.teletrust.de/anwend.asp?Id=30200&Sprache=E_&HomePG=0
+ for an application form and http://www.teletrust.de/links.asp?id=30220,11
+ for an overview of registered naming authorities.
+ - By means of the data type ProfessionInfo certain professions,
+ specializations, disciplines, fields of activity, etc. are identified. A
+ profession is represented by one or more text strings, resp. profession OIDs
+ in the fields professionItems and professionOIDs and by a registration number
+ in the field registrationNumber. An indication in text form must always be
+ present, whereas the other indications are optional. The component
+ addProfessionInfo may contain additional applicationspecific information in
+ DER-encoded form.
+
+
+ By means of different namingAuthority-OIDs or profession OIDs hierarchies of
+ professions, specializations, disciplines, fields of activity, etc. can be
+ expressed. The issuing admission authority should always be indicated (field
+ admissionAuthority), whenever a registration number is presented. Still,
+ information on admissions can be given without indicating an admission or a
+ naming authority by the exclusive use of the component professionItems. In
+ this case the certification authority is responsible for the verification of
+ the admission information.
+
+
+
+ This attribute is single-valued. Still, several admissions can be captured in
+ the sequence structure of the component contentsOfAdmissions of
+ AdmissionSyntax or in the component professionInfos of Admissions. The
+ component admissionAuthority of AdmissionSyntax serves as default value for
+ the component admissionAuthority of Admissions. Within the latter component
+ the default value can be overwritten, in case that another authority is
+ responsible. The component namingAuthority of Admissions serves as a default
+ value for the component namingAuthority of ProfessionInfo. Within the latter
+ component the default value can be overwritten, in case that another naming
+ authority needs to be recorded.
+
+ The length of the string objects is limited to 128 characters. It is
+ recommended to indicate a namingAuthorityURL in all issued attribute
+ certificates. If a namingAuthorityURL is indicated, the field professionItems
+ of ProfessionInfo should contain only registered titles. If the field
+ professionOIDs exists, it has to contain the OIDs of the professions listed
+ in professionItems in the same order. In general, the field professionInfos
+ should contain only one entry, unless the admissions that are to be listed
+ are logically connected (e.g. they have been issued under the same admission
+ number).
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Admissions
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ @param admissionAuthority The admission authority.
+ @param contentsOfAdmissions The admissions.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the admissionAuthority if present, null otherwise.
+
+
+ @return Returns the contentsOfAdmissions.
+
+
+ A declaration of majority.
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ fullAgeAtCountry indicates the majority of the owner with respect to the laws
+ of a specific country.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ @return an Asn1Object
+
+
+ @return notYoungerThan if that's what we are, -1 otherwise
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST be
+ used in new certificates in place of the extension/attribute MonetaryLimit
+ since January 1, 2004. For the sake of backward compatibility with
+ certificates already in use, components SHOULD support MonetaryLimit (as well
+ as QcEuLimitValue).
+
+ Indicates a monetary limit within which the certificate holder is authorized
+ to act. (This value DOES NOT express a limit on the liability of the
+ certification authority).
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ currency must be the ISO code.
+
+ value = amount�10*exponent
+
+
+ Constructor from a given details.
+
+
+ value = amount�10^exponent
+
+ @param currency The currency. Must be the ISO code.
+ @param amount The amount
+ @param exponent The exponent
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ @return an Asn1Object
+
+
+ Names of authorities which are responsible for the administration of title
+ registers.
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+
+ Profession OIDs should always be defined under the OID branch of the
+ responsible naming authority. At the time of this writing, the work group
+ �Recht, Wirtschaft, Steuern� (�Law, Economy, Taxes�) is registered as the
+ first naming authority under the OID id-isismtt-at-namingAuthorities.
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ @return Returns the namingAuthorityID.
+
+
+ @return Returns the namingAuthorityText.
+
+
+ @return Returns the namingAuthorityUrl.
+
+
+ Constructor from given details.
+
+ All parameters can be combined.
+
+ @param namingAuthorityID ObjectIdentifier for naming authority.
+ @param namingAuthorityUrl URL for naming authority.
+ @param namingAuthorityText Textual representation of naming authority.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate that the certificate holder may sign in the name of a
+ third person.
+
+ ISIS-MTT PROFILE: The corresponding ProcurationSyntax contains either the
+ name of the person who is represented (subcomponent thirdPerson) or a
+ reference to his/her base certificate (in the component signingFor,
+ subcomponent certRef), furthermore the optional components country and
+ typeSubstitution to indicate the country whose laws apply, and respectively
+ the type of procuration (e.g. manager, procuration, custody).
+
+
+ ISIS-MTT PROFILE: The GeneralName MUST be of type directoryName and MAY only
+ contain: - RFC3039 attributes, except pseudonym (countryName, commonName,
+ surname, givenName, serialNumber, organizationName, organizationalUnitName,
+ stateOrProvincename, localityName, postalAddress) and - SubjectDirectoryName
+ attributes (title, dateOfBirth, placeOfBirth, gender, countryOfCitizenship,
+ countryOfResidence and NameAtBirth).
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param certRef Reference to certificate of the person who is represented.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param thirdPerson The GeneralName of the person who is represented.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @return an Asn1Object
+
+
+ Professions, specializations, disciplines, fields of activity, etc.
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+ Rechtsanw�ltin
+
+
+ Rechtsanwalt
+
+
+ Rechtsbeistand
+
+
+ Steuerberaterin
+
+
+ Steuerberater
+
+
+ Steuerbevollm�chtigte
+
+
+ Steuerbevollm�chtigter
+
+
+ Notarin
+
+
+ Notar
+
+
+ Notarvertreterin
+
+
+ Notarvertreter
+
+
+ Notariatsverwalterin
+
+
+ Notariatsverwalter
+
+
+ Wirtschaftspr�ferin
+
+
+ Wirtschaftspr�fer
+
+
+ Vereidigte Buchpr�ferin
+
+
+ Vereidigter Buchpr�fer
+
+
+ Patentanw�ltin
+
+
+ Patentanwalt
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ professionItems is mandatory, all other parameters are
+ optional.
+
+ @param namingAuthority The naming authority.
+ @param professionItems Directory strings of the profession.
+ @param professionOids DERObjectIdentfier objects for the
+ profession.
+ @param registrationNumber Registration number.
+ @param addProfessionInfo Additional infos in encoded form.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the addProfessionInfo.
+
+
+ @return Returns the namingAuthority.
+
+
+ @return Returns the professionItems.
+
+
+ @return Returns the professionOids.
+
+
+ @return Returns the registrationNumber.
+
+
+ Some other restriction regarding the usage of this certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ Constructor from DirectoryString.
+
+ The DirectoryString is of type RestrictionSyntax:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @param restriction A IAsn1String.
+
+
+ Constructor from a given details.
+
+ @param restriction The description of the restriction.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ @return an Asn1Object
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ cast5CBCParameters ::= Sequence {
+ iv OCTET STRING DEFAULT 0,
+ -- Initialization vector
+ keyLength Integer
+ -- Key length, in bits
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IDEA-CBCPar ::= Sequence {
+ iv OCTET STRING OPTIONAL -- exactly 8 octets
+ }
+
+
+
+ The NetscapeCertType object.
+
+ NetscapeCertType ::= BIT STRING {
+ SSLClient (0),
+ SSLServer (1),
+ S/MIME (2),
+ Object Signing (3),
+ Reserved (4),
+ SSL CA (5),
+ S/MIME CA (6),
+ Object Signing CA (7) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509NetscapeCertType.sslCA | X509NetscapeCertType.smimeCA)
+
+
+ This is designed to parse
+ the PublicKeyAndChallenge created by the KEYGEN tag included by
+ Mozilla based browsers.
+
+ PublicKeyAndChallenge ::= SEQUENCE {
+ spki SubjectPublicKeyInfo,
+ challenge IA5STRING
+ }
+
+
+
+
+ Utility class for fetching curves using their NIST names as published in FIPS-PUB 186-3
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ From RFC 3657
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicOcspResponse ::= Sequence {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertID ::= Sequence {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ create a CertStatus object with a tag of zero.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertStatus ::= CHOICE {
+ good [0] IMPLICIT Null,
+ revoked [1] IMPLICIT RevokedInfo,
+ unknown [2] IMPLICIT UnknownInfo }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlID ::= Sequence {
+ crlUrl [0] EXPLICIT IA5String OPTIONAL,
+ crlNum [1] EXPLICIT Integer OPTIONAL,
+ crlTime [2] EXPLICIT GeneralizedTime OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspRequest ::= Sequence {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspResponse ::= Sequence {
+ responseStatus OcspResponseStatus,
+ responseBytes [0] EXPLICIT ResponseBytes OPTIONAL }
+
+
+
+ The OcspResponseStatus enumeration.
+
+ OcspResponseStatus ::= Enumerated {
+ successful (0), --Response has valid confirmations
+ malformedRequest (1), --Illegal confirmation request
+ internalError (2), --Internal error in issuer
+ tryLater (3), --Try again later
+ --(4) is not used
+ sigRequired (5), --Must sign the request
+ unauthorized (6) --Request unauthorized
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Request ::= Sequence {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponderID ::= CHOICE {
+ byName [1] Name,
+ byKey [2] KeyHash }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseBytes ::= Sequence {
+ responseType OBJECT IDENTIFIER,
+ response OCTET STRING }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseData ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ responderID ResponderID,
+ producedAt GeneralizedTime,
+ responses Sequence OF SingleResponse,
+ responseExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RevokedInfo ::= Sequence {
+ revocationTime GeneralizedTime,
+ revocationReason [0] EXPLICIT CRLReason OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ServiceLocator ::= Sequence {
+ issuer Name,
+ locator AuthorityInfoAccessSyntax OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Signature ::= Sequence {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL}
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SingleResponse ::= Sequence {
+ certID CertID,
+ certStatus CertStatus,
+ thisUpdate GeneralizedTime,
+ nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL,
+ singleExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ TBSRequest ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList Sequence OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+
+
+ class for breaking up an Oid into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Pkcs10 Certfication request object.
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+
+
+ Pkcs10 CertificationRequestInfo object.
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ The EncryptedData object.
+
+ EncryptedData ::= Sequence {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo
+ }
+
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+ EncryptedContent ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedPrivateKeyInfo ::= Sequence {
+ encryptionAlgorithm AlgorithmIdentifier {{KeyEncryptionAlgorithms}},
+ encryptedData EncryptedData
+ }
+
+ EncryptedData ::= OCTET STRING
+
+ KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= {
+ ... -- For local profiles
+ }
+
+
+
+
+ MacData ::= SEQUENCE {
+ mac DigestInfo,
+ macSalt OCTET STRING,
+ iterations INTEGER DEFAULT 1
+ -- Note: The default is for historic reasons and its use is deprecated. A
+ -- higher value, like 1024 is recommended.
+
+ @return the basic DERObject construction.
+
+
+ the infamous Pfx from Pkcs12
+
+
+ PKCS#1: 1.2.840.113549.1.1.15
+
+
+ PKCS#1: 1.2.840.113549.1.1.16
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.6.2.37 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.6.2.38 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.54 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.43 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.40 RFC7030
+
+
+ write out an RSA private key with its associated information
+ as described in Pkcs8.
+
+ PrivateKeyInfo ::= Sequence {
+ version Version,
+ privateKeyAlgorithm AlgorithmIdentifier {{PrivateKeyAlgorithms}},
+ privateKey PrivateKey,
+ attributes [0] IMPLICIT Attributes OPTIONAL
+ }
+ Version ::= Integer {v1(0)} (v1,...)
+
+ PrivateKey ::= OCTET STRING
+
+ Attributes ::= Set OF Attr
+
+
+
+ The default version
+
+
+
+ RSAES-OAEP-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ pSourceAlgorithm [2] PKCS1PSourceAlgorithms DEFAULT pSpecifiedEmpty
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+ PKCS1PSourceAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-pSpecified PARAMETERS OCTET STRING },
+ ... -- Allows for future expansion --
+ }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RsaPrivateKey ::= Sequence {
+ version Version,
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ privateExponent Integer, -- d
+ prime1 Integer, -- p
+ prime2 Integer, -- q
+ exponent1 Integer, -- d mod (p-1)
+ exponent2 Integer, -- d mod (q-1)
+ coefficient Integer -- (inverse of q) mod p
+ }
+
+ Version ::= Integer
+
+ This routine is written to output Pkcs1 version 0, private keys.
+
+
+ The default version
+
+
+
+ RSASSA-PSS-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ saltLength [2] INTEGER DEFAULT 20,
+ trailerField [3] TrailerField DEFAULT trailerFieldBC
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+
+ TrailerField ::= INTEGER { trailerFieldBC(1) }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ a Pkcs#7 signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates
+ [0] IMPLICIT ExtendedCertificatesAndCertificates
+ OPTIONAL,
+ crls
+ [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos }
+
+
+
+ a Pkcs#7 signer info object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ the elliptic curve private key object from SEC 1
+
+
+ ECPrivateKey ::= SEQUENCE {
+ version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
+ privateKey OCTET STRING,
+ parameters [0] Parameters OPTIONAL,
+ publicKey [1] BIT STRING OPTIONAL }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ EllipticCurve OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0)
+ }
+
+
+ Handler class for dealing with S/MIME Capabilities
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ returns an ArrayList with 0 or more objects of all the capabilities
+ matching the passed in capability Oid. If the Oid passed is null the
+ entire set is returned.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapabilities ::= Sequence OF SMIMECapability
+
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapability ::= Sequence {
+ capabilityID OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY capabilityID OPTIONAL
+ }
+
+
+
+ Handler for creating a vector S/MIME Capabilities
+
+
+ The SmimeEncryptionKeyPreference object.
+
+ SmimeEncryptionKeyPreference ::= CHOICE {
+ issuerAndSerialNumber [0] IssuerAndSerialNumber,
+ receipentKeyId [1] RecipientKeyIdentifier,
+ subjectAltKeyIdentifier [2] SubjectKeyIdentifier
+ }
+
+
+
+ @param sKeyId the subjectKeyIdentifier value (normally the X.509 one)
+
+
+ elliptic curves defined in "ECC Brainpool Standard Curves and Curve Generation"
+ http://www.ecc-brainpool.org/download/draft_pkix_additional_ecc_dp.txt
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+
+ Accuracy ::= SEQUENCE {
+ seconds INTEGER OPTIONAL,
+ millis [0] INTEGER (1..999) OPTIONAL,
+ micros [1] INTEGER (1..999) OPTIONAL
+ }
+
+
+
+ @param o
+ @return a MessageImprint object.
+
+
+
+ MessageImprint ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashedMessage OCTET STRING }
+
+
+
+
+ TimeStampReq ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ messageImprint MessageImprint,
+ --a hash algorithm OID and the hash value of the data to be
+ --time-stamped
+ reqPolicy TSAPolicyId OPTIONAL,
+ nonce INTEGER OPTIONAL,
+ certReq BOOLEAN DEFAULT FALSE,
+ extensions [0] IMPLICIT Extensions OPTIONAL
+ }
+
+
+
+
+ TimeStampResp ::= SEQUENCE {
+ status PkiStatusInfo,
+ timeStampToken TimeStampToken OPTIONAL }
+
+
+
+
+
+ TstInfo ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ policy TSAPolicyId,
+ messageImprint MessageImprint,
+ -- MUST have the same value as the similar field in
+ -- TimeStampReq
+ serialNumber INTEGER,
+ -- Time-Stamping users MUST be ready to accommodate integers
+ -- up to 160 bits.
+ genTime GeneralizedTime,
+ accuracy Accuracy OPTIONAL,
+ ordering BOOLEAN DEFAULT FALSE,
+ nonce INTEGER OPTIONAL,
+ -- MUST be present if the similar field was present
+ -- in TimeStampReq. In that case it MUST have the same value.
+ tsa [0] GeneralName OPTIONAL,
+ extensions [1] IMPLICIT Extensions OPTIONAL }
+
+
+
+
+
+ Base OID: 1.2.804.2.1.1.1
+
+
+ DSTU4145 Little Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1
+
+
+ DSTU4145 Big Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1.1
+
+
+ DSTU7564 256-bit digest presentation.
+
+
+ DSTU7564 384-bit digest presentation.
+
+
+ DSTU7564 512-bit digest presentation.
+
+
+ DSTU7564 256-bit mac presentation.
+
+
+ DSTU7564 384-bit mac presentation.
+
+
+ DSTU7564 512-bit mac presentation.
+
+
+ DSTU7624 in ECB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 512 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 128 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 256 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 512 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 512 bit block/key presentation
+
+
+ dump a Der object as a formatted string with indentation
+
+ @param obj the Asn1Object to be dumped out.
+
+
+ dump out a DER object as a formatted string, in non-verbose mode
+
+ @param obj the Asn1Encodable to be dumped out.
+ @return the resulting string.
+
+
+ Dump out the object as a string
+
+ @param obj the Asn1Encodable to be dumped out.
+ @param verbose if true, dump out the contents of octet and bit strings.
+ @return the resulting string.
+
+
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+ The AccessDescription object.
+
+ AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+
+
+ create an AccessDescription with the oid and location provided.
+
+
+
+ @return the access method.
+
+
+
+ @return the access location
+
+
+
+ Return the OID in the Algorithm entry of this identifier.
+
+
+
+
+ Return the parameters structure in the Parameters entry of this identifier.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AlgorithmIdentifier ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+
+
+
+
+ Don't use this one if you are trying to be RFC 3281 compliant.
+ Use it for v1 attribute certificates only.
+
+ Our GeneralNames structure
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertValidityPeriod ::= Sequence {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ @param obj
+ @return
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificate ::= Sequence {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= Integer { v2(1) }
+
+
+
+ The AuthorityInformationAccess object.
+
+ id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+ AuthorityInfoAccessSyntax ::=
+ Sequence SIZE (1..MAX) OF AccessDescription
+ AccessDescription ::= Sequence {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+ id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+ id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+
+
+
+ create an AuthorityInformationAccess with the oid and location provided.
+
+
+ The AuthorityKeyIdentifier object.
+
+ id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+ AuthorityKeyIdentifier ::= Sequence {
+ keyIdentifier [0] IMPLICIT KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] IMPLICIT GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] IMPLICIT CertificateSerialNumber OPTIONAL }
+
+ KeyIdentifier ::= OCTET STRING
+
+
+
+
+ *
+ * Calulates the keyidentifier using a SHA1 hash over the BIT STRING
+ * from SubjectPublicKeyInfo as defined in RFC2459.
+ *
+ * Example of making a AuthorityKeyIdentifier:
+ *
+ * SubjectPublicKeyInfo apki = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(
+ * publicKey.getEncoded()).readObject());
+ * AuthorityKeyIdentifier aki = new AuthorityKeyIdentifier(apki);
+ *
+ *
+ *
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided as well.
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided.
+
+
+ create an AuthorityKeyIdentifier with a precomputed key identifier
+
+
+ create an AuthorityKeyIdentifier with a precomupted key identifier
+ and the GeneralNames tag and the serial number provided as well.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ create a cA=true object for the given path length constraint.
+
+ @param pathLenConstraint
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicConstraints := Sequence {
+ cA Boolean DEFAULT FALSE,
+ pathLenConstraint Integer (0..MAX) OPTIONAL
+ }
+
+
+
+ PKIX RFC-2459
+
+ The X.509 v2 CRL syntax is as follows. For signature calculation,
+ the data that is to be signed is ASN.1 Der encoded.
+
+
+ CertificateList ::= Sequence {
+ tbsCertList TbsCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING }
+
+
+
+ This class helps to support crossCerfificatePairs in a LDAP directory
+ according RFC 2587
+
+
+ crossCertificatePairATTRIBUTE::={
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID joint-iso-ccitt(2) ds(5) attributeType(4) crossCertificatePair(40)}
+
+
+ The forward elements of the crossCertificatePair attribute of a
+ CA's directory entry shall be used to store all, except self-issued
+ certificates issued to this CA. Optionally, the reverse elements of the
+ crossCertificatePair attribute, of a CA's directory entry may contain a
+ subset of certificates issued by this CA to other CAs. When both the forward
+ and the reverse elements are present in a single attribute value, issuer name
+ in one certificate shall match the subject name in the other and vice versa,
+ and the subject public key in one certificate shall be capable of verifying
+ the digital signature on the other certificate and vice versa.
+
+ When a reverse element is present, the forward element value and the reverse
+ element value need not be stored in the same attribute value; in other words,
+ they can be stored in either a single attribute value or two attribute
+ values.
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertificatePair:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param forward Certificates issued to this CA.
+ @param reverse Certificates issued by this CA to other CAs.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @return a DERObject
+
+
+ @return Returns the forward.
+
+
+ @return Returns the reverse.
+
+
+ Construct a CertificatePolicies object containing one PolicyInformation.
+
+ @param name the name to be contained.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation
+
+
+
+ CertPolicyId, used in the CertificatePolicies and PolicyMappings
+ X509V3 Extensions.
+
+
+ CertPolicyId ::= OBJECT IDENTIFIER
+
+
+
+ Return the distribution points making up the sequence.
+
+ @return DistributionPoint[]
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlDistPoint ::= Sequence SIZE {1..MAX} OF DistributionPoint
+
+
+
+ The CRLNumber object.
+
+ CRLNumber::= Integer(0..MAX)
+
+
+
+ The CRLReason enumeration.
+
+ CRLReason ::= Enumerated {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10)
+ }
+
+
+
+ The DigestInfo object.
+
+ DigestInfo::=Sequence{
+ digestAlgorithm AlgorithmIdentifier,
+ digest OCTET STRING }
+
+
+
+ DisplayText class, used in
+ CertificatePolicies X509 V3 extensions (in policy qualifiers).
+
+ It stores a string in a chosen encoding.
+
+ DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Constant corresponding to ia5String encoding.
+
+
+
+ Constant corresponding to bmpString encoding.
+
+
+
+ Constant corresponding to utf8String encoding.
+
+
+
+ Constant corresponding to visibleString encoding.
+
+
+
+ Describe constant DisplayTextMaximumSize here.
+
+
+
+ Creates a new DisplayText instance.
+
+ @param type the desired encoding type for the text.
+ @param text the text to store. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+
+ @param text the text to encapsulate. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+ Useful when reading back a DisplayText class
+ from it's Asn1Encodable form.
+
+ @param contents an Asn1Encodable instance.
+
+
+ Returns the stored string object.
+
+ @return the stored text as a string.
+
+
+ The DistributionPoint object.
+
+ DistributionPoint ::= Sequence {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+ }
+
+
+
+ The DistributionPointName object.
+
+ DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RDN
+ }
+
+
+
+ The extendedKeyUsage object.
+
+ extendedKeyUsage ::= Sequence SIZE (1..MAX) OF KeyPurposeId
+
+
+
+ Returns all extended key usages.
+ The returned ArrayList contains DerObjectIdentifier instances.
+ @return An ArrayList with all key purposes.
+
+
+ The GeneralName object.
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+ OtherName ::= Sequence {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+ EDIPartyName ::= Sequence {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+
+
+ When the subjectAltName extension contains an Internet mail address,
+ the address MUST be included as an rfc822Name. The format of an
+ rfc822Name is an "addr-spec" as defined in RFC 822 [RFC 822].
+
+ When the subjectAltName extension contains a domain name service
+ label, the domain name MUST be stored in the dNSName (an IA5String).
+ The name MUST be in the "preferred name syntax," as specified by RFC
+ 1034 [RFC 1034].
+
+ When the subjectAltName extension contains a URI, the name MUST be
+ stored in the uniformResourceIdentifier (an IA5String). The name MUST
+ be a non-relative URL, and MUST follow the URL syntax and encoding
+ rules specified in [RFC 1738]. The name must include both a scheme
+ (e.g., "http" or "ftp") and a scheme-specific-part. The scheme-
+ specific-part must include a fully qualified domain name or IP
+ address as the host.
+
+ When the subjectAltName extension contains a iPAddress, the address
+ MUST be stored in the octet string in "network byte order," as
+ specified in RFC 791 [RFC 791]. The least significant bit (LSB) of
+ each octet is the LSB of the corresponding byte in the network
+ address. For IP Version 4, as specified in RFC 791, the octet string
+ MUST contain exactly four octets. For IP Version 6, as specified in
+ RFC 1883, the octet string MUST contain exactly sixteen octets [RFC
+ 1883].
+
+
+ Create a GeneralName for the given tag from the passed in string.
+
+ This constructor can handle:
+
+ - rfc822Name
+ - iPAddress
+ - directoryName
+ - dNSName
+ - uniformResourceIdentifier
+ - registeredID
+
+ For x400Address, otherName and ediPartyName there is no common string
+ format defined.
+
+ Note: A directory name can be encoded in different ways into a byte
+ representation. Be aware of this if the byte representation is used for
+ comparing results.
+
+
+ @param tag tag number
+ @param name string representation of name
+ @throws ArgumentException if the string encoding is not correct or
+ not supported.
+
+
+ Construct a GeneralNames object containing one GeneralName.
+ The name to be contained.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ GeneralNames ::= Sequence SIZE {1..MAX} OF GeneralName
+
+
+
+ Class for containing a restriction object subtrees in NameConstraints. See
+ RFC 3280.
+
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.NameConstraints
+
+
+
+ Constructor from a given details.
+
+ According RFC 3280, the minimum and maximum fields are not used with any
+ name forms, thus minimum MUST be zero, and maximum MUST be absent.
+
+ If minimum is null, zero is assumed, if
+ maximum is null, maximum is absent.
+
+ @param baseName
+ A restriction.
+ @param minimum
+ Minimum
+
+ @param maximum
+ Maximum
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @return a DERObject
+
+
+ The Holder object.
+
+ For an v2 attribute certificate this is:
+
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ For an v1 attribute certificate this is:
+
+
+ subject CHOICE {
+ baseCertificateID [0] IssuerSerial,
+ -- associated with a Public Key Certificate
+ subjectName [1] GeneralNames },
+ -- associated with a name
+
+
+
+
+ Constructor for a holder for an v1 attribute certificate.
+
+ @param tagObj The ASN.1 tagged holder object.
+
+
+ Constructor for a holder for an v2 attribute certificate. *
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructs a holder from a IssuerSerial.
+ @param baseCertificateID The IssuerSerial.
+ @param version The version of the attribute certificate.
+
+
+ Returns 1 for v2 attribute certificates or 0 for v1 attribute
+ certificates.
+ @return The version of the attribute certificate.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+ @param version The version of the attribute certificate.
+
+
+ Constructs a holder from an object digest info.
+
+ @param objectDigestInfo The object digest info object.
+
+
+ Returns the entityName for an v2 attribute certificate or the subjectName
+ for an v1 attribute certificate.
+
+ @return The entityname or subjectname.
+
+
+ The Holder object.
+
+ Holder ::= Sequence {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ Implementation of IetfAttrSyntax as specified by RFC3281.
+
+
+
+
+
+
+
+
+ IetfAttrSyntax ::= Sequence {
+ policyAuthority [0] GeneralNames OPTIONAL,
+ values Sequence OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IssuerSerial ::= Sequence {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUid UniqueIdentifier OPTIONAL
+ }
+
+
+
+
+ IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+
+
+ Constructor from given details.
+
+ @param distributionPoint
+ May contain an URI as pointer to most current CRL.
+ @param onlyContainsUserCerts Covers revocation information for end certificates.
+ @param onlyContainsCACerts Covers revocation information for CA certificates.
+
+ @param onlySomeReasons
+ Which revocation reasons does this point cover.
+ @param indirectCRL
+ If true then the CRL contains revocation
+ information about certificates ssued by other CAs.
+ @param onlyContainsAttributeCerts Covers revocation information for attribute certificates.
+
+
+ Constructor from Asn1Sequence
+
+
+ @return Returns the distributionPoint.
+
+
+ @return Returns the onlySomeReasons.
+
+
+ The KeyPurposeID object.
+
+ KeyPurposeID ::= OBJECT IDENTIFIER
+
+
+
+ The KeyUsage object.
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (KeyUsage.keyEncipherment | KeyUsage.dataEncipherment)
+
+
+ Constructor from a given details.
+
+ permitted and excluded are Vectors of GeneralSubtree objects.
+
+ @param permitted Permitted subtrees
+ @param excluded Excluded subtrees
+
+
+ NoticeReference class, used in
+ CertificatePolicies X509 V3 extensions
+ (in policy qualifiers).
+
+
+ NoticeReference ::= Sequence {
+ organization DisplayText,
+ noticeNumbers Sequence OF Integer }
+
+
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param numbers a Vector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization displayText
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+ Useful for reconstructing a NoticeReference
+ instance from its encodable/encoded form.
+
+ @param as an Asn1Sequence value obtained from either
+ calling @{link ToAsn1Object()} for a NoticeReference
+ instance or from parsing it from a Der-encoded stream.
+
+
+ Describe ToAsn1Object method here.
+
+ @return a Asn1Object value
+
+
+ ObjectDigestInfo ASN.1 structure used in v2 attribute certificates.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+
+ The public key is hashed.
+
+
+ The public key certificate is hashed.
+
+
+ An other object is hashed.
+
+
+ Constructor from given details.
+
+ If digestedObjectType is not {@link #publicKeyCert} or
+ {@link #publicKey} otherObjectTypeID must be given,
+ otherwise it is ignored.
+
+ @param digestedObjectType The digest object type.
+ @param otherObjectTypeID The object type ID for
+ otherObjectDigest.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param objectDigest The hash value.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+ PolicyMappings V3 extension, described in RFC3280.
+
+ PolicyMappings ::= Sequence SIZE (1..MAX) OF Sequence {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+
+ @see RFC 3280, section 4.2.1.6
+
+
+ Creates a new PolicyMappings instance.
+
+ @param seq an Asn1Sequence constructed as specified
+ in RFC 3280
+
+
+ Creates a new PolicyMappings instance.
+
+ @param mappings a HashMap value that maps
+ string oids
+ to other string oids.
+
+
+ PolicyQualifierId, used in the CertificatePolicies
+ X509V3 extension.
+
+
+ id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+
+
+ Policy qualifiers, used in the X509V3 CertificatePolicies
+ extension.
+
+
+ PolicyQualifierInfo ::= Sequence {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param policyQualifierId a PolicyQualifierId value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new PolicyQualifierInfo containing a
+ cPSuri qualifier.
+
+ @param cps the CPS (certification practice statement) uri as a
+ string.
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param as PolicyQualifierInfo X509 structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a Der-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+
+ PrivateKeyUsagePeriod ::= SEQUENCE
+ {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+
+
+
+
+ The BiometricData object.
+
+ BiometricData ::= SEQUENCE {
+ typeOfBiometricData TypeOfBiometricData,
+ hashAlgorithm AlgorithmIdentifier,
+ biometricDataHash OCTET STRING,
+ sourceDataUri IA5String OPTIONAL }
+
+
+
+ The Iso4217CurrencyCode object.
+
+ Iso4217CurrencyCode ::= CHOICE {
+ alphabetic PrintableString (SIZE 3), --Recommended
+ numeric INTEGER (1..999) }
+ -- Alphabetic or numeric currency code as defined in ISO 4217
+ -- It is recommended that the Alphabetic form is used
+
+
+
+ The MonetaryValue object.
+
+ MonetaryValue ::= SEQUENCE {
+ currency Iso4217CurrencyCode,
+ amount INTEGER,
+ exponent INTEGER }
+ -- value = amount * 10^exponent
+
+
+
+ The QCStatement object.
+
+ QCStatement ::= SEQUENCE {
+ statementId OBJECT IDENTIFIER,
+ statementInfo ANY DEFINED BY statementId OPTIONAL}
+
+
+
+ The SemanticsInformation object.
+
+ SemanticsInformation ::= SEQUENCE {
+ semanticsIdentifier OBJECT IDENTIFIER OPTIONAL,
+ nameRegistrationAuthorities NameRegistrationAuthorities
+ OPTIONAL }
+ (WITH COMPONENTS {..., semanticsIdentifier PRESENT}|
+ WITH COMPONENTS {..., nameRegistrationAuthorities PRESENT})
+
+ NameRegistrationAuthorities ::= SEQUENCE SIZE (1..MAX) OF
+ GeneralName
+
+
+
+ The TypeOfBiometricData object.
+
+ TypeOfBiometricData ::= CHOICE {
+ predefinedBiometricType PredefinedBiometricType,
+ biometricDataOid OBJECT IDENTIFIER }
+
+ PredefinedBiometricType ::= INTEGER {
+ picture(0),handwritten-signature(1)}
+ (picture|handwritten-signature)
+
+
+
+ The ReasonFlags object.
+
+ ReasonFlags ::= BIT STRING {
+ unused(0),
+ keyCompromise(1),
+ cACompromise(2),
+ affiliationChanged(3),
+ superseded(4),
+ cessationOfOperation(5),
+ certficateHold(6)
+ }
+
+
+
+ @param reasons - the bitwise OR of the Key Reason flags giving the
+ allowed uses for the key.
+
+
+ Implementation of the RoleSyntax object as specified by the RFC3281.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ RoleSyntax factory method.
+ @param obj the object used to construct an instance of
+ RoleSyntax. It must be an instance of RoleSyntax
+ or Asn1Sequence.
+ @return the instance of RoleSyntax built from the
+ supplied object.
+ @throws java.lang.ArgumentException if the object passed
+ to the factory is not an instance of RoleSyntax or
+ Asn1Sequence.
+
+
+ Constructor.
+ @param roleAuthority the role authority of this RoleSyntax.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Constructor. Invoking this constructor is the same as invoking
+ new RoleSyntax(null, roleName).
+ @param roleName the role name of this RoleSyntax.
+
+
+ Utility constructor. Takes a string argument representing
+ the role name, builds a GeneralName to hold the role name
+ and calls the constructor that takes a GeneralName.
+ @param roleName
+
+
+ Constructor that builds an instance of RoleSyntax by
+ extracting the encoded elements from the Asn1Sequence
+ object supplied.
+ @param seq an instance of Asn1Sequence that holds
+ the encoded elements used to build this RoleSyntax.
+
+
+ Gets the role authority of this RoleSyntax.
+ @return an instance of GeneralNames holding the
+ role authority of this RoleSyntax.
+
+
+ Gets the role name of this RoleSyntax.
+ @return an instance of GeneralName holding the
+ role name of this RoleSyntax.
+
+
+ Gets the role name as a java.lang.string object.
+ @return the role name of this RoleSyntax represented as a
+ string object.
+
+
+ Gets the role authority as a string[] object.
+ @return the role authority of this RoleSyntax represented as a
+ string[] array.
+
+
+ Implementation of the method ToAsn1Object as
+ required by the superclass ASN1Encodable.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RSAPublicKey ::= Sequence {
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ }
+
+
+
+ Structure for a name or pseudonym.
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.PersonalData
+
+
+
+ Constructor from DERString.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+ @param pseudonym pseudonym value to use.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param pseudonym The pseudonym.
+
+
+ Constructor from a given details.
+
+ @param surname The surname.
+ @param givenName A sequence of directory strings making up the givenName
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @return an Asn1Object
+
+
+ Contains personal data for the otherName field in the subjectAltNames
+ extension.
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.NameOrPseudonym
+ @see org.bouncycastle.asn1.x509.sigi.SigIObjectIdentifiers
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param nameOrPseudonym Name or pseudonym.
+ @param nameDistinguisher Name distinguisher.
+ @param dateOfBirth Date of birth.
+ @param placeOfBirth Place of birth.
+ @param gender Gender.
+ @param postalAddress Postal Address.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Object Identifiers of SigI specifciation (German Signature Law
+ Interoperability specification).
+
+
+ Key purpose IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Certificate policy IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Other Name IDs for German SigI (Signature Interoperability Specification)
+
+
+ To be used for for the generation of directory service certificates.
+
+
+ ID for PersonalData
+
+
+ Certificate is conform to german signature law.
+
+
+ This extension may contain further X.500 attributes of the subject. See also
+ RFC 3039.
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @see org.bouncycastle.asn1.x509.X509Name for AttributeType ObjectIdentifiers.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type SubjectDirectoryAttributes:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @param seq
+ The ASN.1 sequence.
+
+
+ Constructor from an ArrayList of attributes.
+
+ The ArrayList consists of attributes of type {@link Attribute Attribute}
+
+ @param attributes The attributes.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @return a DERObject
+
+
+ @return Returns the attributes.
+
+
+ The SubjectKeyIdentifier object.
+
+ SubjectKeyIdentifier::= OCTET STRING
+
+
+
+ Calculates the keyIdentifier using a SHA1 hash over the BIT STRING
+ from SubjectPublicKeyInfo as defined in RFC3280.
+
+ @param spki the subject public key info.
+
+
+ Return a RFC 3280 type 1 key identifier. As in:
+
+ (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the
+ value of the BIT STRING subjectPublicKey (excluding the tag,
+ length, and number of unused bits).
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ Return a RFC 3280 type 2 key identifier. As in:
+
+ (2) The keyIdentifier is composed of a four bit type field with
+ the value 0100 followed by the least significant 60 bits of the
+ SHA-1 hash of the value of the BIT STRING subjectPublicKey.
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ The object that contains the public key stored in a certficate.
+
+ The GetEncoded() method in the public keys in the JCE produces a DER
+ encoded one of these.
+
+
+ for when the public key is an encoded object - if the bitstring
+ can't be decoded this routine raises an IOException.
+
+ @exception IOException - if the bit string doesn't represent a Der
+ encoded object.
+
+
+ for when the public key is raw bits...
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SubjectPublicKeyInfo ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING }
+
+
+
+ Target structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+
+ The targetCert field is currently not supported and must not be used
+ according to RFC 3281.
+
+
+ Creates an instance of a Target from the given object.
+
+ obj can be a Target or a {@link Asn1TaggedObject}
+
+ @param obj The object.
+ @return A Target instance.
+ @throws ArgumentException if the given object cannot be
+ interpreted as Target.
+
+
+ Constructor from Asn1TaggedObject.
+
+ @param tagObj The tagged object.
+ @throws ArgumentException if the encoding is wrong.
+
+
+ Constructor from given details.
+
+ Exactly one of the parameters must be not null.
+
+ @param type the choice type to apply to the name.
+ @param name the general name.
+ @throws ArgumentException if type is invalid.
+
+
+ @return Returns the targetGroup.
+
+
+ @return Returns the targetName.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+ @return an Asn1Object
+
+
+ Target information extension for attributes certificates according to RFC
+ 3281.
+
+
+ SEQUENCE OF Targets
+
+
+
+
+ Creates an instance of a TargetInformation from the given object.
+
+ obj can be a TargetInformation or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A TargetInformation instance.
+ @throws ArgumentException if the given object cannot be interpreted as TargetInformation.
+
+
+ Constructor from a Asn1Sequence.
+
+ @param seq The Asn1Sequence.
+ @throws ArgumentException if the sequence does not contain
+ correctly encoded Targets elements.
+
+
+ Returns the targets in this target information extension.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Constructs a target information from a single targets element.
+ According to RFC 3281 only one targets element must be produced.
+
+ @param targets A Targets instance.
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given they must be merged in
+ into one targets element.
+
+ @param targets An array with {@link Targets}.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SEQUENCE OF Targets
+
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given in the constructor they are merged into one
+ targets element. If this was produced from a
+ {@link Org.BouncyCastle.Asn1.Asn1Sequence} the encoding is kept.
+
+ @return an Asn1Object
+
+
+ Targets structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.Target
+ @see org.bouncycastle.asn1.x509.TargetInformation
+
+
+ Creates an instance of a Targets from the given object.
+
+ obj can be a Targets or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A Targets instance.
+ @throws ArgumentException if the given object cannot be interpreted as Target.
+
+
+ Constructor from Asn1Sequence.
+
+ @param targets The ASN.1 SEQUENCE.
+ @throws ArgumentException if the contents of the sequence are
+ invalid.
+
+
+ Constructor from given targets.
+
+ The ArrayList is copied.
+
+ @param targets An ArrayList of {@link Target}s.
+ @see Target
+ @throws ArgumentException if the ArrayList contains not only Targets.
+
+
+ Returns the targets in an ArrayList.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Targets ::= SEQUENCE OF Target
+
+
+ @return an Asn1Object
+
+
+ The TbsCertificate object.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+ Note: issuerUniqueID and subjectUniqueID are both deprecated by the IETF. This class
+ will parse them, but you really shouldn't be creating new ones.
+
+
+ PKIX RFC-2459 - TbsCertList object.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+
+ Return our time as DateTime.
+
+ A date time.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+ UserNotice class, used in
+ CertificatePolicies X509 extensions (in policy
+ qualifiers).
+
+ UserNotice ::= Sequence {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+
+
+ @see PolicyQualifierId
+ @see PolicyInformation
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param explicitText a DisplayText value
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param str the explicitText field as a string.
+
+
+ Creates a new UserNotice instance.
+ Useful from reconstructing a UserNotice instance
+ from its encodable/encoded form.
+
+ @param as an ASN1Sequence value obtained from either
+ calling @{link toASN1Object()} for a UserNotice
+ instance or from parsing it from a DER-encoded stream.
+
+
+ Generator for Version 1 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ }
+
+
+
+
+ Generator for Version 2 AttributeCertificateInfo
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+
+
+
+ @param attribute
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ V2Form ::= Sequence {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST NOT
+ -- be present in this profile
+ }
+
+
+
+ Generator for Version 2 TbsCertList structures.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+ Note: This class may be subject to change
+
+
+ Generator for Version 3 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+
+
+ an X509Certificate structure.
+
+ Certificate ::= Sequence {
+ tbsCertificate TbsCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+
+
+ The default converter for X509 DN entries when going from their
+ string value to ASN.1 strings.
+
+
+ Apply default conversion for the given value depending on the oid
+ and the character range of the value.
+
+ @param oid the object identifier for the DN entry
+ @param value the value associated with it
+ @return the ASN.1 equivalent for the string value.
+
+
+ an object for the elements in the X.509 V3 extension block.
+
+
+ Convert the value of the passed in extension to an object.
+ The extension to parse.
+ The object the value string contains.
+ If conversion is not possible.
+
+
+ Subject Directory Attributes
+
+
+ Subject Key Identifier
+
+
+ Key Usage
+
+
+ Private Key Usage Period
+
+
+ Subject Alternative Name
+
+
+ Issuer Alternative Name
+
+
+ Basic Constraints
+
+
+ CRL Number
+
+
+ Reason code
+
+
+ Hold Instruction Code
+
+
+ Invalidity Date
+
+
+ Delta CRL indicator
+
+
+ Issuing Distribution Point
+
+
+ Certificate Issuer
+
+
+ Name Constraints
+
+
+ CRL Distribution Points
+
+
+ Certificate Policies
+
+
+ Policy Mappings
+
+
+ Authority Key Identifier
+
+
+ Policy Constraints
+
+
+ Extended Key Usage
+
+
+ Freshest CRL
+
+
+ Inhibit Any Policy
+
+
+ Authority Info Access
+
+
+ Subject Info Access
+
+
+ Logo Type
+
+
+ BiometricInfo
+
+
+ QCStatements
+
+
+ Audit identity extension in attribute certificates.
+
+
+ NoRevAvail extension in attribute certificates.
+
+
+ TargetInformation extension in attribute certificates.
+
+
+ Expired Certificates on CRL extension
+
+
+ Constructor from Asn1Sequence.
+
+ the extensions are a list of constructed sequences, either with (Oid, OctetString) or (Oid, Boolean, OctetString)
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ return an Enumeration of the extension field's object ids.
+
+
+ return the extension represented by the object identifier
+ passed in.
+
+ @return the extension if it's present, null otherwise.
+
+
+
+ Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+ Extension ::= SEQUENCE {
+ extnId EXTENSION.&id ({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+
+
+ Generator for X.509 extensions
+
+
+ Reset the generator
+
+
+
+ Add an extension with the given oid and the passed in value to be included
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The ASN.1 object to be included in the extension.
+
+
+
+ Add an extension with the given oid and the passed in byte array to be wrapped
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The byte array to be wrapped.
+
+
+ Return true if there are no extension present in this generator.
+ True if empty, false otherwise
+
+
+ Generate an X509Extensions object based on the current state of the generator.
+ An X509Extensions object
+
+
+
+ RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+ RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY }
+
+
+
+ country code - StringType(SIZE(2))
+
+
+ organization - StringType(SIZE(1..64))
+
+
+ organizational unit name - StringType(SIZE(1..64))
+
+
+ Title
+
+
+ common name - StringType(SIZE(1..64))
+
+
+ street - StringType(SIZE(1..64))
+
+
+ device serial number name - StringType(SIZE(1..64))
+
+
+ locality name - StringType(SIZE(1..64))
+
+
+ state, or province name - StringType(SIZE(1..64))
+
+
+ Naming attributes of type X520name
+
+
+ businessCategory - DirectoryString(SIZE(1..128)
+
+
+ postalCode - DirectoryString(SIZE(1..40)
+
+
+ dnQualifier - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 Pseudonym - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Z
+
+
+ RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128)
+
+
+ RFC 3039 DateOfBirth - PrintableString (SIZE(1)) -- "M", "F", "m" or "f"
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF
+ DirectoryString(SIZE(1..30))
+
+
+ RFC 2256 dmdName
+
+
+ id-at-telephoneNumber
+
+
+ id-at-organizationIdentifier
+
+
+ id-at-name
+
+
+ Email address (RSA PKCS#9 extension) - IA5String.
+ Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.
+
+
+ more from PKCS#9
+
+
+ email address in Verisign certificates
+
+
+ LDAP User id.
+
+
+ determines whether or not strings should be processed and printed
+ from back to front.
+
+
+ default look up table translating OID values into their common symbols following
+ the convention in RFC 2253 with a few extras
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 2253
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 1779
+
+
+
+ look up table translating common symbols into their OIDS.
+
+
+ Return a X509Name based on the passed in tagged object.
+
+ @param obj tag object holding name.
+ @param explicitly true if explicitly tagged false otherwise.
+ @return the X509Name
+
+
+ Constructor from Asn1Sequence
+
+ the principal will be a list of constructed sets, each containing an (OID, string) pair.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. If reverse
+ is true, create the encoded version of the sequence starting from the
+ last element in the string.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter. If reverse is true the ASN.1 sequence representing the DN will
+ be built by starting at the end of the string, rather than the start.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically.
+
+ If reverse is true, create the encoded version of the sequence
+ starting from the last element in the string.
+ @param reverse true if we should start scanning from the end (RFC 2553).
+ @param lookUp table of names and their oids.
+ @param dirName the X.500 string to be parsed.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically. The passed in converter is used to convert the
+ string values to the right of each equals sign to their ASN.1 counterparts.
+
+ @param reverse true if we should start scanning from the end, false otherwise.
+ @param lookUp table of names and oids.
+ @param dirName the string dirName
+ @param converter the converter to convert string values into their ASN.1 equivalents
+
+
+ return an IList of the oids in the name, in the order they were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found, with the DN label corresponding to passed in oid.
+
+
+ The X509Name object to test equivalency against.
+ If true, the order of elements must be the same,
+ as well as the values associated with each element.
+
+
+ test for equivalence - note: case is ignored.
+
+
+ convert the structure to a string - if reverse is true the
+ oids and values are listed out starting with the last element
+ in the sequence (ala RFC 2253), otherwise the string will begin
+ with the first element of the structure. If no string definition
+ for the oid is found in oidSymbols the string value of the oid is
+ added. Two standard symbol tables are provided DefaultSymbols, and
+ RFC2253Symbols as part of this class.
+
+ @param reverse if true start at the end of the sequence and work back.
+ @param oidSymbols look up table strings for oids.
+
+
+ * It turns out that the number of standard ways the fields in a DN should be
+ * encoded into their ASN.1 counterparts is rapidly approaching the
+ * number of machines on the internet. By default the X509Name class
+ * will produce UTF8Strings in line with the current recommendations (RFC 3280).
+ *
+ * An example of an encoder look like below:
+ *
+ * public class X509DirEntryConverter
+ * : X509NameEntryConverter
+ * {
+ * public Asn1Object GetConvertedValue(
+ * DerObjectIdentifier oid,
+ * string value)
+ * {
+ * if (str.Length() != 0 && str.charAt(0) == '#')
+ * {
+ * return ConvertHexEncoded(str, 1);
+ * }
+ * if (oid.Equals(EmailAddress))
+ * {
+ * return new DerIA5String(str);
+ * }
+ * else if (CanBePrintable(str))
+ * {
+ * return new DerPrintableString(str);
+ * }
+ * else if (CanBeUTF8(str))
+ * {
+ * return new DerUtf8String(str);
+ * }
+ * else
+ * {
+ * return new DerBmpString(str);
+ * }
+ * }
+ * }
+ *
+ *
+
+
+ Convert an inline encoded hex string rendition of an ASN.1
+ object back into its corresponding ASN.1 object.
+
+ @param str the hex encoded object
+ @param off the index at which the encoding starts
+ @return the decoded object
+
+
+ return true if the passed in string can be represented without
+ loss as a PrintableString, false otherwise.
+
+
+ Convert the passed in string value into the appropriate ASN.1
+ encoded object.
+
+ @param oid the oid associated with the value in the DN.
+ @param value the value of the particular DN component.
+ @return the ASN.1 equivalent for the value.
+
+
+ class for breaking up an X500 Name into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ A general class that reads all X9.62 style EC curve tables.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve. The routine returns null if the curve is not present.
+
+ @param name the name of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve.
+
+ @param oid the object id of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return an enumeration of the names of the available curves.
+
+ @return an enumeration of the names of the available curves.
+
+
+ ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeySpecificInfo ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ counter OCTET STRING SIZE (4..4)
+ }
+
+
+
+ ANS.1 def for Diffie-Hellman key exchange OtherInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherInfo ::= Sequence {
+ keyInfo KeySpecificInfo,
+ partyAInfo [0] OCTET STRING OPTIONAL,
+ suppPubInfo [2] OCTET STRING
+ }
+
+
+
+ table of the current named curves defined in X.962 EC-DSA.
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Parameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve CURVES.&id({CurveNames}),
+ implicitlyCA Null
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve Curve structure. See
+ X9.62, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Curve ::= Sequence {
+ a FieldElement,
+ b FieldElement,
+ seed BIT STRING OPTIONAL
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve ECParameters structure. See
+ X9.62, for further details.
+
+
+ Return the ASN.1 entry representing the Curve.
+
+ @return the X9Curve for the curve in these parameters.
+
+
+ Return the ASN.1 entry representing the FieldID.
+
+ @return the X9FieldID for the FieldID in these parameters.
+
+
+ Return the ASN.1 entry representing the base point G.
+
+ @return the X9ECPoint for the base point in these parameters.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECParameters ::= Sequence {
+ version Integer { ecpVer1(1) } (ecpVer1),
+ fieldID FieldID {{FieldTypes}},
+ curve X9Curve,
+ base X9ECPoint,
+ order Integer,
+ cofactor Integer OPTIONAL
+ }
+
+
+
+ class for describing an ECPoint as a Der object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECPoint ::= OCTET STRING
+
+
+ Octet string produced using ECPoint.GetEncoded().
+
+
+ Class for processing an ECFieldElement as a DER object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ FieldElement ::= OCTET STRING
+
+
+
+ - if q is an odd prime then the field element is
+ processed as an Integer and converted to an octet string
+ according to x 9.62 4.3.1.
+ - if q is 2m then the bit string
+ contained in the field element is converted into an octet
+ string with the same ordering padded at the front if necessary.
+
+
+
+
+
+ ASN.1 def for Elliptic-Curve Field ID structure. See
+ X9.62, for further details.
+
+
+ Constructor for elliptic curves over prime fields
+ F2.
+ @param primeP The prime p defining the prime field.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)..
+
+
+ Produce a Der encoding of the following structure.
+
+ FieldID ::= Sequence {
+ fieldType FIELD-ID.&id({IOSet}),
+ parameters FIELD-ID.&Type({IOSet}{@fieldType})
+ }
+
+
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) x9-57 (10040) x9cm(4) 3 }
+
+
+ X9.63
+
+
+ X9.42
+
+
+ reader for Base64 armored objects - read the headers and then start returning
+ bytes when the data is reached. An IOException is thrown if the CRC check
+ fails.
+
+
+ decode the base 64 encoded input data.
+
+ @return the offset the data starts in out.
+
+
+ Create a stream for reading a PGP armoured message, parsing up to a header
+ and then reading the data that follows.
+
+ @param input
+
+
+ Create an armoured input stream which will assume the data starts
+ straight away, or parse for headers first depending on the value of
+ hasHeaders.
+
+ @param input
+ @param hasHeaders true if headers are to be looked for, false otherwise.
+
+
+ @return true if we are inside the clear text section of a PGP
+ signed message.
+
+
+ @return true if the stream is actually at end of file.
+
+
+ Return the armor header line (if there is one)
+ @return the armor header line, null if none present.
+
+
+ Return the armor headers (the lines after the armor header line),
+ @return an array of armor headers, null if there aren't any.
+
+
+ Basic output stream.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+
+ Set an additional header entry. A null value will clear the entry for name.
+
+ @param name the name of the header entry.
+ @param v the value of the header entry.
+
+
+ Reset the headers to only contain a Version string (if one is present).
+
+
+ Start a clear text signed message.
+ @param hashAlgorithm
+
+
+ Note: Close() does not close the underlying stream. So it is possible to write
+ multiple objects using armoring to a single stream.
+
+
+ Basic type for a image attribute packet.
+
+
+ Reader for PGP objects.
+
+
+ Returns the next packet tag in the stream.
+
+
+
+ A stream that overlays our input stream, allowing the user to only read a segment of it.
+ NB: dataLength will be negative if the segment length is in the upper range above 2**31.
+
+
+
+ Base class for a PGP object.
+
+
+ Basic output stream.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+
+
+ Create a stream representing an old style partial object.
+ Output stream to write to.
+ The packet tag for the object.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+ If true, the header is written out in old format.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Buffer to use for collecting chunks.
+
+
+ Flush the underlying stream.
+
+
+ Finish writing out the current packet without closing the underlying stream.
+
+
+ Generic compressed data object.
+
+
+ The algorithm tag value.
+
+
+ Basic tags for compression algorithms.
+
+
+ Basic type for a PGP packet.
+
+
+ Base class for a DSA public key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for a DSA secret key.
+
+
+ @param in
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ @return x
+
+
+ Base class for an ECDH Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an ECDSA Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an EC Public Key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an EC Secret Key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal public key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal secret key.
+
+
+ @param in
+
+
+ @param x
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Basic packet for an experimental packet.
+
+
+ Basic tags for hash algorithms.
+
+
+ Base interface for a PGP key.
+
+
+
+ The base format for this key - in the case of the symmetric keys it will generally
+ be raw indicating that the key is just a straight byte representation, for an asymmetric
+ key the format will be PGP, indicating the key is a string of MPIs encoded in PGP format.
+
+ "RAW" or "PGP".
+
+
+ Note: you can only read from this once...
+
+
+ Generic literal data packet.
+
+
+ The format tag value.
+
+
+ The modification time of the file in milli-seconds (since Jan 1, 1970 UTC)
+
+
+ Basic type for a marker packet.
+
+
+ Basic packet for a modification detection code packet.
+
+
+ A multiple precision integer
+
+
+ Generic signature object
+
+
+ The encryption algorithm tag.
+
+
+ The hash algorithm tag.
+
+
+ Basic PGP packet tag types.
+
+
+ Public Key Algorithm tag numbers.
+
+
+ Basic packet for a PGP public key.
+
+
+ Basic packet for a PGP public key.
+
+
+ Construct a version 4 public key packet.
+
+
+ Basic packet for a PGP public subkey
+
+
+ Construct a version 4 public subkey packet.
+
+
+ Base class for an RSA public key.
+
+
+ Construct an RSA public key from the passed in stream.
+
+
+ The modulus.
+ The public exponent.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an RSA secret (or priate) key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ The string to key specifier class.
+
+
+ The hash algorithm.
+
+
+ The IV for the key generation algorithm.
+
+
+ The iteration count
+
+
+ The protection mode - only if GnuDummyS2K
+
+
+ Basic packet for a PGP secret key.
+
+
+ Basic packet for a PGP secret key.
+
+
+ Generic signature packet.
+
+
+ Generate a version 4 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param hashedData
+ @param unhashedData
+ @param fingerprint
+ @param signature
+
+
+ Generate a version 2/3 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param fingerprint
+ @param signature
+
+
+ return the keyId
+ @return the keyId that created the signature.
+
+
+ return the signature trailer that must be included with the data
+ to reconstruct the signature
+
+ @return byte[]
+
+
+ * return the signature as a set of integers - note this is normalised to be the
+ * ASN.1 encoding of what appears in the signature packet.
+
+
+ Return the byte encoding of the signature section.
+ @return uninterpreted signature bytes.
+
+
+ Return the creation time in milliseconds since 1 Jan., 1970 UTC.
+
+
+ Basic type for a PGP Signature sub-packet.
+
+
+ Return the generic data making up the packet.
+
+
+ reader for signature sub-packets
+
+
+ Basic PGP signature sub-packet tag types.
+
+
+ Packet embedded signature
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ Identifier for the modification detection feature
+
+
+ Returns if modification detection is supported.
+
+
+ Returns if a particular feature is supported.
+
+
+ Sets support for a particular feature.
+
+
+ packet giving signature creation time.
+
+
+ packet giving time after creation at which the key expires.
+
+
+ Return the number of seconds after creation time a key is valid for.
+
+ @return second count for key validity.
+
+
+ Packet holding the key flag values.
+
+
+
+ Return the flag values contained in the first 4 octets (note: at the moment
+ the standard only uses the first one).
+
+
+
+ Class provided a NotationData object according to
+ RFC2440, Chapter 5.2.3.15. Notation Data
+
+
+ packet giving signature creation time.
+
+
+ packet giving whether or not the signature is signed using the primary user ID for the key.
+
+
+ packet giving whether or not is revocable.
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ return time in seconds before signature expires after creation time.
+
+
+ packet giving the User ID of the signer.
+
+
+ packet giving trust.
+
+
+
+ Represents revocation key OpenPGP signature sub packet.
+
+
+
+
+ Represents revocation reason OpenPGP signature sub packet.
+
+
+
+ Basic type for a symmetric key encrypted packet.
+
+
+ Basic tags for symmetric key algorithms
+
+
+ Basic type for a symmetric encrypted session key packet
+
+
+ @return int
+
+
+ @return S2k
+
+
+ @return byte[]
+
+
+ @return int
+
+
+ Basic type for a trust packet.
+
+
+ Basic type for a user attribute packet.
+
+
+ Basic type for a user attribute sub-packet.
+
+
+ return the generic data making up the packet.
+
+
+ reader for user attribute sub-packets
+
+
+ Basic PGP user attribute sub-packet tag types.
+
+
+ Basic type for a user ID packet.
+
+
+ Compressed data objects
+
+
+ The algorithm used for compression
+
+
+ Get the raw input stream contained in the object.
+
+
+ Return an uncompressed input stream which allows reading of the compressed data.
+
+
+ Class for producing compressed data packets.
+
+
+
+
+ Return an output stream which will save the data being written to
+ the compressed object.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Stream to be used for output.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+
+ Return an output stream which will compress the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+ Note: using this may break compatibility with RFC 1991 compliant tools.
+ Only recent OpenPGP implementations are capable of accepting these streams.
+
+
+ Stream to be used for output.
+ The buffer to use.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+ Close the compressed object.summary>
+
+
+
+ Thrown if the IV at the start of a data stream indicates the wrong key is being used.
+
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return true if the message is integrity protected.
+ True, if there is a modification detection code namespace associated
+ with this stream.
+
+
+ Note: This can only be called after the message has been read.
+ True, if the message verifies, false otherwise
+
+
+ Generator for encrypted objects.
+
+
+ Existing SecureRandom constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+
+
+ Creates a cipher stream which will have an integrity packet associated with it.
+
+
+ Base constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+ PGP 2.6.x compatibility required.
+
+
+
+ Add a PBE encryption method to the encrypted object using the default algorithm (S2K_SHA1).
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Add a public key encrypted session key to the encrypted object.
+
+
+
+
+ If buffer is non null stream assumed to be partial, otherwise the length will be used
+ to output a fixed length packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+
+
+
+
+ Close off the encrypted object - this is equivalent to calling Close() on the stream
+ returned by the Open() method.
+
+
+ Note: This does not close the underlying output stream, only the stream on top of
+ it created by the Open() method.
+
+
+
+
+ A holder for a list of PGP encryption method packets.
+
+
+ Generic exception class for PGP encoding/decoding problems.
+
+
+ Key flag values for the KeyFlags subpacket.
+
+
+
+ General class to handle JCA key pairs and convert them into OpenPGP ones.
+
+ A word for the unwary, the KeyId for an OpenPGP public key is calculated from
+ a hash that includes the time of creation, if you pass a different date to the
+ constructor below with the same public private key pair the KeyIs will not be the
+ same as for previous generations of the key, so ideally you only want to do
+ this once.
+
+
+
+
+ Create a key pair from a PgpPrivateKey and a PgpPublicKey.
+ The public key.
+ The private key.
+
+
+ The keyId associated with this key pair.
+
+
+
+ Generator for a PGP master and subkey ring.
+ This class will generate both the secret and public key rings
+
+
+
+
+ Create a new key ring generator using old style checksumming. It is recommended to use
+ SHA1 checksumming where possible.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+ The key pair.
+ The hash algorithm.
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ exception adding subkey:
+
+
+
+ Return the secret key ring.
+
+
+ Return the public key ring that corresponds to the secret key ring.
+
+
+
+ Thrown if the key checksum is invalid.
+
+
+
+ Class for processing literal data objects.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+ The format of the data stream - Binary or Text
+
+
+ The file name that's associated with the data stream.
+
+
+ Return the file name as an unintrepreted byte array.
+
+
+ The modification time for the file.
+
+
+ The raw input stream for the data stream.
+
+
+ The input stream representing the data stream.
+
+
+ Class for producing literal data packets.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+
+ Generates literal data objects in the old format.
+ This is important if you need compatibility with PGP 2.6.x.
+
+ If true, uses old format.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The length of the data we will write.
+ The time of last modification we want stored.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet,
+ as an indefinite length stream. The stream is written out as a series of partial
+ packets with a chunk size determined by the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The time of last modification we want stored.
+ The buffer to use for collecting data to put into chunks.
+
+
+
+
+ Open a literal data packet for the passed in FileInfo object, returning
+ an output stream for saving the file contents.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The FileInfo object containg the packet details.
+
+
+
+ Close the literal data packet - this is equivalent to calling Close()
+ on the stream returned by the Open() method.
+
+
+
+
+ A PGP marker packet - in general these should be ignored other than where
+ the idea is to preserve the original input stream.
+
+
+
+
+ General class for reading a PGP object stream.
+
+ Note: if this class finds a PgpPublicKey or a PgpSecretKey it
+ will create a PgpPublicKeyRing, or a PgpSecretKeyRing for each
+ key found. If all you are trying to do is read a key ring file use
+ either PgpPublicKeyRingBundle or PgpSecretKeyRingBundle.
+
+
+
+ Return the next object in the stream, or null if the end is reached.
+ On a parse error
+
+
+
+ Return all available objects in a list.
+
+ An IList containing all objects from this factory, in order.
+
+
+ A one pass signature object.
+
+
+ Initialise the signature object for verification.
+
+
+ Verify the calculated signature against the passed in PgpSignature.
+
+
+ Holder for a list of PgpOnePassSignature objects.
+
+
+ Padding functions.
+
+
+ A password based encryption object.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ General class to contain a private key for use with other OpenPGP objects.
+
+
+
+ Create a PgpPrivateKey from a keyID, the associated public data packet, and a regular private key.
+
+ ID of the corresponding public key.
+ the public key data packet to be associated with this private key.
+ the private key data packet to be associated with this private key.
+
+
+ The keyId associated with the contained private key.
+
+
+ The public key packet associated with this private key, if available.
+
+
+ The contained private key.
+
+
+ General class to handle a PGP public key object.
+
+
+
+ Create a PgpPublicKey from the passed in lightweight one.
+
+
+ Note: the time passed in affects the value of the key's keyId, so you probably only want
+ to do this once for a lightweight key, or make sure you keep track of the time you used.
+
+ Asymmetric algorithm type representing the public key.
+ Actual public key to associate.
+ Date of creation.
+ If pubKey is not public.
+ On key creation problem.
+
+
+ Constructor for a sub-key.
+
+
+ Copy constructor.
+ The public key to copy.
+
+
+ The version of this key.
+
+
+ The creation time of this key.
+
+
+ The number of valid days from creation time - zero means no expiry.
+ WARNING: This method will return 1 for keys with version > 3 that expire in less than 1 day
+
+
+ Return the trust data associated with the public key, if present.
+ A byte array with trust data, null otherwise.
+
+
+ The number of valid seconds from creation time - zero means no expiry.
+
+
+ The keyId associated with the public key.
+
+
+ The fingerprint of the key
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for encryption.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for encryption.
+
+
+
+ True, if this is a master key.
+
+
+ The algorithm code associated with the public key.
+
+
+ The strength of the key in bits.
+
+
+ The public key contained in the object.
+ A lightweight public key.
+ If the key algorithm is not recognised.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of PgpUserAttributeSubpacketVector objects.
+
+
+ Allows enumeration of any signatures associated with the passed in id.
+ The ID to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures associated with the passed in user attributes.
+ The vector of user attributes to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures of the passed in type that are on this key.
+ The type of the signature to be returned.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of all signatures/certifications associated with this key.
+ An IEnumerable with all signatures/certifications.
+
+
+ Return all signatures/certifications directly associated with this key (ie, not to a user id).
+
+ @return an iterator (possibly empty) with all signatures/certifications.
+
+
+ Check whether this (sub)key has a revocation signature on it.
+ True, if this (sub)key has been revoked.
+
+
+ Add a certification for an id to the given public key.
+ The key the certification is to be added to.
+ The ID the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+ Add a certification for the given UserAttributeSubpackets to the given public key.
+ The key the certification is to be added to.
+ The attributes the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+
+ Remove any certifications associated with a user attribute subpacket on a key.
+
+ The key the certifications are to be removed from.
+ The attributes to be removed.
+
+ The re-certified key, or null if the user attribute subpacket was not found on the key.
+
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from.
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given user attributes on a key.
+ The key the certifications are to be removed from.
+ The user attributes that the certfication is to be removed from.
+ The certification to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Add a revocation or some other key certification to a key.
+ The key the revocation is to be added to.
+ The key signature to be added.
+ The new changed public key object.
+
+
+ Remove a certification from the key.
+ The key the certifications are to be removed from.
+ The certfication to be removed.
+ The modified key, null if the certification was not found.
+
+
+ A public key encrypted data object.
+
+
+ The key ID for the key used to encrypt the data.
+
+
+
+ Return the algorithm code for the symmetric algorithm used to encrypt the data.
+
+
+
+ Return the decrypted data stream for the packet.
+
+
+
+ Class to hold a single master public key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpPublicKeyRingBundle class.
+
+
+
+
+ Return the first public key in the ring.
+
+
+ Return the public key referred to by the passed in key ID if it is present.
+
+
+ Allows enumeration of all the public keys.
+ An IEnumerable of PgpPublicKey objects.
+
+
+
+ Returns a new key ring with the public key passed in either added or
+ replacing an existing one.
+
+ The public key ring to be modified.
+ The public key to be inserted.
+ A new PgpPublicKeyRing
+
+
+ Returns a new key ring with the public key passed in removed from the key ring.
+ The public key ring to be modified.
+ The public key to be removed.
+ A new PgpPublicKeyRing, or null if pubKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire public key file in one hit this is the class for you.
+
+
+
+ Build a PgpPublicKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpPublicKeyRing.
+
+
+ Return the number of key rings in this collection.
+
+
+ Allow enumeration of the public key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP public key associated with the given key id.
+ The ID of the public key to return.
+
+
+ Return the public key ring which contains the key referred to by keyId
+ key ID to match against
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in public key ring.
+
+ The PgpPublicKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpPublicKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in public key ring removed.
+
+ The PgpPublicKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpPublicKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ General class to handle a PGP secret key object.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for signing.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for use with signing.
+
+
+
+ True, if this is a master key.
+
+
+ Detect if the Secret Key's Private Key is empty or not
+
+
+ The algorithm the key is encrypted with.
+
+
+ The key ID of the public key associated with this key.
+
+
+ Return the S2K usage associated with this key.
+
+
+ Return the S2K used to process this key.
+
+
+ The public key associated with this key.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of string objects.
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+ Replace the passed the public key on the passed in secret key.
+ Secret key to change.
+ New public key.
+ A new secret key.
+ If KeyId's do not match.
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+
+
+ Class to hold a single master secret key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpSecretKeyRingBundle class.
+
+
+
+
+ Return the public key for the master key.
+
+
+ Return the master private key.
+
+
+ Allows enumeration of the secret keys.
+ An IEnumerable of PgpSecretKey objects.
+
+
+
+ Return an iterator of the public keys in the secret key ring that
+ have no matching private key. At the moment only personal certificate data
+ appears in this fashion.
+
+ An IEnumerable of unattached, or extra, public keys.
+
+
+
+ Replace the public key set on the secret ring with the corresponding key off the public ring.
+
+ Secret ring to be changed.
+ Public ring containing the new public key set.
+
+
+
+ Return a copy of the passed in secret key ring, with the master key and sub keys encrypted
+ using a new password and the passed in algorithm.
+
+ The PgpSecretKeyRing to be copied.
+ The current password for key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Returns a new key ring with the secret key passed in either added or
+ replacing an existing one with the same key ID.
+
+ The secret key ring to be modified.
+ The secret key to be inserted.
+ A new PgpSecretKeyRing
+
+
+ Returns a new key ring with the secret key passed in removed from the key ring.
+ The secret key ring to be modified.
+ The secret key to be removed.
+ A new PgpSecretKeyRing, or null if secKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire secret key file in one hit this is the class for you.
+
+
+
+ Build a PgpSecretKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpSecretKeyRing.
+
+
+ Return the number of rings in this collection.
+
+
+ Allow enumeration of the secret key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP secret key associated with the given key id.
+ The ID of the secret key to return.
+
+
+ Return the secret key ring which contains the key referred to by keyId
+ The ID of the secret key
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in secret key ring.
+
+ The PgpSecretKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpSecretKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in secret key ring removed.
+
+ The PgpSecretKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpSecretKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ A PGP signature object.
+
+
+ The OpenPGP version number for this signature.
+
+
+ The key algorithm associated with this signature.
+
+
+ The hash algorithm associated with this signature.
+
+
+ Return true if this signature represents a certification.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in user attributes.
+
+ User attributes the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in ID.
+
+ ID the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+ Verify a certification for the passed in key against the passed in master key.
+ The key we are verifying against.
+ The key we are verifying.
+ True, if the certification is valid, false otherwise.
+
+
+ Verify a key certification, such as revocation, for the passed in key.
+ The key we are checking.
+ True, if the certification is valid, false otherwise.
+
+
+ The ID of the key that created the signature.
+
+
+ The creation time of this signature.
+
+
+
+ Return true if the signature has either hashed or unhashed subpackets.
+
+
+
+
+ Return true if the passed in signature type represents a certification, false if the signature type is not.
+
+
+ true if signatureType is a certification, false otherwise.
+
+
+ Generator for PGP signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a signature object containing the current signature state.
+
+
+ Generate a certification for the passed in ID and key.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in userAttributes.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in key against the passed in master key.
+ The key we are certifying against.
+ The key we are certifying.
+ The certification.
+
+
+ Generate a certification, such as a revocation, for the passed in key.
+ The key we are certifying.
+ The certification.
+
+
+ A list of PGP signatures - normally in the signature block after literal data.
+
+
+ Generator for signature subpackets.
+
+
+
+ Add a TrustSignature packet to the signature. The values for depth and trust are largely
+ installation dependent but there are some guidelines in RFC 4880 - 5.2.3.13.
+
+ true if the packet is critical.
+ depth level.
+ trust amount.
+
+
+
+ Set the number of seconds a key is valid for after the time of its creation.
+ A value of zero means the key never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the key is valid, or zero if no expiry.
+
+
+
+ Set the number of seconds a signature is valid for after the time of its creation.
+ A value of zero means the signature never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the signature is valid, or zero if no expiry.
+
+
+
+ Set the creation time for the signature.
+
+ Note: this overrides the generation of a creation time when the signature
+ is generated.
+
+
+
+
+ Sets revocation reason sub packet
+
+
+
+
+ Sets revocation key sub packet
+
+
+
+
+ Sets issuer key sub packet
+
+
+
+ Container for a list of signature subpackets.
+
+
+ Return true if a particular subpacket type exists.
+
+ @param type type to look for.
+ @return true if present, false otherwise.
+
+
+ Return all signature subpackets of the passed in type.
+ @param type subpacket type code
+ @return an array of zero or more matching subpackets.
+
+
+
+ Return the number of seconds a signature is valid for after its creation date.
+ A value of zero means the signature never expires.
+
+ Seconds a signature is valid for.
+
+
+
+ Return the number of seconds a key is valid for after its creation date.
+ A value of zero means the key never expires.
+
+ Seconds a signature is valid for.
+
+
+ Return the number of packets this vector contains.
+
+
+ Container for a list of user attribute subpackets.
+
+
+ Basic utility class.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Write out the passed in file as a literal data packet.
+
+
+ Write out the passed in file as a literal data packet in partial packet format.
+
+
+
+ Return either an ArmoredInputStream or a BcpgInputStream based on whether
+ the initial characters of the stream are binary PGP encodings or not.
+
+
+
+ Generator for old style PGP V3 Signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a V3 signature object containing the current signature state.
+
+
+ Utility functions for looking a S-expression keys. This class will move when it finds a better home!
+
+ Format documented here:
+ http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=agent/keyformat.txt;h=42c4b1f06faf1bbe71ffadc2fee0fad6bec91a97;hb=refs/heads/master
+
+
+
+
+ The 'Signature' parameter is only available when generating unsigned attributes.
+
+
+
+ containing class for an CMS Authenticated Data object
+
+
+ return the object identifier for the content MAC algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the digested attributes indexed by
+ the OID of the attribute.
+
+
+ return a table of the undigested attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ General class for generating a CMS authenticated-data message.
+
+ A simple example of usage.
+
+
+ CMSAuthenticatedDataGenerator fact = new CMSAuthenticatedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSAuthenticatedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+
+
+ generate an authenticated object that contains an CMS Authenticated Data object
+
+
+ Parsing class for an CMS Authenticated Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CMSAuthenticatedDataParser ad = new CMSAuthenticatedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ad.getRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey, "BC");
+
+ processDataStream(recData.getContentStream());
+
+ if (!Arrays.equals(ad.getMac(), recipient.getMac())
+ {
+ System.err.println("Data corrupted!!!!");
+ }
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSAuthenticatedDataParser ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the mac algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ General class for generating a CMS authenticated-data message stream.
+
+ A simple example of usage.
+
+ CMSAuthenticatedDataStreamGenerator edGen = new CMSAuthenticatedDataStreamGenerator();
+
+ edGen.addKeyTransRecipient(cert);
+
+ ByteArrayOutputStream bOut = new ByteArrayOutputStream();
+
+ OutputStream out = edGen.open(
+ bOut, CMSAuthenticatedDataGenerator.AES128_CBC, "BC");*
+ out.write(data);
+
+ out.close();
+
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+ @throws java.io.IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+
+ @param rand instance of SecureRandom to use
+
+
+ containing class for an CMS AuthEnveloped Data object
+
+
+ containing class for an CMS Compressed Data object
+
+
+ Return the uncompressed content.
+
+ @return the uncompressed content
+ @throws CmsException if there is an exception uncompressing the data.
+
+
+ Return the uncompressed content, throwing an exception if the data size
+ is greater than the passed in limit. If the content is exceeded getCause()
+ on the CMSException will contain a StreamOverflowException
+
+ @param limit maximum number of bytes to read
+ @return the content read
+ @throws CMSException if there is an exception uncompressing the data.
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ * General class for generating a compressed CMS message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * CMSCompressedDataGenerator fact = new CMSCompressedDataGenerator();
+ * CMSCompressedData data = fact.Generate(content, algorithm);
+ *
+ *
+
+
+ Generate an object that contains an CMS Compressed Data
+
+
+ Class for reading a CMS Compressed Data stream.
+
+ CMSCompressedDataParser cp = new CMSCompressedDataParser(inputStream);
+
+ process(cp.GetContent().GetContentStream());
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSCompressedDataParser ep = new CMSCompressedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ General class for generating a compressed CMS message stream.
+
+ A simple example of usage.
+
+
+ CMSCompressedDataStreamGenerator gen = new CMSCompressedDataStreamGenerator();
+
+ Stream cOut = gen.Open(outputStream, CMSCompressedDataStreamGenerator.ZLIB);
+
+ cOut.Write(data);
+
+ cOut.Close();
+
+
+
+ base constructor
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Close the underlying data stream.
+ @throws IOException if the close fails.
+
+
+ containing class for an CMS Enveloped Data object
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CmsEnvelopedDataGenerator fact = new CmsEnvelopedDataGenerator();
+
+ fact.AddKeyTransRecipient(cert);
+
+ CmsEnvelopedData data = fact.Generate(content, algorithm);
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+
+ Generate an enveloped object that contains a CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Parsing class for an CMS Enveloped Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ep.GetRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey);
+
+ processDataStream(recData.getContentStream());
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message stream.
+
+ A simple example of usage.
+
+ CmsEnvelopedDataStreamGenerator edGen = new CmsEnvelopedDataStreamGenerator();
+
+ edGen.AddKeyTransRecipient(cert);
+
+ MemoryStream bOut = new MemoryStream();
+
+ Stream out = edGen.Open(
+ bOut, CMSEnvelopedDataGenerator.AES128_CBC);*
+ out.Write(data);
+
+ out.Close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data.
+ Length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CMSEnvelopedDataGenerator fact = new CMSEnvelopedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSEnvelopedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ add a recipient.
+
+ @param cert recipient's public key certificate
+ @exception ArgumentException if there is a problem with the certificate
+
+
+ add a recipient
+
+ @param key the public key used by the recipient
+ @param subKeyId the identifier for the recipient's public key
+ @exception ArgumentException if there is a problem with the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ Add a key agreement based recipient.
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCert recipient's public key certificate.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+ Add multiple key agreement based recipients (sharing a single KeyAgreeRecipientInfo structure).
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCerts recipients' public key certificates.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+
+ Generic routine to copy out the data we want processed.
+
+
+ This routine may be called multiple times.
+
+
+
+ a holding class for a byte array of data to be processed.
+
+
+ A clone of the byte array
+
+
+ a holding class for a file of data to be processed.
+
+
+ The file handle
+
+
+ general class for handling a pkcs7-signature message.
+
+ A simple example of usage - note, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer...
+
+
+ IX509Store certs = s.GetCertificates();
+ SignerInformationStore signers = s.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ if (signer.Verify(cert.GetPublicKey()))
+ {
+ verified++;
+ }
+ }
+
+
+
+ Content with detached signature, digests precomputed
+
+ @param hashes a map of precomputed digests for content indexed by name of hash.
+ @param sigBlock the signature object.
+
+
+ base constructor - content with detached signature.
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ base constructor - with encapsulated content
+
+
+ Return the version number for this object.
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Replace the signerinformation store associated with this
+ CmsSignedData object with the new one passed in. You would
+ probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ @param signedData the signed data object to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @return a new signed data object.
+
+
+ Replace the certificate and CRL information associated with this
+ CmsSignedData object with the new one passed in.
+
+ @param signedData the signed data object to be used as a base.
+ @param x509Certs the new certificates to be used.
+ @param x509Crls the new CRLs to be used.
+ @return a new signed data object.
+ @exception CmsException if there is an error processing the stores
+
+
+ * general class for generating a pkcs7-signature message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * IX509Store certs...
+ * IX509Store crls...
+ * CmsSignedDataGenerator gen = new CmsSignedDataGenerator();
+ *
+ * gen.AddSigner(privKey, cert, CmsSignedGenerator.DigestSha1);
+ * gen.AddCertificates(certs);
+ * gen.AddCrls(crls);
+ *
+ * CmsSignedData data = gen.Generate(content);
+ *
+ *
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ * add a signer - no attributes other than the default ones will be
+ * provided here.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param subjectKeyID subjectKeyID of corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param subjectKeyID subjectKeyID of corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a set of one or more SignerInformation objects representing counter signatures on
+ the passed in SignerInformation object.
+
+ @param signer the signer to be countersigned
+ @param sigProvider the provider to be used for counter signing.
+ @return a store containing the signers.
+
+
+ Parsing class for an CMS Signed Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one signer can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ A simple example of usage for an encapsulated signature.
+
+
+ Two notes: first, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer, and, second, because we are in a streaming
+ mode the order of the operations is important.
+
+
+ CmsSignedDataParser sp = new CmsSignedDataParser(encapSigData);
+
+ sp.GetSignedContent().Drain();
+
+ IX509Store certs = sp.GetCertificates();
+ SignerInformationStore signers = sp.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ Console.WriteLine("verify returns: " + signer.Verify(cert));
+ }
+
+ Note also: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsSignedDataParser ep = new CmsSignedDataParser(new BufferedInputStream(encapSigData, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ base constructor - with encapsulated content
+
+
+ base constructor
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ Return the version number for the SignedData object
+
+ @return the version number
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+ @throws CmsException
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception org.bouncycastle.x509.NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ Replace the signerinformation store associated with the passed
+ in message contained in the stream original with the new one passed in.
+ You would probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+
+
+ Replace the certificate and CRL information associated with this
+ CMSSignedData object with the new one passed in.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param certsAndCrls the new certificates and CRLs to be used.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+ @exception CmsException if there is an error processing the CertStore
+
+
+ General class for generating a pkcs7-signature message stream.
+
+ A simple example of usage.
+
+
+ IX509Store certs...
+ CmsSignedDataStreamGenerator gen = new CmsSignedDataStreamGenerator();
+
+ gen.AddSigner(privateKey, cert, CmsSignedDataStreamGenerator.DIGEST_SHA1);
+
+ gen.AddCertificates(certs);
+
+ Stream sigOut = gen.Open(bOut);
+
+ sigOut.Write(Encoding.UTF8.GetBytes("Hello World!"));
+
+ sigOut.Close();
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer, specifying the digest encryption algorithm - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes - specifying digest
+ encryption algorithm.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data". If dataOutputStream is non null the data
+ being signed will be written to the stream as it is processed.
+ @param out stream the CMS object is to be written to.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+ @param out stream the CMS object is to be written to.
+ @param signedContentType OID for data to be signed.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ Default type for the signed data.
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Add the attribute certificates contained in the passed in store to the
+ generator.
+
+ @param store a store of Version 2 attribute certificates
+ @throws CmsException if an error occurse processing the store.
+
+
+ Add a store of precalculated signers to the generator.
+
+ @param signerStore store of signers
+
+
+ Return a map of oids and byte arrays representing the digests calculated on the content during
+ the last generate.
+
+ @return a map of oids (as String objects) and byte[] representing digests.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+ Return the digest encryption algorithm using one of the standard
+ JCA string representations rather than the algorithm identifier (if
+ possible).
+
+
+ Default authenticated attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in IDictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ Default signed attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType, signingTime, and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType, signingTime, and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in Hashtable of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a secret key known to the other side.
+
+
+ decrypt the content and return an input stream.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using key agreement.
+
+
+ decrypt the content and return an input stream.
+
+
+ the KeyTransRecipientInformation class for a recipient who has been sent a secret
+ key encrypted using their public key that needs to be used to
+ extract the message.
+
+
+ decrypt the content and return it as a byte array.
+
+
+ a basic index for an originator.
+
+
+ Return the certificates stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CertificateHolder objects.
+
+
+ Return the CRLs stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CRLHolder objects.
+
+
+ Return the underlying ASN.1 object defining this SignerInformation object.
+
+ @return a OriginatorInfo.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a password.
+
+
+ return the object identifier for the key derivation algorithm, or null
+ if there is none present.
+
+ @return OID for key derivation algorithm, if present.
+
+
+ decrypt the content and return an input stream.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes assuming ASCII.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes using UTF-8.
+
+
+
+ Generate a RecipientInfo object for the given key.
+
+
+ A
+
+
+ A
+
+
+ A
+
+
+
+
+ * return the object identifier for the key encryption algorithm.
+ *
+ * @return OID for key encryption algorithm.
+
+
+ * return the ASN.1 encoded key encryption algorithm parameters, or null if
+ * there aren't any.
+ *
+ * @return ASN.1 encoding of key encryption algorithm parameters.
+
+
+ Return the MAC calculated for the content stream. Note: this call is only meaningful once all
+ the content has been read.
+
+ @return byte array containing the mac.
+
+
+ Return the first RecipientInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a recipient
+ @return a single RecipientInformation object. Null if none matches.
+
+
+ Return the number of recipients in the collection.
+
+ @return number of recipients identified.
+
+
+ Return all recipients in the collection
+
+ @return a collection of recipients.
+
+
+ Return possible empty collection with recipients matching the passed in RecipientID
+
+ @param selector a recipient id to select against.
+ @return a collection of RecipientInformation objects.
+
+
+ a basic index for a signer.
+
+
+ If the passed in flag is true, the signer signature will be based on the data, not
+ a collection of signed attributes, and no signed attributes will be included.
+
+ @return the builder object
+
+
+ Provide a custom signed attribute generator.
+
+ @param signedGen a generator of signed attributes.
+ @return the builder object
+
+
+ Provide a generator of unsigned attributes.
+
+ @param unsignedGen a generator for signed attributes.
+ @return the builder object
+
+
+ Build a generator with the passed in certHolder issuer and serial number as the signerIdentifier.
+
+ @param contentSigner operator for generating the final signature in the SignerInfo with.
+ @param certHolder carrier for the X.509 certificate related to the contentSigner.
+ @return a SignerInfoGenerator
+ @throws OperatorCreationException if the generator cannot be built.
+
+
+ Build a generator with the passed in subjectKeyIdentifier as the signerIdentifier. If used you should
+ try to follow the calculation described in RFC 5280 section 4.2.1.2.
+
+ @param signerFactory operator factory for generating the final signature in the SignerInfo with.
+ @param subjectKeyIdentifier key identifier to identify the public key for verifying the signature.
+ @return a SignerInfoGenerator
+
+
+ an expanded SignerInfo block from a CMS Signed message
+
+
+ return the version number for this objects underlying SignerInfo structure.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature parameters, or null if there aren't any.
+
+
+ return the content digest that was calculated during verification.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature/encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a table of the signed attributes - indexed by
+ the OID of the attribute.
+
+
+ return a table of the unsigned attributes indexed by
+ the OID of the attribute.
+
+
+ return the encoded signature
+
+
+ Return a SignerInformationStore containing the counter signatures attached to this
+ signer. If no counter signatures are present an empty store is returned.
+
+
+ return the DER encoding of the signed attributes.
+ @throws IOException if an encoding error occurs.
+
+
+ verify that the given public key successfully handles and confirms the
+ signature associated with this signer.
+
+
+ verify that the given certificate successfully handles and confirms
+ the signature associated with this signer and, if a signingTime
+ attribute is available, that the certificate was valid at the time the
+ signature was generated.
+
+
+ Return the base ASN.1 CMS structure that this object contains.
+
+ @return an object containing a CMS SignerInfo structure.
+
+
+ Return a signer information object with the passed in unsigned
+ attributes replacing the ones that are current associated with
+ the object passed in.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param unsignedAttributes the unsigned attributes to add.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Return a signer information object with passed in SignerInformationStore representing counter
+ signatures attached as an unsigned attribute.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param counterSigners signer info objects carrying counter signature.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Create a store containing a single SignerInformation object.
+
+ @param signerInfo the signer information to contain.
+
+
+ Create a store containing a collection of SignerInformation objects.
+
+ @param signerInfos a collection signer information objects to contain.
+
+
+ Return the first SignerInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a signer
+ @return a single SignerInformation object. Null if none matches.
+
+
+ The number of signers in the collection.
+
+
+ An ICollection of all signers in the collection
+
+
+ Return possible empty collection with signers matching the passed in SignerID
+
+ @param selector a signer id to select against.
+ @return a collection of SignerInformation objects.
+
+
+ Basic generator that just returns a preconstructed attribute table
+
+
+ a Diffie-Hellman key exchange engine.
+
+ note: This uses MTI/A0 key agreement in order to make the key agreement
+ secure against passive attacks. If you're doing Diffie-Hellman and both
+ parties have long term public keys you should look at using this. For
+ further information have a look at RFC 2631.
+
+ It's possible to extend this to more than two parties as well, for the moment
+ that is left as an exercise for the reader.
+
+
+ calculate our initial message.
+
+
+ given a message from a given party and the corresponding public key
+ calculate the next message in the agreement sequence. In this case
+ this will represent the shared secret.
+
+
+ a Diffie-Hellman key agreement class.
+
+ note: This is only the basic algorithm, it doesn't take advantage of
+ long term public keys if they are available. See the DHAgreement class
+ for a "better" implementation.
+
+
+ given a short term public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+ P1363 7.2.1 ECSVDP-DH
+
+ ECSVDP-DH is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version. It is based on the work of [DH76], [Mil86],
+ and [Kob87]. This primitive derives a shared secret value from one
+ party's private key and another party's public key, where both have
+ the same set of EC domain parameters. If two parties correctly
+ execute this primitive, they will produce the same output. This
+ primitive can be invoked by a scheme to derive a shared secret key;
+ specifically, it may be used with the schemes ECKAS-DH1 and
+ DL/ECKAS-DH2. It assumes that the input keys are valid (see also
+ Section 7.2.2).
+
+
+ P1363 7.2.2 ECSVDP-DHC
+
+ ECSVDP-DHC is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version with cofactor multiplication. It is based on
+ the work of [DH76], [Mil86], [Kob87], [LMQ98] and [Kal98a]. This
+ primitive derives a shared secret value from one party's private key
+ and another party's public key, where both have the same set of EC
+ domain parameters. If two parties correctly execute this primitive,
+ they will produce the same output. This primitive can be invoked by a
+ scheme to derive a shared secret key; specifically, it may be used
+ with the schemes ECKAS-DH1 and DL/ECKAS-DH2. It does not assume the
+ validity of the input public key (see also Section 7.2.1).
+
+ Note: As stated P1363 compatibility mode with ECDH can be preset, and
+ in this case the implementation doesn't have a ECDH compatibility mode
+ (if you want that just use ECDHBasicAgreement and note they both implement
+ BasicAgreement!).
+
+
+
+ A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange.
+
+ The J-PAKE exchange is defined by Feng Hao and Peter Ryan in the paper
+
+ "Password Authenticated Key Exchange by Juggling, 2008."
+
+ The J-PAKE protocol is symmetric.
+ There is no notion of a client or server, but rather just two participants.
+ An instance of JPakeParticipant represents one participant, and
+ is the primary interface for executing the exchange.
+
+ To execute an exchange, construct a JPakeParticipant on each end,
+ and call the following 7 methods
+ (once and only once, in the given order, for each participant, sending messages between them as described):
+
+ CreateRound1PayloadToSend() - and send the payload to the other participant
+ ValidateRound1PayloadReceived(JPakeRound1Payload) - use the payload received from the other participant
+ CreateRound2PayloadToSend() - and send the payload to the other participant
+ ValidateRound2PayloadReceived(JPakeRound2Payload) - use the payload received from the other participant
+ CalculateKeyingMaterial()
+ CreateRound3PayloadToSend(BigInteger) - and send the payload to the other participant
+ ValidateRound3PayloadReceived(JPakeRound3Payload, BigInteger) - use the payload received from the other participant
+
+ Each side should derive a session key from the keying material returned by CalculateKeyingMaterial().
+ The caller is responsible for deriving the session key using a secure key derivation function (KDF).
+
+ Round 3 is an optional key confirmation process.
+ If you do not execute round 3, then there is no assurance that both participants are using the same key.
+ (i.e. if the participants used different passwords, then their session keys will differ.)
+
+ If the round 3 validation succeeds, then the keys are guaranteed to be the same on both sides.
+
+ The symmetric design can easily support the asymmetric cases when one party initiates the communication.
+ e.g. Sometimes the round1 payload and round2 payload may be sent in one pass.
+ Also, in some cases, the key confirmation payload can be sent together with the round2 payload.
+ These are the trivial techniques to optimize the communication.
+
+ The key confirmation process is implemented as specified in
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ This class is stateful and NOT threadsafe.
+ Each instance should only be used for ONE complete J-PAKE exchange
+ (i.e. a new JPakeParticipant should be constructed for each new J-PAKE exchange).
+
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ the JPakePrimeOrderGroups#NIST_3072 prime order group,
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+
+
+
+ Constructor for a new JPakeParticipant.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+ Digest to use during zero knowledge proofs and key confirmation
+ (SHA-256 or stronger preferred).
+ Source of secure random data for x1 and x2, and for the zero knowledge proofs.
+
+
+
+ Gets the current state of this participant.
+ See the STATE_* constants for possible values.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 1.
+
+ After execution, the State state} will be STATE_ROUND_1_CREATED}.
+
+
+
+
+ Validates the payload received from the other participant during round 1.
+
+ Must be called prior to CreateRound2PayloadToSend().
+
+ After execution, the State state will be STATE_ROUND_1_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException
+ if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 2.
+
+ ValidateRound1PayloadReceived(JPakeRound1Payload) must be called prior to this method.
+
+ After execution, the State state will be STATE_ROUND_2_CREATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Validates the payload received from the other participant during round 2.
+ Note that this DOES NOT detect a non-common password.
+ The only indication of a non-common password is through derivation
+ of different keys (which can be detected explicitly by executing round 3 and round 4)
+
+ Must be called prior to CalculateKeyingMaterial().
+
+ After execution, the State state will be STATE_ROUND_2_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws
+ InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Calculates and returns the key material.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPakeParticipant).
+
+ The keying material will be identical for each participant if and only if
+ each participant's password is the same. i.e. If the participants do not
+ share the same password, then each participant will derive a different key.
+ Therefore, if you immediately start using a key derived from
+ the keying material, then you must handle detection of incorrect keys.
+ If you want to handle this detection explicitly, you can optionally perform
+ rounds 3 and 4. See JPakeParticipant for details on how to execute
+ rounds 3 and 4.
+
+ The keying material will be in the range [0, p-1].
+
+ ValidateRound2PayloadReceived(JPakeRound2Payload) must be called prior to this method.
+
+ As a side effect, the internal password array is cleared, since it is no longer needed.
+
+ After execution, the State state will be STATE_KEY_CALCULATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound2PayloadReceived(JPakeRound2Payload),
+ or if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state} will be STATE_ROUND_3_CREATED.
+ Throws InvalidOperationException if called prior to CalculateKeyingMaterial, or multiple
+ times.
+
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ Validates the payload received from the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state will be STATE_ROUND_3_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException if called prior to
+ CalculateKeyingMaterial or multiple times
+
+ The round 3 payload received from the other participant.
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ A pre-computed prime order group for use during a J-PAKE exchange.
+
+ Typically a Schnorr group is used. In general, J-PAKE can use any prime order group
+ that is suitable for public key cryptography, including elliptic curve cryptography.
+
+ See JPakePrimeOrderGroups for convenient standard groups.
+
+ NIST publishes
+ many groups that can be used for the desired level of security.
+
+
+
+
+ Constructs a new JPakePrimeOrderGroup.
+
+ In general, you should use one of the pre-approved groups from
+ JPakePrimeOrderGroups, rather than manually constructing one.
+
+ The following basic checks are performed:
+
+ p-1 must be evenly divisible by q
+ g must be in [2, p-1]
+ g^q mod p must equal 1
+ p must be prime (within reasonably certainty)
+ q must be prime (within reasonably certainty)
+
+ The prime checks are performed using BigInteger#isProbablePrime(int),
+ and are therefore subject to the same probability guarantees.
+
+ These checks prevent trivial mistakes.
+ However, due to the small uncertainties if p and q are not prime,
+ advanced attacks are not prevented.
+ Use it at your own risk.
+
+ Throws NullReferenceException if any argument is null. Throws
+ InvalidOperationException is any of the above validations fail.
+
+
+
+
+ Constructor used by the pre-approved groups in JPakePrimeOrderGroups.
+ These pre-approved groups can avoid the expensive checks.
+ User-specified groups should not use this constructor.
+
+
+
+
+ Standard pre-computed prime order groups for use by J-PAKE.
+ (J-PAKE can use pre-computed prime order groups, same as DSA and Diffie-Hellman.)
+
+ This class contains some convenient constants for use as input for
+ constructing {@link JPAKEParticipant}s.
+
+ The prime order groups below are taken from Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB),
+ and from the prime order groups
+ published by NIST.
+
+
+
+
+ From Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB)
+ 1024-bit p, 160-bit q and 1024-bit g for 80-bit security.
+
+
+
+
+ From NIST.
+ 2048-bit p, 224-bit q and 2048-bit g for 112-bit security.
+
+
+
+
+ From NIST.
+ 3072-bit p, 256-bit q and 3072-bit g for 128-bit security.
+
+
+
+
+ The payload sent/received during the first round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance of this payload to
+ the other. The payload to send should be created via
+ JPAKEParticipant.CreateRound1PayloadToSend().
+
+ Each participant must also validate the payload received from the other.
+ The received payload should be validated via
+ JPAKEParticipant.ValidateRound1PayloadReceived(JPakeRound1Payload).
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of g^x1
+
+
+
+
+ The value of g^x2
+
+
+
+
+ The zero knowledge proof for x1.
+
+ This is a two element array, containing {g^v, r} for x1.
+
+
+
+
+ The zero knowledge proof for x2.
+
+ This is a two element array, containing {g^v, r} for x2.
+
+
+
+
+ The payload sent/received during the second round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound2PayloadToSend()
+
+ Each JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound2PayloadReceived(JPakeRound2Payload)
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of A, as computed during round 2.
+
+
+
+
+ The zero knowledge proof for x2 * s.
+
+ This is a two element array, containing {g^v, r} for x2 * s.
+
+
+
+
+ The payload sent/received during the optional third round of a J-PAKE exchange,
+ which is for explicit key confirmation.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound3PayloadToSend(BigInteger)
+
+ Eeach JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound3PayloadReceived(JPakeRound3Payload, BigInteger)
+
+
+
+
+ The id of the {@link JPAKEParticipant} who created/sent this payload.
+
+
+
+
+ The value of MacTag, as computed by round 3.
+
+ See JPAKEUtil#calculateMacTag(string, string, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, org.bouncycastle.crypto.Digest)
+
+
+
+
+ Primitives needed for a J-PAKE exchange.
+
+ The recommended way to perform a J-PAKE exchange is by using
+ two JPAKEParticipants. Internally, those participants
+ call these primitive operations in JPakeUtilities.
+
+ The primitives, however, can be used without a JPAKEParticipant if needed.
+
+
+
+
+ Return a value that can be used as x1 or x3 during round 1.
+ The returned value is a random value in the range [0, q-1].
+
+
+
+
+ Return a value that can be used as x2 or x4 during round 1.
+ The returned value is a random value in the range [1, q-1].
+
+
+
+
+ Converts the given password to a BigInteger
+ for use in arithmetic calculations.
+
+
+
+
+ Calculate g^x mod p as done in round 1.
+
+
+
+
+ Calculate ga as done in round 2.
+
+
+
+
+ Calculate x2 * s as done in round 2.
+
+
+
+
+ Calculate A as done in round 2.
+
+
+
+
+ Calculate a zero knowledge proof of x using Schnorr's signature.
+ The returned array has two elements {g^v, r = v-x*h} for x.
+
+
+
+
+ Validates that g^x4 is not 1.
+ throws CryptoException if g^x4 is 1
+
+
+
+
+ Validates that ga is not 1.
+
+ As described by Feng Hao...
+ Alice could simply check ga != 1 to ensure it is a generator.
+ In fact, as we will explain in Section 3, (x1 + x3 + x4 ) is random over Zq even in the face of active attacks.
+ Hence, the probability for ga = 1 is extremely small - on the order of 2^160 for 160-bit q.
+
+ throws CryptoException if ga is 1
+
+
+
+
+ Validates the zero knowledge proof (generated by
+ calculateZeroKnowledgeProof(BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, string, Digest, SecureRandom)
+ is correct.
+
+ throws CryptoException if the zero knowledge proof is not correct
+
+
+
+
+ Calculates the keying material, which can be done after round 2 has completed.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPAKEParticipant).
+
+ KeyingMaterial = (B/g^{x2*x4*s})^x2
+
+
+
+
+ Validates that the given participant ids are not equal.
+ (For the J-PAKE exchange, each participant must use a unique id.)
+
+ Throws CryptoException if the participantId strings are equal.
+
+
+
+
+ Validates that the given participant ids are equal.
+ This is used to ensure that the payloads received from
+ each round all come from the same participant.
+
+
+
+
+ Validates that the given object is not null.
+ throws NullReferenceException if the object is null.
+
+ object in question
+ name of the object (to be used in exception message)
+
+
+
+ Calculates the MacTag (to be used for key confirmation), as defined by
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ MacTag = HMAC(MacKey, MacLen, MacData)
+ MacKey = H(K || "JPAKE_KC")
+ MacData = "KC_1_U" || participantId || partnerParticipantId || gx1 || gx2 || gx3 || gx4
+
+ Note that both participants use "KC_1_U" because the sender of the round 3 message
+ is always the initiator for key confirmation.
+
+ HMAC = {@link HMac} used with the given {@link Digest}
+ H = The given {@link Digest}
+ MacLen = length of MacTag
+
+
+
+
+ Calculates the MacKey (i.e. the key to use when calculating the MagTag for key confirmation).
+
+ MacKey = H(K || "JPAKE_KC")
+
+
+
+
+ Validates the MacTag received from the partner participant.
+
+ throws CryptoException if the participantId strings are equal.
+
+
+
+ Generator for Concatenation Key Derivation Function defined in NIST SP 800-56A, Sect 5.8.1
+
+
+ @param digest the digest to be used as the source of generated bytes
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ RFC 2631 Diffie-hellman KEK derivation function.
+
+
+ X9.63 based key derivation function for ECDH CMS.
+
+
+
+ SM2 Key Exchange protocol - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
+
+
+
+ Implements the client side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the client to begin new authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates client's credentials given the client's salt, identity and password
+ @param salt The salt used in the client's verifier.
+ @param identity The user's identity (eg. username)
+ @param password The user's password
+ @return Client's public value to send to server
+
+
+ Generates client's verification message given the server's credentials
+ @param serverB The server's credentials
+ @return Client's verification message for the server
+ @throws CryptoException If server's credentials are invalid
+
+
+ Computes the client evidence message M1 using the previously received values.
+ To be called after calculating the secret S.
+ @return M1: the client side generated evidence message
+ @throws CryptoException
+
+
+ Authenticates the server evidence message M2 received and saves it only if correct.
+ @param M2: the server side generated evidence message
+ @return A boolean indicating if the server message M2 was the expected one.
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after verifying the server evidence message M2.
+ @return Key: the mutually authenticated symmetric session key
+ @throws CryptoException
+
+
+ Implements the server side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the server to accept a new client authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param v The client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates the server's credentials that are to be sent to the client.
+ @return The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+ @param clientA The client's credentials
+ @return A shared secret BigInteger
+ @throws CryptoException If client's credentials are invalid
+
+
+ Authenticates the received client evidence message M1 and saves it only if correct.
+ To be called after calculating the secret S.
+ @param M1: the client side generated evidence message
+ @return A boolean indicating if the client message M1 was the expected one.
+ @throws CryptoException
+
+
+ Computes the server evidence message M2 using the previously verified values.
+ To be called after successfully verifying the client evidence message M1.
+ @return M2: the server side generated evidence message
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after calculating the server evidence message M2.
+ @return Key: the mutual authenticated symmetric session key
+ @throws CryptoException
+
+
+ Computes the client evidence message (M1) according to the standard routine:
+ M1 = H( A | B | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param B The public server value
+ @param S The secret calculated by both sides
+ @return M1 The calculated client evidence message
+
+
+ Computes the server evidence message (M2) according to the standard routine:
+ M2 = H( A | M1 | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param M1 The client evidence message
+ @param S The secret calculated by both sides
+ @return M2 The calculated server evidence message
+
+
+ Computes the final Key according to the standard routine: Key = H(S)
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param S The secret calculated by both sides
+ @return
+
+
+ Generates new SRP verifier for user
+
+
+ Initialises generator to create new verifiers
+ @param N The safe prime to use (see DHParametersGenerator)
+ @param g The group parameter to use (see DHParametersGenerator)
+ @param digest The digest to use. The same digest type will need to be used later for the actual authentication
+ attempt. Also note that the final session key size is dependent on the chosen digest.
+
+
+ Creates a new SRP verifier
+ @param salt The salt to use, generally should be large and random
+ @param identity The user's identifying information (eg. username)
+ @param password The user's password
+ @return A new verifier for use in future SRP authentication
+
+
+ a holding class for public/private parameter pairs.
+
+
+ basic constructor.
+
+ @param publicParam a public key parameters object.
+ @param privateParam the corresponding private key parameters.
+
+
+ return the public key parameters.
+
+ @return the public key parameters.
+
+
+ return the private key parameters.
+
+ @return the private key parameters.
+
+
+ The AEAD block ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ a buffer wrapper for an asymmetric block cipher, allowing input
+ to be accumulated in a piecemeal fashion until final processing.
+
+
+ base constructor.
+
+ @param cipher the cipher this buffering object wraps.
+
+
+ return the amount of data sitting in the buffer.
+
+ @return the amount of data sitting in the buffer.
+
+
+ initialise the buffer and the underlying cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+
+
+ process the contents of the buffer using the underlying
+ cipher.
+
+ @return the result of the encryption/decryption process on the
+ buffer.
+ @exception InvalidCipherTextException if we are given a garbage block.
+
+
+ Reset the buffer
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion. The BufferedBlockCipher outputs a block only when the
+ buffer is full and more data is being added, or on a doFinal.
+
+ Note: in the case where the underlying cipher is either a CFB cipher or an
+ OFB one the last block may not be a multiple of the block size.
+
+
+
+ constructor for subclasses
+
+
+ Create a buffered block cipher without padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ false otherwise.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The base class for symmetric, or secret, cipher key generators.
+
+
+ initialise the key generator.
+
+ @param param the parameters to be used for key generation
+
+
+ Generate a secret key.
+
+ @return a byte array containing the key value.
+
+
+ this exception is thrown if a buffer that is meant to have output
+ copied into it turns out to be too short, or if we've been given
+ insufficient input. In general this exception will Get thrown rather
+ than an ArrayOutOfBounds exception.
+
+
+ base constructor.
+
+
+ create a DataLengthException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Basic sized constructor - size in bits.
+
+ @param digestSize size of the digest in bits
+
+
+ Blake2b for authentication ("Prefix-MAC mode").
+ After calling the doFinal() method, the key will
+ remain to be used for further computations of
+ this instance.
+ The key can be overwritten using the clearKey() method.
+
+ @param key A key up to 64 bytes or null
+
+
+ Blake2b with key, required digest length (in bytes), salt and personalization.
+ After calling the doFinal() method, the key, the salt and the personal string
+ will remain and might be used for further computations with this instance.
+ The key can be overwritten using the clearKey() method, the salt (pepper)
+ can be overwritten using the clearSalt() method.
+
+ @param key A key up to 64 bytes or null
+ @param digestLength from 1 up to 64 bytes
+ @param salt 16 bytes or null
+ @param personalization 16 bytes or null
+
+
+ update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+ Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to it's initial state.
+ The key, the salt and the personal string will
+ remain for further computations.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies it's compression
+ function to.
+
+ @return byte length of the digests internal buffer.
+
+
+ Overwrite the key
+ if it is no longer used (zeroization)
+
+
+ Overwrite the salt (pepper) if it
+ is secret and no longer used (zeroization)
+
+
+ Implementation of the cryptographic hash function BLAKE2s.
+
+ BLAKE2s offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2s offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2s is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 32 bytes.
+
+
+ BLAKE2s Initialization Vector
+
+
+
+ Message word permutations
+
+
+
+ Whenever this buffer overflows, it will be processed in the Compress()
+ function. For performance issues, long messages will not use this buffer.
+
+
+ Position of last inserted byte
+
+
+
+ Internal state, in the BLAKE2 paper it is called v
+
+
+
+ State vector, in the BLAKE2 paper it is called h
+
+
+
+ holds least significant bits of counter
+
+
+
+ holds most significant bits of counter
+
+
+
+ finalization flag, for last block: ~0
+
+
+
+ BLAKE2s-256 for hashing.
+
+
+ BLAKE2s for hashing.
+
+ @param digestBits the desired digest length in bits. Must be one of
+ [128, 160, 224, 256].
+
+
+ BLAKE2s for authentication ("Prefix-MAC mode").
+
+ After calling the doFinal() method, the key will remain to be used for
+ further computations of this instance. The key can be overwritten using
+ the clearKey() method.
+
+ @param key a key up to 32 bytes or null
+
+
+ BLAKE2s with key, required digest length, salt and personalization.
+
+ After calling the doFinal() method, the key, the salt and the personal
+ string will remain and might be used for further computations with this
+ instance. The key can be overwritten using the clearKey() method, the
+ salt (pepper) can be overwritten using the clearSalt() method.
+
+ @param key a key up to 32 bytes or null
+ @param digestBytes from 1 up to 32 bytes
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Overwrite the key if it is no longer used (zeroization).
+
+
+ Overwrite the salt (pepper) if it is secret and no longer used
+ (zeroization).
+
+
+ implementation of Ukrainian DSTU 7564 hash function
+
+
+ base implementation of MD4 family style digest as outlined in
+ "Handbook of Applied Cryptography", pages 344 - 347.
+
+
+ implementation of GOST R 34.11-94
+
+
+ Standard constructor
+
+
+ Constructor to allow use of a particular sbox with GOST28147
+ @see GOST28147Engine#getSBox(String)
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Return the size of block that the compression function is applied to in bytes.
+
+ @return internal byte length of a block.
+
+
+ Base class for SHA-384 and SHA-512.
+
+
+ Constructor for variable length word
+
+
+ Copy constructor. We are using copy constructors in place
+ of the object.Clone() interface as this interface is not
+ supported by J2ME.
+
+
+ adjust the byte counts so that byteCount2 represents the
+ upper long (less 3 bits) word of the byte count.
+
+
+ implementation of MD2
+ as outlined in RFC1319 by B.Kaliski from RSA Laboratories April 1992
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param out the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ implementation of MD4 as RFC 1320 by R. Rivest, MIT Laboratory for
+ Computer Science and RSA Data Security, Inc.
+
+ NOTE: This algorithm is only included for backwards compatibility
+ with legacy applications, it's not secure, don't use it for anything new!
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ Wrapper removes exposure to the IMemoable interface on an IDigest implementation.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @exception IllegalArgumentException if baseDigest is null
+
+
+ implementation of RipeMD128
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of RipeMD see,
+ http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD256.
+ Note: this algorithm offers the same level of security as RipeMD128.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD 320.
+ Note: this algorithm offers the same level of security as RipeMD160.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349.
+
+ It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5
+ is the "endianness" of the word processing!
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ SHA-224 as described in RFC 3874
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-224 512 32 224
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-256. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-384. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHA-3 based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Draft FIPS 180-2 implementation of SHA-512. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ FIPS 180-4 implementation of SHA-512/t
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHAKE based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Wrapper class that reduces the output length of a particular digest to
+ only the first n bytes of the digest function.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @param length length in bytes of the output of doFinal.
+ @exception ArgumentException if baseDigest is null, or length is greater than baseDigest.GetDigestSize().
+
+
+
+ Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block
+ sizes, based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation is the basis for and , implementing the
+ parameter based configuration system that allows Skein to be adapted to multiple applications.
+ Initialising the engine with allows standard and arbitrary parameters to
+ be applied during the Skein hash function.
+
+ Implemented:
+
+ - 256, 512 and 1024 bit internal states.
+ - Full 96 bit input length.
+ - Parameters defined in the Skein specification, and arbitrary other pre and post message
+ parameters.
+ - Arbitrary output size in 1 byte intervals.
+
+
+ Not implemented:
+
+ - Sub-byte length input (bit padding).
+ - Tree hashing.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+ The parameter type for the Skein key.
+
+
+ The parameter type for the Skein configuration block.
+
+
+ The parameter type for the message.
+
+
+ The parameter type for the output transformation.
+
+
+ Precalculated UBI(CFG) states for common state/output combinations without key or other
+ pre-message params.
+
+
+ Point at which position might overflow long, so switch to add with carry logic
+
+
+ Bit 127 = final
+
+
+ Bit 126 = first
+
+
+ UBI uses a 128 bit tweak
+
+
+ Whether 64 bit position exceeded
+
+
+ Advances the position in the tweak by the specified value.
+
+
+ The Unique Block Iteration chaining mode.
+
+
+ Buffer for the current block of message data
+
+
+ Offset into the current message block
+
+
+ Buffer for message words for feedback into encrypted block
+
+
+ Underlying Threefish tweakable block cipher
+
+
+ Size of the digest output, in bytes
+
+
+ The current chaining/state value
+
+
+ The initial state value
+
+
+ The (optional) key parameter
+
+
+ Parameters to apply prior to the message
+
+
+ Parameters to apply after the message, but prior to output
+
+
+ The current UBI operation
+
+
+ Buffer for single byte update method
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Creates a SkeinEngine as an exact copy of an existing instance.
+
+
+
+
+ Initialises the Skein engine with the provided parameters. See for
+ details on the parameterisation of the Skein hash function.
+
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+ Calculate the initial (pre message block) chaining state.
+
+
+
+ Reset the engine to the initial state (with the key and any pre-message parameters , ready to
+ accept message input.
+
+
+
+
+ Implementation of Chinese SM3 digest as described at
+ http://tools.ietf.org/html/draft-shen-sm3-hash-00
+ and at .... ( Chinese PDF )
+
+
+ The specification says "process a bit stream",
+ but this is written to process bytes in blocks of 4,
+ meaning this will process 32-bit word groups.
+ But so do also most other digest specifications,
+ including the SHA-256 which was a origin for
+ this specification.
+
+
+
+
+ Standard constructor
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+
+ reset the chaining variables
+
+
+
+ implementation of Tiger based on:
+
+ http://www.cs.technion.ac.il/~biham/Reports/Tiger
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Implementation of WhirlpoolDigest, based on Java source published by Barreto
+ and Rijmen.
+
+
+
+ Copy constructor. This will copy the state of the provided message
+ digest.
+
+
+ Reset the chaining variables
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ ISO 9796-1 padding. Note in the light of recent results you should
+ only use this with RSA (rather than the "simpler" Rabin keys) and you
+ should never use it with anything other than a hash (ie. even if the
+ message is small don't sign the message, sign it's hash) or some "random"
+ value. See your favorite search engine for details.
+
+
+ return the input block size. The largest message we can process
+ is (key_size_in_bits + 3)/16, which in our world comes to
+ key_size_in_bytes / 2.
+
+
+ return the maximum possible size for the output.
+
+
+ set the number of bits in the next message to be treated as
+ pad bits.
+
+
+ retrieve the number of pad bits in the last decoded message.
+
+
+ @exception InvalidCipherTextException if the decrypted block is not a valid ISO 9796 bit string
+
+
+ Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2.
+
+
+ @exception InvalidCipherTextException if the decrypted block turns out to
+ be badly formatted.
+
+
+ int to octet string.
+
+
+ mask generator function, as described in PKCS1v2.
+
+
+ this does your basic Pkcs 1 v1.5 padding - whether or not you should be using this
+ depends on your application - see Pkcs1 Version 2 for details.
+
+
+ some providers fail to include the leading zero in PKCS1 encoded blocks. If you need to
+ work with one of these set the system property Org.BouncyCastle.Pkcs1.Strict to false.
+
+
+ The same effect can be achieved by setting the static property directly
+
+ The static property is checked during construction of the encoding object, it is set to
+ true by default.
+
+
+
+ Basic constructor.
+
+ @param cipher
+
+
+ Constructor for decryption with a fixed plaintext length.
+
+ @param cipher The cipher to use for cryptographic operation.
+ @param pLen Length of the expected plaintext.
+
+
+ Constructor for decryption with a fixed plaintext length and a fallback
+ value that is returned, if the padding is incorrect.
+
+ @param cipher
+ The cipher to use for cryptographic operation.
+ @param fallback
+ The fallback value, we don't to a arraycopy here.
+
+
+ Checks if the argument is a correctly PKCS#1.5 encoded Plaintext
+ for encryption.
+
+ @param encoded The Plaintext.
+ @param pLen Expected length of the plaintext.
+ @return Either 0, if the encoding is correct, or -1, if it is incorrect.
+
+
+ Decode PKCS#1.5 encoding, and return a random value if the padding is not correct.
+
+ @param in The encrypted block.
+ @param inOff Offset in the encrypted block.
+ @param inLen Length of the encrypted block.
+ @param pLen Length of the desired output.
+ @return The plaintext without padding, or a random value if the padding was incorrect.
+ @throws InvalidCipherTextException
+
+
+ @exception InvalidCipherTextException if the decrypted block is not in Pkcs1 format.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first.
+
+ The slowest version uses no static tables at all and computes the values in each round.
+
+
+ This file contains the middle performance version with 2Kbytes of static tables for round precomputation.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael)), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor), they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations), 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each), for a total of 2Kbytes),
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values in each round
+
+
+ This file contains the fast version with 8Kbytes of static tables for round precomputation
+
+
+ Unfortunately this class has a few side channel issues.
+ In an environment where encryption/decryption may be closely observed it should not be used.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values
+ in each round.
+
+
+ This file contains the slowest performance version with no static tables
+ for round precomputation, but it has the smallest foot print.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ A class that provides Blowfish key encryption operations,
+ such as encoding data and generating keys.
+ All the algorithms herein are from Applied Cryptography
+ and implement a simplified cryptography interface.
+
+
+ initialise a Blowfish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ apply the encryption cycle to each value pair in the table.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Camellia - based on RFC 3713.
+
+
+ Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.
+
+
+
+ An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3657.txt.
+
+
+
+ A class that provides CAST key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC's
+
+ RFC2144 - Cast5 (64bit block, 40-128bit key)
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ initialise a CAST cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ The first of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The second of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The third of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ Does the 16 rounds to encrypt the block.
+
+ @param L0 the LH-32bits of the plaintext block
+ @param R0 the RH-32bits of the plaintext block
+
+
+ A class that provides CAST6 key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC
+
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Does the 12 quad rounds rounds to encrypt the block.
+
+ @param A the 00-31 bits of the plaintext block
+ @param B the 32-63 bits of the plaintext block
+ @param C the 64-95 bits of the plaintext block
+ @param D the 96-127 bits of the plaintext block
+ @param result the resulting ciphertext
+
+
+ Does the 12 quad rounds rounds to decrypt the block.
+
+ @param A the 00-31 bits of the ciphertext block
+ @param B the 32-63 bits of the ciphertext block
+ @param C the 64-95 bits of the ciphertext block
+ @param D the 96-127 bits of the ciphertext block
+ @param result the resulting plaintext
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Creates a ChaCha engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+
+ ChaCha function.
+
+ The number of ChaCha rounds to execute
+ The input words.
+ The ChaCha state to modify.
+
+
+ A class that provides a basic DESede (or Triple DES) engine.
+
+
+ initialise a DESede cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ * Wrap keys according to
+ *
+ * draft-ietf-smime-key-wrap-01.txt.
+ *
+ * Note:
+ *
+ * - this is based on a draft, and as such is subject to change - don't use this class for anything requiring long term storage.
+ * - if you are using this to wrap triple-des keys you need to set the
+ * parity bits on the key and, if it's a two-key triple-des key, pad it
+ * yourself.
+ *
+ *
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ A class that provides a basic DES engine.
+
+
+ initialise a DES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ what follows is mainly taken from "Applied Cryptography", by
+ Bruce Schneier, however it also bears great resemblance to Richard
+ Outerbridge's D3DES...
+
+
+ Generate an integer based working key based on our secret key
+ and what we processing we are planning to do.
+
+ Acknowledgements for this routine go to James Gillogly and Phil Karn.
+ (whoever, and wherever they are!).
+
+
+ the DES engine.
+
+
+ implementation of DSTU 7624 (Kalyna)
+
+
+ this does your basic ElGamal algorithm.
+
+
+ initialise the ElGamal engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary ElGamal key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ encryption, and twice the length as the size of P on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ decryption, and twice the length as the size of P on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic ElGamal algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param length the length of the data to be processed.
+ @return the result of the ElGamal process.
+ @exception DataLengthException the input block is too large.
+
+
+ implementation of GOST 28147-89
+
+
+ standard constructor.
+
+
+ initialise an Gost28147 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ Return the S-Box associated with SBoxName
+ @param sBoxName name of the S-Box
+ @return byte array representing the S-Box
+
+
+ HC-128 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 128-bit secret key and a 128-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc128_p3.pdf
+
+ It is a third phase candidate in the eStream contest, and is patent-free.
+ No attacks are known as of today (April 2007). See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-128 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 128 bit long).
+
+
+ HC-256 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 256-bit secret key and a 256-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc256_p3.pdf
+
+ Its brother, HC-128, is a third phase candidate in the eStream contest.
+ The algorithm is patent-free. No attacks are known as of today (April 2007).
+ See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-256 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 256 bit long).
+
+
+ A class that provides a basic International Data Encryption Algorithm (IDEA) engine.
+
+ This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM"
+ implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (baring 1 typo at the
+ end of the mulinv function!).
+
+
+ It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/
+
+
+ Note 1: This algorithm is patented in the USA, Japan, and Europe including
+ at least Austria, France, Germany, Italy, Netherlands, Spain, Sweden, Switzerland
+ and the United Kingdom. Non-commercial use is free, however any commercial
+ products are liable for royalties. Please see
+ www.mediacrypt.com for
+ further details. This announcement has been included at the request of
+ the patent holders.
+
+
+ Note 2: Due to the requests concerning the above, this algorithm is now only
+ included in the extended assembly. It is not included in the default distributions.
+
+
+
+ standard constructor.
+
+
+ initialise an IDEA cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return x = x * y where the multiplication is done modulo
+ 65537 (0x10001) (as defined in the IDEA specification) and
+ a zero input is taken to be 65536 (0x10000).
+
+ @param x the x value
+ @param y the y value
+ @return x = x * y
+
+
+ The following function is used to expand the user key to the encryption
+ subkey. The first 16 bytes are the user key, and the rest of the subkey
+ is calculated by rotating the previous 16 bytes by 25 bits to the left,
+ and so on until the subkey is completed.
+
+
+ This function computes multiplicative inverse using Euclid's Greatest
+ Common Divisor algorithm. Zero and one are self inverse.
+
+ i.e. x * MulInv(x) == 1 (modulo BASE)
+
+
+
+ Return the additive inverse of x.
+
+ i.e. x + AddInv(x) == 0
+
+
+
+ The function to invert the encryption subkey to the decryption subkey.
+ It also involves the multiplicative inverse and the additive inverse functions.
+
+
+ support class for constructing intergrated encryption ciphers
+ for doing basic message exchanges on top of key agreement ciphers
+
+
+ set up for use with stream mode, where the key derivation function
+ is used to provide a stream of bytes to xor with the message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+
+
+ set up for use in conjunction with a block cipher to handle the
+ message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+ @param cipher the cipher to used for encrypting the message
+
+
+ Initialise the encryptor.
+
+ @param forEncryption whether or not this is encryption/decryption.
+ @param privParam our private key parameters
+ @param pubParam the recipient's/sender's public key parameters
+ @param param encoding and derivation parameters.
+
+
+ Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count).
+ see: http://www.burtleburtle.net/bob/rand/isaacafa.html
+
+
+ initialise an ISAAC cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ NaccacheStern Engine. For details on this cipher, please see
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Initializes this algorithm. Must be called before all other Functions.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#init(bool,
+ org.bouncycastle.crypto.CipherParameters)
+
+
+ Returns the input block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetInputBlockSize()
+
+
+ Returns the output block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetOutputBlockSize()
+
+
+ Process a single Block using the Naccache-Stern algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#ProcessBlock(byte[],
+ int, int)
+
+
+ Encrypts a BigInteger aka Plaintext with the public key.
+
+ @param plain
+ The BigInteger to encrypt
+ @return The byte[] representation of the encrypted BigInteger (i.e.
+ crypted.toByteArray())
+
+
+ Adds the contents of two encrypted blocks mod sigma
+
+ @param block1
+ the first encrypted block
+ @param block2
+ the second encrypted block
+ @return encrypt((block1 + block2) mod sigma)
+ @throws InvalidCipherTextException
+
+
+ Convenience Method for data exchange with the cipher.
+
+ Determines blocksize and splits data to blocksize.
+
+ @param data the data to be processed
+ @return the data after it went through the NaccacheSternEngine.
+ @throws InvalidCipherTextException
+
+
+ Computes the integer x that is expressed through the given primes and the
+ congruences with the chinese remainder theorem (CRT).
+
+ @param congruences
+ the congruences c_i
+ @param primes
+ the primes p_i
+ @return an integer x for that x % p_i == c_i
+
+
+ A Noekeon engine, using direct-key mode.
+
+
+ Create an instance of the Noekeon encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ The no-op engine that just copies bytes through, irrespective of whether encrypting and decrypting.
+ Provided for the sake of completeness.
+
+
+ an implementation of RC2 as described in RFC 2268
+ "A Description of the RC2(r) Encryption Algorithm" R. Rivest.
+
+
+ initialise a RC2 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the result rotating the 16 bit number in x left by y
+
+
+ Wrap keys according to RFC 3217 - RC2 mechanism
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ initialise a RC4 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation has a word size of 32 bits.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation is set to work with a 64 bit word size.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-64 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ An RC6 engine.
+
+
+ Create an instance of the RC6 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param inKey the key to be used
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ an implementation of the RFC 3211 Key Wrap
+ Specification.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap
+ Specification as described in RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3394.txt
+ and http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ an implementation of Rijndael, based on the documentation and reference implementation
+ by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.
+
+ Note: this implementation is based on information prior to readonly NIST publication.
+
+
+
+ multiply two elements of GF(2^m)
+ needed for MixColumn and InvMixColumn
+
+
+ xor corresponding text input and round key input bytes
+
+
+ Row 0 remains unchanged
+ The other three rows are shifted a variable amount
+
+
+ Replace every byte of the input by the byte at that place
+ in the nonlinear S-box
+
+
+ Mix the bytes of every column in a linear way
+
+
+ Mix the bytes of every column in a linear way
+ This is the opposite operation of Mixcolumn
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on keyBits and blockBits
+
+
+ default constructor - 128 bit block size.
+
+
+ basic constructor - set the cipher up for a given blocksize
+
+ @param blocksize the blocksize in bits, must be 128, 192, or 256.
+
+
+ initialise a Rijndael cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ this does your basic RSA algorithm with blinding
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+ This does your basic RSA Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475. You need to use this if you are
+ trying to get another party to generate signatures without them being aware
+ of the message they are signing.
+
+
+ Initialise the blinding engine.
+
+ @param forEncryption true if we are encrypting (blinding), false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the RSA blinding algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @throws DataLengthException the input block is too large.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+
+ Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005
+
+
+
+ Constants
+
+
+
+ Creates a 20 round Salsa20 engine.
+
+
+
+
+ Creates a Salsa20 engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ Rotate left
+
+ @param x value to rotate
+ @param y amount to rotate x
+
+ @return rotated x
+
+
+ Implementation of the SEED algorithm as described in RFC 4009
+
+
+
+ An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc4010.txt.
+
+
+
+ * Serpent is a 128-bit 32-round block cipher with variable key lengths,
+ * including 128, 192 and 256 bit keys conjectured to be at least as
+ * secure as three-key triple-DES.
+ *
+ * Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ * candidate algorithm for the NIST AES Quest.
+ *
+ *
+ * For full details see The Serpent home page
+ *
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ initialise a Serpent cipher.
+
+ @param encrypting whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @throws IllegalArgumentException if the params argument is
+ inappropriate.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @return the number of bytes processed and produced.
+ @throws DataLengthException if there isn't enough data in in, or
+ space in out.
+ @throws IllegalStateException if the cipher isn't initialised.
+
+
+ InvSO - {13, 3,11, 0,10, 6, 5,12, 1,14, 4, 7,15, 9, 8, 2 } - 15 terms.
+
+
+ S1 - {15,12, 2, 7, 9, 0, 5,10, 1,11,14, 8, 6,13, 3, 4 } - 14 terms.
+
+
+ InvS1 - { 5, 8, 2,14,15, 6,12, 3,11, 4, 7, 9, 1,13,10, 0 } - 14 steps.
+
+
+ S2 - { 8, 6, 7, 9, 3,12,10,15,13, 1,14, 4, 0,11, 5, 2 } - 16 terms.
+
+
+ InvS2 - {12, 9,15, 4,11,14, 1, 2, 0, 3, 6,13, 5, 8,10, 7 } - 16 steps.
+
+
+ S3 - { 0,15,11, 8,12, 9, 6, 3,13, 1, 2, 4,10, 7, 5,14 } - 16 terms.
+
+
+ InvS3 - { 0, 9,10, 7,11,14, 6,13, 3, 5,12, 2, 4, 8,15, 1 } - 15 terms
+
+
+ S4 - { 1,15, 8, 3,12, 0,11, 6, 2, 5, 4,10, 9,14, 7,13 } - 15 terms.
+
+
+ InvS4 - { 5, 0, 8, 3,10, 9, 7,14, 2,12,11, 6, 4,15,13, 1 } - 15 terms.
+
+
+ S5 - {15, 5, 2,11, 4,10, 9,12, 0, 3,14, 8,13, 6, 7, 1 } - 16 terms.
+
+
+ InvS5 - { 8,15, 2, 9, 4, 1,13,14,11, 6, 5, 3, 7,12,10, 0 } - 16 terms.
+
+
+ S6 - { 7, 2,12, 5, 8, 4, 6,11,14, 9, 1,15,13, 3,10, 0 } - 15 terms.
+
+
+ InvS6 - {15,10, 1,13, 5, 3, 6, 0, 4, 9,14, 7, 2,12, 8,11 } - 15 terms.
+
+
+ S7 - { 1,13,15, 0,14, 8, 2,11, 7, 4,12,10, 9, 3, 5, 6 } - 16 terms.
+
+
+ InvS7 - { 3, 0, 6,13, 9,14,15, 8, 5,12,11, 7,10, 1, 4, 2 } - 17 terms.
+
+
+ Apply the linear transformation to the register set.
+
+
+ Apply the inverse of the linear transformation to the register set.
+
+
+ a class that provides a basic SKIPJACK engine.
+
+
+ initialise a SKIPJACK cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The G permutation
+
+
+ the inverse of the G permutation.
+
+
+
+ SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.
+
+
+
+ An TEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+
+ Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block
+ sizes.
+
+
+ This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST
+ SHA-3 competition in October 2010.
+
+ Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables
+ to speed up key schedule injection.
+ 2 x block size state is retained by each cipher instance.
+
+
+
+
+ 256 bit block size - Threefish-256
+
+
+
+
+ 512 bit block size - Threefish-512
+
+
+
+
+ 1024 bit block size - Threefish-1024
+
+
+
+ Size of the tweak in bytes (always 128 bit/16 bytes)
+
+
+ Rounds in Threefish-256
+
+
+ Rounds in Threefish-512
+
+
+ Rounds in Threefish-1024
+
+
+ Max rounds of any of the variants
+
+
+ Key schedule parity constant
+
+
+ Block size in bytes
+
+
+ Block size in 64 bit words
+
+
+ Buffer for byte oriented processBytes to call internal word API
+
+
+ Tweak bytes (2 byte t1,t2, calculated t3 and repeat of t1,t2 for modulo free lookup
+
+
+ Key schedule words
+
+
+ The internal cipher implementation (varies by blocksize)
+
+
+
+ Constructs a new Threefish cipher, with a specified block size.
+
+ the block size in bits, one of , ,
+ .
+
+
+
+ Initialise the engine.
+
+ Initialise for encryption if true, for decryption if false.
+ an instance of or (to
+ use a 0 tweak)
+
+
+
+ Initialise the engine, specifying the key and tweak directly.
+
+ the cipher mode.
+ the words of the key, or null to use the current key.
+ the 2 word (128 bit) tweak, or null to use the current tweak.
+
+
+
+ Process a block of data represented as 64 bit words.
+
+ the number of 8 byte words processed (which will be the same as the block size).
+ a block sized buffer of words to process.
+ a block sized buffer of words to receive the output of the operation.
+ if either the input or output is not block sized
+ if this engine is not initialised
+
+
+
+ Read a single 64 bit word from input in LSB first order.
+
+
+
+
+ Write a 64 bit word to output in LSB first order.
+
+
+
+ Rotate left + xor part of the mix operation.
+
+
+ Rotate xor + rotate right part of the unmix operation.
+
+
+ The extended + repeated tweak words
+
+
+ The extended + repeated key words
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Tnepres is a 128-bit 32-round block cipher with variable key lengths,
+ including 128, 192 and 256 bit keys conjectured to be at least as
+ secure as three-key triple-DES.
+
+ Tnepres is based on Serpent which was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ candidate algorithm for the NIST AES Quest. Unfortunately there was an endianness issue
+ with test vectors in the AES submission and the resulting confusion lead to the Tnepres cipher
+ as well, which is a byte swapped version of Serpent.
+
+
+ For full details see The Serpent home page
+
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ A class that provides Twofish encryption operations.
+
+ This Java implementation is based on the Java reference
+ implementation provided by Bruce Schneier and developed
+ by Raif S. Naffah.
+
+
+ Define the fixed p0/p1 permutations used in keyed S-box lookup.
+ By changing the following constant definitions, the S-boxes will
+ automatically Get changed in the Twofish engine.
+
+
+ gSubKeys[] and gSBox[] are eventually used in the
+ encryption and decryption methods.
+
+
+ initialise a Twofish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+ encryptBlock uses the pre-calculated gSBox[] and subKey[]
+ arrays.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Use (12, 8) Reed-Solomon code over GF(256) to produce
+ a key S-box 32-bit entity from 2 key material 32-bit
+ entities.
+
+ @param k0 first 32-bit entity
+ @param k1 second 32-bit entity
+ @return Remainder polynomial Generated using RS code
+
+
+ * Reed-Solomon code parameters: (12,8) reversible code:
+ *
+ *
+ * G(x) = x^4 + (a+1/a)x^3 + ax^2 + (a+1/a)x + 1
+ *
+ * where a = primitive root of field generator 0x14D
+ *
+
+
+ initialise a VMPC cipher.
+
+ @param forEncryption
+ whether or not we are for encryption.
+ @param params
+ the parameters required to set up the cipher.
+ @exception ArgumentException
+ if the params argument is inappropriate.
+
+
+
+ Implementation of Daniel J. Bernstein's XSalsa20 stream cipher - Salsa20 with an extended nonce.
+
+
+ XSalsa20 requires a 256 bit key, and a 192 bit nonce.
+
+
+
+
+ XSalsa20 key generation: process 256 bit input key and 128 bits of the input nonce
+ using a core Salsa20 function without input addition to produce 256 bit working key
+ and use that with the remaining 64 bits of nonce to initialize a standard Salsa20 engine state.
+
+
+
+ An XTEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on ISO 18033/P1363a.
+
+
+ Construct a KDF Parameters generator.
+
+ @param counterStart value of counter.
+ @param digest the digest to be used as the source of derived keys.
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws ArgumentException if the size of the request will cause an overflow.
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Core of password hashing scheme Bcrypt,
+ designed by Niels Provos and David Mazières,
+ corresponds to the C reference implementation.
+
+ This implementation does not correspondent to the 1999 published paper
+ "A Future-Adaptable Password Scheme" of Niels Provos and David Mazières,
+ see: https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html.
+ In contrast to the paper, the order of key setup and salt setup is reversed:
+ state <- ExpandKey(state, 0, key)
+ state %lt;- ExpandKey(state, 0, salt)
+ This corresponds to the OpenBSD reference implementation of Bcrypt.
+
+ Note:
+ There is no successful cryptanalysis (status 2015), but
+ the amount of memory and the band width of Bcrypt
+ may be insufficient to effectively prevent attacks
+ with custom hardware like FPGAs, ASICs
+
+ This implementation uses some parts of Bouncy Castle's BlowfishEngine.
+
+
+
+ Derives a raw 192 bit Bcrypt key
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param psw the password
+ @return a 192 bit key
+
+
+ Size of the salt parameter in bytes
+
+
+ Minimum value of cost parameter, equal to log2(bytes of salt)
+
+
+ Maximum value of cost parameter (31 == 2,147,483,648)
+
+
+ Maximum size of password == max (unrestricted) size of Blowfish key
+
+
+ Calculates the bcrypt hash of a password.
+
+ This implements the raw bcrypt function as defined in the bcrypt specification, not
+ the crypt encoded version implemented in OpenBSD.
+
+ @param password the password bytes (up to 72 bytes) to use for this invocation.
+ @param salt the 128 bit salt to use for this invocation.
+ @param cost the bcrypt cost parameter. The cost of the bcrypt function grows as
+ 2^cost. Legal values are 4..31 inclusive.
+ @return the output of the raw bcrypt operation: a 192 bit (24 byte) hash.
+
+
+ initialise the key generator - if strength is set to zero
+ the key Generated will be 192 bits in size, otherwise
+ strength can be 128 or 192 (or 112 or 168 if you don't count
+ parity bits), depending on whether you wish to do 2-key or 3-key
+ triple DES.
+
+ @param param the parameters to be used for key generation
+
+
+ initialise the key generator - if strength is set to zero
+ the key generated will be 64 bits in size, otherwise
+ strength can be 64 or 56 bits (if you don't count the parity bits).
+
+ @param param the parameters to be used for key generation
+
+
+ a basic Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use with the basic algorithm for
+ Diffie-Hellman.
+
+
+ a Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use in the MTI/A0 key agreement protocol
+ as described in "Handbook of Applied Cryptography", Pages 516-519.
+
+
+ which Generates the p and g values from the given parameters,
+ returning the DHParameters object.
+
+ Note: can take a while...
+
+
+ a DSA key pair generator.
+
+ This Generates DSA keys in line with the method described
+ in FIPS 186-3 B.1 FFC Key Pair Generation.
+
+
+ Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3.
+
+
+ Initialise the generator
+ This form can only be used for older DSA (pre-DSA2) parameters
+ the size of keys in bits (from 512 up to 1024, and a multiple of 64)
+ measure of robustness of primes (at least 80 for FIPS 186-2 compliance)
+ the source of randomness to use
+
+
+ Initialise the generator for DSA 2
+ You must use this Init method if you need to generate parameters for DSA 2 keys
+ An instance of DsaParameterGenerationParameters used to configure this generator
+
+
+ Generates a set of DsaParameters
+ Can take a while...
+
+
+ generate suitable parameters for DSA, in line with
+ FIPS 186-3 A.1 Generation of the FFC Primes p and q.
+
+
+ Given the domain parameters this routine generates an EC key
+ pair in accordance with X9.62 section 5.2.1 pages 26, 27.
+
+
+ a ElGamal key pair generator.
+
+ This Generates keys consistent for use with ElGamal as described in
+ page 164 of "Handbook of Applied Cryptography".
+
+
+ * which Generates the p and g values from the given parameters,
+ * returning the ElGamalParameters object.
+ *
+ * Note: can take a while...
+ *
+
+
+ a GOST3410 key pair generator.
+ This generates GOST3410 keys in line with the method described
+ in GOST R 34.10-94.
+
+
+ generate suitable parameters for GOST3410.
+
+
+ initialise the key generator.
+
+ @param size size of the key
+ @param typeProcedure type procedure A,B = 1; A',B' - else
+ @param random random byte source.
+
+
+ Procedure C
+ procedure generates the a value from the given p,q,
+ returning the a value.
+
+
+ which generates the p , q and a values from the given parameters,
+ returning the Gost3410Parameters object.
+
+
+ HMAC-based Extract-and-Expand Key Derivation Function (HKDF) implemented
+ according to IETF RFC 5869, May 2010 as specified by H. Krawczyk, IBM
+ Research & P. Eronen, Nokia. It uses a HMac internally to compute de OKM
+ (output keying material) and is likely to have better security properties
+ than KDF's based on just a hash function.
+
+
+ Creates a HKDFBytesGenerator based on the given hash function.
+
+ @param hash the digest to be used as the source of generatedBytes bytes
+
+
+ Performs the extract part of the key derivation function.
+
+ @param salt the salt to use
+ @param ikm the input keying material
+ @return the PRK as KeyParameter
+
+
+ Performs the expand part of the key derivation function, using currentT
+ as input and output buffer.
+
+ @throws DataLengthException if the total number of bytes generated is larger than the one
+ specified by RFC 5869 (255 * HashLen)
+
+
+ KFD2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF1 byte generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ KDF2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF2 bytes generator. Generates key material
+ according to IEEE P1363 or ISO 18033 depending on the initialisation.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ Generator for MGF1 as defined in Pkcs 1v2
+
+
+ @param digest the digest to be used as the source of Generated bytes
+
+
+ return the underlying digest.
+
+
+ int to octet string.
+
+
+ fill len bytes of the output buffer with bytes Generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Key generation parameters for NaccacheStern cipher. For details on this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Generates a permuted ArrayList from the original one. The original List
+ is not modified
+
+ @param arr
+ the ArrayList to be permuted
+ @param rand
+ the source of Randomness for permutation
+ @return a new IList with the permuted elements.
+
+
+ Finds the first 'count' primes starting with 3
+
+ @param count
+ the number of primes to find
+ @return a vector containing the found primes as Integer
+
+
+ Password hashing scheme BCrypt,
+ designed by Niels Provos and David Mazières, using the
+ String format and the Base64 encoding
+ of the reference implementation on OpenBSD
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Checks if a password corresponds to a 60 character Bcrypt String
+
+ @param bcryptString a 60 character Bcrypt String, including
+ version, cost factor, salt and hash,
+ separated by '$'
+ @param password the password as an array of chars
+ @return true if the password corresponds to the
+ Bcrypt String, otherwise false
+
+
+ Generator for PBE derived keys and ivs as usd by OpenSSL.
+
+ The scheme is a simple extension of PKCS 5 V2.0 Scheme 1 using MD5 with an
+ iteration count of 1.
+
+
+
+ Construct a OpenSSL Parameters generator.
+
+
+ Initialise - note the iteration count for this algorithm is fixed at 1.
+
+ @param password password to use.
+ @param salt salt to use.
+
+
+ the derived key function, the ith hash of the password and the salt.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 12 V1.0.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs12 Page
+
+
+
+ Construct a Pkcs 12 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+ @exception ArgumentException if an unknown digest is passed in.
+
+
+ add a + b + 1, returning the result in a. The a value is treated
+ as a BigInteger of length (b.Length * 8) bits. The result is
+ modulo 2^b.Length in case of overflow.
+
+
+ generation of a derived key ala Pkcs12 V1.0.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 1.
+ Note this generator is limited to the size of the hash produced by the
+ digest used to drive it.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+
+ Construct a Pkcs 5 Scheme 1 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ the derived key function, the ith hash of the mPassword and the mSalt.
+
+
+ Generate a key parameter derived from the mPassword, mSalt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the mPassword, mSalt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the mPassword,
+ mSalt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 2.
+ This generator uses a SHA-1 HMac as the calculation function.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+ construct a Pkcs5 Scheme 2 Parameters generator.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+
+ Generates keys for the Poly1305 MAC.
+
+
+ Poly1305 keys are 256 bit keys consisting of a 128 bit secret key used for the underlying block
+ cipher followed by a 128 bit {@code r} value used for the polynomial portion of the Mac.
+ The {@code r} value has a specific format with some bits required to be cleared, resulting in an
+ effective 106 bit key.
+ A separately generated 256 bit key can be modified to fit the Poly1305 key format by using the
+ {@link #clamp(byte[])} method to clear the required bits.
+
+
+
+
+
+ Initialises the key generator.
+
+
+ Poly1305 keys are always 256 bits, so the key length in the provided parameters is ignored.
+
+
+
+
+ Generates a 256 bit key in the format required for Poly1305 - e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+
+
+
+ Modifies an existing 32 byte key value to comply with the requirements of the Poly1305 key by
+ clearing required bits in the r (second 16 bytes) portion of the key.
+ Specifically:
+
+ - r[3], r[7], r[11], r[15] have top four bits clear (i.e., are {0, 1, . . . , 15})
+ - r[4], r[8], r[12] have bottom two bits clear (i.e., are in {0, 4, 8, . . . , 252})
+
+
+ a 32 byte key value k[0] ... k[15], r[0] ... r[15]
+
+
+
+ Checks a 32 byte key for compliance with the Poly1305 key requirements, e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+ Key.
+ if the key is of the wrong length, or has invalid bits set
+ in the r portion of the key.
+
+
+ Generate a random factor suitable for use with RSA blind signatures
+ as outlined in Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475.
+
+
+ Initialise the factor generator
+
+ @param param the necessary RSA key parameters.
+
+
+ Generate a suitable blind factor for the public key the generator was initialised with.
+
+ @return a random blind factor
+
+
+ an RSA key pair generator.
+
+
+ Choose a random prime value for use with RSA
+ the bit-length of the returned prime
+ the RSA public exponent
+ a prime p, with (p-1) relatively prime to e
+
+
+ Implementation of the scrypt a password-based key derivation function.
+
+ Scrypt was created by Colin Percival and is specified in
+ draft-josefsson-scrypt-kd.
+
+
+
+ Generate a key using the scrypt key derivation function.
+ the bytes of the pass phrase.
+ the salt to use for this invocation.
+ CPU/Memory cost parameter. Must be larger than 1, a power of 2 and less than
+ 2^(128 * r / 8).
+ the block size, must be >= 1.
+ Parallelization parameter. Must be a positive integer less than or equal to
+ Int32.MaxValue / (128 * r * 8).
+ the length of the key to generate.
+ the generated key.
+
+
+ Base interface for a public/private key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The maximum size, in bytes, an input block may be.
+
+
+ The maximum size, in bytes, an output block will be.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The length of the input block.
+ Input decrypts improperly.
+ Input is too large for the cipher.
+
+
+ interface that a public/private key pair generator should conform to.
+
+
+ intialise the key pair generator.
+
+ @param the parameters the key pair is to be initialised with.
+
+
+ return an AsymmetricCipherKeyPair containing the Generated keys.
+
+ @return an AsymmetricCipherKeyPair containing the Generated keys.
+
+
+ The basic interface that basic Diffie-Hellman implementations
+ conforms to.
+
+
+ initialise the agreement engine.
+
+
+ return the field size for the agreement algorithm in bytes.
+
+
+ given a public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Base interface for a symmetric key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Indicates whether this cipher can handle partial blocks.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The output buffer.
+ The offset into outBuf to write the output block.
+ If input block is wrong size, or outBuf too small.
+ The number of bytes processed and produced.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to a single block return an object
+ of this type.
+
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ Block cipher engines are expected to conform to this interface.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+
+
+ Reset the cipher. After resetting the cipher is in the same state
+ as it was after the last init (if there was one).
+
+
+
+ all parameter classes implement this.
+
+
+ base interface for general purpose byte derivation functions.
+
+
+ return the message digest used as the basis for the function
+
+
+ Parameters for key/byte stream derivation classes
+
+
+ interface that a message digest conforms to.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ return the size, in bytes, of the internal buffer used by this digest.
+
+ @return the size, in bytes, of the internal buffer used by this digest.
+
+
+ update the message digest with a single byte.
+
+ @param inByte the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param input the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param output the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ interface for classes implementing the Digital Signature Algorithm
+
+
+ initialise the signer for signature generation or signature
+ verification.
+
+ @param forSigning true if we are generating a signature, false
+ otherwise.
+ @param param key parameters for signature generation.
+
+
+ sign the passed in message (usually the output of a hash function).
+
+ @param message the message to be signed.
+ @return two big integers representing the r and s values respectively.
+
+
+ verify the message message against the signature values r and s.
+
+ @param message the message that was supposed to have been signed.
+ @param r the r signature value.
+ @param s the s signature value.
+
+
+
+ Base interface describing an entropy source for a DRBG.
+
+
+
+
+ Return whether or not this entropy source is regarded as prediction resistant.
+
+ true if this instance is prediction resistant; otherwise, false.
+
+
+
+ Return a byte array of entropy.
+
+ The entropy bytes.
+
+
+
+ Return the number of bits of entropy this source can produce.
+
+ The size, in bits, of the return value of getEntropy.
+
+
+
+ Base interface describing a provider of entropy sources.
+
+
+
+
+ Return an entropy source providing a block of entropy.
+
+ The size of the block of entropy required.
+ An entropy source providing bitsRequired blocks of entropy.
+
+
+ The base interface for implementations of message authentication codes (MACs).
+
+
+ Initialise the MAC.
+
+ @param param the key and other data required by the MAC.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Return the name of the algorithm the MAC implements.
+
+ @return the name of the algorithm the MAC implements.
+
+
+ Return the block size for this MAC (in bytes).
+
+ @return the block size for this MAC in bytes.
+
+
+ add a single byte to the mac for processing.
+
+ @param in the byte to be processed.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ @param in the array containing the input.
+ @param inOff the index in the array the data begins at.
+ @param len the length of the input starting at inOff.
+ @exception InvalidOperationException if the MAC is not initialised.
+ @exception DataLengthException if there isn't enough data in in.
+
+
+ Compute the final stage of the MAC writing the output to the out
+ parameter.
+
+ doFinal leaves the MAC in the same state it was after the last init.
+
+ @param out the array the MAC is to be output to.
+ @param outOff the offset into the out buffer the output is to start at.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ Reset the MAC. At the end of resetting the MAC should be in the
+ in the same state it was after the last init (if there was one).
+
+
+ this exception is thrown whenever we find something we don't expect in a
+ message.
+
+
+ base constructor.
+
+
+ create a InvalidCipherTextException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Base interface for operators that serve as stream-based signature calculators.
+
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ Return the name of the algorithm the signer implements.
+
+ @return the name of the algorithm the signer implements.
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ reset the internal state
+
+
+ Signer with message recovery.
+
+
+ Returns true if the signer has recovered the full message as
+ part of signature verification.
+
+ @return true if full message recovered.
+
+
+ Returns a reference to what message was recovered (if any).
+
+ @return full/partial message, null if nothing.
+
+
+ Perform an update with the recovered message before adding any other data. This must
+ be the first update method called, and calling it will result in the signer assuming
+ that further calls to update will include message content past what is recoverable.
+
+ @param signature the signature that we are in the process of verifying.
+ @throws IllegalStateException
+
+
+
+ Base interface for cryptographic operations such as Hashes, MACs, and Signatures which reduce a stream of data
+ to a single value.
+
+
+
+ Return a "sink" stream which only exists to update the implementing object.
+ A stream to write to in order to update the implementing object.
+
+
+
+ Return the result of processing the stream. This value is only available once the stream
+ has been closed.
+
+ The result of processing the stream.
+
+
+ The interface stream ciphers conform to.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+ If the parameters argument is inappropriate.
+
+
+
+ encrypt/decrypt a single byte returning the result.
+ the byte to be processed.
+ the result of processing the input byte.
+
+
+
+ Process a block of bytes from input putting the result into output.
+
+ The input byte array.
+
+ The offset into input where the data to be processed starts.
+
+ The number of bytes to be processed.
+ The output buffer the processed bytes go into.
+
+ The offset into output the processed data starts at.
+
+ If the output buffer is too small.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to the validation of a signature produce this type.
+
+
+
+
+ Return true if the passed in data matches what is expected by the verification result.
+
+ The bytes representing the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Return true if the length bytes from off in the source array match the signature
+ expected by the verification result.
+
+ Byte array containing the signature.
+ The offset into the source array where the signature starts.
+ The number of bytes in source making up the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Base interface for operators that serve as stream-based signature verifiers.
+
+
+
+ The algorithm details object for this verifier.
+
+
+
+ Create a stream calculator for this verifier. The stream
+ calculator is used for the actual operation of entering the data to be verified
+ and producing a result which can be used to verify the original signature.
+
+ A calculator producing an IVerifier which can verify the signature.
+
+
+
+ Base interface for a provider to support the dynamic creation of signature verifiers.
+
+
+
+
+ Return a signature verfier for signature algorithm described in the passed in algorithm details object.
+
+ The details of the signature algorithm verification is required for.
+ A new signature verifier.
+
+
+ The name of the algorithm this cipher implements.
+
+
+
+ With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.
+ This interface provides the extra method required to support variable output on a digest implementation.
+
+
+
+
+ Output the results of the final calculation for this digest to outLen number of bytes.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+
+ Start outputting the results of the final calculation for this digest. Unlike DoFinal, this method
+ will continue producing output until the Xof is explicitly reset, or signals otherwise.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+ The base class for parameters to key generators.
+
+
+ initialise the generator with a source of randomness
+ and a strength (in bits).
+
+ @param random the random byte source.
+ @param strength the size, in bits, of the keys we want to produce.
+
+
+ return the random source associated with this
+ generator.
+
+ @return the generators random source.
+
+
+ return the bit strength for keys produced by this generator,
+
+ @return the strength of the keys this generator produces (in bits).
+
+
+ standard CBC Block Cipher MAC - if no padding is specified the default of
+ pad of zeroes is used.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding a padding to be used.
+
+
+ Reset the mac generator.
+
+
+ CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
+
+ CMAC is analogous to OMAC1 - see also en.wikipedia.org/wiki/CMAC
+
+ CMAC is a NIST recomendation - see
+ csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38B.pdf
+
+ CMAC/OMAC1 is a blockcipher-based message authentication code designed and
+ analyzed by Tetsu Iwata and Kaoru Kurosawa.
+
+ CMAC/OMAC1 is a simple variant of the CBC MAC (Cipher Block Chaining Message
+ Authentication Code). OMAC stands for One-Key CBC MAC.
+
+ It supports 128- or 64-bits block ciphers, with any key size, and returns
+ a MAC with dimension less or equal to the block size of the underlying
+ cipher.
+
+
+
+ create a standard MAC based on a CBC block cipher (64 or 128 bit block).
+ This will produce an authentication code the length of the block size
+ of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8 and @lt;= 128.
+
+
+ Reset the mac generator.
+
+
+
+ Implementation of DSTU7564 mac mode
+
+
+
+ implementation of DSTU 7624 MAC
+
+
+
+ The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication
+ 800-38D.
+
+
+ GMac is an invocation of the GCM mode where no data is encrypted (i.e. all input data to the Mac
+ is processed as additional authenticated data with the underlying GCM block cipher).
+
+
+
+
+ Creates a GMAC based on the operation of a block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+
+
+
+ Creates a GMAC based on the operation of a 128 bit block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+ the mac size to generate, in bits. Must be a multiple of 8, between 32 and 128 (inclusive).
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ Initialises the GMAC - requires a
+ providing a and a nonce.
+
+
+
+ implementation of GOST 28147-89 MAC
+
+
+ HMAC implementation based on RFC2104
+
+ H(K XOR opad, H(K XOR ipad, text))
+
+
+ Reset the mac generator.
+
+
+ DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC)
+
+ This could as well be derived from CBCBlockCipherMac, but then the property mac in the base
+ class must be changed to protected
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation. This must
+ be DESEngine.
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a Retail-MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation. The final block is decrypted and then encrypted using the
+ middle and right part of the key.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+
+ Poly1305 message authentication code, designed by D. J. Bernstein.
+
+
+ Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key
+ consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106
+ effective key bits) used in the authenticator.
+
+ The polynomial calculation in this implementation is adapted from the public domain poly1305-donna-unrolled C implementation
+ by Andrew M (@floodyberry).
+
+
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Current block of buffered input
+
+
+ Current offset in input buffer
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Constructs a Poly1305 MAC, where the key passed to init() will be used directly.
+
+
+ Constructs a Poly1305 MAC, using a 128 bit block cipher.
+
+
+
+ Initialises the Poly1305 MAC.
+
+ a {@link ParametersWithIV} containing a 128 bit nonce and a {@link KeyParameter} with
+ a 256 bit key complying to the {@link Poly1305KeyGenerator Poly1305 key format}.
+
+
+
+ Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe
+ Aumasson and Daniel J. Bernstein (https://131002.net/siphash/siphash.pdf).
+
+
+ "SipHash is a family of PRFs SipHash-c-d where the integer parameters c and d are the number of
+ compression rounds and the number of finalization rounds. A compression round is identical to a
+ finalization round and this round function is called SipRound. Given a 128-bit key k and a
+ (possibly empty) byte string m, SipHash-c-d returns a 64-bit value..."
+
+
+
+ SipHash-2-4
+
+
+ SipHash-c-d
+ the number of compression rounds
+ the number of finalization rounds
+
+
+
+ Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein MAC with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/MAC size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ This exception is thrown whenever a cipher requires a change of key, iv
+ or similar after x amount of bytes enciphered
+
+
+
+ implements Cipher-Block-Chaining (CBC) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of chaining.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CBC".
+
+
+ return the block size of the underlying cipher.
+
+ @return the block size of the underlying cipher.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Do the appropriate chaining step for CBC mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate chaining step for CBC mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the decrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Counter with Cipher Block Chaining mode (CCM) detailed in
+ NIST Special Publication 800-38C.
+
+ Note: this mode is a packet mode - it needs all the data up front.
+
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Returns a byte array containing the mac calculated as part of the
+ last encrypt or decrypt operation.
+
+ @return the last mac calculated.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @return a byte array containing the processed input..
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @param output output array.
+ @param outOff offset into output array to start putting processed bytes.
+ @return the number of bytes added to output.
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+ @throws DataLengthException if output buffer too short.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ A Cipher Text Stealing (CTS) mode cipher. CTS allows block ciphers to
+ be used to produce cipher text which is the same outLength as the plain text.
+
+
+ Create a buffered block cipher that uses Cipher Text Stealing
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ return the size of the output buffer required for an update of 'length' bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update
+ with length bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of length bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with length bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param length the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if cipher text decrypts wrongly (in
+ case the exception will never Get thrown).
+
+
+ A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and
+ Efficiency - by M. Bellare, P. Rogaway, D. Wagner.
+
+ http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf
+
+ EAX is an AEAD scheme based on CTR and OMAC1/CMAC, that uses a single block
+ cipher to encrypt and authenticate data. It's on-line (the length of a
+ message isn't needed to begin processing it), has good performances, it's
+ simple and provably secure (provided the underlying block cipher is secure).
+
+ Of course, this implementations is NOT thread-safe.
+
+
+ Constructor that accepts an instance of a block cipher engine.
+
+ @param cipher the engine to use
+
+
+
+ Implements the Galois/Counter mode (GCM) detailed in
+ NIST Special Publication 800-38D.
+
+
+
+
+ MAC sizes from 32 bits to 128 bits (must be a multiple of 8) are supported. The default is 128 bits.
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ implements the GOST 28147 OFB counter mode (GCTR).
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ counter mode (must have a 64 bit block size).
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param encrypting if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/GCTR"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+
+ A block cipher mode that includes authenticated encryption with a streaming mode
+ and optional associated data.
+
+
+
+ The name of the algorithm this cipher implements.
+
+
+ The block cipher underlying this algorithm.
+
+
+ Initialise the cipher.
+ Parameter can either be an AeadParameters or a ParametersWithIV object.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Add a single byte to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The byte to be processed.
+
+
+ Add a sequence of bytes to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The input byte array.
+ The offset into the input array where the data to be processed starts.
+ The number of bytes to be processed.
+
+
+ Encrypt/decrypt a single byte.
+
+ @param input the byte to be processed.
+ @param outBytes the output buffer the processed byte goes into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Process a block of bytes from in putting the result into out.
+
+ @param inBytes the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param outBytes the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Finish the operation either appending or verifying the MAC at the end of the data.
+
+ @param outBytes space for any resulting output data.
+ @param outOff offset into out to start copying the data at.
+ @return number of bytes written into out.
+ @throws InvalidOperationException if the cipher is in an inappropriate state.
+ @throws InvalidCipherTextException if the MAC fails to match.
+
+
+ Return the value of the MAC associated with the last stream processed.
+
+ @return MAC for plaintext data.
+
+
+ Return the size of the output buffer required for a ProcessBytes
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes
+ with len bytes of input.
+
+
+ Return the size of the output buffer required for a ProcessBytes plus a
+ DoFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes and DoFinal
+ with len bytes of input.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Base constructor. Nb value is set to 4.
+
+ base cipher to use under CCM.
+
+
+
+ Constructor allowing Nb configuration.
+
+ Nb is a parameter specified in CCM mode of DSTU7624 standard.
+ This parameter specifies maximum possible length of input.It should
+ be calculated as follows: Nb = 1 / 8 * (-3 + log[2]Nmax) + 1,
+ where Nmax - length of input message in bits.For practical reasons
+ Nmax usually less than 4Gb, e.g. for Nmax = 2^32 - 1, Nb = 4.
+
+ base cipher to use under CCM.
+ Nb value to use.
+
+
+ Implements a Gamming or Counter (CTR) mode on top of a DSTU 7624 block cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/KCTR"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ An implementation of RFC 7253 on The OCB
+ Authenticated-Encryption Algorithm, licensed per:
+
+ License for
+ Open-Source Software Implementations of OCB (Jan 9, 2013) - 'License 1'
+ Under this license, you are authorized to make, use, and distribute open-source software
+ implementations of OCB. This license terminates for you if you sue someone over their open-source
+ software implementation of OCB claiming that you have a patent covering their implementation.
+
+ This is a non-binding summary of a legal document (the link above). The parameters of the license
+ are specified in the license document and that document is controlling.
+
+
+ implements a Output-FeedBack (OFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/OFB"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ * Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode
+ * on top of a simple cipher. This class assumes the IV has been prepended
+ * to the data stream already, and just accomodates the reset after
+ * (blockSize + 2) bytes have been read.
+ *
+ * For further info see RFC 2440.
+ *
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/PGPCFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt one byte of data according to CFB mode.
+ @param data the byte to encrypt
+ @param blockOff offset in the current block
+ @returns the encrypted byte
+
+
+ Do the appropriate processing for CFB IV mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB IV mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Segmented Integer Counter (SIC) mode on top of a simple
+ block cipher.
+
+
+ Basic constructor.
+
+ @param c the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Calculator factory class for signature generation in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+
+
+
+ Constructor which also specifies a source of randomness to be used if one is required.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+ The source of randomness to be used in signature calculation.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+
+ Verifier class for signature verification in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The public key to be used in the verification operation.
+
+
+
+ Provider class which supports dynamic creation of signature verifiers.
+
+
+
+
+ Base constructor - specify the public key to be used in verification.
+
+ The public key to be used in creating verifiers provided by this object.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+ Block cipher padders are expected to conform to this interface
+
+
+ Initialise the padder.
+
+ @param param parameters, if any required.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+ @exception InvalidCipherTextException if the padding is badly formed
+ or invalid.
+
+
+ A padder that adds ISO10126-2 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds the padding according to the scheme referenced in
+ ISO 7814-4 - scheme 2 from ISO 9797-1. The first byte is 0x80, rest is 0x00
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the padder implements.
+
+ @return the name of the algorithm the padder implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion with padding. The PaddedBufferedBlockCipher
+ outputs a block only when the buffer is full and more data is being added,
+ or on a doFinal (unless the current block in the buffer is a pad block).
+ The default padding mechanism used is the one outlined in Pkcs5/Pkcs7.
+
+
+ Create a buffered block cipher with the desired padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ @param padding the padding type.
+
+
+ Create a buffered block cipher Pkcs7 padding
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the minimum size of the output buffer required for an update
+ plus a doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer. If the buffer is currently
+ full and padding needs to be added a call to doFinal will produce
+ 2 * GetBlockSize() bytes.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output or we are decrypting and the input is not block size aligned.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+
+
+ A padder that adds Pkcs7/Pkcs5 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Trailing-Bit-Compliment padding to a block.
+
+ This padding pads the block out compliment of the last bit
+ of the plain text.
+
+
+
+
+ Return the name of the algorithm the cipher implements.
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+ Note: this assumes that the last block of plain text is always
+ passed to it inside in. i.e. if inOff is zero, indicating the
+ entire block is to be overwritten with padding the value of in
+ should be the same as the last block of plain text.
+
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds X9.23 padding to a block - if a SecureRandom is
+ passed in random padding is assumed, otherwise padding with zeros is used.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if one is available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Null byte padding to a block.
+
+
+ Return the name of the algorithm the cipher implements.
+
+
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+
+
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+ @param length number of bytes making up the key
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2/3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ DES has 16 weak keys. This method will check
+ if the given DES key material is weak or semi-weak.
+ Key material that is too short is regarded as weak.
+
+ See "Applied
+ Cryptography" by Bruce Schneier for more information.
+
+ @return true if the given DES key material is weak or semi-weak,
+ false otherwise.
+
+
+ DES Keys use the LSB as the odd parity bit. This can
+ be used to check for corrupt keys.
+
+ @param bytes the byte array to set the parity on.
+
+
+ The minimum bitlength of the private value.
+
+
+ The bitlength of the private value.
+
+
+ Construct without a usage index, this will do a random construction of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+
+
+ Construct for a specific usage index - this has the effect of using verifiable canonical generation of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+ @param usageIndex a valid usage index.
+
+
+ return the generator - g
+
+
+ return private value limit - l
+
+
+ Parameter class for the HkdfBytesGenerator class.
+
+
+ Generates parameters for HKDF, specifying both the optional salt and
+ optional info. Step 1: Extract won't be skipped.
+
+ @param ikm the input keying material or seed
+ @param salt the salt to use, may be null for a salt for hashLen zeros
+ @param info the info to use, may be null for an info field of zero bytes
+
+
+ Factory method that makes the HKDF skip the extract part of the key
+ derivation function.
+
+ @param ikm the input keying material or seed, directly used for step 2:
+ Expand
+ @param info the info to use, may be null for an info field of zero bytes
+ @return HKDFParameters that makes the implementation skip step 1
+
+
+ Returns the input keying material or seed.
+
+ @return the keying material
+
+
+ Returns if step 1: extract has to be skipped or not
+
+ @return true for skipping, false for no skipping of step 1
+
+
+ Returns the salt, or null if the salt should be generated as a byte array
+ of HashLen zeros.
+
+ @return the salt, or null
+
+
+ Returns the info field, which may be empty (null is converted to empty).
+
+ @return the info field, never null
+
+
+ parameters for using an integrated cipher in stream mode.
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+ @param cipherKeySize the size of the associated Cipher key (in bits).
+
+
+ parameters for Key derivation functions for ISO-18033
+
+
+ parameters for Key derivation functions for IEEE P1363a
+
+
+ Parameters for mask derivation functions.
+
+
+ Parameters for NaccacheStern public private key generation. For details on
+ this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Parameters for generating a NaccacheStern KeyPair.
+
+ @param random
+ The source of randomness
+ @param strength
+ The desired strength of the Key in Bits
+ @param certainty
+ the probability that the generated primes are not really prime
+ as integer: 2^(-certainty) is then the probability
+ @param countSmallPrimes
+ How many small key factors are desired
+
+
+ * Parameters for a NaccacheStern KeyPair.
+ *
+ * @param random
+ * The source of randomness
+ * @param strength
+ * The desired strength of the Key in Bits
+ * @param certainty
+ * the probability that the generated primes are not really prime
+ * as integer: 2^(-certainty) is then the probability
+ * @param cntSmallPrimes
+ * How many small key factors are desired
+ * @param debug
+ * Ignored
+
+
+ @return Returns the certainty.
+
+
+ @return Returns the countSmallPrimes.
+
+
+ Public key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ @param privateKey
+
+
+ @return Returns the g.
+
+
+ @return Returns the lowerSigmaBound.
+
+
+ @return Returns the n.
+
+
+ Private key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Constructs a NaccacheSternPrivateKey
+
+ @param g
+ the public enryption parameter g
+ @param n
+ the public modulus n = p*q
+ @param lowerSigmaBound
+ the public lower sigma bound up to which data can be encrypted
+ @param smallPrimes
+ the small primes, of which sigma is constructed in the right
+ order
+ @param phi_n
+ the private modulus phi(n) = (p-1)(q-1)
+
+
+ Cipher parameters with a fixed salt value associated with them.
+
+
+
+ Parameters for the Skein hash function - a series of byte[] strings identified by integer tags.
+
+
+ Parameterised Skein can be used for:
+
+ - MAC generation, by providing a key.
+ - Randomised hashing, by providing a nonce.
+ - A hash function for digital signatures, associating a
+ public key with the message digest.
+ - A key derivation function, by providing a
+ key identifier.
+ - Personalised hashing, by providing a
+ recommended format or
+ arbitrary personalisation string.
+
+
+
+
+
+
+
+
+ The parameter type for a secret key, supporting MAC or KDF functions: 0
+
+
+
+
+ The parameter type for the Skein configuration block: 4
+
+
+
+
+ The parameter type for a personalisation string: 8
+
+
+
+
+ The parameter type for a public key: 12
+
+
+
+
+ The parameter type for a key identifier string: 16
+
+
+
+
+ The parameter type for a nonce: 20
+
+
+
+
+ The parameter type for the message: 48
+
+
+
+
+ The parameter type for the output transformation: 63
+
+
+
+
+ Obtains a map of type (int) to value (byte[]) for the parameters tracked in this object.
+
+
+
+
+ Obtains the value of the key parameter, or null if not
+ set.
+
+ The key.
+
+
+
+ Obtains the value of the personalisation parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the public key parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the key identifier parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the nonce parameter, or null if
+ not set.
+
+
+
+
+ A builder for .
+
+
+
+
+ Sets a parameters to apply to the Skein hash function.
+
+
+ Parameter types must be in the range 0,5..62, and cannot use the value 48
+ (reserved for message body).
+
+ Parameters with type < 48 are processed before
+ the message content, parameters with type > 48
+ are processed after the message and prior to output.
+
+ the type of the parameter, in the range 5..62.
+ the byte sequence of the parameter.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Implements the recommended personalisation format for Skein defined in Section 4.11 of
+ the Skein 1.3 specification.
+
+
+ The format is YYYYMMDD email@address distinguisher, encoded to a byte
+ sequence using UTF-8 encoding.
+
+ the date the personalised application of the Skein was defined.
+ the email address of the creation of the personalised application.
+ an arbitrary personalisation string distinguishing the application.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Constructs a new instance with the parameters provided to this
+ builder.
+
+
+
+ Private parameters for an SM2 key exchange.
+ The ephemeralPrivateKey is used to calculate the random point used in the algorithm.
+
+
+ Public parameters for an SM2 key exchange.
+ In this case the ephemeralPublicKey provides the random point used in the algorithm.
+
+
+
+ Parameters for tweakable block ciphers.
+
+
+
+
+ Gets the key.
+
+ the key to use, or null to use the current key.
+
+
+
+ Gets the tweak value.
+
+ The tweak to use, or null to use the current tweak.
+
+
+ super class for all Password Based Encyrption (Pbe) parameter generator classes.
+
+
+ base constructor.
+
+
+ initialise the Pbe generator.
+
+ @param password the password converted into bytes (see below).
+ @param salt the salt to be mixed with the password.
+ @param iterationCount the number of iterations the "mixing" function
+ is to be applied for.
+
+
+ return the password byte array.
+
+ @return the password byte array.
+
+
+ return the salt byte array.
+
+ @return the salt byte array.
+
+
+ return the iteration count.
+
+ @return the iteration count.
+
+
+ Generate derived parameters for a key of length keySize.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ Generate derived parameters for a key of length keySize, and
+ an initialisation vector (IV) of length ivSize.
+
+ @param keySize the length, in bits, of the key required.
+ @param ivSize the length, in bits, of the iv required.
+ @return a parameters object representing a key and an IV.
+
+
+ Generate derived parameters for a key of length keySize, specifically
+ for use with a MAC.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs5 (ascii, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ PKCS5 (UTF-8, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs12 (unicode, big endian, 2 zero pad bytes at the end).
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ An EntropySourceProvider where entropy generation is based on a SecureRandom output using SecureRandom.generateSeed().
+
+
+ Create a entropy source provider based on the passed in SecureRandom.
+
+ @param secureRandom the SecureRandom to base EntropySource construction on.
+ @param isPredictionResistant boolean indicating if the SecureRandom is based on prediction resistant entropy or not (true if it is).
+
+
+ Return an entropy source that will create bitsRequired bits of entropy on
+ each invocation of getEntropy().
+
+ @param bitsRequired size (in bits) of entropy to be created by the provided source.
+ @return an EntropySource that generates bitsRequired bits of entropy on each call to its getEntropy() method.
+
+
+
+ Uses RandomNumberGenerator.Create() to get randomness generator
+
+
+
+ Random generation based on the digest with counter. Calling AddSeedMaterial will
+ always increase the entropy of the hash.
+
+ Internal access to the digest is synchronized so a single one of these can be shared.
+
+
+
+ A SP800-90A CTR DRBG.
+
+
+ Construct a SP800-90A CTR DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param engine underlying block cipher to use to support DRBG
+ @param keySizeInBits size of the key to use with the block cipher.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Pad out a key for TDEA, setting odd parity for each byte.
+
+ @param keyMaster
+ @param keyOff
+ @param tmp
+ @param tmpOff
+
+
+ Used by both Dual EC and Hash.
+
+
+ A SP800-90A Hash DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param digest source digest to use for DRB stream.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ A SP800-90A HMAC DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param hMac Hash MAC to base the DRBG on.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Interface to SP800-90A deterministic random bit generators.
+
+
+ Return the block size of the DRBG.
+
+ @return the block size (in bits) produced by each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Generate numBytes worth of entropy from the passed in entropy source.
+
+ @param entropySource the entropy source to request the data from.
+ @param numBytes the number of bytes of entropy requested.
+ @return a byte array populated with the random data.
+
+
+ Generic interface for objects generating random bytes.
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+
+ Takes bytes generated by an underling RandomGenerator and reverses the order in
+ each small window (of configurable size).
+
+ Access to internals is synchronized so a single one of these can be shared.
+
+
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+ Force a reseed of the DRBG.
+ optional additional input
+
+
+ Builder class for making SecureRandom objects based on SP 800-90A Deterministic Random Bit Generators (DRBG).
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Set the personalization string for DRBG SecureRandoms created by this builder
+ @param personalizationString the personalisation string for the underlying DRBG.
+ @return the current builder.
+
+
+ Set the security strength required for DRBGs used in building SecureRandom objects.
+
+ @param securityStrength the security strength (in bits)
+ @return the current builder.
+
+
+ Set the amount of entropy bits required for seeding and reseeding DRBGs used in building SecureRandom objects.
+
+ @param entropyBitsRequired the number of bits of entropy to be requested from the entropy source on each seed/reseed.
+ @return the current builder.
+
+
+ Build a SecureRandom based on a SP 800-90A Hash DRBG.
+
+ @param digest digest algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a Hash DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A CTR DRBG.
+
+ @param cipher the block cipher to base the DRBG on.
+ @param keySizeInBits key size in bits to be used with the block cipher.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a CTR DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A HMAC DRBG.
+
+ @param hMac HMAC algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a HMAC DRBG.
+
+
+ A thread based seed generator - one source of randomness.
+
+ Based on an idea from Marcus Lippert.
+
+
+
+ Generate seed bytes. Set fast to false for best quality.
+
+ If fast is set to true, the code should be round about 8 times faster when
+ generating a long sequence of random bytes. 20 bytes of random values using
+ the fast mode take less than half a second on a Nokia e70. If fast is set to false,
+ it takes round about 2500 ms.
+
+ @param numBytes the number of bytes to generate
+ @param fast true if fast mode should be used
+
+
+
+ Permutation generated by code:
+
+ // First 1850 fractional digit of Pi number.
+ byte[] key = new BigInteger("14159265358979323846...5068006422512520511").ToByteArray();
+ s = 0;
+ P = new byte[256];
+ for (int i = 0; i < 256; i++)
+ {
+ P[i] = (byte) i;
+ }
+ for (int m = 0; m < 768; m++)
+ {
+ s = P[(s + P[m & 0xff] + key[m % key.length]) & 0xff];
+ byte temp = P[m & 0xff];
+ P[m & 0xff] = P[s & 0xff];
+ P[s & 0xff] = temp;
+ }
+
+
+
+ Value generated in the same way as P.
+
+
+
+ @param engine
+ @param entropySource
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the RNG.
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Construct a X9.31 secure random generator using the passed in engine and key. If predictionResistant is true the
+ generator will be reseeded on each request.
+
+ @param engine a block cipher to use as the operator.
+ @param key the block cipher key to initialise engine with.
+ @param predictionResistant true if engine to be reseeded on each use, false otherwise.
+ @return a SecureRandom.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ The Digital Signature Algorithm - as described in "Handbook of Applied
+ Cryptography", pages 452 - 453.
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message for standard DSA the message should be a
+ SHA-1 hash of the real message to be verified.
+
+
+ EC-DSA as described in X9.62
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message (for standard DSA the message should be
+ a SHA-1 hash of the real message to be verified).
+
+
+ GOST R 34.10-2001 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional GOST3410 the message should be a GOST3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a GOST3410 signature for
+ the passed in message (for standard GOST3410 the message should be
+ a GOST3411 hash of the real message to be verified).
+
+
+ EC-NR as described in IEEE 1363-2000
+
+
+ generate a signature for the given message using the key we were
+ initialised with. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR it *must* be at least as long.
+
+ @param digest the digest to be signed.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ return true if the value r and s represent a signature for the
+ message passed in. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR, it *must* be at least as long. But just in case the signer
+ applied mod(n) to the longer digest, this implementation will
+ apply mod(n) during verification.
+
+ @param digest the digest to be verified.
+ @param r the r value of the signature.
+ @param s the s value of the signature.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ initialise the signer for signing or verification.
+
+ @param forSigning
+ true if for signing, false otherwise
+ @param parameters
+ necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using the key
+ we were initialised with.
+
+
+ return true if the internal state represents the signature described in
+ the passed in array.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ Gost R 34.10-94 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional Gost3410 the message should be a Gost3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a Gost3410 signature for
+ the passed in message for standard Gost3410 the message should be a
+ Gost3411 hash of the real message to be verified.
+
+
+ A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979.
+
+
+ Base constructor.
+
+ @param digest digest to build the HMAC on.
+
+
+ Interface define calculators of K values for DSA/ECDSA.
+
+
+ Return true if this calculator is deterministic, false otherwise.
+
+ @return true if deterministic, otherwise false.
+
+
+ Non-deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param random a source of randomness.
+
+
+ Deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param d the DSA private value.
+ @param message the message being signed.
+
+
+ Return the next valid value of K.
+
+ @return a K value.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
+
+ Note: the usual length for the salt is the length of the hash
+ function used in bytes.
+
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ length of salt in bytes.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+ length of salt in bytes.
+
+
+
+ Initialise the signer.
+ true if for signing, false if for verification.
+ parameters for signature generation/verification. If the
+ parameters are for generation they should be a ParametersWithRandom,
+ a ParametersWithSalt, or just an RsaKeyParameters object. If RsaKeyParameters
+ are passed in a SecureRandom will be created.
+
+ if wrong parameter type or a fixed
+ salt is passed in which is the wrong length.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise, or if not sure.
+
+
+
+ int to octet string.
+ int to octet string.
+
+
+ long to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 1)
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise.
+
+
+
+ RSA-PSS as described in Pkcs# 1 v 2.1.
+
+ Note: the usual value for the salt length is the number of
+ bytes in the hash function.
+
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the length of the salt to use (in bytes).
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the fixed salt to be used.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+
+ int to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+
+ Load oid table.
+
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ The SM2 Digital Signature algorithm.
+
+
+ X9.31-1998 - signing using a hash.
+
+ The message digest hash, H, is encapsulated to form a byte string as follows
+
+
+ EB = 06 || PS || 0xBA || H || TRAILER
+
+ where PS is a string of bytes all of value 0xBB of length such that |EB|=|n|, and TRAILER is the ISO/IEC 10118 part number†for the digest. The byte string, EB, is converted to an integer value, the message representative, f.
+
+
+ Generate a signer with either implicit or explicit trailers for X9.31.
+
+ @param cipher base cipher to use for signature creation/verification
+ @param digest digest to use.
+ @param implicit whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+ @param cipher cipher to use.
+ @param digest digest to sign with.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+ a wrapper for block ciphers with a single byte block size, so that they
+ can be treated like stream ciphers.
+
+
+ basic constructor.
+
+ @param cipher the block cipher to be wrapped.
+ @exception ArgumentException if the cipher has a block size other than
+ one.
+
+
+ initialise the underlying cipher.
+
+ @param forEncryption true if we are setting up for encryption, false otherwise.
+ @param param the necessary parameters for the underlying cipher to be initialised.
+
+
+ return the name of the algorithm we are wrapping.
+
+ @return the name of the algorithm we are wrapping.
+
+
+ encrypt/decrypt a single byte returning the result.
+
+ @param in the byte to be processed.
+ @return the result of processing the input byte.
+
+
+ process a block of bytes from in putting the result into out.
+
+ @param in the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param out the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data stars at.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ reset the underlying cipher. This leaves it in the same state
+ it was at after the last init (if there was one).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.2
+
+
+
+ This message notifies the recipient that the sender will not send any more messages on this
+ connection. Note that as of TLS 1.1, failure to properly close a connection no longer
+ requires that a session not be resumed. This is a change from TLS 1.0 ("The session becomes
+ unresumable if any connection is terminated without proper close_notify messages with level
+ equal to warning.") to conform with widespread implementation practice.
+
+
+ An inappropriate message was received. This alert is always fatal and should never be
+ observed in communication between proper implementations.
+
+
+ This alert is returned if a record is received with an incorrect MAC. This alert also MUST be
+ returned if an alert is sent because a TLSCiphertext decrypted in an invalid way: either it
+ wasn't an even multiple of the block length, or its padding values, when checked, weren't
+ correct. This message is always fatal and should never be observed in communication between
+ proper implementations (except when messages were corrupted in the network).
+
+
+ This alert was used in some earlier versions of TLS, and may have permitted certain attacks
+ against the CBC mode [CBCATT]. It MUST NOT be sent by compliant implementations.
+
+
+ A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record
+ decrypted to a TLSCompressed record with more than 2^14+1024 bytes. This message is always
+ fatal and should never be observed in communication between proper implementations (except
+ when messages were corrupted in the network).
+
+
+ The decompression function received improper input (e.g., data that would expand to excessive
+ length). This message is always fatal and should never be observed in communication between
+ proper implementations.
+
+
+ Reception of a handshake_failure alert message indicates that the sender was unable to
+ negotiate an acceptable set of security parameters given the options available. This is a
+ fatal error.
+
+
+ This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ A certificate was corrupt, contained signatures that did not verify correctly, etc.
+
+
+ A certificate was of an unsupported type.
+
+
+ A certificate was revoked by its signer.
+
+
+ A certificate has expired or is not currently valid.
+
+
+ Some other (unspecified) issue arose in processing the certificate, rendering it
+ unacceptable.
+
+
+ A field in the handshake was out of range or inconsistent with other fields. This message is
+ always fatal.
+
+
+ A valid certificate chain or partial chain was received, but the certificate was not accepted
+ because the CA certificate could not be located or couldn't be matched with a known, trusted
+ CA. This message is always fatal.
+
+
+ A valid certificate was received, but when access control was applied, the sender decided not
+ to proceed with negotiation. This message is always fatal.
+
+
+ A message could not be decoded because some field was out of the specified range or the
+ length of the message was incorrect. This message is always fatal and should never be
+ observed in communication between proper implementations (except when messages were corrupted
+ in the network).
+
+
+ A handshake cryptographic operation failed, including being unable to correctly verify a
+ signature or validate a Finished message. This message is always fatal.
+
+
+ This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ The protocol version the client has attempted to negotiate is recognized but not supported.
+ (For example, old protocol versions might be avoided for security reasons.) This message is
+ always fatal.
+
+
+ Returned instead of handshake_failure when a negotiation has failed specifically because the
+ server requires ciphers more secure than those supported by the client. This message is
+ always fatal.
+
+
+ An internal error unrelated to the peer or the correctness of the protocol (such as a memory
+ allocation failure) makes it impossible to continue. This message is always fatal.
+
+
+ This handshake is being canceled for some reason unrelated to a protocol failure. If the user
+ cancels an operation after the handshake is complete, just closing the connection by sending
+ a close_notify is more appropriate. This alert should be followed by a close_notify. This
+ message is generally a warning.
+
+
+ Sent by the client in response to a hello request or by the server in response to a client
+ hello after initial handshaking. Either of these would normally lead to renegotiation; when
+ that is not appropriate, the recipient should respond with this alert. At that point, the
+ original requester can decide whether to proceed with the connection. One case where this
+ would be appropriate is where a server has spawned a process to satisfy a request; the
+ process might receive security parameters (key length, authentication, etc.) at startup, and
+ it might be difficult to communicate changes to these parameters after that point. This
+ message is always a warning.
+
+
+ Sent by clients that receive an extended server hello containing an extension that they did
+ not put in the corresponding client hello. This message is always fatal.
+
+
+ This alert is sent by servers who are unable to retrieve a certificate chain from the URL
+ supplied by the client (see Section 3.3). This message MAY be fatal - for example if client
+ authentication is required by the server for the handshake to continue and the server is
+ unable to retrieve the certificate chain, it may send a fatal alert.
+
+
+ This alert is sent by servers that receive a server_name extension request, but do not
+ recognize the server name. This message MAY be fatal.
+
+
+ This alert is sent by clients that receive an invalid certificate status response (see
+ Section 3.6). This message is always fatal.
+
+
+ This alert is sent by servers when a certificate hash does not match a client provided
+ certificate_hash. This message is always fatal.
+
+
+ If the server does not recognize the PSK identity, it MAY respond with an
+ "unknown_psk_identity" alert message.
+
+
+ If TLS_FALLBACK_SCSV appears in ClientHello.cipher_suites and the highest protocol version
+ supported by the server is higher than the version indicated in ClientHello.client_version,
+ the server MUST respond with a fatal inappropriate_fallback alert [..].
+
+
+
+ RFC 5246 7.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ A queue for bytes.
+
+ This file could be more optimized.
+
+
+
+
+ The smallest number which can be written as 2^x which is bigger than i.
+
+
+ The initial size for our buffer.
+
+
+ The buffer where we store our data.
+
+
+ How many bytes at the beginning of the buffer are skipped.
+
+
+ How many bytes in the buffer are valid data.
+
+
+ Add some data to our buffer.
+ A byte-array to read data from.
+ How many bytes to skip at the beginning of the array.
+ How many bytes to read from the array.
+
+
+ The number of bytes which are available in this buffer.
+
+
+ Copy some bytes from the beginning of the data to the provided Stream.
+ The Stream to copy the bytes to.
+ How many bytes to copy.
+ If insufficient data is available.
+ If there is a problem copying the data.
+
+
+ Read data from the buffer.
+ The buffer where the read data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ Return a MemoryStream over some bytes at the beginning of the data.
+ How many bytes will be readable.
+ A MemoryStream over the data.
+ If insufficient data is available.
+
+
+ Remove some bytes from our data from the beginning.
+ How many bytes to remove.
+
+
+ Parsing and encoding of a Certificate struct from RFC 4346.
+
+
+ opaque ASN.1Cert<2^24-1>;
+
+ struct {
+ ASN.1Cert certificate_list<0..2^24-1>;
+ } Certificate;
+
+
+ @see Org.BouncyCastle.Asn1.X509.X509CertificateStructure
+
+
+ The certificates.
+
+
+ @return an array of {@link org.bouncycastle.asn1.x509.Certificate} representing a certificate
+ chain.
+
+
+ @return true if this certificate chain contains no certificates, or
+ false otherwise.
+
+
+ Encode this {@link Certificate} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link Certificate} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link Certificate} object.
+ @throws IOException
+
+
+ Parsing and encoding of a CertificateRequest struct from RFC 4346.
+
+
+ struct {
+ ClientCertificateType certificate_types<1..2^8-1>;
+ DistinguishedName certificate_authorities<3..2^16-1>
+ } CertificateRequest;
+
+
+ @see ClientCertificateType
+ @see X509Name
+
+
+ @param certificateTypes see {@link ClientCertificateType} for valid constants.
+ @param certificateAuthorities an {@link IList} of {@link X509Name}.
+
+
+ @return an array of certificate types
+ @see {@link ClientCertificateType}
+
+
+ @return an {@link IList} of {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ @return an {@link IList} of {@link X509Name}
+
+
+ Encode this {@link CertificateRequest} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateRequest} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateRequest} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatus} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatus} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatus} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatusRequest} object.
+ @throws IOException
+
+
+ RFC 6091
+
+
+ @param type
+ see {@link CertChainType} for valid constants.
+ @param urlAndHashList
+ a {@link IList} of {@link UrlAndHash}.
+
+
+ @return {@link CertChainType}
+
+
+ @return an {@link IList} of {@link UrlAndHash}
+
+
+ Encode this {@link CertificateUrl} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateUrl} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateUrl} object.
+ @throws IOException
+
+
+ draft-ietf-tls-chacha20-poly1305-04
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 2246 A.5
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ A combined hash, which implements md5(m) || sha1(m).
+
+
+ @see org.bouncycastle.crypto.Digest#update(byte[], int, int)
+
+
+ @see org.bouncycastle.crypto.Digest#doFinal(byte[], int)
+
+
+ @see org.bouncycastle.crypto.Digest#reset()
+
+
+
+ RFC 2246 6.1
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246 6.2.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Accept only the group parameters specified in RFC 5054 Appendix A.
+
+
+ Specify a custom set of acceptable group parameters.
+
+ @param groups a {@link Vector} of acceptable {@link SRP6GroupParameters}
+
+
+ Buffers input until the hash algorithm is determined.
+
+
+ @return a {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ Encode this {@link DigitallySigned} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link DigitallySigned} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link DigitallySigned} object.
+ @throws IOException
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check that there are no "extra" messages left in the current inbound flight
+
+
+ RFC 4347 4.1.2.5 Anti-replay
+
+ Support fast rejection of duplicate records by maintaining a sliding receive window
+
+
+ Check whether a received record with the given sequence number should be rejected as a duplicate.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of a received record.
+ @return true if the record should be discarded without further processing.
+
+
+ Report that a received record with the given sequence number passed authentication checks.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of an authenticated record.
+
+
+ When a new epoch begins, sequence numbers begin again at 0
+
+
+ RFC 4492 5.4. (Errata ID: 2389)
+
+
+
+ RFC 4492 5.4
+
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a prime field.
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a characteristic-2 field.
+
+
+ Indicates that a named curve is used. This option SHOULD be used when applicable.
+
+
+
+ RFC 4492 5.1.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 5705
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ Encode this {@link HeartbeatExtension} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatExtension} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatExtension} object.
+ @throws IOException
+
+
+ Encode this {@link HeartbeatMessage} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatMessage} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatMessage} object.
+ @throws IOException
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ RFC 4492 5.1.1
+ The named curves defined here are those specified in SEC 2 [13]. Note that many of
+ these curves are also recommended in ANSI X9.62 [7] and FIPS 186-2 [11]. Values 0xFE00
+ through 0xFEFF are reserved for private use. Values 0xFF01 and 0xFF02 indicate that the
+ client supports arbitrary prime and characteristic-2 curves, respectively (the curve
+ parameters must be encoded explicitly in ECParameters).
+
+
+
+ Encode this {@link NewSessionTicket} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link NewSessionTicket} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link NewSessionTicket} object.
+ @throws IOException
+
+
+ RFC 3546 3.6
+
+
+ @param responderIDList
+ an {@link IList} of {@link ResponderID}, specifying the list of trusted OCSP
+ responders. An empty list has the special meaning that the responders are
+ implicitly known to the server - e.g., by prior arrangement.
+ @param requestExtensions
+ OCSP request extensions. A null value means that there are no extensions.
+
+
+ @return an {@link IList} of {@link ResponderID}
+
+
+ @return OCSP request extensions
+
+
+ Encode this {@link OcspStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link OcspStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return an {@link OcspStatusRequest} object.
+ @throws IOException
+
+
+ RFC 5246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+
+
+ An implementation of the TLS 1.0/1.1/1.2 record layer, allowing downgrade to SSLv3.
+
+
+ RFC 5246 E.1. "Earlier versions of the TLS specification were not fully clear on what the
+ record layer version number (TLSPlaintext.version) should contain when sending ClientHello
+ (i.e., before it is known which version of the protocol will be employed). Thus, TLS servers
+ compliant with this specification MUST accept any value {03,XX} as the record layer version
+ number for ClientHello."
+
+
+ @return {@link ConnectionEnd}
+
+
+ @return {@link CipherSuite}
+
+
+ @return {@link CompressionMethod}
+
+
+ @return {@link PRFAlgorithm}
+
+
+ Encode this {@link ServerDHParams} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerDHParams} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerDHParams} object.
+ @throws IOException
+
+
+ Encode this {@link ServerName} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerName} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerName} object.
+ @throws IOException
+
+
+ @param serverNameList an {@link IList} of {@link ServerName}.
+
+
+ @return an {@link IList} of {@link ServerName}.
+
+
+ Encode this {@link ServerNameList} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerNameList} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerNameList} object.
+ @throws IOException
+
+
+ Encode this {@link ServerSRPParams} to an {@link OutputStream}.
+
+ @param output
+ the {@link OutputStream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerSRPParams} from an {@link InputStream}.
+
+ @param input
+ the {@link InputStream} to parse from.
+ @return a {@link ServerSRPParams} object.
+ @throws IOException
+
+
+ RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned)
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ @param hash {@link HashAlgorithm}
+ @param signature {@link SignatureAlgorithm}
+
+
+ @return {@link HashAlgorithm}
+
+
+ @return {@link SignatureAlgorithm}
+
+
+ Encode this {@link SignatureAndHashAlgorithm} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link SignatureAndHashAlgorithm} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link SignatureAndHashAlgorithm} object.
+ @throws IOException
+
+
+ An implementation of {@link TlsSRPIdentityManager} that simulates the existence of "unknown" identities
+ to obscure the fact that there is no verifier for them.
+
+
+ Create a {@link SimulatedTlsSRPIdentityManager} that implements the algorithm from RFC 5054 2.5.1.3
+
+ @param group the {@link SRP6GroupParameters} defining the group that SRP is operating in
+ @param seedKey the secret "seed key" referred to in RFC 5054 2.5.1.3
+ @return an instance of {@link SimulatedTlsSRPIdentityManager}
+
+
+ HMAC implementation based on original internet draft for HMAC (RFC 2104)
+
+ The difference is that padding is concatentated versus XORed with the key
+
+ H(K + opad, H(K + ipad, text))
+
+
+ Base constructor for one of the standard digest algorithms that the byteLength of
+ the algorithm is know for. Behaviour is undefined for digests other than MD5 or SHA1.
+
+ @param digest the digest.
+
+
+ Reset the mac generator.
+
+
+ RFC 4680
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called by the protocol handler to report the server certificate.
+
+
+ This method is responsible for certificate verification and validation
+
+ The server received
+
+
+
+
+ Return client credentials in response to server's certificate request
+
+
+ A containing server certificate request details
+
+
+ A to be used for client authentication
+ (or null for no client authentication)
+
+
+
+
+
+ A generic TLS 1.0-1.2 / SSLv3 block cipher. This can be used for AES or 3DES for example.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called at the start of a new TLS session, before any other methods.
+
+
+ A
+
+
+
+ Return the session this client wants to resume, if any.
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ A representing the resumable session to be used for this connection,
+ or null to use a new session.
+
+
+
+
+ Return the to use for the TLSPlaintext.version field prior to
+ receiving the server version. NOTE: This method is not called for DTLS.
+
+
+ See RFC 5246 E.1.: "TLS clients that wish to negotiate with older servers MAY send any value
+ {03,XX} as the record layer version number. Typical values would be {03,00}, the lowest
+ version number supported by the client, and the value of ClientHello.client_version. No
+ single value will guarantee interoperability with all old servers, but this is a complex
+ topic beyond the scope of this document."
+
+ The to use.
+
+
+
+ Get the list of cipher suites that this client supports.
+
+
+ An array of values, each specifying a supported cipher suite.
+
+
+
+
+ Get the list of compression methods that this client supports.
+
+
+ An array of values, each specifying a supported compression method.
+
+
+
+
+ Get the (optional) table of client extensions to be included in (extended) client hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+
+
+
+ Notifies the client of the session_id sent in the ServerHello.
+
+ An array of
+
+
+
+ Report the cipher suite that was selected by the server.
+
+
+ The protocol handler validates this value against the offered cipher suites
+
+
+
+ A
+
+
+
+
+ Report the compression method that was selected by the server.
+
+
+ The protocol handler validates this value against the offered compression methods
+
+
+
+ A
+
+
+
+
+ Report the extensions from an extended server hello.
+
+
+ Will only be called if we returned a non-null result from .
+
+
+ A (Int32 -> byte[])
+
+
+
+ A list of
+
+
+
+
+ Return an implementation of to negotiate the key exchange
+ part of the protocol.
+
+
+ A
+
+
+
+
+
+ Return an implementation of to handle authentication
+ part of the protocol.
+
+
+
+
+ A list of
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message
+
+ This method will be called (only) when a NewSessionTicket handshake message is received. The
+ ticket is opaque to the client and clients MUST NOT examine the ticket under the assumption
+ that it complies with e.g. RFC 5077 4. Recommended Ticket Construction.
+
+ The ticket
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the server
+ @param output The stream of data to the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Initiates a TLS handshake in the role of client.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#NotifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsClient The {@link TlsClient} to use for the handshake.
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+ Used to get the resumable session, if any, used by this connection. Only available after the
+ handshake has successfully completed.
+
+ @return A {@link TlsSession} representing the resumable session used by this connection, or
+ null if no resumable session available.
+ @see TlsPeer#NotifyHandshakeComplete()
+
+
+ Export keying material according to RFC 5705: "Keying Material Exporters for TLS".
+
+ @param asciiLabel indicates which application will use the exported keys.
+ @param context_value allows the application using the exporter to mix its own data with the TLS PRF for
+ the exporter output.
+ @param length the number of bytes to generate
+ @return a pseudorandom bit string of 'length' bytes generated from the master_secret.
+
+
+ (D)TLS DH key exchange.
+
+
+ (D)TLS ECDHE key exchange (see RFC 4492).
+
+
+ (D)TLS ECDH key exchange (see RFC 4492).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic interface for key exchange implementations in (D)TLS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
+
+
+
+ Generate a new instance of an TlsMac.
+
+ @param context the TLS client context
+ @param digest The digest to use.
+ @param key A byte-array where the key for this MAC is located.
+ @param keyOff The number of bytes to skip, before the key starts in the buffer.
+ @param keyLen The length of the key.
+
+
+ @return the MAC write secret
+
+
+ @return The output length of this MAC.
+
+
+ Calculate the MAC for some given data.
+
+ @param type The message type of the message.
+ @param message A byte-buffer containing the message.
+ @param offset The number of bytes to skip, before the message starts.
+ @param length The length of the message.
+ @return A new byte-buffer containing the MAC value.
+
+
+
+ This exception will be thrown(only) when the connection is closed by the peer without sending a
+ close_notify warning alert.
+
+
+ If this happens, the TLS protocol cannot rule out truncation of the connection data (potentially
+ malicious). It may be possible to check for truncation via some property of a higher level protocol
+ built upon TLS, e.g.the Content-Length header for HTTPS.
+
+
+
+
+ A NULL CipherSuite, with optional MAC.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on
+ gmt_unix_time containing the current time, we recommend that implementors MAY provide the
+ ability to set gmt_unix_time as an option only, off by default."
+
+
+ true if the current time should be used in the gmt_unix_time field of
+ Random, or false if gmt_unix_time should contain a cryptographically
+ random value.
+
+
+
+
+ Report whether the server supports secure renegotiation
+
+
+ The protocol handler automatically processes the relevant extensions
+
+
+ A , true if the server supports secure renegotiation
+
+
+
+
+
+ Return an implementation of to handle record compression.
+
+ A
+
+
+
+
+ Return an implementation of to use for encryption/decryption.
+
+ A
+
+
+
+ This method will be called when an alert is raised by the protocol.
+
+
+ A human-readable message explaining what caused this alert. May be null.
+ The Exception that caused this alert to be raised. May be null.
+
+
+ This method will be called when an alert is received from the remote peer.
+
+
+
+
+ Notifies the peer that the handshake has been successfully completed.
+
+
+
+ This method is called, when a change cipher spec message is received.
+
+ @throws IOException If the message has an invalid content or the handshake is not in the correct
+ state.
+
+
+ Read data from the network. The method will return immediately, if there is still some data
+ left in the buffer, or block until some application data has been read from the network.
+
+ @param buf The buffer where the data will be copied to.
+ @param offset The position where the data will be placed in the buffer.
+ @param len The maximum number of bytes to read.
+ @return The number of bytes read.
+ @throws IOException If something goes wrong during reading data.
+
+
+ Send some application data to the remote system.
+
+ The method will handle fragmentation internally.
+
+ @param buf The buffer with the data.
+ @param offset The position in the buffer where the data is placed.
+ @param len The length of the data.
+ @throws IOException If something goes wrong during sending.
+
+
+ The secure bidirectional stream for this connection
+ Only allowed in blocking mode.
+
+
+ Should be called in non-blocking mode when the input data reaches EOF.
+
+
+ Offer input from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the input buffer is "owned" by this object. Other code
+ must not attempt to do anything with it.
+
+ This method will decrypt and process all records that are fully available.
+ If only part of a record is available, the buffer will be retained until the
+ remainder of the record is offered.
+
+ If any records containing application data were processed, the decrypted data
+ can be obtained using {@link #readInput(byte[], int, int)}. If any records
+ containing protocol data were processed, a response may have been generated.
+ You should always check to see if there is any available output after calling
+ this method by calling {@link #getAvailableOutputBytes()}.
+ @param input The input buffer to offer
+ @throws IOException If an error occurs while decrypting or processing a record
+
+
+ Gets the amount of received application data. A call to {@link #readInput(byte[], int, int)}
+ is guaranteed to be able to return at least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available application data
+
+
+ Retrieves received application data. Use {@link #getAvailableInputBytes()} to check
+ how much application data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the application data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Offer output from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the specified section of the buffer will have been
+ processed. Use {@link #readOutput(byte[], int, int)} to get the bytes to
+ transmit to the other peer.
+
+ This method must not be called until after the handshake is complete! Attempting
+ to call it before the handshake is complete will result in an exception.
+ @param buffer The buffer containing application data to encrypt
+ @param offset The offset at which to begin reading data
+ @param length The number of bytes of data to read
+ @throws IOException If an error occurs encrypting the data, or the handshake is not complete
+
+
+ Gets the amount of encrypted data available to be sent. A call to
+ {@link #readOutput(byte[], int, int)} is guaranteed to be able to return at
+ least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available encrypted data
+
+
+ Retrieves encrypted data to be sent. Use {@link #getAvailableOutputBytes()} to check
+ how much encrypted data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the encrypted data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Closes this connection.
+
+ @throws IOException If something goes wrong during closing.
+
+
+ Make sure the InputStream 'buf' now empty. Fail otherwise.
+
+ @param buf The InputStream to check.
+ @throws IOException If 'buf' is not empty.
+
+
+ 'sender' only relevant to SSLv3
+
+
+ Both streams can be the same object
+
+
+ (D)TLS PSK key exchange (RFC 4279).
+
+
+ (D)TLS and SSLv3 RSA key exchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A (Int32 -> byte[]). Will never be null.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the (optional) table of server extensions to be included in (extended) server hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+ A (). May be null.
+
+
+
+
+
+
+
+
+ This method will be called (only) if the server included an extension of type
+ "status_request" with empty "extension_data" in the extended server hello. See RFC 3546
+ 3.6. Certificate Status Request. If a non-null is returned, it
+ is sent to the client as a handshake message of type "certificate_status".
+
+ A to be sent to the client (or null for none).
+
+
+
+
+
+
+
+
+
+ ()
+
+
+
+
+ Called by the protocol handler to report the client certificate, only if GetCertificateRequest
+ returned non-null.
+
+ Note: this method is responsible for certificate verification and validation.
+ the effective client certificate (may be an empty chain).
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message.
+
+ This method will be called (only) if a NewSessionTicket extension was sent by the server. See
+ RFC 5077 4. Recommended Ticket Construction for recommended format and protection.
+
+ The ticket)
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Receives a TLS handshake in the role of server.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#notifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsServer
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+
+
+
+ Check whether the given SRP group parameters are acceptable for use.
+
+ @param group the {@link SRP6GroupParameters} to check
+ @return true if (and only if) the specified group parameters are acceptable
+
+
+ Lookup the {@link TlsSRPLoginParameters} corresponding to the specified identity.
+
+ NOTE: To avoid "identity probing", unknown identities SHOULD be handled as recommended in RFC
+ 5054 2.5.1.3. {@link SimulatedTlsSRPIdentityManager} is provided for this purpose.
+
+ @param identity
+ the SRP identity sent by the connecting client
+ @return the {@link TlsSRPLoginParameters} for the specified identity, or else 'simulated'
+ parameters if the identity is not recognized. A null value is also allowed, but not
+ recommended.
+
+
+ (D)TLS SRP key exchange (RFC 5054).
+
+
+ RFC 5764 DTLS Extension to Establish Keys for SRTP.
+
+
+
+
+
+
+
+
+
+
+
+ Some helper functions for MicroTLS.
+
+
+ Add a 'signature_algorithms' extension to existing extensions.
+
+ @param extensions A {@link Hashtable} to add the extension to.
+ @param supportedSignatureAlgorithms {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ Get a 'signature_algorithms' extension from extensions.
+
+ @param extensions A {@link Hashtable} to get the extension from, if it is present.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}, or null.
+ @throws IOException
+
+
+ Create a 'signature_algorithms' extension value.
+
+ @param supportedSignatureAlgorithms A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @return A byte array suitable for use as an extension value.
+ @throws IOException
+
+
+ Read 'signature_algorithms' extension data.
+
+ @param extensionData The extension data.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ RFC 6066 5.
+
+
+ Encode this {@link UrlAndHash} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link UrlAndHash} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link UrlAndHash} object.
+ @throws IOException
+
+
+ RFC 4681
+
+
+ RFC 5764 4.1.1
+
+
+ @param protectionProfiles see {@link SrtpProtectionProfile} for valid constants.
+ @param mki valid lengths from 0 to 255.
+
+
+ @return see {@link SrtpProtectionProfile} for valid constants.
+
+
+ @return valid lengths from 0 to 255.
+
+
+ return a = a + b - b preserved.
+
+
+ unsigned comparison on two arrays - note the arrays may
+ start with leading zeros.
+
+
+ return z = x / y - done in place (z value preserved, x contains the
+ remainder)
+
+
+ return whether or not a BigInteger is probably prime with a
+ probability of 1 - (1/2)**certainty.
+ From Knuth Vol 2, pg 395.
+
+
+ Calculate the numbers u1, u2, and u3 such that:
+
+ u1 * a + u2 * b = u3
+
+ where u3 is the greatest common divider of a and b.
+ a and b using the extended Euclid algorithm (refer p. 323
+ of The Art of Computer Programming vol 2, 2nd ed).
+ This also seems to have the side effect of calculating
+ some form of multiplicative inverse.
+
+ @param a First number to calculate gcd for
+ @param b Second number to calculate gcd for
+ @param u1Out the return object for the u1 value
+ @return The greatest common divisor of a and b
+
+
+ return w with w = x * x - w is assumed to have enough space.
+
+
+ return x with x = y * z - x is assumed to have enough space.
+
+
+ Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size)
+
+
+ Montgomery multiplication: a = x * y * R^(-1) mod m
+
+ Based algorithm 14.36 of Handbook of Applied Cryptography.
+
+ m, x, y should have length n
+ a should have length (n + 1)
+ b = 2^32, R = b^n
+
+ The result is put in x
+
+ NOTE: the indices of x, y, m, a different in HAC and in Java
+
+
+ return x = x % y - done in place (y value preserved)
+
+
+ do a left shift - this returns a new array.
+
+
+ do a right shift - this does it in place.
+
+
+ do a right shift by one - this does it in place.
+
+
+ returns x = x - y - we assume x is >= y
+
+
+ Class representing a simple version of a big decimal. A
+ SimpleBigDecimal is basically a
+ {@link java.math.BigInteger BigInteger} with a few digits on the right of
+ the decimal point. The number of (binary) digits on the right of the decimal
+ point is called the scale of the SimpleBigDecimal.
+ Unlike in {@link java.math.BigDecimal BigDecimal}, the scale is not adjusted
+ automatically, but must be set manually. All SimpleBigDecimals
+ taking part in the same arithmetic operation must have equal scale. The
+ result of a multiplication of two SimpleBigDecimals returns a
+ SimpleBigDecimal with double scale.
+
+
+ Returns a SimpleBigDecimal representing the same numerical
+ value as value.
+ @param value The value of the SimpleBigDecimal to be
+ created.
+ @param scale The scale of the SimpleBigDecimal to be
+ created.
+ @return The such created SimpleBigDecimal.
+
+
+ Constructor for SimpleBigDecimal. The value of the
+ constructed SimpleBigDecimal Equals bigInt /
+ 2scale.
+ @param bigInt The bigInt value parameter.
+ @param scale The scale of the constructed SimpleBigDecimal.
+
+
+ Class holding methods for point multiplication based on the window
+ τ-adic nonadjacent form (WTNAF). The algorithms are based on the
+ paper "Improved Algorithms for Arithmetic on Anomalous Binary Curves"
+ by Jerome A. Solinas. The paper first appeared in the Proceedings of
+ Crypto 1997.
+
+
+ The window width of WTNAF. The standard value of 4 is slightly less
+ than optimal for running time, but keeps space requirements for
+ precomputation low. For typical curves, a value of 5 or 6 results in
+ a better running time. When changing this value, the
+ αu's must be computed differently, see
+ e.g. "Guide to Elliptic Curve Cryptography", Darrel Hankerson,
+ Alfred Menezes, Scott Vanstone, Springer-Verlag New York Inc., 2004,
+ p. 121-122
+
+
+ 24
+
+
+ The αu's for a=0 as an array
+ of ZTauElements.
+
+
+ The αu's for a=0 as an array
+ of TNAFs.
+
+
+ The αu's for a=1 as an array
+ of ZTauElements.
+
+
+ The αu's for a=1 as an array
+ of TNAFs.
+
+
+ Computes the norm of an element λ of
+ Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The norm of λ.
+
+
+ Computes the norm of an element λ of
+ R[τ], where λ = u + vτ
+ and u and u are real numbers (elements of
+ R).
+ @param mu The parameter μ of the elliptic curve.
+ @param u The real part of the element λ of
+ R[τ].
+ @param v The τ-adic part of the element
+ λ of R[τ].
+ @return The norm of λ.
+
+
+ Rounds an element λ of R[τ]
+ to an element of Z[τ], such that their difference
+ has minimal norm. λ is given as
+ λ = λ0 + λ1τ.
+ @param lambda0 The component λ0.
+ @param lambda1 The component λ1.
+ @param mu The parameter μ of the elliptic curve. Must
+ equal 1 or -1.
+ @return The rounded element of Z[τ].
+ @throws ArgumentException if lambda0 and
+ lambda1 do not have same scale.
+
+
+ Approximate division by n. For an integer
+ k, the value λ = s k / n is
+ computed to c bits of accuracy.
+ @param k The parameter k.
+ @param s The curve parameter s0 or
+ s1.
+ @param vm The Lucas Sequence element Vm.
+ @param a The parameter a of the elliptic curve.
+ @param m The bit length of the finite field
+ Fm.
+ @param c The number of bits of accuracy, i.e. the scale of the returned
+ SimpleBigDecimal.
+ @return The value λ = s k / n computed to
+ c bits of accuracy.
+
+
+ Computes the τ-adic NAF (non-adjacent form) of an
+ element λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The τ-adic NAF of λ.
+
+
+ Applies the operation τ() to an
+ AbstractF2mPoint.
+ @param p The AbstractF2mPoint to which τ() is applied.
+ @return τ(p)
+
+
+ Returns the parameter μ of the elliptic curve.
+ @param curve The elliptic curve from which to obtain μ.
+ The curve must be a Koblitz curve, i.e. a Equals
+ 0 or 1 and b Equals
+ 1.
+ @return μ of the elliptic curve.
+ @throws ArgumentException if the given ECCurve is not a Koblitz
+ curve.
+
+
+ Calculates the Lucas Sequence elements Uk-1 and
+ Uk or Vk-1 and
+ Vk.
+ @param mu The parameter μ of the elliptic curve.
+ @param k The index of the second element of the Lucas Sequence to be
+ returned.
+ @param doV If set to true, computes Vk-1 and
+ Vk, otherwise Uk-1 and
+ Uk.
+ @return An array with 2 elements, containing Uk-1
+ and Uk or Vk-1
+ and Vk.
+
+
+ Computes the auxiliary value tw. If the width is
+ 4, then for mu = 1, tw = 6 and for
+ mu = -1, tw = 10
+ @param mu The parameter μ of the elliptic curve.
+ @param w The window width of the WTNAF.
+ @return the auxiliary value tw
+
+
+ Computes the auxiliary values s0 and
+ s1 used for partial modular reduction.
+ @param curve The elliptic curve for which to compute
+ s0 and s1.
+ @throws ArgumentException if curve is not a
+ Koblitz curve (Anomalous Binary Curve, ABC).
+
+
+ Partial modular reduction modulo
+ (τm - 1)/(τ - 1).
+ @param k The integer to be reduced.
+ @param m The bitlength of the underlying finite field.
+ @param a The parameter a of the elliptic curve.
+ @param s The auxiliary values s0 and
+ s1.
+ @param mu The parameter μ of the elliptic curve.
+ @param c The precision (number of bits of accuracy) of the partial
+ modular reduction.
+ @return ρ := k partmod (τm - 1)/(τ - 1)
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by a BigInteger using the reduced τ-adic
+ NAF (RTNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param k The BigInteger by which to Multiply p.
+ @return k * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param lambda The element λ of
+ Z[τ].
+ @return λ * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method, given the TNAF
+ of λ.
+ @param p The AbstractF2mPoint to Multiply.
+ @param u The the TNAF of λ..
+ @return λ * p
+
+
+ Computes the [τ]-adic window NAF of an element
+ λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @param width The window width of the resulting WNAF.
+ @param pow2w 2width.
+ @param tw The auxiliary value tw.
+ @param alpha The αu's for the window width.
+ @return The [τ]-adic window NAF of
+ λ.
+
+
+ Does the precomputation for WTNAF multiplication.
+ @param p The ECPoint for which to do the precomputation.
+ @param a The parameter a of the elliptic curve.
+ @return The precomputation array for p.
+
+
+ Class representing an element of Z[τ]. Let
+ λ be an element of Z[τ]. Then
+ λ is given as λ = u + vτ. The
+ components u and v may be used directly, there
+ are no accessor methods.
+ Immutable class.
+
+
+ The "real" part of λ.
+
+
+ The "τ-adic" part of λ.
+
+
+ Constructor for an element λ of
+ Z[τ].
+ @param u The "real" part of λ.
+ @param v The "τ-adic" part of
+ λ.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(boolean)}
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ Simple shift-and-add multiplication. Serves as reference implementation
+ to verify (possibly faster) implementations, and for very small scalars.
+
+ @param p
+ The point to multiply.
+ @param k
+ The multiplier.
+ @return The result of the point multiplication kP.
+
+
+ Base class for an elliptic curve.
+
+
+ Adds PreCompInfo for a point on this curve, under a given name. Used by
+ ECMultipliers to save the precomputation for this ECPoint for use
+ by subsequent multiplication.
+
+ @param point
+ The ECPoint to store precomputations for.
+ @param name
+ A String used to index precomputations of different types.
+ @param preCompInfo
+ The values precomputed by the ECMultiplier.
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately.
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately. An (optional) z-scaling factor can be applied; effectively
+ each z coordinate is scaled by this value prior to normalization (but only one
+ actual multiplication is needed).
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+ @param off
+ The start of the range of points to normalize
+ @param len
+ The length of the range of points to normalize
+ @param iso
+ The (optional) z-scaling factor - can be null
+
+
+ Sets the default ECMultiplier, unless already set.
+
+
+ Decode a point on this curve from its ASN.1 encoding. The different
+ encodings are taken account of, including point compression for
+ Fp (X9.62 s 4.2.1 pg 17).
+ @return The decoded point.
+
+
+ Elliptic curve over Fp
+
+
+ The auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Solves a quadratic equation z2 + z = beta(X9.62
+ D.1.6) The other solution is z + 1.
+
+ @param beta
+ The value to solve the qradratic equation for.
+ @return the solution for z2 + z = beta or
+ null if no solution exists.
+
+
+ @return the auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Returns true if this is a Koblitz curve (ABC curve).
+ @return true if this is a Koblitz curve (ABC curve), false otherwise
+
+
+ Elliptic curves over F2m. The Weierstrass equation is given by
+ y2 + xy = x3 + ax2 + b.
+
+
+ The exponent m of F2m.
+
+
+ TPB: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ PPB: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ The point at infinity on this curve.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Return true if curve uses a Trinomial basis.
+
+ @return true if curve Trinomial, false otherwise.
+
+
+ return the field name for this field.
+
+ @return the string "Fp".
+
+
+ return a sqrt root - the routine verifies that the calculation
+ returns the right value - if none exists it returns null.
+
+
+ Class representing the Elements of the finite field
+ F2m in polynomial basis (PB)
+ representation. Both trinomial (Tpb) and pentanomial (Ppb) polynomial
+ basis representations are supported. Gaussian normal basis (GNB)
+ representation is not supported.
+
+
+ Indicates gaussian normal basis representation (GNB). Number chosen
+ according to X9.62. GNB is not implemented at present.
+
+
+ Indicates trinomial basis representation (Tpb). Number chosen
+ according to X9.62.
+
+
+ Indicates pentanomial basis representation (Ppb). Number chosen
+ according to X9.62.
+
+
+ Tpb or Ppb.
+
+
+ The exponent m of F2m.
+
+
+ The LongArray holding the bits.
+
+
+ Constructor for Ppb.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Constructor for Tpb.
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Checks, if the ECFieldElements a and b
+ are elements of the same field F2m
+ (having the same representation).
+ @param a field element.
+ @param b field element to be compared.
+ @throws ArgumentException if a and b
+ are not elements of the same field
+ F2m (having the same
+ representation).
+
+
+ @return the representation of the field
+ F2m, either of
+ {@link F2mFieldElement.Tpb} (trinomial
+ basis representation) or
+ {@link F2mFieldElement.Ppb} (pentanomial
+ basis representation).
+
+
+ @return the degree m of the reduction polynomial
+ f(z).
+
+
+ @return Tpb: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ Ppb: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always returns 0
+ Ppb: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always set to 0
+ Ppb: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ base class for points on elliptic curves.
+
+
+ Normalizes this point, and then returns the affine x-coordinate.
+
+ Note: normalization can be expensive, this method is deprecated in favour
+ of caller-controlled normalization.
+
+
+ Normalizes this point, and then returns the affine y-coordinate.
+
+ Note: normalization can be expensive, this method is deprecated in favour
+ of caller-controlled normalization.
+
+
+ Returns the affine x-coordinate after checking that this point is normalized.
+
+ @return The affine x-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the affine y-coordinate after checking that this point is normalized
+
+ @return The affine y-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the x-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineXCoord if you expect the point to already have been normalized.
+
+ @return the x-coordinate of this point
+
+
+ Returns the y-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineYCoord if you expect the point to already have been normalized.
+
+ @return the y-coordinate of this point
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system.
+
+ @return a new ECPoint instance representing the same point, but with normalized coordinates
+
+
+ return the field element encoded with point compression. (S 4.3.6)
+
+
+ Multiplies this ECPoint by the given number.
+ @param k The multiplicator.
+ @return k * this.
+
+
+ Elliptic curve points over Fp
+
+
+ Create a point which encodes without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+
+ Create a point that encodes with or without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+
+ Elliptic curve points over F2m
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+ @param withCompression true if encode with point compression.
+
+
+ Constructor for point at infinity
+
+
+ Joye's double-add algorithm.
+
+
+ Interface for classes encapsulating a point multiplication algorithm
+ for ECPoints.
+
+
+ Multiplies the ECPoint p by k, i.e.
+ p is added k times to itself.
+ @param p The ECPoint to be multiplied.
+ @param k The factor by which p is multiplied.
+ @return p multiplied by k.
+
+
+ Class holding precomputation data for fixed-point multiplications.
+
+
+ Array holding the precomputed ECPoints used for a fixed
+ point multiplication.
+
+
+ The width used for the precomputation. If a larger width precomputation
+ is already available this may be larger than was requested, so calling
+ code should refer to the actual width.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left) using
+ mixed coordinates.
+
+
+ By default, addition will be done in Jacobian coordinates, and doubling will be done in
+ Modified Jacobian coordinates (independent of the original coordinate system of each point).
+
+
+ Montgomery ladder.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (left-to-right).
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left).
+
+
+ Interface for classes storing precomputation data for multiplication
+ algorithms. Used as a Memento (see GOF patterns) for
+ WNafMultiplier.
+
+
+ Class implementing the WNAF (Window Non-Adjacent Form) multiplication
+ algorithm.
+
+
+ Multiplies this by an integer k using the
+ Window NAF method.
+ @param k The integer by which this is multiplied.
+ @return A new ECPoint which equals this
+ multiplied by k.
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Class holding precomputation data for the WNAF (Window Non-Adjacent Form)
+ algorithm.
+
+
+ Array holding the precomputed ECPoints used for a Window
+ NAF multiplication.
+
+
+ Array holding the negations of the precomputed ECPoints used
+ for a Window NAF multiplication.
+
+
+ Holds an ECPoint representing Twice(this). Used for the
+ Window NAF multiplication to create or extend the precomputed values.
+
+
+ Computes the Window NAF (non-adjacent Form) of an integer.
+ @param width The width w of the Window NAF. The width is
+ defined as the minimal number w, such that for any
+ w consecutive digits in the resulting representation, at
+ most one is non-zero.
+ @param k The integer of which the Window NAF is computed.
+ @return The Window NAF of the given width, such that the following holds:
+ k = ∑i=0l-1 ki2i
+ , where the ki denote the elements of the
+ returned byte[].
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @return the window size to use
+
+
+ Class implementing the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by k using the reduced τ-adic NAF (RTNAF)
+ method.
+ @param p The AbstractF2mPoint to multiply.
+ @param k The integer by which to multiply k.
+ @return p multiplied by k.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ] using
+ the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to multiply.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @return p multiplied by λ.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the window τ-adic NAF (TNAF) method, given the
+ WTNAF of λ.
+ @param p The AbstractF2mPoint to multiply.
+ @param u The the WTNAF of λ..
+ @return λ * p
+
+
+ Class holding precomputation data for the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Array holding the precomputed AbstractF2mPoints used for the
+ WTNAF multiplication in
+ {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
+ WTauNafMultiplier.multiply()}.
+
+
+ 'Zeroless' Signed Digit Left-to-Right.
+
+
+ 'Zeroless' Signed Digit Right-to-Left.
+
+
+ Utility methods for generating primes and testing for primality.
+
+
+ Used to return the output from the
+ {@linkplain Primes#enhancedMRProbablePrimeTest(BigInteger, SecureRandom, int) Enhanced
+ Miller-Rabin Probabilistic Primality Test}
+
+
+ Used to return the output from the {@linkplain Primes#generateSTRandomPrime(Digest, int, byte[]) Shawe-Taylor Random_Prime Routine}
+
+
+ FIPS 186-4 C.6 Shawe-Taylor Random_Prime Routine
+
+ Construct a provable prime number using a hash function.
+
+ @param hash
+ the {@link Digest} instance to use (as "Hash()"). Cannot be null.
+ @param length
+ the length (in bits) of the prime to be generated. Must be at least 2.
+ @param inputSeed
+ the seed to be used for the generation of the requested prime. Cannot be null or
+ empty.
+ @return an {@link STOutput} instance containing the requested prime.
+
+
+ FIPS 186-4 C.3.2 Enhanced Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases. This is an
+ alternative to {@link #isMRProbablePrime(BigInteger, SecureRandom, int)} that provides more
+ information about a composite candidate, which may be useful when generating or validating
+ RSA moduli.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return an {@link MROutput} instance that can be further queried for details.
+
+
+ A fast check for small divisors, up to some implementation-specific limit.
+
+ @param candidate
+ the {@link BigInteger} instance to test for division by small factors.
+
+ @return true if the candidate is found to have any small factors,
+ false otherwise.
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return false if any witness to compositeness is found amongst the chosen bases
+ (so candidate is definitely NOT prime), or else true
+ (indicating primality with some probability dependent on the number of iterations
+ that were performed).
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test (to a fixed base).
+
+ Run a single iteration of the Miller-Rabin algorithm against the specified base.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param baseValue
+ the base value to use for this iteration.
+ @return false if the specified base is a witness to compositeness (so
+ candidate is definitely NOT prime), or else true.
+
+
+
+
+ BasicOcspResponse ::= SEQUENCE {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL
+ }
+
+
+
+
+ The DER encoding of the tbsResponseData field.
+ In the event of an encoding error.
+
+
+ The certificates, if any, associated with the response.
+ In the event of an encoding error.
+
+
+
+ Verify the signature against the tbsResponseData object we contain.
+
+
+
+ The ASN.1 encoded representation of this object.
+
+
+ Generator for basic OCSP response objects.
+
+
+ basic constructor
+
+
+ construct with the responderID to be the SHA-1 keyHash of the passed in public key.
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param thisUpdate date this response was valid on
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Set the extensions for the response.
+
+ @param responseExtensions the extension object to carry.
+
+
+
+ Generate the signed response using the passed in signature calculator.
+
+ Implementation of signing calculator factory.
+ The certificate chain associated with the response signer.
+ "produced at" date.
+
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ create from an issuer certificate and the serial number of the
+ certificate it signed.
+ @exception OcspException if any problems occur creating the id fields.
+
+
+ return the serial number for the certificate associated
+ with this request.
+
+
+ Create a new CertificateID for a new serial number derived from a previous one
+ calculated for the same CA certificate.
+
+ @param original the previously calculated CertificateID for the CA.
+ @param newSerialNumber the serial number for the new certificate of interest.
+
+ @return a new CertificateID for newSerialNumber
+
+
+
+ OcspRequest ::= SEQUENCE {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+ TBSRequest ::= SEQUENCE {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList SEQUENCE OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+ Signature ::= SEQUENCE {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL}
+
+ Version ::= INTEGER { v1(0) }
+
+ Request ::= SEQUENCE {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+ CertID ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ Return the DER encoding of the tbsRequest field.
+ @return DER encoding of tbsRequest
+ @throws OcspException in the event of an encoding error.
+
+
+ return the object identifier representing the signature algorithm
+
+
+ If the request is signed return a possibly empty CertStore containing the certificates in the
+ request. If the request is not signed the method returns null.
+
+ @return null if not signed, a CertStore otherwise
+ @throws OcspException
+
+
+ Return whether or not this request is signed.
+
+ @return true if signed false otherwise.
+
+
+ Verify the signature against the TBSRequest object we contain.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Add a request for the given CertificateID.
+
+ @param certId certificate ID of interest
+
+
+ Add a request with extensions
+
+ @param certId certificate ID of interest
+ @param singleRequestExtensions the extensions to attach to the request
+
+
+ Set the requestor name to the passed in X509Principal
+
+ @param requestorName a X509Principal representing the requestor name.
+
+
+ Generate an unsigned request
+
+ @return the OcspReq
+ @throws OcspException
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ base generator for an OCSP response - at the moment this only supports the
+ generation of responses containing BasicOCSP responses.
+
+
+ note 4 is not used.
+
+
+ Carrier for a ResponderID.
+
+
+ wrapper for the RevokedInfo object
+
+
+ return the revocation reason. Note: this field is optional, test for it
+ with hasRevocationReason() first.
+ @exception InvalidOperationException if a reason is asked for and none is avaliable
+
+
+ Return the status object for the response - null indicates good.
+
+ @return the status object for the response, null if it is good.
+
+
+ return the NextUpdate value - note: this is an optional field so may
+ be returned as null.
+
+ @return nextUpdate, or null if not present.
+
+
+ wrapper for the UnknownInfo object
+
+
+
+ Utility class for creating IBasicAgreement objects from their names/Oids
+
+
+
+
+ Cipher Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Utility class for creating IDigest objects from their names/Oids
+
+
+
+
+ Returns a ObjectIdentifier for a given digest mechanism.
+
+ A string representation of the digest meanism.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ A class containing methods to interface the BouncyCastle world to the .NET Crypto world.
+
+
+
+
+ Create an System.Security.Cryptography.X509Certificate from an X509Certificate Structure.
+
+
+ A System.Security.Cryptography.X509Certificate.
+
+
+
+ Utility class for creating HMac object from their names/Oids
+
+
+
+
+
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Create and auto-seed an instance based on the given algorithm.
+
+ Equivalent to GetInstance(algorithm, true)
+ e.g. "SHA256PRNG"
+
+
+
+ Create an instance based on the given algorithm, with optional auto-seeding
+
+ e.g. "SHA256PRNG"
+ If true, the instance will be auto-seeded.
+
+
+
+ To replicate existing predictable output, replace with GetInstance("SHA1PRNG", false), followed by SetSeed(seed)
+
+
+
+ Use the specified instance of IRandomGenerator as random source.
+
+ This constructor performs no seeding of either the IRandomGenerator or the
+ constructed SecureRandom. It is the responsibility of the client to provide
+ proper seed material as necessary/appropriate for the given IRandomGenerator
+ implementation.
+
+ The source to generate all random bytes from.
+
+
+ base constructor.
+
+
+ create a SecurityUtilityException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Signer Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns an ObjectIdentifier for a given encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the OID is not available.
+
+
+
+ Utility class for creating IWrapper objects from their names/Oids
+
+
+
+ PEM generator for the original set of PEM objects used in Open SSL.
+
+
+ Class for reading OpenSSL PEM encoded streams containing
+ X509 certificates, PKCS8 encoded keys and PKCS7 objects.
+
+ In the case of PKCS7 objects the reader will return a CMS ContentInfo object. Keys and
+ Certificates will be returned using the appropriate java.security type.
+
+
+ Create a new PemReader
+
+ @param reader the Reader
+
+
+ Create a new PemReader with a password finder
+
+ @param reader the Reader
+ @param pFinder the password finder
+
+
+ Reads in a X509Certificate.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509CRL.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS10 certification request.
+
+ @return the certificate request.
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509 Attribute Certificate.
+
+ @return the X509 Attribute Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS7 object. This returns a ContentInfo object suitable for use with the CMS
+ API.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Read a Key Pair
+
+
+ General purpose writer for OpenSSL PEM objects.
+
+
+ The TextWriter object to write the output to.
+
+
+ Constructor for an unencrypted private key PEM object.
+
+ @param key private key to be encoded.
+
+
+ Constructor for an encrypted private key PEM object.
+
+ @param key private key to be encoded
+ @param algorithm encryption algorithm to use
+ @param provider provider to use
+ @throws NoSuchAlgorithmException if algorithm/mode cannot be found
+
+
+
+ A class for verifying and creating Pkcs10 Certification requests.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ The factory for signature calculators to sign the PKCS#10 request with.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Get the public key.
+
+ The public key.
+
+
+
+ Verify Pkcs10 Cert Request is valid.
+
+ true = valid.
+
+
+
+ A class for creating and verifying Pkcs10 Certification requests (this is an extension on ).
+ The requests are made using delay signing. This is useful for situations where
+ the private key is in another environment and not directly accessible (e.g. HSM)
+ So the first step creates the request, then the signing is done outside this
+ object and the signature is then used to complete the request.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+ After the object is constructed use the and finally the
+ SignRequest methods to finalize the request.
+
+
+
+ simply return the cert entry for the private key
+
+
+ Utility class for reencoding PKCS#12 files to definite length.
+
+
+ Just re-encode the outer layer of the PKCS#12 file to definite length encoding.
+
+ @param berPKCS12File - original PKCS#12 file
+ @return a byte array representing the DER encoding of the PFX structure
+ @throws IOException
+
+
+ Re-encode the PKCS#12 structure to definite length encoding at the inner layer
+ as well, recomputing the MAC accordingly.
+
+ @param berPKCS12File - original PKCS12 file.
+ @param provider - provider to use for MAC calculation.
+ @return a byte array representing the DER encoding of the PFX structure.
+ @throws IOException on parsing, encoding errors.
+
+
+
+ Returns the revocationDate.
+
+
+
+
+ Returns the certStatus.
+
+
+
+ Returns an immutable Set of X.509 attribute certificate
+ extensions that this PkixAttrCertChecker supports or
+ null if no extensions are supported.
+
+ Each element of the set is a String representing the
+ Object Identifier (OID) of the X.509 extension that is supported.
+
+
+ All X.509 attribute certificate extensions that a
+ PkixAttrCertChecker might possibly be able to process
+ should be included in the set.
+
+
+ @return an immutable Set of X.509 extension OIDs (in
+ String format) supported by this
+ PkixAttrCertChecker, or null if no
+ extensions are supported
+
+
+ Performs checks on the specified attribute certificate. Every handled
+ extension is rmeoved from the unresolvedCritExts
+ collection.
+
+ @param attrCert The attribute certificate to be checked.
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param holderCertPath The certificate path which belongs to the holder
+ certificate.
+ @param unresolvedCritExts a Collection of OID strings
+ representing the current set of unresolved critical extensions
+ @throws CertPathValidatorException if the specified attribute certificate
+ does not pass the check.
+
+
+ Returns a clone of this object.
+
+ @return a copy of this PkixAttrCertChecker
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ CertPathValidatorSpi implementation for X.509 Attribute Certificates la RFC 3281.
+
+ @see org.bouncycastle.x509.ExtendedPkixParameters
+
+
+ Validates an attribute certificate with the given certificate path.
+
+
+ params must be an instance of
+ ExtendedPkixParameters.
+
+ The target constraints in the params must be an
+ X509AttrCertStoreSelector with at least the attribute
+ certificate criterion set. Obey that also target informations may be
+ necessary to correctly validate this attribute certificate.
+
+ The attribute certificate issuer must be added to the trusted attribute
+ issuers with {@link ExtendedPkixParameters#setTrustedACIssuers(Set)}.
+
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param params The PKIX parameters.
+ @return A PKIXCertPathValidatorResult of the result of
+ validating the certPath.
+ @throws InvalidAlgorithmParameterException if params is
+ inappropriate for this validator.
+ @throws CertPathValidatorException if the verification fails.
+
+
+
+ Summary description for PkixBuilderParameters.
+
+
+
+ Returns an instance of PkixBuilderParameters.
+
+ This method can be used to get a copy from other
+ PKIXBuilderParameters, PKIXParameters,
+ and ExtendedPKIXParameters instances.
+
+
+ @param pkixParams The PKIX parameters to create a copy of.
+ @return An PkixBuilderParameters instance.
+
+
+
+ Excluded certificates are not used for building a certification path.
+
+ the excluded certificates.
+
+
+
+ Sets the excluded certificates which are not used for building a
+ certification path. If the ISet is null an
+ empty set is assumed.
+
+
+ The given set is cloned to protect it against subsequent modifications.
+
+ The excluded certificates to set.
+
+
+ Can alse handle ExtendedPKIXBuilderParameters and
+ PKIXBuilderParameters.
+
+ @param params Parameters to set.
+ @see org.bouncycastle.x509.ExtendedPKIXParameters#setParams(java.security.cert.PKIXParameters)
+
+
+ Makes a copy of this PKIXParameters object. Changes to the
+ copy will not affect the original and vice versa.
+
+ @return a copy of this PKIXParameters object
+
+
+ An immutable sequence of certificates (a certification path).
+
+ This is an abstract class that defines the methods common to all CertPaths.
+ Subclasses can handle different kinds of certificates (X.509, PGP, etc.).
+
+ All CertPath objects have a type, a list of Certificates, and one or more
+ supported encodings. Because the CertPath class is immutable, a CertPath
+ cannot change in any externally visible way after being constructed. This
+ stipulation applies to all public fields and methods of this class and any
+ added or overridden by subclasses.
+
+ The type is a string that identifies the type of Certificates in the
+ certification path. For each certificate cert in a certification path
+ certPath, cert.getType().equals(certPath.getType()) must be true.
+
+ The list of Certificates is an ordered List of zero or more Certificates.
+ This List and all of the Certificates contained in it must be immutable.
+
+ Each CertPath object must support one or more encodings so that the object
+ can be translated into a byte array for storage or transmission to other
+ parties. Preferably, these encodings should be well-documented standards
+ (such as PKCS#7). One of the encodings supported by a CertPath is considered
+ the default encoding. This encoding is used if no encoding is explicitly
+ requested (for the {@link #getEncoded()} method, for instance).
+
+ All CertPath objects are also Serializable. CertPath objects are resolved
+ into an alternate {@link CertPathRep} object during serialization. This
+ allows a CertPath object to be serialized into an equivalent representation
+ regardless of its underlying implementation.
+
+ CertPath objects can be created with a CertificateFactory or they can be
+ returned by other classes, such as a CertPathBuilder.
+
+ By convention, X.509 CertPaths (consisting of X509Certificates), are ordered
+ starting with the target certificate and ending with a certificate issued by
+ the trust anchor. That is, the issuer of one certificate is the subject of
+ the following one. The certificate representing the
+ {@link TrustAnchor TrustAnchor} should not be included in the certification
+ path. Unvalidated X.509 CertPaths may not follow these conventions. PKIX
+ CertPathValidators will detect any departure from these conventions that
+ cause the certification path to be invalid and throw a
+ CertPathValidatorException.
+
+ Concurrent Access
+
+ All CertPath objects must be thread-safe. That is, multiple threads may
+ concurrently invoke the methods defined in this class on a single CertPath
+ object (or more than one) with no ill effects. This is also true for the List
+ returned by CertPath.getCertificates.
+
+ Requiring CertPath objects to be immutable and thread-safe allows them to be
+ passed around to various pieces of code without worrying about coordinating
+ access. Providing this thread-safety is generally not difficult, since the
+ CertPath and List objects in question are immutable.
+
+ @see CertificateFactory
+ @see CertPathBuilder
+
+ CertPath implementation for X.509 certificates.
+
+
+
+ @param certs
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Returns an iteration of the encodings supported by this
+ certification path, with the default encoding
+ first. Attempts to modify the returned Iterator via its
+ remove method result in an UnsupportedOperationException.
+
+ @return an Iterator over the names of the supported encodings (as Strings)
+
+
+
+ Compares this certification path for equality with the specified object.
+ Two CertPaths are equal if and only if their types are equal and their
+ certificate Lists (and by implication the Certificates in those Lists)
+ are equal. A CertPath is never equal to an object that is not a CertPath.
+
+ This algorithm is implemented by this method. If it is overridden, the
+ behavior specified here must be maintained.
+
+ @param other
+ the object to test for equality with this certification path
+
+ @return true if the specified object is equal to this certification path,
+ false otherwise
+
+ @see Object#hashCode() Object.hashCode()
+
+
+ Returns the encoded form of this certification path, using
+ the default encoding.
+
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error occurs
+
+
+
+ Returns the encoded form of this certification path, using
+ the specified encoding.
+
+ @param encoding the name of the encoding to use
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error
+ occurs or the encoding requested is not supported
+
+
+
+
+ Returns the list of certificates in this certification
+ path.
+
+
+
+ Return a DERObject containing the encoded certificate.
+
+ @param cert the X509Certificate object to be encoded
+
+ @return the DERObject
+
+
+
+ Implements the PKIX CertPathBuilding algorithm for BouncyCastle.
+
+ @see CertPathBuilderSpi
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+
+ Summary description for PkixCertPathBuilderException.
+
+
+
+
+ Summary description for PkixCertPathBuilderResult.
+
+
+
+ * Initializes the internal state of this PKIXCertPathChecker.
+ *
+ * The forward flag specifies the order that certificates
+ * will be passed to the {@link #check check} method (forward or reverse). A
+ * PKIXCertPathChecker must support reverse checking
+ * and may support forward checking.
+ *
+ *
+ * @param forward
+ * the order that certificates are presented to the
+ * check method. If true,
+ * certificates are presented from target to most-trusted CA
+ * (forward); if false, from most-trusted CA to
+ * target (reverse).
+ * @exception CertPathValidatorException
+ * if this PKIXCertPathChecker is unable to
+ * check certificates in the specified order; it should never
+ * be thrown if the forward flag is false since reverse
+ * checking must be supported
+
+
+ Indicates if forward checking is supported. Forward checking refers to
+ the ability of the PKIXCertPathChecker to perform its
+ checks when certificates are presented to the check method
+ in the forward direction (from target to most-trusted CA).
+
+ @return true if forward checking is supported,
+ false otherwise
+
+
+ * Returns an immutable Set of X.509 certificate extensions
+ * that this PKIXCertPathChecker supports (i.e. recognizes,
+ * is able to process), or null if no extensions are
+ * supported.
+ *
+ * Each element of the set is a String representing the
+ * Object Identifier (OID) of the X.509 extension that is supported. The OID
+ * is represented by a set of nonnegative integers separated by periods.
+ *
+ * All X.509 certificate extensions that a PKIXCertPathChecker
+ * might possibly be able to process should be included in the set.
+ *
+ *
+ * @return an immutable Set of X.509 extension OIDs (in
+ * String format) supported by this
+ * PKIXCertPathChecker, or null if no
+ * extensions are supported
+
+
+ Performs the check(s) on the specified certificate using its internal
+ state and removes any critical extensions that it processes from the
+ specified collection of OID strings that represent the unresolved
+ critical extensions. The certificates are presented in the order
+ specified by the init method.
+
+ @param cert
+ the Certificate to be checked
+ @param unresolvedCritExts
+ a Collection of OID strings representing the
+ current set of unresolved critical extensions
+ @exception CertPathValidatorException
+ if the specified certificate does not pass the check
+
+
+ Returns a clone of this object. Calls the Object.clone()
+ method. All subclasses which maintain state must support and override
+ this method, if necessary.
+
+ @return a copy of this PKIXCertPathChecker
+
+
+ The Service Provider Interface (SPI)
+ for the {@link CertPathValidator CertPathValidator} class. All
+ CertPathValidator implementations must include a class (the
+ SPI class) that extends this class (CertPathValidatorSpi)
+ and implements all of its methods. In general, instances of this class
+ should only be accessed through the CertPathValidator class.
+ For details, see the Java Cryptography Architecture.
+
+ Concurrent Access
+
+ Instances of this class need not be protected against concurrent
+ access from multiple threads. Threads that need to access a single
+ CertPathValidatorSpi instance concurrently should synchronize
+ amongst themselves and provide the necessary locking before calling the
+ wrapping CertPathValidator object.
+
+ However, implementations of CertPathValidatorSpi may still
+ encounter concurrency issues, since multiple threads each
+ manipulating a different CertPathValidatorSpi instance need not
+ synchronize.
+
+ CertPathValidatorSpi implementation for X.509 Certificate validation a la RFC
+ 3280.
+
+
+
+ An exception indicating one of a variety of problems encountered when
+ validating a certification path.
+
+ A CertPathValidatorException provides support for wrapping
+ exceptions. The {@link #getCause getCause} method returns the throwable,
+ if any, that caused this exception to be thrown.
+
+ A CertPathValidatorException may also include the
+ certification path that was being validated when the exception was thrown
+ and the index of the certificate in the certification path that caused the
+ exception to be thrown. Use the {@link #getCertPath getCertPath} and
+ {@link #getIndex getIndex} methods to retrieve this information.
+
+ Concurrent Access
+
+ Unless otherwise specified, the methods defined in this class are not
+ thread-safe. Multiple threads that need to access a single
+ object concurrently should synchronize amongst themselves and
+ provide the necessary locking. Multiple threads each manipulating
+ separate objects need not synchronize.
+
+ @see CertPathValidator
+
+
+
+
+ Creates a PkixCertPathValidatorException with the given detail
+ message. A detail message is a String that describes this
+ particular exception.
+
+ the detail message
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message and cause.
+
+ the detail message
+ the cause (which is saved for later retrieval by the
+ {@link #getCause getCause()} method). (A null
+ value is permitted, and indicates that the cause is
+ nonexistent or unknown.)
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message, cause, certification path, and index.
+
+ the detail message (or null if none)
+ the cause (or null if none)
+ the certification path that was in the process of being
+ validated when the error was encountered
+ the index of the certificate in the certification path that *
+
+
+
+ Returns the detail message for this CertPathValidatorException.
+
+ the detail message, or null if neither the message nor cause were specified
+
+
+ Returns the certification path that was being validated when the
+ exception was thrown.
+
+ @return the CertPath that was being validated when the
+ exception was thrown (or null if not specified)
+
+
+ Returns the index of the certificate in the certification path that
+ caused the exception to be thrown. Note that the list of certificates in
+ a CertPath is zero based. If no index has been set, -1 is
+ returned.
+
+ @return the index that has been set, or -1 if none has been set
+
+
+
+ Summary description for PkixCertPathValidatorResult.
+
+
+
+
+ Summary description for PkixCertPathValidatorUtilities.
+
+
+
+
+ key usage bits
+
+
+
+
+ Search the given Set of TrustAnchor's for one that is the
+ issuer of the given X509 certificate.
+
+ the X509 certificate
+ a Set of TrustAnchor's
+ the TrustAnchor object if found or
+ null if not.
+
+ @exception
+
+
+
+ Returns the issuer of an attribute certificate or certificate.
+
+ The attribute certificate or certificate.
+ The issuer as X500Principal.
+
+
+ Return the next working key inheriting DSA parameters if necessary.
+
+ This methods inherits DSA parameters from the indexed certificate or
+ previous certificates in the certificate chain to the returned
+ PublicKey. The list is searched upwards, meaning the end
+ certificate is at position 0 and previous certificates are following.
+
+
+ If the indexed certificate does not contain a DSA key this method simply
+ returns the public key. If the DSA key already contains DSA parameters
+ the key is also only returned.
+
+
+ @param certs The certification path.
+ @param index The index of the certificate which contains the public key
+ which should be extended with DSA parameters.
+ @return The public key of the certificate in list position
+ index extended with DSA parameters if applicable.
+ @throws Exception if DSA parameters cannot be inherited.
+
+
+
+ Return a Collection of all certificates or attribute certificates found
+ in the X509Store's that are matching the certSelect criteriums.
+
+ a {@link Selector} object that will be used to select
+ the certificates
+ a List containing only X509Store objects. These
+ are used to search for certificates.
+ a Collection of all found or
+ objects.
+ May be empty but never null.
+
+
+
+ Add the CRL issuers from the cRLIssuer field of the distribution point or
+ from the certificate if not given to the issuer criterion of the
+ selector.
+
+ The issuerPrincipals are a collection with a single
+ X500Principal for X509Certificates. For
+ {@link X509AttributeCertificate}s the issuer may contain more than one
+ X500Principal.
+
+
+ @param dp The distribution point.
+ @param issuerPrincipals The issuers of the certificate or attribute
+ certificate which contains the distribution point.
+ @param selector The CRL selector.
+ @param pkixParams The PKIX parameters containing the cert stores.
+ @throws Exception if an exception occurs while processing.
+ @throws ClassCastException if issuerPrincipals does not
+ contain only X500Principals.
+
+
+ Fetches complete CRLs according to RFC 3280.
+
+ @param dp The distribution point for which the complete CRL
+ @param cert The X509Certificate or
+ {@link org.bouncycastle.x509.X509AttributeCertificate} for
+ which the CRL should be searched.
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @return A Set of X509CRLs with complete
+ CRLs.
+ @throws Exception if an exception occurs while picking the CRLs
+ or no CRLs are found.
+
+
+ Fetches delta CRLs according to RFC 3280 section 5.2.4.
+
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @param completeCRL The complete CRL the delta CRL is for.
+ @return A Set of X509CRLs with delta CRLs.
+ @throws Exception if an exception occurs while picking the delta
+ CRLs.
+
+
+ Find the issuer certificates of a given certificate.
+
+ @param cert
+ The certificate for which an issuer should be found.
+ @param pkixParams
+ @return A Collection object containing the issuer
+ X509Certificates. Never null.
+
+ @exception Exception
+ if an error occurs.
+
+
+
+ Extract the value of the given extension, if it exists.
+
+ The extension object.
+ The object identifier to obtain.
+ Asn1Object
+ if the extension cannot be read.
+
+
+
+ crl checking
+ Return a Collection of all CRLs found in the X509Store's that are
+ matching the crlSelect criteriums.
+
+ a {@link X509CRLStoreSelector} object that will be used
+ to select the CRLs
+ a List containing only {@link org.bouncycastle.x509.X509Store
+ X509Store} objects. These are used to search for CRLs
+ a Collection of all found {@link X509CRL X509CRL} objects. May be
+ empty but never null.
+
+
+
+ Returns the intersection of the permitted IP ranges in
+ permitted with ip.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ips The IP address with its subnet mask.
+ @return The Set of permitted IP ranges intersected with
+ ip.
+
+
+ Returns the union of the excluded IP ranges in excluded
+ with ip.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address with its subnet mask.
+ @return The Set of excluded IP ranges unified with
+ ip as byte arrays.
+
+
+ Calculates the union if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the union of both addresses.
+
+
+ Calculates the interesction if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the single IP address with its subnet
+ mask as a byte array or an empty Set.
+
+
+ Concatenates the IP address with its subnet mask.
+
+ @param ip The IP address.
+ @param subnetMask Its subnet mask.
+ @return The concatenated IP address with its subnet mask.
+
+
+ Splits the IP addresses and their subnet mask.
+
+ @param ipWithSubmask1 The first IP address with the subnet mask.
+ @param ipWithSubmask2 The second IP address with the subnet mask.
+ @return An array with two elements. Each element contains the IP address
+ and the subnet mask in this order.
+
+
+ Based on the two IP addresses and their subnet masks the IP range is
+ computed for each IP address - subnet mask pair and returned as the
+ minimum IP address and the maximum address of the range.
+
+ @param ip1 The first IP address.
+ @param subnetmask1 The subnet mask of the first IP address.
+ @param ip2 The second IP address.
+ @param subnetmask2 The subnet mask of the second IP address.
+ @return A array with two elements. The first/second element contains the
+ min and max IP address of the first/second IP address and its
+ subnet mask.
+
+
+ Checks if the IP ip is included in the permitted ISet
+ permitted.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is not permitted.
+
+
+ Checks if the IP ip is included in the excluded ISet
+ excluded.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is excluded.
+
+
+ Checks if the IP address ip is constrained by
+ constraint.
+
+ @param ip The IP address.
+ @param constraint The constraint. This is an IP address concatenated with
+ its subnetmask.
+ @return true if constrained, false
+ otherwise.
+
+
+ The common part of email1 and email2 is
+ added to the union union. If email1 and
+ email2 have nothing in common they are added both.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param union The union.
+
+
+ The most restricting part from email1 and
+ email2 is added to the intersection intersect.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param intersect The intersection.
+
+
+ Checks if the given GeneralName is in the permitted ISet.
+
+ @param name The GeneralName
+ @throws PkixNameConstraintValidatorException
+ If the name
+
+
+ Check if the given GeneralName is contained in the excluded ISet.
+
+ @param name The GeneralName.
+ @throws PkixNameConstraintValidatorException
+ If the name is
+ excluded.
+
+
+ Updates the permitted ISet of these name constraints with the intersection
+ with the given subtree.
+
+ @param permitted The permitted subtrees
+
+
+ Adds a subtree to the excluded ISet of these name constraints.
+
+ @param subtree A subtree with an excluded GeneralName.
+
+
+ Returns the maximum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The maximum IP address.
+
+
+ Returns the minimum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The minimum IP address.
+
+
+ Compares IP address ip1 with ip2. If ip1
+ is equal to ip2 0 is returned. If ip1 is bigger 1 is returned, -1
+ otherwise.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return 0 if ip1 is equal to ip2, 1 if ip1 is bigger, -1 otherwise.
+
+
+ Returns the logical OR of the IP addresses ip1 and
+ ip2.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The OR of ip1 and ip2.
+
+
+ Stringifies an IPv4 or v6 address with subnet mask.
+
+ @param ip The IP with subnet mask.
+ @return The stringified IP address.
+
+
+
+ Summary description for PkixParameters.
+
+
+
+ This is the default PKIX validity model. Actually there are two variants
+ of this: The PKIX model and the modified PKIX model. The PKIX model
+ verifies that all involved certificates must have been valid at the
+ current time. The modified PKIX model verifies that all involved
+ certificates were valid at the signing time. Both are indirectly choosen
+ with the {@link PKIXParameters#setDate(java.util.Date)} method, so this
+ methods sets the Date when all certificates must have been
+ valid.
+
+
+ This model uses the following validity model. Each certificate must have
+ been valid at the moment where is was used. That means the end
+ certificate must have been valid at the time the signature was done. The
+ CA certificate which signed the end certificate must have been valid,
+ when the end certificate was signed. The CA (or Root CA) certificate must
+ have been valid, when the CA certificate was signed and so on. So the
+ {@link PKIXParameters#setDate(java.util.Date)} method sets the time, when
+ the end certificate must have been valid. It is used e.g.
+ in the German signature law.
+
+
+ Creates an instance of PKIXParameters with the specified Set of
+ most-trusted CAs. Each element of the set is a TrustAnchor.
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+ @param trustAnchors
+ a Set of TrustAnchors
+
+ @exception InvalidAlgorithmParameterException
+ if the specified Set is empty
+ (trustAnchors.isEmpty() == true)
+ @exception NullPointerException
+ if the specified Set is null
+ @exception ClassCastException
+ if any of the elements in the Set are not of type
+ java.security.cert.TrustAnchor
+
+
+ Returns the required constraints on the target certificate. The
+ constraints are returned as an instance of CertSelector. If
+ null, no constraints are defined.
+
+ Note that the CertSelector returned is cloned to protect against
+ subsequent modifications.
+
+ @return a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #setTargetCertConstraints(CertSelector)
+
+
+ Sets the required constraints on the target certificate. The constraints
+ are specified as an instance of CertSelector. If null, no constraints are
+ defined.
+
+ Note that the CertSelector specified is cloned to protect against
+ subsequent modifications.
+
+ @param selector
+ a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #getTargetCertConstraints()
+
+
+ Returns an immutable Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. The
+ default return value is an empty Set, which is
+ interpreted as meaning that any policy would be acceptable.
+
+ @return an immutable Set of initial policy OIDs in String
+ format, or an empty Set (implying any policy is
+ acceptable). Never returns null.
+
+ @see #setInitialPolicies(java.util.Set)
+
+
+ Sets the Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. By
+ default, any policy is acceptable (i.e. all policies), so a user that
+ wants to allow any policy as acceptable does not need to call this
+ method, or can call it with an empty Set (or
+ null).
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+
+ @param initialPolicies
+ a Set of initial policy OIDs in String format (or
+ null)
+
+ @exception ClassCastException
+ if any of the elements in the set are not of type String
+
+ @see #getInitialPolicies()
+
+
+ Sets a List of additional certification path checkers. If
+ the specified List contains an object that is not a PKIXCertPathChecker,
+ it is ignored.
+
+ Each PKIXCertPathChecker specified implements additional
+ checks on a certificate. Typically, these are checks to process and
+ verify private extensions contained in certificates. Each
+ PKIXCertPathChecker should be instantiated with any
+ initialization parameters needed to execute the check.
+
+ This method allows sophisticated applications to extend a PKIX
+ CertPathValidator or CertPathBuilder. Each
+ of the specified PKIXCertPathCheckers will be called, in turn, by a PKIX
+ CertPathValidator or CertPathBuilder for
+ each certificate processed or validated.
+
+ Regardless of whether these additional PKIXCertPathCheckers are set, a
+ PKIX CertPathValidator or CertPathBuilder
+ must perform all of the required PKIX checks on each certificate. The one
+ exception to this rule is if the RevocationEnabled flag is set to false
+ (see the {@link #setRevocationEnabled(boolean) setRevocationEnabled}
+ method).
+
+ Note that the List supplied here is copied and each PKIXCertPathChecker
+ in the list is cloned to protect against subsequent modifications.
+
+ @param checkers
+ a List of PKIXCertPathCheckers. May be null, in which case no
+ additional checkers will be used.
+ @exception ClassCastException
+ if any of the elements in the list are not of type
+ java.security.cert.PKIXCertPathChecker
+ @see #getCertPathCheckers()
+
+
+ Returns the List of certification path checkers. Each PKIXCertPathChecker
+ in the returned IList is cloned to protect against subsequent modifications.
+
+ @return an immutable List of PKIXCertPathCheckers (may be empty, but not
+ null)
+
+ @see #setCertPathCheckers(java.util.List)
+
+
+ Adds a PKIXCertPathChecker to the list of certification
+ path checkers. See the {@link #setCertPathCheckers setCertPathCheckers}
+ method for more details.
+
+ Note that the PKIXCertPathChecker is cloned to protect
+ against subsequent modifications.
+
+ @param checker a PKIXCertPathChecker to add to the list of
+ checks. If null, the checker is ignored (not added to list).
+
+
+ Method to support Clone() under J2ME.
+ super.Clone() does not exist and fields are not copied.
+
+ @param params Parameters to set. If this are
+ ExtendedPkixParameters they are copied to.
+
+
+ Whether delta CRLs should be used for checking the revocation status.
+ Defaults to false.
+
+
+ The validity model.
+ @see #CHAIN_VALIDITY_MODEL
+ @see #PKIX_VALIDITY_MODEL
+
+
+ Sets the Bouncy Castle Stores for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ The IList is cloned.
+
+
+ @param stores A list of stores to use.
+ @see #getStores
+ @throws ClassCastException if an element of stores is not
+ a {@link Store}.
+
+
+ Adds a Bouncy Castle {@link Store} to find CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ This method should be used to add local stores, like collection based
+ X.509 stores, if available. Local stores should be considered first,
+ before trying to use additional (remote) locations, because they do not
+ need possible additional network traffic.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores
+
+
+ Adds an additional Bouncy Castle {@link Store} to find CRLs, certificates,
+ attribute certificates or cross certificates.
+
+ You should not use this method. This method is used for adding additional
+ X.509 stores, which are used to add (remote) locations, e.g. LDAP, found
+ during X.509 object processing, e.g. in certificates or CRLs. This method
+ is used in PKIX certification path processing.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores()
+
+
+ Returns an IList of additional Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of additional Bouncy Castle
+ Stores. Never null.
+
+ @see #addAddionalStore(Store)
+
+
+ Returns an IList of Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of Bouncy Castle
+ Stores. Never null.
+
+ @see #setStores(IList)
+
+
+ Returns if additional {@link X509Store}s for locations like LDAP found
+ in certificates or CRLs should be used.
+
+ @return Returns true if additional stores are used.
+
+
+ Sets if additional {@link X509Store}s for locations like LDAP found in
+ certificates or CRLs should be used.
+
+ @param enabled true if additional stores are used.
+
+
+ Returns the required constraints on the target certificate or attribute
+ certificate. The constraints are returned as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector returned is cloned to protect
+ against subsequent modifications.
+
+ @return a IX509Selector specifying the constraints on the
+ target certificate or attribute certificate (or null)
+ @see #setTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Sets the required constraints on the target certificate or attribute
+ certificate. The constraints are specified as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector specified is cloned to protect
+ against subsequent modifications.
+
+
+ @param selector a IX509Selector specifying the constraints on
+ the target certificate or attribute certificate (or
+ null)
+ @see #getTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Returns the trusted attribute certificate issuers. If attribute
+ certificates is verified the trusted AC issuers must be set.
+
+ The returned ISet consists of TrustAnchors.
+
+ The returned ISet is immutable. Never null
+
+
+ @return Returns an immutable set of the trusted AC issuers.
+
+
+ Sets the trusted attribute certificate issuers. If attribute certificates
+ is verified the trusted AC issuers must be set.
+
+ The trustedACIssuers must be a ISet of
+ TrustAnchor
+
+ The given set is cloned.
+
+
+ @param trustedACIssuers The trusted AC issuers to set. Is never
+ null.
+ @throws ClassCastException if an element of stores is not
+ a TrustAnchor.
+
+
+ Returns the necessary attributes which must be contained in an attribute
+ certificate.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the necessary AC attributes.
+
+
+ Sets the necessary which must be contained in an attribute certificate.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param necessaryACAttributes The necessary AC attributes to set.
+ @throws ClassCastException if an element of
+ necessaryACAttributes is not a
+ String.
+
+
+ Returns the attribute certificates which are not allowed.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the prohibited AC attributes. Is never null.
+
+
+ Sets the attribute certificates which are not allowed.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param prohibitedACAttributes The prohibited AC attributes to set.
+ @throws ClassCastException if an element of
+ prohibitedACAttributes is not a
+ String.
+
+
+ Returns the attribute certificate checker. The returned set contains
+ {@link PKIXAttrCertChecker}s and is immutable.
+
+ @return Returns the attribute certificate checker. Is never
+ null.
+
+
+ Sets the attribute certificate checkers.
+
+ All elements in the ISet must a {@link PKIXAttrCertChecker}.
+
+
+ The given set is cloned.
+
+
+ @param attrCertCheckers The attribute certificate checkers to set. Is
+ never null.
+ @throws ClassCastException if an element of attrCertCheckers
+ is not a PKIXAttrCertChecker.
+
+
+
+ Summary description for PkixPolicyNode.
+
+
+
+ Constructors
+
+
+
+ This class helps to handle CRL revocation reasons mask. Each CRL handles a
+ certain set of revocation reasons.
+
+
+
+
+ Constructs are reason mask with the reasons.
+
+ The reasons.
+
+
+
+ A reason mask with no reason.
+
+
+
+
+ A mask with all revocation reasons.
+
+
+
+ Adds all reasons from the reasons mask to this mask.
+
+ @param mask The reasons mask to add.
+
+
+
+ Returns true if this reasons mask contains all possible
+ reasons.
+
+ true if this reasons mask contains all possible reasons.
+
+
+
+
+ Intersects this mask with the given reasons mask.
+
+ mask The mask to intersect with.
+ The intersection of this and teh given mask.
+
+
+
+ Returns true if the passed reasons mask has new reasons.
+
+ The reasons mask which should be tested for new reasons.
+ true if the passed reasons mask has new reasons.
+
+
+
+ Returns the reasons in this mask.
+
+
+
+ If the complete CRL includes an issuing distribution point (IDP) CRL
+ extension check the following:
+
+ (i) If the distribution point name is present in the IDP CRL extension
+ and the distribution field is present in the DP, then verify that one of
+ the names in the IDP matches one of the names in the DP. If the
+ distribution point name is present in the IDP CRL extension and the
+ distribution field is omitted from the DP, then verify that one of the
+ names in the IDP matches one of the names in the cRLIssuer field of the
+ DP.
+
+
+ (ii) If the onlyContainsUserCerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate does not include the basic
+ constraints extension with the cA boolean asserted.
+
+
+ (iii) If the onlyContainsCACerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate includes the basic constraints
+ extension with the cA boolean asserted.
+
+
+ (iv) Verify that the onlyContainsAttributeCerts boolean is not asserted.
+
+
+ @param dp The distribution point.
+ @param cert The certificate.
+ @param crl The CRL.
+ @throws AnnotatedException if one of the conditions is not met or an error occurs.
+
+
+ If the DP includes cRLIssuer, then verify that the issuer field in the
+ complete CRL matches cRLIssuer in the DP and that the complete CRL
+ contains an
+ g distribution point extension with the indirectCRL
+ boolean asserted. Otherwise, verify that the CRL issuer matches the
+ certificate issuer.
+
+ @param dp The distribution point.
+ @param cert The certificate ot attribute certificate.
+ @param crl The CRL for cert.
+ @throws AnnotatedException if one of the above conditions does not apply or an error
+ occurs.
+
+
+ Obtain and validate the certification path for the complete CRL issuer.
+ If a key usage extension is present in the CRL issuer's certificate,
+ verify that the cRLSign bit is set.
+
+ @param crl CRL which contains revocation information for the certificate
+ cert.
+ @param cert The attribute certificate or certificate to check if it is
+ revoked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param paramsPKIX paramsPKIX PKIX parameters.
+ @param certPathCerts The certificates on the certification path.
+ @return A Set with all keys of possible CRL issuer
+ certificates.
+ @throws AnnotatedException if the CRL is not valid or the status cannot be checked or
+ some error occurs.
+
+
+ Checks a distribution point for revocation information for the
+ certificate cert.
+
+ @param dp The distribution point to consider.
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param certStatus The current certificate revocation status.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ Checks a certificate if it is revoked.
+
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param sign The issuer certificate of the certificate cert.
+ @param workingPublicKey The public key of the issuer certificate sign.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ If use-deltas is set, verify the issuer and scope of the delta CRL.
+
+ @param deltaCRL The delta CRL.
+ @param completeCRL The complete CRL.
+ @param pkixParams The PKIX paramaters.
+ @throws AnnotatedException if an exception occurs.
+
+
+ Checks if an attribute certificate is revoked.
+
+ @param attrCert Attribute certificate to check if it is revoked.
+ @param paramsPKIX PKIX parameters.
+ @param issuerCert The issuer certificate of the attribute certificate
+ attrCert.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+
+ @throws CertPathValidatorException if the certificate is revoked or the
+ status cannot be checked or some error occurs.
+
+
+ Searches for a holder public key certificate and verifies its
+ certification path.
+
+ @param attrCert the attribute certificate.
+ @param pkixParams The PKIX parameters.
+ @return The certificate path of the holder certificate.
+ @throws Exception if
+
+ - no public key certificate can be found although holder
+ information is given by an entity name or a base certificate
+ ID
+ - support classes cannot be created
+ - no certification path for the public key certificate can
+ be built
+
+
+
+
+ Checks a distribution point for revocation information for the
+ certificate attrCert.
+
+ @param dp The distribution point to consider.
+ @param attrCert The attribute certificate which should be checked.
+ @param paramsPKIX PKIX parameters.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param issuerCert Certificate to check if it is revoked.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+ @throws Exception if the certificate is revoked or the status
+ cannot be checked or some error occurs.
+
+
+
+ A trust anchor or most-trusted Certification Authority (CA).
+
+ This class represents a "most-trusted CA", which is used as a trust anchor
+ for validating X.509 certification paths. A most-trusted CA includes the
+ public key of the CA, the CA's name, and any constraints upon the set of
+ paths which may be validated using this key. These parameters can be
+ specified in the form of a trusted X509Certificate or as individual
+ parameters.
+
+
+
+
+ Creates an instance of TrustAnchor with the specified X509Certificate and
+ optional name constraints, which are intended to be used as additional
+ constraints when validating an X.509 certification path.
+ The name constraints are specified as a byte array. This byte array
+ should contain the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459 and
+ X.509. The ASN.1 definition of this structure appears below.
+
+
+ NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+ GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+ GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+ BaseDistance ::= INTEGER (0..MAX)
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+
+ Note that the name constraints byte array supplied is cloned to protect
+ against subsequent modifications.
+
+ a trusted X509Certificate
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ if the specified X509Certificate is null
+
+
+
+ Creates an instance of TrustAnchor where the
+ most-trusted CA is specified as an X500Principal and public key.
+
+
+
+ Name constraints are an optional parameter, and are intended to be used
+ as additional constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459
+ and X.509. The ASN.1 notation for this structure is supplied in the
+ documentation for the other constructors.
+
+ Note that the name constraints byte array supplied here is cloned to
+ protect against subsequent modifications.
+
+
+ the name of the most-trusted CA as X509Name
+ the public key of the most-trusted CA
+
+ a byte array containing the ASN.1 DER encoding of a NameConstraints extension to
+ be used for checking name constraints. Only the value of the extension is included,
+ not the OID or criticality flag. Specify null to omit the parameter.
+
+
+ if caPrincipal or pubKey is null
+
+
+
+
+ Creates an instance of TrustAnchor where the most-trusted
+ CA is specified as a distinguished name and public key. Name constraints
+ are an optional parameter, and are intended to be used as additional
+ constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they would
+ appear in the NameConstraints structure defined in RFC 2459 and X.509.
+
+ the X.500 distinguished name of the most-trusted CA in RFC
+ 2253 string format
+ the public key of the most-trusted CA
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ throws NullPointerException, IllegalArgumentException
+
+
+
+ Returns the most-trusted CA certificate.
+
+
+
+
+ Returns the name of the most-trusted CA as an X509Name.
+
+
+
+
+ Returns the name of the most-trusted CA in RFC 2253 string format.
+
+
+
+
+ Returns the public key of the most-trusted CA.
+
+
+
+
+ Decode the name constraints and clone them if not null.
+
+
+
+
+ Returns a formatted string describing the TrustAnchor.
+
+ a formatted string describing the TrustAnchor
+
+
+ Base class for an RFC 3161 Time Stamp Request.
+
+
+ Create a TimeStampRequest from the past in byte array.
+
+ @param req byte array containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Create a TimeStampRequest from the past in input stream.
+
+ @param in input stream containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Validate the timestamp request, checking the digest to see if it is of an
+ accepted type and whether it is of the correct length for the algorithm specified.
+
+ @param algorithms a set of string OIDS giving accepted algorithms.
+ @param policies if non-null a set of policies we are willing to sign under.
+ @param extensions if non-null a set of extensions we are willing to accept.
+ @throws TspException if the request is invalid, or processing fails.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Request objects.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ Base class for an RFC 3161 Time Stamp Response object.
+
+
+ Create a TimeStampResponse from a byte array containing an ASN.1 encoding.
+
+ @param resp the byte array containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the byte array doesn't represent an ASN.1 encoding.
+
+
+ Create a TimeStampResponse from an input stream containing an ASN.1 encoding.
+
+ @param input the input stream containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the stream doesn't represent an ASN.1 encoding.
+
+
+ Check this response against to see if it a well formed response for
+ the passed in request. Validation will include checking the time stamp
+ token if the response status is GRANTED or GRANTED_WITH_MODS.
+
+ @param request the request to be checked against
+ @throws TspException if the request can not match this response.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Responses.
+
+
+ Return an appropriate TimeStampResponse.
+
+ If genTime is null a timeNotAvailable error response will be returned.
+
+ @param request the request this response is for.
+ @param serialNumber serial number for the response token.
+ @param genTime generation time for the response token.
+ @param provider provider to use for signature calculation.
+ @return
+ @throws NoSuchAlgorithmException
+ @throws NoSuchProviderException
+ @throws TSPException
+
+
+
+ Generate a TimeStampResponse with chosen status and FailInfoField.
+
+ @param status the PKIStatus to set.
+ @param failInfoField the FailInfoField to set.
+ @param statusString an optional string describing the failure.
+ @return a TimeStampResponse with a failInfoField and optional statusString
+ @throws TSPException in case the response could not be created
+
+
+ Validate the time stamp token.
+
+ To be valid the token must be signed by the passed in certificate and
+ the certificate must be the one referred to by the SigningCertificate
+ attribute included in the hashed attributes of the token. The
+ certificate must also have the ExtendedKeyUsageExtension with only
+ KeyPurposeID.IdKPTimeStamping and have been valid at the time the
+ timestamp was created.
+
+
+ A successful call to validate means all the above are true.
+
+
+
+ Return the underlying CmsSignedData object.
+
+ @return the underlying CMS structure.
+
+
+ Return a ASN.1 encoded byte stream representing the encoded object.
+
+ @throws IOException if encoding fails.
+
+
+ basic creation - only the default attributes will be included here.
+
+
+ create with a signer with extra signed/unsigned attributes.
+
+
+ @return the nonce value, null if there isn't one.
+
+
+ Recognised hash algorithms for the time stamp protocol.
+
+
+ Fetches the signature time-stamp attributes from a SignerInformation object.
+ Checks that the MessageImprint for each time-stamp matches the signature field.
+ (see RFC 3161 Appendix A).
+
+ @param signerInfo a SignerInformation to search for time-stamps
+ @return a collection of TimeStampToken objects
+ @throws TSPValidationException
+
+
+ Validate the passed in certificate as being of the correct type to be used
+ for time stamping. To be valid it must have an ExtendedKeyUsage extension
+ which has a key purpose identifier of id-kp-timeStamping.
+
+ @param cert the certificate of interest.
+ @throws TspValidationException if the certicate fails on one of the check points.
+
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Exception thrown if a TSP request or response fails to validate.
+
+ If a failure code is associated with the exception it can be retrieved using
+ the getFailureCode() method.
+
+
+ Return the failure code associated with this exception - if one is set.
+
+ @return the failure code if set, -1 otherwise.
+
+
+ General array utilities.
+
+
+
+ Are two arrays equal.
+
+ Left side.
+ Right side.
+ True if equal.
+
+
+
+ A constant time equals comparison - does not terminate early if
+ test will fail.
+
+ first array
+ second array
+ true if arrays equal, false otherwise.
+
+
+ Make a copy of a range of bytes from the passed in data array. The range can
+ extend beyond the end of the input array, in which case the return array will
+ be padded with zeroes.
+
+ @param data the array from which the data is to be copied.
+ @param from the start index at which the copying should take place.
+ @param to the final index of the range (exclusive).
+
+ @return a new byte array containing the range given.
+
+
+ BigInteger utilities.
+
+
+ Return the passed in value as an unsigned byte array.
+
+ @param value value to be converted.
+ @return a byte array without a leading zero byte if present in the signed encoding.
+
+
+ Return the passed in value as an unsigned byte array of specified length, zero-extended as necessary.
+
+ @param length desired length of result array.
+ @param n value to be converted.
+ @return a byte array of specified length, with leading zeroes as necessary given the size of n.
+
+
+ Return a random BigInteger not less than 'min' and not greater than 'max'
+
+ @param min the least value that may be generated
+ @param max the greatest value that may be generated
+ @param random the source of randomness
+ @return a random BigInteger value in the range [min,max]
+
+
+
+ Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value.
+
+ A UTC DateTime value not before epoch.
+ Number of whole milliseconds after epoch.
+ 'dateTime' is before epoch.
+
+
+
+ Create a DateTime value from the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+ Number of milliseconds since the epoch.
+ A UTC DateTime value
+
+
+
+ Return the current number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a base 64 output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A buffering class to allow translation from one format to another to
+ be done in discrete chunks.
+
+
+
+
+ Create a buffered Decoder.
+
+ The translater to use.
+ The size of the buffer.
+
+
+
+ Process one byte of data.
+
+ Data in.
+ Byte array for the output.
+ The offset in the output byte array to start writing from.
+ The amount of output bytes.
+
+
+
+ Process data from a byte array.
+
+ The input data.
+ Start position within input data array.
+ Amount of data to process from input data array.
+ Array to store output.
+ Position in output array to start writing from.
+ The amount of output bytes.
+
+
+
+ A class that allows encoding of data using a specific encoder to be processed in chunks.
+
+
+
+
+ Create.
+
+ The translator to use.
+ Size of the chunks.
+
+
+
+ Process one byte of data.
+
+ The byte.
+ An array to store output in.
+ Offset within output array to start writing from.
+
+
+
+
+ Process data from a byte array.
+
+ Input data Byte array containing data to be processed.
+ Start position within input data array.
+ Amount of input data to be processed.
+ Output data array.
+ Offset within output data array to start writing to.
+ The amount of data written.
+
+
+
+ Class to decode and encode Hex.
+
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a Hex output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A hex translator.
+
+
+
+
+ Return encoded block size.
+
+ 2
+
+
+
+ Encode some data.
+
+ Input data array.
+ Start position within input data array.
+ The amount of data to process.
+ The output data array.
+ The offset within the output data array to start writing from.
+ Amount of data encoded.
+
+
+
+ Returns the decoded block size.
+
+ 1
+
+
+
+ Decode data from a byte array.
+
+ The input data array.
+ Start position within input data array.
+ The amounty of data to process.
+ The output data array.
+ The position within the output data array to start writing from.
+ The amount of data written.
+
+
+ Encode and decode byte arrays (typically from binary to 7-bit ASCII
+ encodings).
+
+
+
+ Translator interface.
+
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Encode the input data producing a URL safe base 64 encoded byte array.
+
+ @return a byte array containing the URL safe base 64 encoded data.
+
+
+ Encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Decode the URL safe base 64 encoded input data - white space will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the URL safe base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the URL safe base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the URL safe base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+
+ Produce a copy of this object with its configuration and in its current state.
+
+
+ The returned object may be used simply to store the state, or may be used as a similar object
+ starting from the copied state.
+
+
+
+
+ Restore a copied object state into this object.
+
+
+ Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
+
+ an object originally {@link #copy() copied} from an object of the same type as this instance.
+ if the provided object is not of the correct type.
+ if the other parameter is in some other way invalid.
+
+
+
+ A
+
+
+
+
+
+ A
+
+
+ A
+
+
+
+
+
+ A
+
+
+
+
+ A generic PEM writer, based on RFC 1421
+
+
+ Base constructor.
+
+ @param out output stream to use.
+
+
+ Return the number of bytes or characters required to contain the
+ passed in object if it is PEM encoded.
+
+ @param obj pem object to be output
+ @return an estimate of the number of bytes
+
+
+
+ Pipe all bytes from inStr to outStr, throwing StreamFlowException if greater
+ than limit bytes in inStr.
+
+
+ A
+
+
+ A
+
+
+ A
+
+ The number of bytes actually transferred, if not greater than limit
+
+
+
+
+
+
+ Exception to be thrown on a failure to reset an object implementing Memoable.
+
+ The exception extends InvalidCastException to enable users to have a single handling case,
+ only introducing specific handling of this one if required.
+
+
+
+ Basic Constructor.
+
+ @param msg message to be associated with this exception.
+
+
+ Validate the given IPv4 or IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address, false otherwise
+
+
+ Validate the given IPv4 or IPv6 address and netmask.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address with netmask, false otherwise
+
+
+ Validate the given IPv4 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ Validate the given IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ General string utilities.
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ The Holder object.
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+
+ Constructs a holder for v2 attribute certificates with a hash value for
+ some type of object.
+
+ digestedObjectType can be one of the following:
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+ This cannot be used if a v1 attribute certificate is used.
+
+ @param digestedObjectType The digest object type.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param otherObjectTypeID The object type ID if
+ digestedObjectType is
+ otherObjectDigest.
+ @param objectDigest The hash value.
+
+
+ Returns the digest object type if an object digest info is used.
+
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+
+ @return The digest object type or -1 if no object digest info is set.
+
+
+ Returns the other object type ID if an object digest info is used.
+
+ @return The other object type ID or null if no object
+ digest info is set.
+
+
+ Returns the hash if an object digest info is used.
+
+ @return The hash or null if no object digest info is set.
+
+
+ Returns the digest algorithm ID if an object digest info is used.
+
+ @return The digest algorithm ID or null if no object
+ digest info is set.
+
+
+ Return any principal objects inside the attribute certificate holder entity names field.
+
+ @return an array of IPrincipal objects (usually X509Name), null if no entity names field is set.
+
+
+ Return the principals associated with the issuer attached to this holder
+
+ @return an array of principals, null if no BaseCertificateID is set.
+
+
+ Return the serial number associated with the issuer attached to this holder.
+
+ @return the certificate serial number, null if no BaseCertificateID is set.
+
+
+ Carrying class for an attribute certificate issuer.
+
+
+ Set the issuer directly with the ASN.1 structure.
+
+ @param issuer The issuer
+
+
+ Return any principal objects inside the attribute certificate issuer object.
+ An array of IPrincipal objects (usually X509Principal).
+
+
+ A high level authority key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Create an AuthorityKeyIdentifier using the passed in certificate's public
+ key, issuer and serial number.
+
+ @param certificate the certificate providing the information.
+ @throws CertificateParsingException if there is a problem processing the certificate
+
+
+ Create an AuthorityKeyIdentifier using just the hash of the
+ public key.
+
+ @param pubKey the key to generate the hash from.
+ @throws InvalidKeyException if there is a problem using the key.
+
+
+ A high level subject key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Interface for an X.509 Attribute Certificate.
+
+
+ The version number for the certificate.
+
+
+ The serial number for the certificate.
+
+
+ The UTC DateTime before which the certificate is not valid.
+
+
+ The UTC DateTime after which the certificate is not valid.
+
+
+ The holder of the certificate.
+
+
+ The issuer details for the certificate.
+
+
+ Return the attributes contained in the attribute block in the certificate.
+ An array of attributes.
+
+
+ Return the attributes with the same type as the passed in oid.
+ The object identifier we wish to match.
+ An array of matched attributes, null if there is no match.
+
+
+ Return an ASN.1 encoded byte array representing the attribute certificate.
+ An ASN.1 encoded byte array.
+ If the certificate cannot be encoded.
+
+
+
+ Get all critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ Get all non-critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ A utility class that will extract X509Principal objects from X.509 certificates.
+
+ Use this in preference to trying to recreate a principal from a string, not all
+ DNs are what they should be, so it's best to leave them encoded where they
+ can be.
+
+
+
+ Return the issuer of the given cert as an X509Principal.
+
+
+ Return the subject of the given cert as an X509Principal.
+
+
+ Return the issuer of the given CRL as an X509Principal.
+
+
+ This class is an Selector like implementation to select
+ attribute certificates from a given set of criteria.
+
+ @see org.bouncycastle.x509.X509AttributeCertificate
+ @see org.bouncycastle.x509.X509Store
+
+
+
+ Decides if the given attribute certificate should be selected.
+
+ The attribute certificate to be checked.
+ true if the object matches this selector.
+
+
+ The attribute certificate which must be matched.
+ If null is given, any will do.
+
+
+ The criteria for validity
+ If null is given any will do.
+
+
+ The holder.
+ If null is given any will do.
+
+
+ The issuer.
+ If null is given any will do.
+
+
+ The serial number.
+ If null is given any will do.
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name The name as a GeneralName (not null)
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the name in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target names criteria. If null is
+ given any will do.
+
+ The collection consists of either GeneralName objects or byte[] arrays representing
+ DER encoded GeneralName structures.
+
+
+ @param names A collection of target names.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetName(byte[])
+ @see #AddTargetName(GeneralName)
+
+
+ Gets the target names. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target names
+ @see #setTargetNames(Collection)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param group The group as GeneralName form (not null)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the group in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target groups criteria. If null is
+ given any will do.
+
+ The collection consists of GeneralName objects or byte[]
+ representing DER encoded GeneralNames.
+
+
+ @param names A collection of target groups.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetGroup(byte[])
+ @see #AddTargetGroup(GeneralName)
+
+
+ Gets the target groups. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target groups.
+ @see #setTargetGroups(Collection)
+
+
+
+ This class is an IX509Selector implementation to select
+ certificate pairs, which are e.g. used for cross certificates. The set of
+ criteria is given from two X509CertStoreSelector objects,
+ each of which, if present, must match the respective component of a pair.
+
+
+
+ The certificate pair which is used for testing on equality.
+
+
+ The certificate selector for the forward part.
+
+
+ The certificate selector for the reverse part.
+
+
+
+ Decides if the given certificate pair should be selected. If
+ obj is not a X509CertificatePair, this method
+ returns false.
+
+ The X509CertificatePair to be tested.
+ true if the object matches this selector.
+
+
+
+ An ISet of DerObjectIdentifier objects.
+
+
+
+ A simple collection backed store.
+
+
+ Basic constructor.
+
+ @param collection - initial contents for the store, this is copied.
+
+
+ Return the matches in the collection for the passed in selector.
+
+ @param selector the selector to match against.
+ @return a possibly empty collection of matching objects.
+
+
+ This class contains a collection for collection based X509Stores.
+
+
+
+ Constructor.
+
+ The collection is copied.
+
+
+ The collection containing X.509 object types.
+ If collection is null.
+
+
+ Returns a copy of the ICollection.
+
+
+ Returns a formatted string describing the parameters.
+
+
+
+ An ICollection of X509Name objects
+
+
+
+ The attribute certificate being checked. This is not a criterion.
+ Rather, it is optional information that may help a {@link X509Store} find
+ CRLs that would be relevant when checking revocation for the specified
+ attribute certificate. If null is specified, then no such
+ optional information is provided.
+
+ @param attrCert the IX509AttributeCertificate being checked (or
+ null)
+ @see #getAttrCertificateChecking()
+
+
+ If true only complete CRLs are returned. Defaults to
+ false.
+
+ @return true if only complete CRLs are returned.
+
+
+ Returns if this selector must match CRLs with the delta CRL indicator
+ extension set. Defaults to false.
+
+ @return Returns true if only CRLs with the delta CRL
+ indicator extension are selected.
+
+
+ The issuing distribution point.
+
+ The issuing distribution point extension is a CRL extension which
+ identifies the scope and the distribution point of a CRL. The scope
+ contains among others information about revocation reasons contained in
+ the CRL. Delta CRLs and complete CRLs must have matching issuing
+ distribution points.
+
+ The byte array is cloned to protect against subsequent modifications.
+
+ You must also enable or disable this criteria with
+ {@link #setIssuingDistributionPointEnabled(bool)}.
+
+ @param issuingDistributionPoint The issuing distribution point to set.
+ This is the DER encoded OCTET STRING extension value.
+ @see #getIssuingDistributionPoint()
+
+
+ Whether the issuing distribution point criteria should be applied.
+ Defaults to false.
+
+ You may also set the issuing distribution point criteria if not a missing
+ issuing distribution point should be assumed.
+
+ @return Returns if the issuing distribution point check is enabled.
+
+
+ The maximum base CRL number. Defaults to null.
+
+ @return Returns the maximum base CRL number.
+ @see #setMaxBaseCRLNumber(BigInteger)
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+ Class for carrying the values in an X.509 Attribute.
+
+
+ @param at an object representing an attribute.
+
+
+ Create an X.509 Attribute with the type given by the passed in oid and
+ the value represented by an ASN.1 Set containing value.
+
+ @param oid type of the attribute
+ @param value value object to go into the atribute's value set.
+
+
+ Create an X.59 Attribute with the type given by the passed in oid and the
+ value represented by an ASN.1 Set containing the objects in value.
+
+ @param oid type of the attribute
+ @param value vector of values to go in the attribute's value set.
+
+
+
+ An Object representing an X509 Certificate.
+ Has static methods for loading Certificates encoded in many forms that return X509Certificate Objects.
+
+
+
+
+ Return true if the current time is within the start and end times nominated on the certificate.
+
+ true id certificate is valid for the current time.
+
+
+
+ Return true if the nominated time is within the start and end times nominated on the certificate.
+
+ The time to test validity against.
+ True if certificate is valid for nominated time.
+
+
+
+ Checks if the current date is within certificate's validity period.
+
+
+
+
+ Checks if the given date is within certificate's validity period.
+
+ if the certificate is expired by given date
+ if the certificate is not yet valid on given date
+
+
+
+ Return the certificate's version.
+
+ An integer whose value Equals the version of the cerficate.
+
+
+
+ Return a BigInteger containing the serial number.
+
+ The Serial number.
+
+
+
+ Get the Issuer Distinguished Name. (Who signed the certificate.)
+
+ And X509Object containing name and value pairs.
+
+
+
+ Get the subject of this certificate.
+
+ An X509Name object containing name and value pairs.
+
+
+
+ The time that this certificate is valid from.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ The time that this certificate is valid up to.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ Return the Der encoded TbsCertificate data.
+ This is the certificate component less the signature.
+ To Get the whole certificate call the GetEncoded() member.
+
+ A byte array containing the Der encoded Certificate component.
+
+
+
+ The signature.
+
+ A byte array containg the signature of the certificate.
+
+
+
+ A meaningful version of the Signature Algorithm. (EG SHA1WITHRSA)
+
+ A sting representing the signature algorithm.
+
+
+
+ Get the Signature Algorithms Object ID.
+
+ A string containg a '.' separated object id.
+
+
+
+ Get the signature algorithms parameters. (EG DSA Parameters)
+
+ A byte array containing the Der encoded version of the parameters or null if there are none.
+
+
+
+ Get the issuers UID.
+
+ A DerBitString.
+
+
+
+ Get the subjects UID.
+
+ A DerBitString.
+
+
+
+ Get a key usage guidlines.
+
+
+
+
+ Get the public key of the subject of the certificate.
+
+ The public key parameters.
+
+
+
+ Return a Der encoded version of this certificate.
+
+ A byte array.
+
+
+
+ Verify the certificate's signature using the nominated public key.
+
+ An appropriate public key parameter object, RsaPublicKeyParameters, DsaPublicKeyParameters or ECDsaPublicKeyParameters
+ True if the signature is valid.
+ If key submitted is not of the above nominated types.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+
+ This class contains a cross certificate pair. Cross certificates pairs may
+ contain two cross signed certificates from two CAs. A certificate from the
+ other CA to this CA is contained in the forward certificate, the certificate
+ from this CA to the other CA is contained in the reverse certificate.
+
+
+
+ Constructor
+ Certificate from the other CA to this CA.
+ Certificate from this CA to the other CA.
+
+
+ Constructor from a ASN.1 CertificatePair structure.
+ The CertificatePair ASN.1 object.
+
+
+ Returns the certificate from the other CA to this CA.
+
+
+ Returns the certificate from this CA to the other CA.
+
+
+ class for dealing with X509 certificates.
+
+ At the moment this will deal with "-----BEGIN CERTIFICATE-----" to "-----END CERTIFICATE-----"
+ base 64 encoded certs, as well as the BER binaries of certificates and some classes of PKCS#7
+ objects.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRLs
+
+ Authority Key Identifier
+ Issuer Alternative Name
+ CRL Number
+ Delta CRL Indicator (critical)
+ Issuing Distribution Point (critical)
+
+
+
+ Verify the CRL's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the CRL's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the CRL algorithm is invalid.
+
+
+ Returns a string representation of this CRL.
+
+ @return a string representation of this CRL.
+
+
+ Checks whether the given certificate is on this CRL.
+
+ @param cert the certificate to check for.
+ @return true if the given certificate is on this CRL,
+ false otherwise.
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRL Entries
+
+ ReasonCode Hode Instruction Code Invalidity Date Certificate Issuer
+ (critical)
+
+
+ Constructor for CRLEntries of indirect CRLs. If isIndirect
+ is false {@link #getCertificateIssuer()} will always
+ return null, previousCertificateIssuer is
+ ignored. If this isIndirect is specified and this CrlEntry
+ has no certificate issuer CRL entry extension
+ previousCertificateIssuer is returned by
+ {@link #getCertificateIssuer()}.
+
+ @param c
+ TbsCertificateList.CrlEntry object.
+ @param isIndirect
+ true if the corresponding CRL is a indirect
+ CRL.
+ @param previousCertificateIssuer
+ Certificate issuer of the previous CrlEntry.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate revocation list (CRL) object and initializes
+ it with the data read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the CRLs read from
+ the given input stream inStream.
+
+ The inStream may contain a sequence of DER-encoded CRLs, or
+ a PKCS#7 CRL set. This is a PKCS#7 SignedData object, with the
+ only significant field being crls. In particular the signature
+ and the contents are ignored.
+
+
+
+ Get non critical extensions.
+
+ A set of non critical extension oids.
+
+
+
+ Get any critical extensions.
+
+ A sorted list of critical entension.
+
+
+
+ Get the value of a given extension.
+
+ The object ID of the extension.
+ An Asn1OctetString object if that extension is found or null if not.
+
+
+ A holding class for constructing an X509 Key Usage extension.
+
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509KeyUsage.keyEncipherment | X509KeyUsage.dataEncipherment)
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Class to Generate X509V1 Certificates.
+
+
+
+
+ Default Constructor.
+
+
+
+
+ Reset the generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can get.
+ The serial number.
+
+
+
+ Set the issuer distinguished name.
+ The issuer is the entity whose private key is used to sign the certificate.
+
+ The issuers DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the subject distinguished name.
+ The subject describes the entity associated with the public key.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+ This can be either a name or an OID, names are treated as case insensitive.
+
+ string representation of the algorithm name
+
+
+
+ Generate a new X509Certificate.
+
+ The private key of the issuer used to sign this certificate.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate specifying a SecureRandom instance that you would like to use.
+
+ The private key of the issuer used to sign this certificate.
+ The Secure Random you want to use.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ An implementation of a version 2 X.509 Attribute Certificate.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+ Class to produce an X.509 Version 2 AttributeCertificate.
+
+
+ Reset the generator
+
+
+ Set the Holder of this Attribute Certificate.
+
+
+ Set the issuer.
+
+
+ Set the serial number for the certificate.
+
+
+
+ Set the signature algorithm. This can be either a name or an OID, names
+ are treated as case insensitive.
+
+ The algorithm name.
+
+
+ Add an attribute.
+
+
+ Add a given extension field for the standard extensions tag.
+
+
+
+ Add a given extension field for the standard extensions tag.
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject,
+ using the supplied source of randomness, if required.
+
+
+
+
+ Generate a new X.509 Attribute Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An IX509AttributeCertificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ class to produce an X.509 Version 2 CRL.
+
+
+ reset the generator
+
+
+ Set the issuer distinguished name - the issuer is the entity whose private key is used to sign the
+ certificate.
+
+
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with an Invalidity Date extension as well as a CrlReason extension.
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with extensions.
+
+
+
+ Add the CRLEntry objects contained in a previous CRL.
+
+ @param other the X509Crl to source the other entries from.
+
+
+
+ Set the signature algorithm that will be used to sign this CRL.
+
+
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Crl.
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject using the specified secure random.
+
+ The private key of the issuer that is signing this certificate.
+ Your Secure Random instance.
+ An X509Crl.
+
+
+
+ Generate a new X509Crl using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Crl.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
+ A class to Generate Version 3 X509Certificates.
+
+
+
+
+ Reset the Generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can Get.
+ The serial number.
+
+
+
+ Set the distinguished name of the issuer.
+ The issuer is the entity which is signing the certificate.
+
+ The issuer's DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the DN of the entity that this certificate is about.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+
+
+
+
+
+ Set the subject unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Set the issuer unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3).
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension using a string with a dotted decimal OID.
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3),
+ copying the extension value from another certificate.
+
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ copying the extension value from another certificate.
+ @throws CertificateParsingException if the extension cannot be extracted.
+
+
+
+ Generate an X509Certificate.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Certificate.
+
+
+
+ Generate an X509Certificate using your own SecureRandom.
+
+ The private key of the issuer that is signing this certificate.
+ You Secure Random instance.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ Base class for both the compress and decompress classes.
+ Holds common arrays, and static data.
+
+ @author Keiron Liddle
+
+
+ An input stream that decompresses from the BZip2 format (with the file
+ header chars) to be read as any other stream.
+
+ @author Keiron Liddle
+
+ NB: note this class has been modified to read the leading BZ from the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+ An output stream that compresses into the BZip2 format (with the file
+ header chars) into another stream.
+
+ @author Keiron Liddle
+
+ TODO: Update to BZip2 1.0.1
+ NB: note this class has been modified to add a leading BZ to the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+
+ modified by Oliver Merkel, 010128
+
+
+
+ A simple class the hold and calculate the CRC for sanity checking
+ of the data.
+
+ @author Keiron Liddle
+
+
+
diff --git a/bin/Debug/Csv.dll b/bin/Debug/Csv.dll
new file mode 100644
index 0000000..06074ea
Binary files /dev/null and b/bin/Debug/Csv.dll differ
diff --git a/bin/Debug/Csv.xml b/bin/Debug/Csv.xml
new file mode 100644
index 0000000..f657d28
--- /dev/null
+++ b/bin/Debug/Csv.xml
@@ -0,0 +1,148 @@
+
+
+
+ Csv
+
+
+
+
+ Defines the options that can be passed to customize the reading or writing of csv files.
+
+
+
+
+ Gets or sets the number of rows to skip before reading the header row, defaults to 0.
+
+
+
+
+ Gets or sets a function to skip the current row based on its raw string value or 1-based index. Skips empty rows and rows starting with # by default.
+
+
+
+
+ Gets or sets the character to use for separating data, defaults to '\0' which will auto-detect from the header row.
+
+
+
+
+ Gets or sets wether data should be trimmed when accessed.
+
+
+
+
+ Gets or sets the comparer to use when looking up header names.
+
+
+
+
+ Gets or sets an indicator to the parser to expect a header row or not.
+
+
+
+
+ Gets or sets wether a row should be validated immediately that the column count matches the header count.
+
+
+
+
+ Helper class to read csv (comma separated values) data.
+
+
+
+
+ Reads the lines from the reader.
+
+ The text reader to read the data from.
+ The optional options to use when reading.
+
+
+
+ Reads the lines from the stream.
+
+ The stream to read the data from.
+ The optional options to use when reading.
+
+
+
+ Reads the lines from the csv string.
+
+ The csv string to read the data from.
+ The optional options to use when reading.
+
+
+
+ Helper class to write csv (comma separated values) data.
+
+
+
+
+ Writes the lines to the writer.
+
+ The text writer to write the data to.
+ The headers that should be used for the first line, determines the number of columns.
+ The lines with data that should be written.
+ The separator to use between columns (comma, semicolon, tab, ...)
+
+
+
+ Writes the lines and return the result.
+
+ The headers that should be used for the first line, determines the number of columns.
+ The lines with data that should be written.
+ The separator to use between columns (comma, semicolon, tab, ...)
+
+
+
+ Indicates the presence or absence of a header row
+
+
+
+
+ Indicates that the CSV file has a header row
+
+
+
+
+ Indicates that the CSV file does not have a header row
+
+
+
+
+ Represents a single data line inside a csv file.
+
+
+
+
+ Gets the headers from the csv file.
+
+
+
+
+ Gets the original raw content of the line.
+
+
+
+
+ Gets the 1-based index for the line inside the file.
+
+
+
+
+ Gets the number of columns of the line.
+
+
+
+
+ Gets the data for the specified named header.
+
+ The name of the header.
+
+
+
+ Gets the data for the specified indexed header.
+
+ The index of the header.
+
+
+
diff --git a/bin/Debug/FluentFTP.dll b/bin/Debug/FluentFTP.dll
new file mode 100644
index 0000000..15ae4f6
Binary files /dev/null and b/bin/Debug/FluentFTP.dll differ
diff --git a/bin/Debug/FluentFTP.xml b/bin/Debug/FluentFTP.xml
new file mode 100644
index 0000000..83e3985
--- /dev/null
+++ b/bin/Debug/FluentFTP.xml
@@ -0,0 +1,5436 @@
+
+
+
+ FluentFTP
+
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+
+
+ Used for internally synchronizing access to this
+ object from multiple threads
+
+
+
+
+ For usage by FTP proxies only
+
+
+
+
+ A list of asynchronous methods that are in progress
+
+
+
+
+ Control connection socket stream
+
+
+
+
+ Gets a value indicating if this object has already been disposed.
+
+
+
+
+ Gets the base stream for talking to the server via
+ the control connection.
+
+
+
+
+ Flags specifying which versions of the internet protocol to
+ support when making a connection. All addresses returned during
+ name resolution are tried until a successful connection is made.
+ You can fine tune which versions of the internet protocol to use
+ by adding or removing flags here. I.e., setting this property
+ to FtpIpVersion.IPv4 will cause the connection process to
+ ignore IPv6 addresses. The default value is ANY version.
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling
+ on the socket to test for connectivity.
+ Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Polling all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets or sets a value indicating whether a test should be performed to
+ see if there is stale (unrequested data) sitting on the socket. In some
+ cases the control connection may time out but before the server closes
+ the connection it might send a 4xx response that was unexpected and
+ can cause synchronization errors with transactions. To avoid this
+ problem the method checks to see if there is any data
+ available on the socket before executing a command. On Azure hosting
+ platforms this check can cause an exception to be thrown. In order
+ to work around the exception you can set this property to false
+ which will skip the test entirely however doing so eliminates the
+ best effort attempt of detecting such scenarios. See this thread
+ for more details about the Azure problem:
+ https://netftp.codeplex.com/discussions/535879
+
+
+
+
+ Gets a value indicating if the connection is alive
+
+
+
+
+ When this value is set to true (default) the control connection
+ is cloned and a new connection the server is established for the
+ data channel operation. This is a thread safe approach to make
+ asynchronous operations on a single control connection transparent
+ to the developer.
+
+
+
+
+ Gets a value indicating if this control connection is a clone. This property
+ is used with data streams to determine if the connection should be closed
+ when the stream is closed. Servers typically only allow 1 data connection
+ per control connection. If you try to open multiple data connections this
+ object will be cloned for 2 or more resulting in N new connections to the
+ server.
+
+
+
+
+ Gets or sets the text encoding being used when talking with the server. The default
+ value is however upon connection, the client checks
+ for UTF8 support and if it's there this property is switched over to
+ . Manually setting this value overrides automatic detection
+ based on the FEAT list; if you change this value it's always used
+ regardless of what the server advertises, if anything.
+
+
+
+
+ The server to connect to
+
+
+
+
+ The port to connect to. If this value is set to 0 (Default) the port used
+ will be determined by the type of SSL used or if no SSL is to be used it
+ will automatically connect to port 21.
+
+
+
+
+ Credentials used for authentication
+
+
+
+
+ Gets or sets a value that controls the maximum depth
+ of recursion that will follow symbolic
+ links before giving up. You can also specify the value
+ to be used as one of the overloaded parameters to the
+ method. The default value is 20. Specifying
+ -1 here means indefinitely try to resolve a link. This is
+ not recommended for obvious reasons (stack overflow).
+
+
+
+
+ Client certificates to be used in SSL authentication process
+
+
+
+
+ Delegate used for resolving local address, used for active data connections
+ This can be used in case you're behind a router, but port forwarding is configured to forward the
+ ports from your router to your internal IP. In that case, we need to send the router's IP instead of our internal IP.
+ See example: FtpClient.GetPublicIP -> This uses Ipify api to find external IP
+
+
+
+
+ Ports used for Active Data Connection
+
+
+
+
+ Data connection type, default is AutoPassive which tries
+ a connection with EPSV first and if it fails then tries
+ PASV before giving up. If you know exactly which kind of
+ connection you need you can slightly increase performance
+ by defining a specific type of passive or active data
+ connection here.
+
+
+
+
+ Disconnect from the server without sending QUIT. This helps
+ work around IOExceptions caused by buggy connection resets
+ when closing the control connection.
+
+
+
+
+ Gets or sets the length of time in milliseconds to wait for a connection
+ attempt to succeed before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time wait in milliseconds for data to be
+ read from the underlying stream. The default value is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds for a data connection
+ to be established before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds the data channel
+ should wait for the server to send data. Default value is
+ 15000 (15 seconds).
+
+
+
+
+ Gets or sets a value indicating if should be set on
+ the underlying stream's socket. If the connection is alive, the option is
+ adjusted in real-time. The value is stored and the KeepAlive option is set
+ accordingly upon any new connections. The value set here is also applied to
+ all future data streams. It has no affect on cloned control connections or
+ data connections already in progress. The default value is false.
+
+
+
+
+ Gets the server capabilities represented by flags
+
+
+
+
+ Get the hash types supported by the server, if any. This
+ is a recent extension to the protocol that is not fully
+ standardized and is not guaranteed to work. See here for
+ more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Type of SSL to use, or none. Default is none. Explicit is TLS, Implicit is SSL.
+
+
+
+
+ Indicates if data channel transfers should be encrypted. Only valid if
+ property is not equal to .
+
+
+
+
+ Indicates if the encryption should be disabled immediately after connecting using a CCC command.
+ This is useful when you have a FTP firewall that requires plaintext FTP, but your server mandates FTPS connections.
+
+
+
+
+ Encryption protocols to use. Only valid if EncryptionMode property is not equal to .
+ Default value is .NET Framework defaults from the class.
+
+
+
+
+ Event is fired to validate SSL certificates. If this event is
+ not handled and there are errors validating the certificate
+ the connection will be aborted.
+
+
+
+
+
+ Gets the type of system/server that we're
+ connected to.
+
+
+
+ Gets the connection type
+
+
+
+ Creates a new instance of an FTP Client.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, username and password.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port, username and password.
+
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+
+ Disconnects from the server, releases resources held by this
+ object.
+
+
+
+
+ Finalizer
+
+
+
+
+ Clones the control connection for opening multiple data streams
+
+ A new control connection with the same property settings as this one
+
+
+
+
+ Executes a command
+
+ The command to execute
+ The servers reply to the command
+
+
+
+
+ Performs execution of the specified command asynchronously
+
+ The command to execute
+ The method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends an asynchronous command
+
+ IAsyncResult returned from BeginExecute
+ FtpReply object (never null).
+
+
+
+
+ Performs an asynchronous execution of the specified command
+
+ The command to execute
+ The servers reply to the command
+
+
+
+ Retrieves a reply from the server. Do not execute this method
+ unless you are sure that a reply has been sent, i.e., you
+ executed a command. Doing so will cause the code to hang
+ indefinitely waiting for a server reply that is never coming.
+
+ FtpReply representing the response from the server
+
+
+
+
+ Retrieves a reply from the server. Do not execute this method
+ unless you are sure that a reply has been sent, i.e., you
+ executed a command. Doing so will cause the code to hang
+ indefinitely waiting for a server reply that is never coming.
+
+ FtpReply representing the response from the server
+
+
+
+
+ Connect to the server
+
+ Thrown if this object has been disposed.
+
+
+
+
+ Connect to the server
+
+ Thrown if this object has been disposed.
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+ Called during Connect(). Typically extended by FTP proxies.
+
+
+
+
+ Called during . Typically extended by FTP proxies.
+
+
+
+
+ Populates the capabilities flags based on capabilities
+ supported by this server. This method is overridable
+ so that new features can be supported
+
+ The reply object from the FEAT command. The InfoMessages property will
+ contain a list of the features the server supported delimited by a new line '\n' character.
+
+
+
+ Initiates a connection to the server
+
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends an asynchronous connection attempt to the server from
+
+ returned from
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Disconnects from the server
+
+
+
+
+ Initiates a disconnection on the server
+
+ method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+
+
+
+
+ Disconnects from the server asynchronously
+
+
+
+
+ Catches the socket stream ssl validation event and fires the event handlers
+ attached to this object for validating SSL certificates
+
+ The stream that fired the event
+ The event args used to validate the certificate
+
+
+
+ Fires the SSL validation event
+
+ Event Args
+
+
+
+ Performs a bitwise and to check if the specified
+ flag is set on the property.
+
+ The to check for
+ True if the feature was found, false otherwise
+
+
+
+ Retrieves the delegate for the specified IAsyncResult and removes
+ it from the m_asyncmethods collection if the operation is successful
+
+ Type of delegate to retrieve
+ The IAsyncResult to retrieve the delegate for
+ The delegate that generated the specified IAsyncResult
+
+
+
+ Ensure a relative path is absolute by appending the working dir
+
+
+
+
+ Ensure a relative path is absolute by appending the working dir
+
+
+
+
+ Disables UTF8 support and changes the Encoding property
+ back to ASCII. If the server returns an error when trying
+ to turn UTF8 off a FtpCommandException will be thrown.
+
+
+
+
+ Data shouldn't be on the socket, if it is it probably
+ means we've been disconnected. Read and discard
+ whatever is there and close the connection (optional).
+
+ close the connection?
+ even read encrypted data?
+ trace data to logs?
+
+
+
+ Data shouldn't be on the socket, if it is it probably
+ means we've been disconnected. Read and discard
+ whatever is there and close the connection (optional).
+
+ close the connection?
+ even read encrypted data?
+ trace data to logs?
+
+
+
+ Calculate the CHMOD integer value given a set of permissions.
+
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ FtpClient object
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ FtpClient object
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Restart location
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Calculate you public internet IP using the ipify service. Returns null if cannot be calculated.
+
+ Public IP Address
+
+
+
+ Gets the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The flag or if there was a problem.
+
+
+
+
+ Begins an asynchronous operation to get the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The flag or if there was a problem.
+
+
+
+ Gets the currently selected hash algorithm for the HASH command asynchronously.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The flag or if there was a problem.
+
+
+
+ Sets the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash Algorithm
+ Thrown if the selected algorithm is not available on the server
+
+
+
+
+ Begins an asynchronous operation to set the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash algorithm to use
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+
+
+
+ Sets the hash algorithm on the server to be used with the HASH command asynchronously.
+
+ Hash algorithm to use
+ Thrown if the selected algorithm is not available on the server
+
+
+
+ Gets the hash of an object on the server using the currently selected hash algorithm.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Full or relative path of the object to compute the hash for.
+ The hash of the file.
+
+ Thrown if the property is ,
+ the remote path does not exist, or the command cannot be executed.
+
+ Path argument is null
+ Thrown when an unknown hash algorithm type is returned by the server
+
+
+
+
+ Begins an asynchronous operation to get the hash of an object on the server using the currently selected hash algorithm.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The file you want the server to compute the hash for
+ AsyncCallback
+ State object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+
+
+
+ Gets the hash of an object on the server using the currently selected hash algorithm asynchronously.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The file you want the server to compute the hash for
+
+ Thrown if the property is ,
+ the remote path does not exist, or the command cannot be executed.
+
+ Path argument is null
+ Thrown when an unknown hash algorithm type is returned by the server
+ The hash of the file.
+
+
+
+ Retrieves a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path of the file to checksum
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+
+
+ Retrieves a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path of the file to checksum
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+ The command fails
+
+
+
+ Gets the MD5 hash of the specified file using MD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a MD5 hash. The MD5 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The MD5 hash of the specified file.
+
+
+
+ Gets the MD5 hash of the specified file using MD5 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Get the CRC value of the specified file. This is a non-standard extension of the protocol
+ and may throw a FtpCommandException if the server does not support it.
+
+ The path of the file you'd like the server to compute the CRC value for.
+ The response from the server, typically the XCRC value. FtpCommandException thrown on error
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a CRC hash. The XCRC command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The CRC hash of the specified file.
+
+
+
+ Gets the CRC hash of the specified file using XCRC asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the CRC hash.
+ The command fails
+
+
+
+ Gets the MD5 hash of the specified file using XMD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a XMD5 hash. The XMD5 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The MD5 hash of the specified file.
+
+
+
+ Gets the MD5 hash of the specified file using XMD5 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Gets the SHA-1 hash of the specified file using XSHA1. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-1 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA1 hash. The XSHA1 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-1 hash of the specified file.
+
+
+
+ Gets the SHA-1 hash of the specified file using XSHA1 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-1 hash.
+ The command fails
+
+
+
+ Gets the SHA-256 hash of the specified file using XSHA256. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-256 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA256 hash. The XSHA256 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-256 hash of the specified file.
+
+
+
+ Gets the SHA-256 hash of the specified file using XSHA256 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-256 hash.
+ The command fails
+
+
+
+ Gets the SHA-512 hash of the specified file using XSHA512. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-512 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA512 hash. The XSHA512 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-512 hash of the specified file.
+
+
+
+ Gets the SHA-512 hash of the specified file using XSHA512 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-512 hash.
+ The command fails
+
+
+
+ Gets or sets the number of bytes transferred in a single chunk (a single FTP command).
+ Used by / and /
+ to transfer large files in multiple chunks.
+
+
+
+
+ Gets or sets the retry attempts allowed when a verification failure occurs during download or upload.
+ This value must be set to 1 or more.
+
+
+
+
+ Rate limit for uploads in kbyte/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Rate limit for downloads in kbytes/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Controls if the high-level API uploads files in Binary or ASCII mode.
+
+
+
+
+ Controls if the high-level API downloads files in Binary or ASCII mode.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ Files to be uploaded
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server asynchronously.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The token to monitor for cancellation requests
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server asynchronously.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded into.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The token to monitor for cancellation requests
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded into.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the specified file directly onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified file directly onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ The token to monitor for cancellation requests.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified file directly onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified stream as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Uploads the specified byte array as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Uploads the specified stream as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ The token to monitor for cancellation requests.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Uploads the specified byte array as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ The token to monitor for cancellation requests.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Uploads the specified stream as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Uploads the specified byte array as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Upload the given stream to the server as a new file. Overwrites the file if it exists.
+ Writes data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Upload the given stream to the server as a new file asynchronously. Overwrites the file if it exists.
+ Writes data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Downloads the specified file onto the local file system.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file onto the local file system asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ The token to monitor for cancellation requests
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file onto the local file system asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file into the specified stream.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file and return the raw byte array.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The variable that will receive the bytes.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file into the specified stream asynchronously .
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ The token to monitor cancellation requests
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file into the specified stream asynchronously .
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file and return the raw byte array.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the server
+ The token to monitor cancellation requests
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ A byte array containing the contents of the downloaded file if successful, otherwise null.
+
+
+
+ Downloads the specified file into the specified stream asynchronously .
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the server
+ A byte array containing the contents of the downloaded file if successful, otherwise null.
+
+
+
+ Download a file from the server and write the data into the given stream.
+ Reads data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Download a file from the server and write the data into the given stream asynchronously.
+ Reads data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate.
+
+
+
+
+ File listing parser to be used.
+ Automatically calculated based on the type of the server, unless changed.
+
+
+
+
+ Culture used to parse file listings
+
+
+
+
+ Time difference between server and client, in hours.
+ If the server is located in New York and you are in London then the time difference is -5 hours.
+
+
+
+
+ Check if your server supports a recursive LIST command (LIST -R).
+ If you know for sure that this is unsupported, set it to false.
+
+
+
+
+ If true, increases performance of GetListing by reading multiple lines
+ of the file listing at once. If false then GetListing will read file
+ listings line-by-line. If GetListing is having issues with your server,
+ set it to false.
+
+ The number of bytes read is based upon .
+
+
+
+
+ Bytes to read during GetListing. Only honored if is true.
+
+
+
+
+ Returns information about a file system object. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ The path of the file or folder
+ Get the accurate modified date using another MDTM command
+ A FtpListItem object
+
+
+
+ Begins an asynchronous operation to return information about a remote file system object.
+
+
+ You should check the property for the
+ flag before calling this method. Failing to do so will result in an InvalidOperationException
+ being thrown when the server does not support machine listings. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ Path of the file or folder
+ Get the accurate modified date using another MDTM command
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ A if the command succeeded, or null if there was a problem.
+
+
+
+ Return information about a remote file system object asynchronously.
+
+
+ You should check the property for the
+ flag before calling this method. Failing to do so will result in an InvalidOperationException
+ being thrown when the server does not support machine listings. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+ Path of the item to retrieve information about
+ Get the accurate modified date using another MDTM command
+ Thrown if the server does not support this Capability
+ A if the command succeeded, or null if there was a problem.
+
+
+
+ Gets a file listing from the server from the current working directory. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ Options that dictacte how a list is performed and what information is gathered.
+ An array of FtpListItem objects
+
+
+
+
+ Begins an asynchronous operation to get a file listing from the server.
+ Each object returned contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to get a file listing from the server.
+ Each object returned contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Gets a file listing from the server asynchronously
+
+ The path to list
+ Options that dictate how the list operation is performed
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult return from
+ An array of items retrieved in the listing
+
+
+
+
+ Gets a file listing from the server asynchronously. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ Options that dictate how the list operation is performed
+ An array of items retrieved in the listing
+
+
+
+ Gets a file listing from the server asynchronously. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ An array of items retrieved in the listing
+
+
+
+ Gets a file listing from the server asynchronously. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ An array of items retrieved in the listing
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ A string array of file and directory names if any were returned.
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ The path of the directory to list
+ A string array of file and directory names if any were returned.
+
+
+
+
+ Begin an asynchronous operation to return a file/directory listing using the NLST command.
+
+ The path of the directory to list
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begin an asynchronous operation to return a file/directory listing using the NLST command.
+
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult object returned from
+ An array of file and directory names if any were returned.
+
+
+
+
+ Returns a file/directory listing using the NLST command asynchronously
+
+ The path of the directory to list
+ An array of file and directory names if any were returned.
+
+
+
+ Returns a file/directory listing using the NLST command asynchronously
+
+ An array of file and directory names if any were returned.
+
+
+
+ Opens the specified type of passive data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens the specified type of passive data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Returns the ip address to be sent to the server for the active connection
+
+
+
+
+
+
+ Opens the specified type of active data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens the specified type of active data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens a data stream.
+
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ The data stream.
+
+
+
+ Opens a data stream.
+
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ The data stream.
+
+
+
+ Disconnects a data stream
+
+ The data stream to close
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A readable stream of the remote file
+
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ ASCII/Binary
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ Resume location
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for writing
+
+ Full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for writing
+
+ Full or relative path of the file
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A writable stream
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket. asynchronously
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket. asynchronously
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for appending
+
+ Full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for appending
+
+ Full or relative path of the file
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A writable stream
+
+
+
+
+ Opens the specified file to be appended asynchronously
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file to be appended asynchronously
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file to be appended asynchronously
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+ Sets the data type of information sent over the data stream
+
+ ASCII/Binary
+
+
+ Internal method that handles actually setting the data type.
+ Thrown when a FTP Command error condition occurs.
+ Thrown when a FTP error condition occurs.
+ ASCII/Binary.
+ This method doesn't do any locking to prevent recursive lock scenarios. Callers must do their own locking.
+
+
+
+ Begins an asynchronous operation to set the data type of information sent over the data stream
+
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Sets the data type of information sent over the data stream asynchronously
+
+ ASCII/Binary
+
+
+
+ Deletes a file on the server
+
+ The full or relative path to the file
+
+
+
+
+ Begins an asynchronous operation to delete the specified file on the server
+
+ The full or relative path to the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDeleteFile
+
+
+
+
+ Deletes a file from the server asynchronously
+
+ The full or relative path to the file
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ If the directory is not empty, remove its contents
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Checks whether will be called recursively or not.
+
+
+
+
+
+
+ Begins an asynchronous operation to delete the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to delete the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDeleteDirectory
+
+
+
+
+ Asynchronously removes a directory and all its contents.
+
+ The full or relative path of the directory to delete
+
+
+
+ Asynchronously removes a directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+
+
+
+ Asynchronously removes a directory. Used by and
+ .
+
+ The full or relative path of the directory to delete
+ Delete the contents before deleting the folder
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Tests if the specified directory exists on the server. This
+ method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ The path of the directory
+ True if it exists, false otherwise.
+
+
+
+
+ Begins an asynchronous operation to test if the specified directory exists on the server.
+ This method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ IAsyncResult
+ The full or relative path of the directory to check for
+ Async callback
+ State object
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDirectoryExists
+ True if the directory exists. False otherwise.
+
+
+
+
+ Tests if the specified directory exists on the server asynchronously. This
+ method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ The full or relative path of the directory to check for
+ True if the directory exists. False otherwise.
+
+
+
+ Checks if a file exists on the server.
+
+ The full or relative path to the file
+ True if the file exists
+
+
+
+
+ Begins an asynchronous operation to check if a file exists on the
+ server by taking a file listing of the parent directory in the path
+ and comparing the results the path supplied.
+
+ The full or relative path to the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ True if the file exists, false otherwise
+
+
+
+
+ Checks if a file exists on the server asynchronously.
+
+ The full or relative path to the file
+ True if the file exists, false otherwise
+
+
+
+ Creates a directory on the server. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+
+
+
+
+ Creates a directory on the server
+
+ The full or relative path to the new remote directory
+ Try to force all non-existent pieces of the path to be created
+
+
+
+
+ Begins an asynchronous operation to create a remote directory. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to create a remote directory
+
+ The full or relative path to the new remote directory
+ Try to create the whole path if the preceding directories do not exist
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Creates a remote directory asynchronously
+
+ The full or relative path to the new remote directory
+ Try to create the whole path if the preceding directories do not exist
+
+
+
+ Creates a remote directory asynchronously. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+
+
+
+ Renames an object on the remote file system.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+
+
+
+
+ Begins an asynchronous operation to rename an object on the remote file system.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Renames an object on the remote file system asynchronously.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+
+
+
+ Moves a file on the remote file system from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Whether the file was moved
+
+
+
+ Begins an asynchronous operation to move a file on the remote file system, from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Moves a file asynchronously on the remote file system from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Whether the file was moved
+
+
+
+ Moves a directory on the remote file system from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Whether the directory was moved
+
+
+
+ Begins an asynchronous operation to move a directory on the remote file system, from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Moves a directory asynchronously on the remote file system from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Whether the directory was moved
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set.
+ Throws FtpCommandException if there is an issue.
+ Returns null if the server did not specify a permission value.
+ Use `GetChmod` if you required the integer value instead.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set.
+ Throws FtpCommandException if there is an issue.
+ Returns null if the server did not specify a permission value.
+ Use `GetChmod` if you required the integer value instead.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an integer in the CHMOD format.
+ Throws FtpCommandException if there is an issue.
+ Returns 0 if the server did not specify a permission value.
+ Use `GetFilePermissions` if you required the permissions in the FtpPermission format.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an integer in the CHMOD format.
+ Throws FtpCommandException if there is an issue.
+ Returns 0 if the server did not specify a permission value.
+ Use `GetFilePermissions` if you required the permissions in the FtpPermission format.
+
+ The full or relative path to the item
+
+
+
+ Recursively dereferences a symbolic link. See the
+ MaximumDereferenceCount property for controlling
+ how deep this method will recurse before giving up.
+
+ The symbolic link
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Recursively dereferences a symbolic link
+
+ The symbolic link
+ The maximum depth of recursion that can be performed before giving up.
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Derefence a FtpListItem object
+
+ The item to derefence
+ Maximum recursive calls
+ Counter
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Begins an asynchronous operation to dereference a object
+
+ The item to dereference
+ Maximum recursive calls
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to dereference a object. See the
+ property for controlling
+ how deep this method will recurse before giving up.
+
+ The item to dereference
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult
+ A , or null if the link can't be dereferenced
+
+
+
+
+ Derefence a FtpListItem object
+
+ The item to derefence
+ Maximum recursive calls
+ Counter
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+ Dereference a object asynchronously
+
+ The item to dereference
+ Maximum recursive calls
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+ Dereference a object asynchronously
+
+ The item to dereference
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+ Sets the work directory on the server
+
+ The path of the directory to change to
+
+
+
+
+ Begins an asynchronous operation to set the working directory on the server
+
+ The directory to change to
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Sets the working directory on the server asynchronously
+
+ The directory to change to
+
+
+
+ Gets the current working directory
+
+ The current working directory, ./ if the response couldn't be parsed.
+
+
+
+
+ Begins an asynchronous operation to get the working directory
+
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The current working directory
+
+
+
+
+ Gets the current working directory asynchronously
+
+ The current working directory, ./ if the response couldn't be parsed.
+
+
+
+ Gets the size of a remote file
+
+ The full or relative path of the file
+ -1 if the command fails, otherwise the file size
+
+
+
+
+ Begins an asynchronous operation to retrieve the size of a remote file
+
+ The full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The size of the file, -1 if there was a problem.
+
+
+
+
+ Retrieve the size of a remote file asynchronously
+
+ The full or relative path of the file
+ The size of the file, -1 if there was a problem.
+
+
+
+ Gets the modified time of a remote file
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ The modified time, or if there was a problem
+
+
+
+
+ Begins an asynchronous operation to get the modified time of a remote file
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The modified time, or if there was a problem
+
+
+
+
+ Gets the modified time of a remote file asynchronously
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ The modified time, or if there was a problem
+
+
+
+ Changes the modified time of a remote file
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+
+
+
+ Begins an asynchronous operation to get the modified time of a remote file
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The modified time, or if there was a problem
+
+
+
+ Gets the modified time of a remote file asynchronously
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+
+
+
+ Interface for the FtpClient class. For detailed documentation of the methods, please see the FtpClient class.
+
+
+
+
+ Defines the type of encryption to use
+
+
+
+
+ Plain text.
+
+
+
+
+ FTPS encryption is used from the start of the connection, port 990.
+
+
+
+
+ Connection starts in plain text and FTPS encryption is enabled
+ with the AUTH command immediately after the server greeting.
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ No response
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Temporary failure
+
+
+
+
+ Permanent failure
+
+
+
+
+ Server features
+
+
+
+
+ This server said it doesn't support anything!
+
+
+
+
+ Supports the MLST command
+
+
+
+
+ Supports the SIZE command
+
+
+
+
+ Supports the MDTM command
+
+
+
+
+ Supports download/upload stream resumes
+
+
+
+
+ Supports UTF8
+
+
+
+
+ PRET Command used in distributed ftp server software DrFTPD
+
+
+
+
+ Server supports the MFMT command for setting the
+ modified date of an object on the server
+
+
+
+
+ Server supports the MFCT command for setting the
+ created date of an object on the server
+
+
+
+
+ Server supports the MFF command for setting certain facts
+ about file system objects. If you need this command, it would
+ probably be handy to query FEAT your self and have a look at
+ the FtpReply.InfoMessages property to see which facts the server
+ allows you to modify.
+
+
+
+
+ Server supports the STAT command
+
+
+
+
+ Support for the HASH command
+
+
+
+
+ Support for the non-standard MD5 command
+
+
+
+
+ Support for the non-standard XMD5 command
+
+
+
+
+ Support for the non-standard XCRC command
+
+
+
+
+ Support for the non-standard XSHA1 command
+
+
+
+
+ Support for the non-standard XSHA256 command
+
+
+
+
+ Support for the non-standard XSHA512 command
+
+
+
+
+ Different types of hashing algorithms for computing checksums.
+
+
+
+
+ HASH command is not supported
+
+
+
+
+ SHA-1
+
+
+
+
+ SHA-256
+
+
+
+
+ SHA-512
+
+
+
+
+ MD5
+
+
+
+
+ CRC
+
+
+
+
+ IP Versions to allow when connecting
+ to a server.
+
+
+
+
+ Internet Protocol Version 4
+
+
+
+
+ Internet Protocol Version 6
+
+
+
+
+ Allow any supported version
+
+
+
+
+ Data connection type
+
+
+
+
+ This type of data connection attempts to use the EPSV command
+ and if the server does not support EPSV it falls back to the
+ PASV command before giving up unless you are connected via IPv6
+ in which case the PASV command is not supported.
+
+
+
+
+ Passive data connection. EPSV is a better
+ option if it's supported. Passive connections
+ connect to the IP address dictated by the server
+ which may or may not be accessible by the client
+ for example a server behind a NAT device may
+ give an IP address on its local network that
+ is inaccessible to the client. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Same as PASV except the host supplied by the server is ignored
+ and the data connection is made to the same address that the control
+ connection is connected to. This is useful in scenarios where the
+ server supplies a private/non-routable network address in the
+ PASV response. It's functionally identical to EPSV except some
+ servers may not implement the EPSV command. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Extended passive data connection, recommended. Works
+ the same as a PASV connection except the server
+ does not dictate an IP address to connect to, instead
+ the passive connection goes to the same address used
+ in the control connection. This type of data connection
+ supports IPv4 and IPv6.
+
+
+
+
+ This type of data connection attempts to use the EPRT command
+ and if the server does not support EPRT it falls back to the
+ PORT command before giving up unless you are connected via IPv6
+ in which case the PORT command is not supported.
+
+
+
+
+ Active data connection, not recommended unless
+ you have a specific reason for using this type.
+ Creates a listening socket on the client which
+ requires firewall exceptions on the client system
+ as well as client network when connecting to a
+ server outside of the client's network. In addition
+ the IP address of the interface used to connect to the
+ server is the address the server is told to connect to
+ which, if behind a NAT device, may be inaccessible to
+ the server. This type of data connection is not supported
+ by IPv6. If you specify PORT and are connected via IPv6
+ EPRT will automatically be used instead.
+
+
+
+
+ Extended active data connection, not recommended
+ unless you have a specific reason for using this
+ type. Creates a listening socket on the client
+ which requires firewall exceptions on the client
+ as well as client network when connecting to a
+ server outside of the client's network. The server
+ connects to the IP address it sees the client coming
+ from. This type of data connection supports IPv4 and IPv6.
+
+
+
+
+ Type of data transfer to do
+
+
+
+
+ ASCII transfer
+
+
+
+
+ Binary transfer
+
+
+
+
+ Type of file system of object
+
+
+
+
+ A file
+
+
+
+
+ A directory
+
+
+
+
+ A symbolic link
+
+
+
+
+ Types of file permissions
+
+
+
+
+ No access
+
+
+
+
+ Executable
+
+
+
+
+ Writable
+
+
+
+
+ Readable
+
+
+
+
+ Types of special UNIX permissions
+
+
+
+
+ No special permissions are set
+
+
+
+
+ Sticky bit is set
+
+
+
+
+ SGID bit is set
+
+
+
+
+ SUID bit is set
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ Use the legacy parser (for older projects that depend on the pre-2017 parser routines).
+
+
+
+
+ Automatically detect the file listing parser to use based on the FTP server (SYST command).
+
+
+
+
+ Machine listing parser, works on any FTP server supporting the MLST/MLSD commands.
+
+
+
+
+ File listing parser for Windows/IIS.
+
+
+
+
+ File listing parser for Unix.
+
+
+
+
+ Alternate parser for Unix. Use this if the default one does not work.
+
+
+
+
+ File listing parser for Vax/VMS/OpenVMS.
+
+
+
+
+ File listing parser for IBM OS400.
+
+
+
+
+ File listing parser for Tandem/Nonstop Guardian OS.
+
+
+
+
+ Flags that can dictate how a file listing is performed
+
+
+
+
+ Tries machine listings (MDTM command) if supported,
+ and if not then falls back to OS-specific listings (LIST command)
+
+
+
+
+ Load the modify date using MDTM when it could not
+ be parsed from the server listing. This only pertains
+ to servers that do not implement the MLSD command.
+
+
+
+
+ Load the file size using the SIZE command when it
+ could not be parsed from the server listing. This
+ only pertains to servers that do not support the
+ MLSD command.
+
+
+
+
+ Combines the Modify and Size flags
+
+
+
+
+ Show hidden/dot files. This only pertains to servers
+ that do not support the MLSD command. This option
+ makes use the non standard -a parameter to LIST to
+ tell the server to show hidden files. Since it's a
+ non-standard option it may not always work. MLSD listings
+ have no such option and whether or not a hidden file is
+ shown is at the discretion of the server.
+
+
+
+
+ Force the use of OS-specific listings (LIST command) even if
+ machine listings (MLSD command) are supported by the server
+
+
+
+
+ Use the NLST command instead of LIST for a reliable file listing
+
+
+
+
+ Force the use of the NLST command (the slowest mode) even if machine listings
+ and OS-specific listings are supported by the server
+
+
+
+
+ Try to dereference symbolic links, and stored the linked file/directory in FtpListItem.LinkObject
+
+
+
+
+ Sets the ForceList flag and uses `LS' instead of `LIST' as the
+ command for getting a directory listing. This option overrides
+ ForceNameList and ignores the AllFiles flag.
+
+
+
+
+ Gets files within subdirectories as well. Adds the -r option to the LIST command.
+ Some servers may not support this feature.
+
+
+
+
+ Do not retrieve path when no path is supplied to GetListing(),
+ instead just execute LIST with no path argument.
+
+
+
+
+ Include two extra items into the listing, for the current directory (".")
+ and the parent directory (".."). Meaningless unless you want these two
+ items for some reason.
+
+
+
+
+ Defines the behavior for uploading/downloading files that already exist
+
+
+
+
+ Do not check if the file exists. A bit faster than the other options. Only use this if you are SURE that the file does not exist on the server.
+ Otherwise it can cause the UploadFile method to hang due to filesize mismatch.
+
+
+
+
+ Skip the file if it exists, without any more checks.
+
+
+
+
+ Overwrite the file if it exists.
+
+
+
+
+ Append to the file if it exists, by checking the length and adding the missing data.
+
+
+
+
+ Defines the level of the tracing message. Depending on the framework version this is translated
+ to an equivalent logging level in System.Diagnostices (if available)
+
+
+
+
+ Used for logging Debug or Verbose level messages
+
+
+
+
+ Used for logging Informational messages
+
+
+
+
+ Used for logging non-fatal or ignorable error messages
+
+
+
+
+ Used for logging Error messages that may need investigation
+
+
+
+
+ Defines how multi-file processes should handle a processing error.
+
+ & Cannot Be Combined
+
+
+
+ No action is taken upon errors. The method absorbs the error and continues.
+
+
+
+
+ If any files have completed successfully (or failed after a partial download/upload) then should be deleted.
+ This will simulate an all-or-nothing transaction downloading or uploading multiple files. If this option is not
+ combined with or then the method will
+ continue to process all items whether if they are successful or not and then delete everything if a failure was
+ encountered at any point.
+
+
+
+
+ The method should stop processing any additional files and immediately return upon encountering an error.
+ Cannot be combined with
+
+
+
+
+ The method should stop processing any additional files and immediately throw the current error.
+ Cannot be combined with
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ No verification of the file is performed
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then we retry the download/upload
+ a specified amount of times before giving up. (See )
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the failed file will be deleted.
+ If combined with , then
+ the deletion will occur if it fails upon the final retry.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then an exception will be thrown.
+ If combined with , then the throw will
+ occur upon the failure of the final retry, and/or if combined with
+ the method will throw after the deletion is processed.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the method returns false and no other action is taken.
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ The date is whatever the server returns, with no conversion performed.
+
+
+
+
+ The date is converted to the local timezone, based on the TimeOffset property in FtpClient.
+
+
+
+
+ The date is converted to UTC, based on the TimeOffset property in FtpClient.
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+ The control connection that triggered the event
+ Event args
+
+
+
+ Event fired if a bad SSL certificate is encountered. This even is used internally; if you
+ don't have a specific reason for using it you are probably looking for FtpSslValidation.
+
+
+
+
+
+
+ Event args for the FtpSslValidationError delegate
+
+
+
+
+ The certificate to be validated
+
+
+
+
+ The certificate chain
+
+
+
+
+ Validation errors, if any.
+
+
+
+
+ Gets or sets a value indicating if this certificate should be accepted. The default
+ value is false. If the certificate is not accepted, an AuthenticationException will
+ be thrown.
+
+
+
+
+ FTP related error
+
+
+
+
+ Initializes a new instance of the class.
+
+ The error message
+
+
+
+ Initializes a new instance of the class with an inner exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Exception triggered on command failures
+
+
+
+
+ Gets the completion code associated with the response
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ Status code
+ Associated message
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ The FtpReply to build the exception from
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Exception is thrown when encryption could not be negotiated by the server
+
+
+
+
+ Default constructor
+
+
+
+
+ Custom error message
+
+ Error message
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Represents a computed hash of an object
+ on the FTP server. See the following link
+ for more information:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Gets the algorithm that was used to compute the hash
+
+
+
+
+ Gets the computed hash returned by the server
+
+
+
+
+ Gets a value indicating if this object represents a
+ valid hash response from the server.
+
+
+
+
+ Computes the hash for the specified file and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The file to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Computes the hash for the specified stream and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The stream to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Creates an empty instance.
+
+
+
+
+ Represents a file system object on the server
+
+
+
+
+
+ Blank constructor; Fill args manually.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Constructor with mandatory args filled.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Gets the type of file system object.
+
+
+
+
+ Gets the full path name to the object.
+
+
+
+
+ Gets the name of the object.
+
+
+
+
+ Gets the target a symbolic link points to.
+
+
+
+
+ Gets the number of links pointing to this file. Only supplied by Unix servers.
+
+
+
+
+ Gets the object that the LinkTarget points to. This property is null unless you pass the
+ flag in which case GetListing() will try to resolve
+ the target itself.
+
+
+
+
+ Gets the last write time of the object.
+
+
+
+
+ Gets the created date of the object.
+
+
+
+
+ Gets the size of the object.
+
+
+
+
+ Gets special UNIX permissions such as Sticky, SUID and SGID.
+
+
+
+
+ Gets the owner permissions.
+
+
+
+
+ Gets the group permissions.
+
+
+
+
+ Gets the others permissions.
+
+
+
+
+ Gets the raw string received for the file permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the file permissions in the CHMOD format.
+
+
+
+
+ Gets the raw string received for the file's GROUP permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the raw string received for the file's OWNER permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the input string that was parsed to generate the
+ values in this object.
+
+
+
+
+ Returns a string representation of this object and its properties
+
+ A string representing this object
+
+
+
+ Parses a line from a file listing using the first successful parser, or the specified parser.
+ Returns an FtpListItem object representing the parsed line, or null if the line was unable to be parsed.
+
+
+
+
+ the FTP connection that owns this parser
+
+
+
+
+ which server type? (SYST)
+
+
+
+
+ current parser, or parser set by user
+
+
+
+
+ parser calculated based on system type (SYST command)
+
+
+
+
+ if we have detected that the current parser is valid
+
+
+
+
+ which culture to read filenames with?
+
+
+
+
+ what is the time offset between server/client?
+
+
+
+
+ any time offset between server/client?
+
+
+
+
+ VMS ONLY : the blocksize used to calculate the file
+
+
+
+
+ Is the version number returned as part of the filename?
+
+ Some VMS FTP servers do not permit a file to be deleted unless
+ the filename includes the version number. Note that directories are
+ never returned with the version number.
+
+
+
+
+ Initializes a new instance of the class.
+
+ An existing object
+
+
+
+ Try to auto-detect which parser is suitable given a system string.
+
+ result of SYST command
+
+
+
+ Parse raw file list from server into file objects, using the currently active parser.
+
+
+
+
+ Parse raw file from server into a file object, using the currently active parser.
+
+
+
+
+ Validate if the current parser is correct, or if another parser seems more appropriate.
+
+
+
+
+ Validate if the current parser is correct
+
+
+
+
+ Parses a line from a file listing using the first successful match in the Parsers collection.
+
+ The source path of the file listing
+ A line from the file listing
+ Server capabilities
+ A FtpListItem object representing the parsed line, null if the line was
+ unable to be parsed. If you have encountered an unsupported list type add a parser
+ to the public static Parsers collection of FtpListItem.
+
+
+
+ Used for synchronizing access to the Parsers collection
+
+
+
+
+ Initializes the default list of parsers
+
+
+
+
+ Collection of parsers. Each parser object contains
+ a regex string that uses named groups, i.e., (?<group_name>foobar).
+ The support group names are modify for last write time, size for the
+ size and name for the name of the file system object. Each group name is
+ optional, if they are present then those values are retrieved from a
+ successful match. In addition, each parser contains a Type property
+ which gets set in the FtpListItem object to distinguish between different
+ types of objects.
+
+
+
+
+ Adds a custom parser
+
+ The parser delegate to add
+
+
+
+
+ Removes all parser delegates
+
+
+
+
+ Removes the specified parser
+
+ The parser delegate to remove
+
+
+
+ Parses LIST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS DOS format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Ftp listing line parser
+
+ The line from the listing
+ The server capabilities
+ FtpListItem if the line can be parsed, null otherwise
+
+
+
+ Parses MLSD/MLST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings with alternate parser
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS/DOS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Vax/VMS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses NonStop format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IBM OS/400 format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Split into fields by splitting on strings
+
+
+
+ Fix the date string to make the month camel case
+ array of fields
+
+
+
+ Represents a reply to an event on the server
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ The status code of the response
+
+
+
+
+ The message, if any, that the server sent with the response
+
+
+
+
+ Informational messages sent from the server
+
+
+
+
+ General success or failure of the last command executed
+
+
+
+
+ Gets the error message including any informational output
+ that was sent by the server. Sometimes the final response
+ line doesn't contain anything informative as to what was going
+ on with the server. Instead it may send information messages so
+ in an effort to give as meaningful as a response as possible
+ the informational messages will be included in the error.
+
+
+
+
+ Used for transaction logging and debug information.
+
+
+
+
+ Should the trace listeners be flushed immediately after writing to them?
+
+
+
+
+ Should the log entries be written with a prefix of "FluentFTP"?
+ Useful if you have a single TraceListener shared across multiple libraries.
+
+
+
+
+ Add a TraceListner to the collection. You can use one of the predefined
+ TraceListeners in the System.Diagnostics namespace, such as ConsoleTraceListener
+ for logging to the console, or you can write your own deriving from
+ System.Diagnostics.TraceListener.
+
+ The TraceListener to add to the collection
+
+
+
+ Remove the specified TraceListener from the collection
+
+ The TraceListener to remove from the collection.
+
+
+
+ Should the function calls be logged in Verbose mode?
+
+
+
+
+ Should the FTP server IP addresses be included in the logs?
+
+
+
+
+ Should the FTP usernames be included in the logs?
+
+
+
+
+ Should the FTP passwords be included in the logs?
+
+
+
+
+ Should we trace at all?
+
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, adding an automatic prefix to the message based on the `eventType`
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, for the purpose of logging a API function call
+
+ The name of the API function
+ The args passed to the function
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ A formattable string to write
+
+
+ A FTP client with a HTTP 1.1 proxy implementation.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+ Host name
+ Port number
+ IP version to use
+
+
+
+ Abstraction of an FtpClient with a proxy
+
+
+
+ The proxy connection info.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine connect for FtpClient : authentication on the Proxy
+ The socket stream.
+
+
+ A FTP client with a user@host proxy identification.
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+
+ A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers.
+
+ The 'blue coat variant' forces the client to wait for a 220 FTP response code in
+ the handshake phase.
+
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+ POCO holding proxy information
+
+
+ Proxy host name
+
+
+ Proxy port
+
+
+ Proxy login credentials
+
+
+
+ Base class for data stream connections
+
+
+
+
+ Gets the status of the command that was used to open
+ this data channel
+
+
+
+
+ Gets or sets the control connection for this data stream. Setting
+ the control connection causes the object to be cloned and a new
+ connection is made to the server to carry out the task. This ensures
+ that multiple streams can be opened simultaneously.
+
+
+
+
+ Gets or sets the length of the stream. Only valid for file transfers
+ and only valid on servers that support the Size command.
+
+
+
+
+ Gets or sets the position of the stream
+
+
+
+
+ Reads data off the stream
+
+ The buffer to read into
+ Where to start in the buffer
+ Number of bytes to read
+ The number of bytes read
+
+
+
+ Reads data off the stream asynchronously
+
+ The buffer to read into
+ Where to start in the buffer
+ Number of bytes to read
+ The cancellation token for this task
+ The number of bytes read
+
+
+
+ Writes data to the stream
+
+ The buffer to write to the stream
+ Where to start in the buffer
+ The number of bytes to write to the buffer
+
+
+
+ Writes data to the stream asynchronously
+
+ The buffer to write to the stream
+ Where to start in the buffer
+ The number of bytes to write to the buffer
+ The for this task
+
+
+
+ Sets the length of this stream
+
+ Value to apply to the Length property
+
+
+
+ Sets the position of the stream. Intended to be used
+ internally by FtpControlConnection.
+
+ The position
+
+
+
+ Closes the connection and reads the server's reply
+
+
+
+
+ Creates a new data stream object
+
+ The control connection to be used for carrying out this operation
+
+
+
+ Finalizer
+
+
+
+
+ Stream class used for talking. Used by FtpClient, extended by FtpDataStream
+
+
+
+
+ Used for tacking read/write activity on the socket
+ to determine if Poll() should be used to test for
+ socket connectivity. The socket in this class will
+ not know it has been disconnected if the remote host
+ closes the connection first. Using Poll() avoids
+ the exception that would be thrown when trying to
+ read or write to the disconnected socket.
+
+
+
+
+ The socket used for talking
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling Poll() on the socket to test for
+ connectivity. Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Poll()'ing all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets the number of available bytes on the socket, 0 if the
+ socket has not been initialized. This property is used internally
+ by FtpClient in an effort to detect disconnections and gracefully
+ reconnect the control connection.
+
+
+
+
+ Gets a value indicating if this socket stream is connected
+
+
+
+
+ Gets a value indicating if encryption is being used
+
+
+
+
+ The non-encrypted stream
+
+
+
+
+ The encrypted stream
+
+
+
+
+ Gets the underlying stream, could be a NetworkStream or SslStream
+
+
+
+
+ Gets a value indicating if this stream can be read
+
+
+
+
+ Gets a value indicating if this stream if seekable
+
+
+
+
+ Gets a value indicating if this stream can be written to
+
+
+
+
+ Gets the length of the stream
+
+
+
+
+ Gets the current position of the stream. Trying to
+ set this property throws an InvalidOperationException()
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+
+
+
+ Gets or sets the amount of time to wait for a read operation to complete. Default
+ value is Timeout.Infinite.
+
+
+
+
+ Gets or sets the length of time milliseconds to wait
+ for a connection succeed before giving up. The default
+ is 30000 (30 seconds).
+
+
+
+
+ Gets the local end point of the socket
+
+
+
+
+ Gets the remote end point of the socket
+
+
+
+
+ Fires the SSL certificate validation event
+
+ Certificate being validated
+ Certificate chain
+ Policy errors if any
+ True if it was accepted, false otherwise
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+ Ignored
+
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+
+
+
+ Flushes the stream
+
+
+
+
+ Flushes the stream asynchronously
+
+ The for this task
+
+
+
+ Bypass the stream and read directly off the socket.
+
+ The buffer to read into
+ The number of bytes read
+
+
+
+ Bypass the stream and read directly off the socket.
+
+ The buffer to read into
+ The number of bytes read
+
+
+
+ Reads data from the stream
+
+ Buffer to read into
+ Where in the buffer to start
+ Number of bytes to be read
+ The amount of bytes read from the stream
+
+
+
+ Reads data from the stream
+
+ Buffer to read into
+ Where in the buffer to start
+ Number of bytes to be read
+ The for this task
+ The amount of bytes read from the stream
+
+
+
+ Reads a line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads all line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ The size of the buffer
+ A list of lines from the stream
+
+
+
+ Reads a line from the socket asynchronously
+
+ The type of encoding used to convert from byte[] to string
+ The for this task
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads a line from the socket asynchronously
+
+ The type of encoding used to convert from byte[] to string
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads all line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ The size of the buffer
+ A list of lines from the stream
+
+
+
+ Writes data to the stream
+
+ Buffer to write to stream
+ Where in the buffer to start
+ Number of bytes to be read
+
+
+
+ Writes data to the stream asynchronously
+
+ Buffer to write to stream
+ Where in the buffer to start
+ Number of bytes to be read
+ The for this task
+
+
+
+ Writes a line to the stream using the specified encoding
+
+ Encoding used for writing the line
+ The data to write
+
+
+
+ Writes a line to the stream using the specified encoding asynchronously
+
+ Encoding used for writing the line
+ The data to write
+ The for this task
+
+
+
+ Writes a line to the stream using the specified encoding asynchronously
+
+ Encoding used for writing the line
+ The data to write
+
+
+
+ Disconnects from server
+
+
+
+
+ Sets socket options on the underlying socket
+
+ SocketOptionLevel
+ SocketOptionName
+ SocketOptionValue
+
+
+
+ Connect to the specified host
+
+ The host to connect to
+ The port to connect to
+ Internet Protocol versions to support during the connection phase
+
+
+
+ Connect to the specified host
+
+ The host to connect to
+ The port to connect to
+ Internet Protocol versions to support during the connection phase
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+
+
+
+ Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+ A bitwise parameter for supported encryption protocols.
+ Thrown when authentication fails
+
+
+
+ Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+ A bitwise parameter for supported encryption protocols.
+ Thrown when authentication fails
+
+
+
+ Deactivates SSL on this stream using the specified protocols and reverts back to plain-text FTP.
+
+
+
+
+ Instructs this stream to listen for connections on the specified address and port
+
+ The address to listen on
+ The port to listen on
+
+
+
+ Accepts a connection from a listening socket
+
+
+
+
+ Accepts a connection from a listening socket
+
+
+
+
+ Asynchronously accepts a connection from a listening socket
+
+
+
+
+
+
+
+ Completes a BeginAccept() operation
+
+ IAsyncResult returned from BeginAccept
+
+
+
+ .NET SslStream doesn't close TLS connection properly.
+ It does not send the close_notify alert before closing the connection.
+ FtpSslStream uses unsafe code to do that.
+ This is required when we want to downgrade the connection to plaintext using CCC command.
+ Thanks to Neco @ https://stackoverflow.com/questions/237807/net-sslstream-doesnt-close-tls-connection-properly/22626756#22626756
+
+
+
+
+ Send an SSL close_notify alert.
+
+
+
+
+
+ Extension methods related to FTP tasks
+
+
+
+
+ Converts the specified path into a valid FTP file system path
+
+ The file system path
+ A path formatted for FTP
+
+
+
+ Creates a valid FTP path by appending the specified segments to this string
+
+ This string
+ The path segments to append
+ A valid FTP path
+
+
+
+ Gets the parent directory path (formatted for a FTP server)
+
+ The path
+ The parent directory path
+
+
+
+ Gets the file name and extension from the path
+
+ The full path to the file
+ The file name
+
+
+
+ Tries to convert the string FTP date representation into a object
+
+ The date
+ UTC/Local Time
+ A object representing the date, or if there was a problem
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ This creates a that represents a pair of begin and end methods
+ that conform to the Asynchronous Programming Model pattern. This extends the maximum amount of arguments from
+ to 4 from a 3.
+
+ The type of the first argument passed to the delegate
+ The type of the second argument passed to the delegate
+ The type of the third argument passed to the delegate
+ The type of the forth argument passed to the delegate
+ The type of the result.
+ The used
+ The delegate that begins the asynchronous operation
+ The delegate that ends the asynchronous operation
+ The first argument passed to the delegate
+ The second argument passed to the delegate
+ The third argument passed to the delegate
+ The forth argument passed to the delegate
+ An object containing data to be used by the delegate
+ The created that represents the asynchronous operation
+
+ beginMethod is null
+ or
+ endMethod is null
+
+
+
+
+ Validates that the FtpError flags set are not in an invalid combination.
+
+ The error handling options set
+ True if a valid combination, otherwise false
+
+
+
+ Checks if every character in the string is whitespace, or the string is null.
+
+
+
+
+ Checks if the string is null or 0 length.
+
+
+
+
+ Checks if the array is null or 0 length.
+
+
+
+
+ Checks if the array is null or 0 length.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
diff --git a/bin/Debug/Microsoft.DotNet.PlatformAbstractions.dll b/bin/Debug/Microsoft.DotNet.PlatformAbstractions.dll
new file mode 100644
index 0000000..b60e8c3
Binary files /dev/null and b/bin/Debug/Microsoft.DotNet.PlatformAbstractions.dll differ
diff --git a/bin/Debug/Microsoft.Extensions.DependencyModel.dll b/bin/Debug/Microsoft.Extensions.DependencyModel.dll
new file mode 100644
index 0000000..68f3631
Binary files /dev/null and b/bin/Debug/Microsoft.Extensions.DependencyModel.dll differ
diff --git a/bin/Debug/Newtonsoft.Json.dll b/bin/Debug/Newtonsoft.Json.dll
new file mode 100644
index 0000000..8069902
Binary files /dev/null and b/bin/Debug/Newtonsoft.Json.dll differ
diff --git a/bin/Debug/Newtonsoft.Json.xml b/bin/Debug/Newtonsoft.Json.xml
new file mode 100644
index 0000000..2ef7a77
--- /dev/null
+++ b/bin/Debug/Newtonsoft.Json.xml
@@ -0,0 +1,10912 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false.
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a parameterized constructor.
+
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Creates a custom object.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a F# discriminated union type to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an Entity Framework to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z").
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+ The default value is false.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether integer values are allowed when deserializing.
+ The default value is true.
+
+ true if integers are allowed when deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from Unix epoch time
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements.
+
+ The name of the deserialized root element.
+
+
+
+ Gets or sets a flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attribute is written to the XML; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ true if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that it is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and set members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent an array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, when returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, when returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items.
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between .NET types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the to a JSON string.
+
+ The node to serialize.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false.
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false.
+
+
+
+ Converts an object to and from JSON.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read. If there is no existing value then null will be used.
+ The existing value has a value.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+ Parameter list to use when constructing the . Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false. The default is true.
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false. The default is true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the used when serializing the property's collection items.
+
+ The collection's items .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously skips the children of the current token.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ A read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader is in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the source should be closed when this reader is closed.
+
+
+ true to close the source when this reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false.
+ The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Gets or sets how time zones are handled when reading JSON.
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Gets or sets how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads the next JSON token from the source.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+ A flag indicating whether the position index inside an array should be updated.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the source is also closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and to require that the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+ The default value is .
+
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) are handled.
+ The default value is .
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+ Null value handling.
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The containing the JSON data to read.
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many s to write for each level in the hierarchy when is set to .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Initializes a new instance of the class using the specified .
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a read method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+
+ Represents a reader that provides validation.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Sets an event handler for receiving schema validation errors.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+
+ Initializes a new instance of the class that
+ validates the content returned from the given .
+
+ The to read from while validating.
+
+
+
+ Gets or sets the schema.
+
+ The schema.
+
+
+
+ Gets the used to construct this .
+
+ The specified in the constructor.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+
+ A [] or null if the next JSON token is null.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously ets the state of the .
+
+ The being written.
+ The value being written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Gets or sets a value indicating whether the destination should be closed when this writer is closed.
+
+
+ true to close the destination when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed.
+
+
+ true to auto-complete the JSON when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Gets or sets a value indicating how JSON text output should be formatted.
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+
+
+
+
+ Gets or sets how time zones are handled when writing JSON text.
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the destination and also flushes the destination.
+
+
+
+
+ Closes this writer.
+ If is set to true, the destination is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the .
+
+ The being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while writing JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A of that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+
+
+
+ Removes all items from the .
+
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the list changes or an item in the list changes.
+
+
+
+
+ Occurs before an item is added to the collection.
+
+
+
+
+ Occurs when the items list of the collection has changed, or the collection is reset.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An of containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An of containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates a that can be used to add tokens to the .
+
+ A that is ready to have content written to it.
+
+
+
+ Replaces the child nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens.
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Occurs when a property value is changing.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of of this object's properties.
+
+ An of of this object's properties.
+
+
+
+ Gets a the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets a of of this object's property values.
+
+ A of of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Determines whether the JSON object has the specified property name.
+
+ Name of the property.
+ true if the JSON object has the specified property name; otherwise, false.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries to get the with the specified property name.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a view of a .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ When overridden in a derived class, returns whether resetting an object changes its value.
+
+
+ true if resetting the component changes its value; otherwise, false.
+
+ The component to test for reset capability.
+
+
+
+ When overridden in a derived class, gets the current value of the property on a component.
+
+
+ The value of a property for a given component.
+
+ The component with the property for which to retrieve the value.
+
+
+
+ When overridden in a derived class, resets the value for this property of the component to the default value.
+
+ The component with the property value that is to be reset to the default value.
+
+
+
+ When overridden in a derived class, sets the value of the component to a different value.
+
+ The component with the property value that is to be set.
+ The new value.
+
+
+
+ When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted.
+
+
+ true if the property should be persisted; otherwise, false.
+
+ The component with the property to be examined for persistence.
+
+
+
+ When overridden in a derived class, gets the type of the component this property is bound to.
+
+
+ A that represents the type of component this property is bound to.
+ When the or
+
+ methods are invoked, the object specified might be an instance of this type.
+
+
+
+
+ When overridden in a derived class, gets a value indicating whether this property is read-only.
+
+
+ true if the property is read-only; otherwise, false.
+
+
+
+
+ When overridden in a derived class, gets the type of the property.
+
+
+ A that represents the type of the property.
+
+
+
+
+ Gets the hash code for the name of the member.
+
+
+
+ The hash code for the name of the member.
+
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Asynchronously creates an instance of with the content of the reader's current token.
+
+ The reader.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns an instance of with the content of the reader's current token.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+
+ The JSON line info handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output should be formatted.
+ A collection of s which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates a for this token.
+
+ A that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object.
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An of that contains the selected elements.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being written.
+
+ The token being written.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the JSON is auto-completed.
+
+
+ Setting to true has no additional effect, since the underlying is a type that cannot be closed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will be raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of s which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not of the same type as this instance.
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement .
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+
+ Contains the JSON schema extension methods.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ When this method returns, contains any error messages generated while validating.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ The validation event handler.
+
+
+
+
+ An in-memory representation of a JSON Schema.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the id.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ Gets or sets whether the object is required.
+
+
+
+
+ Gets or sets whether the object is read-only.
+
+
+
+
+ Gets or sets whether the object is visible to users.
+
+
+
+
+ Gets or sets whether the object is transient.
+
+
+
+
+ Gets or sets the description of the object.
+
+
+
+
+ Gets or sets the types of values allowed by the object.
+
+ The type.
+
+
+
+ Gets or sets the pattern.
+
+ The pattern.
+
+
+
+ Gets or sets the minimum length.
+
+ The minimum length.
+
+
+
+ Gets or sets the maximum length.
+
+ The maximum length.
+
+
+
+ Gets or sets a number that the value should be divisible by.
+
+ A number that the value should be divisible by.
+
+
+
+ Gets or sets the minimum.
+
+ The minimum.
+
+
+
+ Gets or sets the maximum.
+
+ The maximum.
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+
+
+ Gets or sets the minimum number of items.
+
+ The minimum number of items.
+
+
+
+ Gets or sets the maximum number of items.
+
+ The maximum number of items.
+
+
+
+ Gets or sets the of items.
+
+ The of items.
+
+
+
+ Gets or sets a value indicating whether items in an array are validated using the instance at their array position from .
+
+
+ true if items are validated using their array position; otherwise, false.
+
+
+
+
+ Gets or sets the of additional items.
+
+ The of additional items.
+
+
+
+ Gets or sets a value indicating whether additional items are allowed.
+
+
+ true if additional items are allowed; otherwise, false.
+
+
+
+
+ Gets or sets whether the array items must be unique.
+
+
+
+
+ Gets or sets the of properties.
+
+ The of properties.
+
+
+
+ Gets or sets the of additional properties.
+
+ The of additional properties.
+
+
+
+ Gets or sets the pattern properties.
+
+ The pattern properties.
+
+
+
+ Gets or sets a value indicating whether additional properties are allowed.
+
+
+ true if additional properties are allowed; otherwise, false.
+
+
+
+
+ Gets or sets the required property if this property is present.
+
+ The required property if this property is present.
+
+
+
+ Gets or sets the a collection of valid enum values allowed.
+
+ A collection of valid enum values allowed.
+
+
+
+ Gets or sets disallowed types.
+
+ The disallowed types.
+
+
+
+ Gets or sets the default value.
+
+ The default value.
+
+
+
+ Gets or sets the collection of that this schema extends.
+
+ The collection of that this schema extends.
+
+
+
+ Gets or sets the format.
+
+ The format.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The object representing the JSON Schema.
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The to use when resolving schema references.
+ The object representing the JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema.
+
+ A that contains JSON Schema.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema using the specified .
+
+ A that contains JSON Schema.
+ The resolver.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Writes this schema to a .
+
+ A into which this method will write.
+
+
+
+ Writes this schema to a using the specified .
+
+ A into which this method will write.
+ The resolver used.
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+
+ Returns detailed information about the schema exception.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+
+ Generates a from a specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets how undefined schemas are handled by the serializer.
+
+
+
+
+ Gets or sets the contract resolver.
+
+ The contract resolver.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+
+ Resolves from an id.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the loaded schemas.
+
+ The loaded schemas.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a for the specified reference.
+
+ The id.
+ A for the specified reference.
+
+
+
+
+ The value types allowed by the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ No type specified.
+
+
+
+
+ String type.
+
+
+
+
+ Float type.
+
+
+
+
+ Integer type.
+
+
+
+
+ Boolean type.
+
+
+
+
+ Object type.
+
+
+
+
+ Array type.
+
+
+
+
+ Null type.
+
+
+
+
+ Any type.
+
+
+
+
+
+ Specifies undefined schema Id handling options for the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Do not infer a schema Id.
+
+
+
+
+ Use the .NET type name as the schema Id.
+
+
+
+
+ Use the assembly qualified .NET type name as the schema Id.
+
+
+
+
+
+ Returns detailed information related to the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the associated with the validation error.
+
+ The JsonSchemaException associated with the validation error.
+
+
+
+ Gets the path of the JSON location where the validation error occurred.
+
+ The path of the JSON location where the validation error occurred.
+
+
+
+ Gets the text description corresponding to the validation error.
+
+ The text description.
+
+
+
+
+ Represents the callback method that will handle JSON schema validation events and the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ A camel case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false.
+
+
+
+
+ Gets or sets the default members search flags.
+
+ The default members search flags.
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types.
+
+
+ true if the interface will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types.
+
+
+ true if the attribute will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types.
+
+
+ true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types.
+
+
+ true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized.
+
+ The naming strategy used to resolve how property names and dictionary keys are serialized.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the name of the extension data. By default no changes are made to extension data names.
+
+ Name of the extension data.
+ Resolved name of the extension data.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default naming strategy. Property names and dictionary keys are unchanged.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer that writes to the application's instances.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that was resolved from the reference.
+
+
+
+ Gets the reference for the specified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false.
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false.
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non-public.
+
+ true if the default object creator is non-public; otherwise, false.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object constructor.
+
+ The object constructor.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Gets or sets the extension data name resolver.
+
+ The extension data name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes precedence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false.
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false.
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the type described by the argument.
+
+ The type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ A base class for resolving how property names and dictionary keys are serialized.
+
+
+
+
+ A flag indicating whether dictionary keys should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether extension data names should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether explicitly specified property names,
+ e.g. a property name customized with a , should be processed.
+ Defaults to false.
+
+
+
+
+ Gets the serialized name for a given property name.
+
+ The initial property name.
+ A flag indicating whether the property has had a name explicitly specified.
+ The serialized property name.
+
+
+
+ Gets the serialized name for a given extension data name.
+
+ The initial extension data name.
+ The serialized extension data name.
+
+
+
+ Gets the serialized key for a given dictionary key.
+
+ The initial dictionary key.
+ The serialized dictionary key.
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ A snake case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+ Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON
+ you must specify a root type object with
+ or .
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false.
+
+
+
+
+ Adds the elements of the specified collection to the specified generic .
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic that returns a result
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Returns a Restrictions object which includes our current restrictions merged
+ with a restriction limiting our type
+
+
+
+
+ Helper class for serializing immutable collections.
+ Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed
+ https://github.com/JamesNK/Newtonsoft.Json/issues/652
+
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the member is an indexed property.
+
+ The member.
+
+ true if the member is an indexed property; otherwise, false.
+
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false.
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false.
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false.
+
+
+
+
+ Builds a string. Unlike this class lets you reuse its internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false.
+
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls result in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ An array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+
diff --git a/bin/Debug/SdkApi.Core.dll b/bin/Debug/SdkApi.Core.dll
new file mode 100644
index 0000000..05b0e1e
Binary files /dev/null and b/bin/Debug/SdkApi.Core.dll differ
diff --git a/bin/Debug/SdkApi.Core.xml b/bin/Debug/SdkApi.Core.xml
new file mode 100644
index 0000000..7a6f633
--- /dev/null
+++ b/bin/Debug/SdkApi.Core.xml
@@ -0,0 +1,8999 @@
+
+
+
+ SdkApi.Core
+
+
+
+
+ Takes in a certificate file (P12, DER, PEM, etc) and processes it into a ZebraCertificateInfo object which contains
+ the selected certificate, Certificate Authority certificate chain, and private key (if applicable).
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Takes in a certificate file (P12, DER, PEM, etc) and processes it into a ZebraCertificateInfo object which contains
+ the selected certificate, Certificate Authority certificate chain, and private key (if applicable).
+
+ Data stream for the certificate file to be processed.
+ The certificate to use within a multi-certificate (like PKCS12) file.
+ Used to unlock a protected certificate file.
+ Instance containing all certificate and key information for the processed file.
+ If there is an issue reading the certificate file.
+ If there is an issue processing the certificate file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Signals that an error occurred while converting a certificate.
+
+
+
+
+ Constructs a ZebraCertificateConversionException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a ZebraCertificateConversionException with message as the detailed error
+ message and cause as the underlying exception.
+
+ User defined message for the exception.
+ What created the exception.
+
+
+
+ Handler class for managing certificate and private key information.
+
+
+
+
+ The file name on a printer to which a private key must be saved for wireless security.
+
+
+
+
+ The file name on a printer to which a wireless ca must be saved for wireless security.
+
+
+
+
+ The file name on a printer to which a client cert must be saved for wireless security.
+
+
+
+
+ Initializes a new instance of the ZebraCertificateInfo class.
+
+
+
+
+ Returns the CA Certificate chain.
+
+ CA Certificate chain in PEM format.
+
+
+
+ Contains the client certificate, if set.
+
+
+
+
+ Contains the Certificate Authority certificate chain, if set.
+
+
+
+
+ Contains the private key, if set.
+
+
+
+
+ A utility class used to extract info from certificate files and convert the contents into Zebra friendly formats.
+
+
+
+
+
+ Creates a wrapper that opens up the provided certificate keystore stream.
+
+ The stream containing certificate keystore file contents.
+ The password used to access the certificate file.
+ Thrown if the certificate stream contents cannot be accessed or if the
+ certificate password was incorrect.
+
+
+
+ Get a list of aliases present in the certificate keystore.
+
+ A list of the aliases present in the certificate keystore.
+ If the keystore has not been initialized (loaded).
+
+
+
+ Get the content of the first entry in the certificate's certificate chain.
+
+ The returned content is converted to PEM format. The resulting content can be stored to a printer for use
+ with wireless security. Since no alias is provided, the first entry in the certificate file will be used.
+ The Zebra-friendly certificate content
+ If the provided alias does not exist or the certificate content is corrupt
+
+
+
+ Get the content of the first entry in the certificate's certificate chain.
+
+ The returned content is converted to PEM format. The resulting content can be stored to a printer for use
+ with wireless security.
+ The alias name of the specific entry to extract from the certificate file.
+ The Zebra-friendly certificate content.
+ If the provided alias does not exist or the certificate content is corrupt
+
+
+
+ Get the content of the ca, which is determined to be all entries in the certificate chain after the first entry.
+
+ The returned ca is converted to PEM format. The resulting content can be stored to a printer for use with
+ wireless security. Since no alias is provided, the first entry in the certificate file will be used.
+ The Zebra-friendly ca content.
+ If the provided alias does not exist or the ca content is corrupt.
+
+
+
+ Get the content of the ca, which is determined to be all entries in the certificate chain after the first entry.
+
+ The returned ca is converted to PEM format. The resulting content can be stored to a printer for use with
+ wireless security.
+ The alias name of the specific entry to extract from the certificate file.
+ The Zebra-friendly ca content.
+ If the provided alias does not exist or the ca content is corrupt.
+
+
+
+ Get the encrypted private key content.
+
+ The returned key is encrypted and converted to PEM format. The resulting content can be stored
+ to a printer for use with wireless security.Since no alias is provided, the first entry in the certificate
+ file will be used. Note: Any printer using the generated private key must also be configured to use the
+ password provided here to encrypt the private key.Send the following command to the printer to configure
+ it to use a private key encryption password: ! U1 setvar "wlan.private_key_password" "value".
+ The password used to encrypt the resulting private key.
+ The encrypted private key in PEM format.
+ If the provided alias does not exist, certificate password is
+ incorrect, or private key content is corrupt.
+
+
+
+ Get the encrypted private key content.
+
+ The resulting content can be stored to a printer for use with wireless security.
+ Note: Any printer using the generated private key must also be configured to use the provided password to
+ encrypt the private key. Send the following command to the printer to configure it to use a private key
+ encryption password: ! U1 setvar "wlan.private_key_password" "value".
+ The alias name of the specific entry to extract from the certificate file.
+ The password used to encrypt the resulting private key.
+ The encrypted private key in PEM format.
+ If the provided alias does not exist, certificate password is
+ incorrect, or private key content is corrupt.
+
+
+
+ Get the common name of the client certificate associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The certificate common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the client certificate associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The certificate common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the CA associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The CA common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the CA associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file
+ The CA common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the expiration data of the client certificate associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The client certificate expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the client certificate associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The client certificate expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the CA associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The CA expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the CA associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The CA expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the algorithm used by the private key.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The private key algorithm.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the algorithm used by the private key.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The private key algorithm.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the issuer of the client certificate.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The client certificate issuer.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the issuer of the client certificate.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The client certificate issuer.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Gets the keystore of the processed client certificate.
+
+ The Pkcs12Store containing information about the processed certificate file.
+
+
+
+ A connection to a device.
+
+
+
+
+ Opens the connection to a device.
+
+
+ If the open method is called when this connection has already been
+ opened, this call is ignored. When a handle to the connection is no longer needed, you must call
+ to free up system resources.
+
+ If the connection cannot be established.
+
+
+
+ Closes this connection and releases any system resources associated with the connection.
+
+ If the connection is already closed then invoking this method has no effect.
+ If an I/O error occurs.
+
+
+
+ Writes data.Length bytes from the specified byte array to this output stream.
+
+
+ The connection must be open before this method is called. If write is called when a connection is closed, a
+ ConnectionException is thrown.
+
+ Data to write
+ If an I/O error occurs.
+
+
+
+ Writes length bytes from data starting at offset.
+
+
+ The connection must be open before this method is called. If Write is called when a
+ connection is closed, a ConnectionException is thrown.
+
+ The data.
+ The start offset in the data.
+ The number of bytes to write.
+ if an I/O error occurs.
+
+
+
+ Writes all available bytes from the data source to this output stream.
+
+
+ The connection must be open before this method is called. If write is called when a connection is closed,
+ a ConnectionException is thrown.
+
+ The data.
+ If an I/O error occurs.
+
+
+
+ Reads all the available data from the connection. This call is non-blocking.
+
+ Data read from the connection.
+ If an I/O error occurs.
+
+
+
+ Reads the next byte of data from the connection.
+
+
+ The value byte is returned as an int in the range of 0 to 255. If no byte is available on the
+ connection the value -1 is returned.
+
+ The next byte from the connection.
+ If an I/O error occurs.
+
+
+
+ Reads all the available data from the connection.
+
+ This call is non-blocking.
+ For read data.
+ If an I/O error occurs.
+
+
+
+ Returns true if the connection is open.
+
+
+
+
+ Returns an estimate of the number of bytes that can be read from this connection without blocking.
+
+ The estimated number of bytes available.
+ If an I/O error occurs.
+
+
+
+ See the classes which implement this method for the format of the description string.
+
+ The connection description string.
+
+
+
+ Gets a human-readable description of the connection.
+
+
+
+
+ Causes the currently executing thread to sleep until > 0, or for a maximum of
+ maxTimeout milliseconds.
+
+ The maximum time in milliseconds to wait for an initial response from the printer.
+ If an I/O error occurs.
+
+
+
+ Gets or sets the maximum time, in milliseconds, to wait for any data to be received.
+
+
+
+
+ Gets or sets the maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+
+ Sends dataToSend and returns the response data.
+
+
+ The software returns immediately if the data received contains terminator. The connection must be open before this method
+ is called. If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Byte array of data to send
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function returns a zero length array.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response contains this string, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response is always terminated with a known string. Use null
+ if no terminator is desired.
+ The received data.
+ If an I/O error occurs.
+
+
+
+ Sends data from sourceStream and writes the response data to destinationStream.
+
+
+ The software returns immediately if the data received contains terminator. The connection must be open before this method
+ is called. If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Destination for response.
+ Source of data to be sent.
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function does not write any data to the destination stream.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response contains this string, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response is always terminated with a known string. Use null
+ if no terminator is desired.
+ If an I/O error occurs.
+
+
+
+ Sends dataToSend and returns the response data.
+
+
+ The software returns immediately if the data received satisfies validator. The connection must be open before this method is called.
+ If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Byte array of data to send
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function returns a zero length array.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response satisfies this validator, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response follows a known format.
+ received data
+ If an I/O error occurs.
+
+
+
+ Sends data from sourceStream and writes the response data to destinationStream.
+
+
+ The software returns immediately if the data received satisfies validator. The connection must be open before this method is called.
+ If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Destination for response.
+ Source of data to be sent.
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function does not write any data to the destination stream.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response satisfies this validator, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response follows a known format.If validator is null, no validation is performed.
+ When performing validation, this method will use enough memory to hold the entire response.
+ If an I/O error occurs.
+
+
+
+ Returns a ConnectionReestablisher which allows for easy recreation of a connection which may have been closed.
+
+ This call should be made while there is still an active connection to the printer (prior to issuing a command which will make the printer non-responsive).
+ How long the Connection reestablisher will wait before attempting to reconnection to the printer.
+ Instance of
+ If the ConnectionReestablisher could not be created.
+
+
+
+ Abstract class which implements the default functionality of Connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ This call is non-blocking.
+ number of bytes to read
+ the bytes read from the connection
+ if an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sets the stream to log the write data to.
+
+ The stream to log the data to.
+
+
+
+ Log data sent to printer by sending to the WriteLogStream, if present
+
+ The data written to connection, send to log stream
+ The start offset in the buffer.
+ The number of bytes to write
+
+
+
+
+ Gets or sets the maximum number of bytes to write at one time
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ number of bytes to read
+ true to exit on first data read
+ the bytes read from the connection.
+ if an I/O error occurs.
+
+
+
+ See the classes which implement this property for the format of the printer manufacturer string.
+
+
+
+
+
+
+
+
+
+
+ Sets the underlying read timeout value.
+
+ The read timeout in milliseconds.
+ If an error occurs while attempting to set the read timeout.
+
+
+
+ For printers that support both Status and Printing channel (Link OS printers).
+
+
+
+
+ The status channel of a connection.
+
+
+
+
+ The printing channel of a connection.
+
+
+
+
+ Signals that an error has occurred on the connection.
+
+
+
+
+ onstructs a ConnectionException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a ConnectionException with cause as the source of the exception.
+
+ The cause of the exception.
+
+
+
+ Constructs a ConnectionException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception.
+
+
+
+ Defines methods used to reestablish a connection to a printer which may have been closed.
+
+
+
+
+ Reestablishes a connection to a printer which may have been closed due to an event, like a reboot.
+
+ Handles recreating and opening a connection to a printe.r
+ If the printer cannot be found.
+ If the connection can not be created or open.
+ If a connection can not be reestablished after a defined timeout
+ If the connection can not talk to the printer.
+
+
+
+ Abstract class which implements the default functionality of StatusConnection.
+
+
+
+
+
+
+
+
+ A connection to a device that copies data sent to the connection to the provided stream.
+
+
+
+
+ Sets the stream to log the write data to.
+
+ Log all write data to this stream.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ Number of bytes to read.
+ True to return on first read.
+ The bytes read from the printer.
+ If an I/O error occurs.
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ Number of bytes to read.
+ The bytes read from the printer.
+ If an I/O error occurs
+
+
+
+ Gets or sets the maximum number of bytes to write at one time.
+
+
+
+
+ Returns the printer manufacturer name.
+
+
+
+
+ Sets the underlying read timeout value.
+
+ The timeout in milliseconds.
+ If an I/O error occurs
+
+
+
+ A wrapper class containing information about a connection.
+
+
+
+
+
+
+ The connection string
+
+
+
+
+
+ The data of the connection info
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Writes a byte stream representation of the file to destination.
+
+
+ Currently all files are retrieved in binary mode.
+
+ Stream to receive the contents of the file.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+ the error message
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UnknownHostException
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sets the sockets read/block timeout.
+
+ Timeout in ms
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An interface defining methods associated with a device that may be addressed via an IP connection.
+
+
+
+
+ Returns the address which was passed into the constructor.
+
+ the address used to establish this connection. This can be either a DNS Hostname or an IP address.
+
+
+
+ Returns the port number which was passed into the constructor.
+
+ the port number associated with the connection.
+
+
+
+ Signals that an error has occurred while writing to the connections log stream.
+
+
+
+
+ Constructs a LogStreamException with message as the detailed error message.
+
+ the error message.
+
+
+
+ Base class for Link-OS printers which support separate printing and status channels.
+
+
+ This class conforms to a standard and if only the Connection methods are used, the SDK will attempt to open
+ both the printing and status channels. A will use the raw Connection when a method is called directly.
+ Furthermore, when using a in conjunction with a , the will
+ attempt to use whichever connection is the most efficient. If you wish to only open up a specific channel, use either the
+ or
+ method and their corresponding
+ and
+ method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Opens both the printing and status channel of this Multichannel connection.
+
+
+ If neither channel can be opened, then a is thrown. When this Multichannel connection is no longer needed, you must
+ call to free up system resources.
+
+
+
+
+
+ Opens the printing channel of this Multichannel connection.
+
+
+ If this method is called when this channel has already been opened, the call is ignored. When this channel is no longer needed, you must call either
+ or to free up system resources.
+
+ if the connection cannot be established.
+
+
+
+ Opens the status channel of this Multichannel connection.
+
+
+ If this method is called when this channel has already been opened, the call is ignored. When this channel is no longer needed, you must call either
+ or to free up system resources.
+
+ if the connection cannot be established.
+
+
+
+ Closes both the printing and status channels of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+
+
+
+
+ Closes the printing channel of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+ if an I/O error occurs.
+
+
+
+ Closes the status channel of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+ if an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the underlying printing of this MultichannelConnection.
+
+
+
+
+ Gets the underlying status of this MultichannelConnection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes a Multichannel TCP connection to a device.
+
+
+
+
+
+ The default Multichannel printing port for Link-OS devices.
+
+
+
+
+ The default Multichannel status port for Link-OS devices.
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data to be
+ received. If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ or
+
+
+ The discovered printer.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels. The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete. If you wish to specify different timeouts for each channel, use
+
+
+ The discovered printer.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels. The timeout is a maximum of
+ printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds for any data to be received on the printing/status
+ channels respectively.If no more data is available after printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData
+ milliseconds on the printing/status channels respectively the read operation is assumed to be complete.
+
+ The discovered printer.
+ The maximum time, in milliseconds, to wait for any data to be received on the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the status channel.
+ If discoveredPrinter is not a valid Link-OS printer.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any
+ data to be received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ or
+
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels. The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received.If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete. If you wish to specify different timeouts for each channel, use
+
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels. The timeout is a maximum of
+ printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds for any data to be received on the printing/status
+ channels respectively.If no more data is available after printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData
+ milliseconds on the printing/status channels respectively the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+ The maximum time, in milliseconds, to wait for any data to be received on the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the status channel.
+
+
+
+
+
+
+
+
+
+
+ The Address, PrintingPort, and StatusPort are the parameters which were passed into the constructor.
+
+ TCP_MULTI:[Address]:[PrintingPort]:[StatusPort]
+
+
+
+ Return the IP address as the description.
+
+
+
+
+
+ An interface defining a method to validate whether a response from the printer is complete.
+
+
+
+
+ Provide a method to determine whether a response from the printer is a complete response.
+
+ string to be validated
+ true if the string is a complete response
+
+
+
+ A status connection to a Link-OS printer. The status connection requires Link-OS firmware 2.5 or higher. This
+ connection will not block the printing channel, nor can it print.
+
+
+
+
+ A status connection to a Link-OS printer. The status connection requires Link-OS firmware 2.5 or higher. This
+ connection will not block the printing channel, nor can it print.It copies data sent to the connection to the
+ provided stream.
+
+
+
+
+ Sets the stream to log the write data to.
+
+ Log all write data to this stream.
+
+
+
+ Establishes a TCP connection to a device.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ The default TCP port for ZPL devices.
+
+
+
+
+ The default TCP port for CPCL devices.
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the TcpConnection class.
+
+
+ This constructor will use the default
+ timeouts for . The default timeout is a maximum of 5 seconds for any data to be
+ received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ .
+
+ the IP Address or DNS Hostname.
+ the port number.
+
+
+
+ Initializes a new instance of the TcpConnection class.
+
+
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after
+ timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Exposed this protected constructor for testing. We can pass in a mock Connector rather than the specific one
+
+
+
+
+ Returns TCP:[Address]:[PortNumber].
+
+ The address and port number are the parameters which were passed into the constructor.
+
+
+
+
+ Gets the IP address as the description.
+
+
+
+
+
+
+
+
+
+
+
+ Sets the read timeout on the underlying socket.
+
+ The read timeout in milliseconds
+
+
+
+
+
+
+
+
+
+ Establishes a status only TCP connection to a device
+
+
+
+
+
+ The default Status TCP port for ZPL devices.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class using the default status port of 9200.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data to be received.
+ If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The IP Address or DNS Hostname.
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data
+ to be received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The IP Address or DNS Hostname.
+ The port number.
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class.
+
+
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ The address and port number are the parameters which were passed into the constructor.
+
+ TCP_STATUS:[address]:[port number]
+
+
+
+ Returns the IP address and the status port as the description.
+
+
+
+
+
+ An interface used to control and obtain various properties of a device.
+
+
+
+
+ This is an utility class for performing file operations on a device.
+
+
+
+
+
+ Sends the contents of a file to the device.
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.lbl").
+ Note: If the file contains data which will trigger a response from the printer (e.g. JSON formatted settings), this method
+ will not clear the response from the buffer. This may cause subsequent method calls to fail unpredictably. Clear the read buffer
+ of the connection manually by calling Read() if this is applicable.
+ If there is an issue communicating with the device (e.g. the connection is not
+ open).
+
+
+
+ Sends the contents of a file to the device.
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.lbl").
+ Callback to update on progress
+ Note: If the file contains data which will trigger a response from the printer (e.g. JSON formatted settings), this method
+ will not clear the response from the buffer. This may cause subsequent method calls to fail unpredictably. Clear the read buffer
+ of the connection manually by calling Read() if this is applicable.
+ If there is an issue communicating with the device (e.g. the connection is not
+ open).
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+ List of file names.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+ This method only returns files which have one of the extensions in extensions.
+ The extensions to filter on.
+ List of file names.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Retrieves the properties of the objects which are stored on the device.
+
+ The list of objects with their properties.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Utility class for performing file operations on a Zebra Link-OS™ printer.
+
+
+
+
+ Retrieves storage information for all of the printer's available drives.
+
+ A list of objects detailing information about the printer's available drives.
+
+
+
+
+ Stores the file on the printer using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead. These commands include download commands and any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ If there is an error connecting to the device.
+ If there is an issue reading the file
+ If filePath cannot be used to create a printer file name.
+
+
+
+ Stores the file on the printer at the specified location and name using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead. These commands include download commands and any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+ If there is an issue reading the file
+ If fileNameOnPrinter is not a legal printer file name.
+
+
+
+ Stores a file on the printer named fileNameOnPrinter with the file contents from
+ fileContents using any required file wrappers.
+
+
+ If the fileContents contains any commands which need to be processed by the printer,
+ use instead. These commands include download commands and any immediate
+ commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF, ~JG, ~JI,
+ ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The contents of the file to store.
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+ If fileNameOnPrinter is not a legal printer file name.
+
+
+
+ Deletes the file from the printer. The filePath may also contain wildcards.
+
+ The location of the file on the printer. Wildcards are also accepted (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error connecting to the device.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ The file contents
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system and writes the contents of that file to destinationStream.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ Output stream to receive the file contents
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system via FTP and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+ NOTE: This method retrieves files over a network protocol and hence will only work over a TCP connected
+ printer with FTP enabled. If ftpPassword is not provided, a default will be tried.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ The password used to login to FTP, if null, a default password ("1234") will be used.
+ The file contents.
+ If there is an error communicating with the printer, or the ftpPassword is invalid
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system via FTP and writes the contents of that file to destinationStream.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+ NOTE: This method retrieves files over a network protocol and hence will only work over a TCP connected
+ printer with FTP enabled. If ftpPassword is not provided, a default will be tried.
+
+ The output stream to receive the file contents
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ The password used to login to FTP, if null, a default password ("1234") will be used.
+ If there is an error communicating with the printer, or the ftpPassword is invalid
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte array including
+ all necessary file wrappers for redownloading to a Zebra printer.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ A Zebra printer downloadable file content.
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ A class used to assemble a profile efficiently.
+
+
+
+
+ Prepares the destination stream to receive the profile data.
+
+
+ This method must be called prior to calling any other method in this class.
+
+ The stream in which to put the profile.
+ must be called to get a valid profile in the destinationStream.
+
+
+
+
+ Method to add settings data to a profile.
+
+
+ The profile expects settings data to be valid JSON and of the form of the allconfig response.
+
+ The stream containing the settings data.
+ If there is an error adding settings to the profile.
+
+
+
+ Method to add alerts to a profile.
+
+ The stream containing the alerts data.
+ If there is an error adding alerts to the profile.
+
+
+
+ Adds data to supplement an existing printer profile.
+
+
+ Any supplemental data added to a profile, upon loading the profile, will be sent to the
+ printer after all other profile components have been applied.
+
+ The stream containing the supplement data.
+ If there is an error adding the supplement to the profile.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ The desired display name of the firmware file.
+ The stream containing the firmware.
+ If there is an error adding firmware to the profile.
+
+
+
+ Adds user files to the profile.
+
+ Files to add to the profile. Each file entry should contain the desired file name
+ and the a stream of the file's content.
+ If there is an error adding files to the profile.
+
+
+
+
+
+
+
+
+
+
+ Flushes remaining profile data to prepare the destination stream for closing.
+
+
+ This method must be called when you are done assembling all the parts of your profile,
+ and should only be invoked once.
+
+
+
+
+ Handler to retrieve the parts of the profile.
+
+
+
+
+
+ Callback fired when settings are retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the settings
+
+
+
+ Callback fired when alerts are retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the alerts
+
+
+
+ Callback fired when firmware is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the firmware
+
+
+
+ Callback fired when the firmware display name is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the firmware display name
+
+
+
+ Callback fired when the supplement is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the supplement
+
+
+
+ Callback fired when a file is retrieved from a profile.
+
+ This will be called once for each user file in the profile.
+ The file name
+ The profile stream.
+ If there is an error retrieving the file
+
+
+
+ A class used to disassemble a profile efficiently.
+
+
+
+
+ Disassembles the profile and notifies the handler for all the profile parts.
+
+ The profile source stream.
+ Callback to retrieve the parts of the profile.
+ If there is an error disassembling the profile.
+
+
+
+ Provides access to the magnetic card reader, for devices equipped with one.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Activates the device's magnetic card reader, if present, and waits for a card to be swiped.
+
+
+ If the device does not have a reader the call will timeout.
+
+ The amount of time in milliseconds to enable the reader and wait for a card to be swiped.
+ An array of three strings corresponding to the tracks of the card. If a track could not be read that
+ string will be empty.
+
+
+
+ A class used to determine if a base has MagCard reader capabilities.
+ Not all Zebra printers are available with built-in readers.
+
+
+
+
+ Creates an instance of a Magcard reader, if available.
+
+ Base Zebra Printer that may or may not have MagCard reader capabilities.
+ An instance of a MagCardReader object or null if the base printer does not have MagCard reader hardware installed.
+
+
+
+ Interface to access the contents of a .zprofile file.
+
+
+
+
+
+ Create a Profile object backed by an existing .zprofile file.
+
+ Path to the profile file.
+ If the file pathToProfile does not exist.
+
+
+
+ Adds data to supplement an existing printer profile.
+
+
+ Any supplemental data added to a profile, upon loading the profile, will be sent to the printer
+ after all other profile components have been applied.
+
+ Byte array containing the data to be used to supplement the printer profile.
+ If there is an error writing to the .zprofile file.
+
+
+
+ Returns the supplement data within the profile.
+
+ The supplement data within the profile.
+ If there is an error writing to the .zprofile file.
+ If the .zprofile file cannot be found.
+
+
+
+ This method is not valid for a profile.
+
+
+ If this method is called.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ Full path to the firmware file to be added to the profile.
+ If there is an error reading pathToFirmwareFile or if there
+ is an error writing to the.zprofile file.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ The name of the firmware file
+ The firmware file contents
+ If there is an error reading pathToFirmwareFile or if there
+ is an error writing to the.zprofile file.
+
+
+
+ Removes the firmware file from the profile.
+
+ If there is an error removing the firmware file from the .zprofile file.
+
+
+
+ Returns the file name of the firmware file within the profile.
+
+ The file name of the firmware file within the profile.
+ If there is an error removing the firmware file from the .zprofile file.
+ If the firmware file cannot be found in the .zprofile file.
+
+
+
+
+
+
+ Retrieve all of the setting identifiers for a profile.
+
+
+ These are the IDs that may be used as keys for retrieving and updating settings for a profile.
+
+ Set of identifiers available for a profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+
+ Retrieves the profile's setting value for a setting id.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieves the profile's setting values for a list of setting ids.
+
+ List of setting ids.
+ The settings' values.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieves all of the profile's setting values.
+
+ Values of all the settings provided by the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Change the value of the setting in the profile to the given value.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the setting is read only, does not exist, or if the setting could not be set.
+
+
+
+ Set more than one setting.
+
+ Map a setting ID to the new value for the setting.
+ If there is an error communicating with the printer.
+ If the settings cannot be saved in the profile.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Retrieve the values of all the settings that are archivable.
+
+ Values of all the settings with the archivable attribute that are in the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Retrieve the values of all the settings that are clonable.
+
+ Values of all the settings with the clonable attribute that are in the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Retrieves the profile's for a setting id.
+
+ The setting id.
+ The
+ If there is an error communicating with the printer.
+ If the setting could not be retrieved.
+
+
+
+ Change the setting in the profile.
+
+ The setting id.
+ The setting.
+ If there is an error communicating with the printer.
+ If the setting is malformed, or if the setting could not be set.
+
+
+
+ Change settings in the profile.
+
+ The settings to change
+ If there is an error communicating with the printer.
+ If a setting is malformed, or one or more settings could not be set.
+
+
+
+ Change or retrieve settings in the profile.
+
+ The settings to change.
+ results of the setting commands
+ If there is an error communicating with the printer.
+ If the setting is malformed, or if the setting could not be set.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A list of objects detailing the alert configurations in a profile.
+
+ A list of alert objects currently in a profile.
+ If the alerts could not be extracted from the profile.
+
+
+
+
+
+
+
+
+
+ Removes a configured alert from a profile.
+
+ They may be reconfigured via the setAlert methods.
+ The alert to be removed from the configuration.
+ If an I/O error occurs.
+
+
+
+ Removes all alerts currently in a profile.
+
+ They may be reconfigured via the setAlert(s) methods.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ This method is not valid for a profile.
+
+ Path to the file containing the data to send.
+ If this method is called.
+
+
+
+ This method is not valid for a profile.
+
+ Path to the file containing the data to send.
+ Progress monitor callback handler.
+ If this method is called.
+
+
+
+ Adds a file to the profile named fileNameOnPrinter with the file contents from
+ fileContents.
+
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ The contents of the file to send.
+ If an I/O error occurs.
+
+
+
+ Retrieves the names of the files which are in the profile.
+
+ List of file names.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+
+ This method only returns files which have one of the extensions in extensions.
+
+ The extensions to filter on.
+ List of file names.
+
+
+
+ Stores the file in the profile using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ If there is an error connecting to the device.
+ If filePath cannot be used to create a printer file name.
+
+
+
+ Stores the file in the profile at the specified location and name using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+
+
+
+ Stores a file in the profile named fileNameOnPrinter with the file contents from
+ fileContents using any required file wrappers.
+
+
+ If the fileContents contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The contents of the file to store.
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+
+
+
+ Deletes the file from the profile. The filePath may also contain wildcards.
+
+ The location of the file on the printer. Wildcards are also
+ accepted (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error accessing the profile.
+
+
+
+ Retrieves a file from the profile and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, BAE, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ The file contents
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+
+
+
+ This method is not valid for a profile.
+
+ NA
+ NA
+ NA
+ If this method is called.
+
+
+
+ This method is not valid for a profile.
+
+ NA
+ NA
+ NA
+ If this method is called.
+
+
+
+ Retrieves a file from the profile and returns the contents of that file as a byte array including all necessary
+ file wrappers for re-downloading to a Zebra printer.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, BAE, TXT
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ A Zebra printer downloadable file content.
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+
+
+
+ Class which allows you to store a zprofile to a mirror server.
+
+
+
+
+ Creates an instance of a class which can be used to store a profile onto a mirror server.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile).
+ If an I/O error occurs.
+
+
+
+ Stores the profile to the mirror server.
+
+
+ This method also deletes all files in appl/, commands/, and files/ directory before storing
+ the contents of the profile in the proper directories.
+
+ The FTP server path.
+ The FTP user name. (The user should have read/write/create/delete access.)
+ The FTP password.
+ A list of the errors that happened while uploading settings and files.
+ If an I/O error occurs.
+ If the profile is not found.
+ If an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler to monitor long-running file operations.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Callback to notify the user as to the progress of the how many bytes have been sent.
+
+
+ Bytes currently written
+ Total bytes to send
+
+
+
+ Provides access to the smartcard reader, for printers equipped with one.
+
+ Not all Zebra printers are available with built-in readers.
+
+
+
+ Sends a CT_ATR command to the printer's smartcard reader, if present.
+
+ A byte array containing the response from the smartcard reader.
+ If an I/O error occurs.
+
+
+
+ Sends a CT_DATA command to the printer's smartcard reader, if present.
+
+ Data to be sent to the smartcard using the CT_DATA card command.
+ A byte array containing the response from the smartcard reader.
+ If an I/O error occurs.
+
+
+
+ Turns the printer's smartcard reader off, if present.
+
+ This call should be made after communicating with the smartcard via the method.
+
+
+
+ A class used to determine if a base ZebraPrinter has Smartcard reader capabilities.
+
+ Not all Zebra printers are available with built-in readers.
+
+
+
+ Creates an instance of a Smartcard reader, if available.
+
+ Base ZebraPrinter that may or may not have Smartcard reader capabilities.
+ An instance of a SmartcardReader object or null if the base printer does not have Smartcard reader
+ hardware installed.
+
+
+
+ Signals that an illegal argument was used.
+
+
+
+
+ Constructs a ZebraIllegalArgumentException with message as the detailed error message
+
+ the error message
+
+
+
+ Constructs a ZebraIllegalArgumentException with message as the detailed error message
+
+ the error message
+ The name of the parameter that caused the exception.
+
+
+
+ Constructs a ZebraIllegalArgumentException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception.
+
+
+
+ Constructs a ZebraIllegalArgumentException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The name of the parameter that caused the exception.
+ The cause of the exception.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Contains methods used to query attributes of an image formatted for a Zebra printer.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ A row of image data.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+ True if the image was scaled.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ Contains methods used to query attributes of an image formatted for a Zebra printer.
+
+ see ZebraImageFactory" for how to create an image.
+
+
+
+ Gets the image's height in pixels.
+
+
+
+
+ Gets the image's width in pixels.
+
+
+
+
+ This is an utility class for getting/setting alerts on a printer.
+
+
+
+
+
+ A list of objects detailing the alert configuration of a printer.
+
+ A list of alert objects currently configured on the printer.
+
+
+
+
+
+ Configures an alert to be triggered when the alert's condition occurs or becomes resolved.
+
+ The alert to trigger when it's condition occurs or becomes resolved.
+
+
+
+
+ Configures a list of alerts to be triggered when their conditions occur or become resolved.
+
+ The list of alerts to trigger when their conditions occur or become resolved.
+
+
+
+
+ Removes a configured alert from a printer. They may be reconfigured via the configureAlert(s) methods.
+
+ Alert to be removed from the configuration
+
+
+
+
+ Removes all alerts currently configured on a printer. They may be reconfigured via the configureAlert(s) methods.
+
+
+
+
+
+ A class used to print template formats using comma separated values as input data.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The connection string.
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The connection string.
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Container holding information about a discovered printer.
+
+
+
+
+ Creates a connection based on the information in the DiscoveredPrinter response.
+
+ a Connection to the discovered printer
+
+
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+
+
+
+
+
+ Creates an object holding information about a discovered printer.
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+
+ For TCP, this returns the IP Address. For driver, this returns the local printer name.
+
+
+
+
+ Returna a Dictionary of all settings obtained via the chosen discovery method.
+
+
+ The names of the settings will vary depending upon the type of connection to the printer. The following example
+ shows how to list all the properties of the discovered printer with the respective value.
+
+
+ foreach (string settingsKey in printer.DiscoveryDataMap.Keys) {
+ System.Diagnostics.Debug.WriteLine("Key: " + settingsKey + " Value: " + printer.DiscoveryDataMap[settingsKey]);
+ }
+
+ containing available attributes of the discovered printer.
+
+
+
+ Returns true if two discovered printer objects have the same address, otherwise it returns false.
+
+ DiscoveredPrinter object to compare against.
+ true if equal
+
+
+
+
+ Returns a hash code for this DiscoveredPrinter.
+
+ The hash code
+
+
+
+
+ DiscoveredPrinterFilter is an interface to allow the user to write custom code to determine
+ whether or not a DiscoveredPrinter should be included in the discovery result.
+
+
+
+
+ Method called by a discovery operation to determine whether or not the should be added to
+ the list of discovered devices.
+
+ DiscoveredPrinter to potentially be added to the list of of discovered devices.
+ A bool indicating whether or not the device should be added.
+
+
+
+ Instance of that is returned when performing a network discovery.
+
+
+
+
+ Returns an instance of a DiscoveredPrinterNetwork with address and port.
+
+ The address of the discovered network printer
+ The active raw port of the discovered network printer
+
+
+
+ Returns an instance of a DiscoveredPrinterNetwork built using the provided attributes.
+
+ A map of attributes associated with the discovered network printer
+
+
+
+
+
+
+
+
+
+ Returns a hash code for this DiscoveredPrinter.
+
+
+
+
+
+ Signals that there was an error during discovery.
+
+
+
+
+ Constructs a DiscoveryException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Interface definition for a callback to be invoked for printer discovery events
+
+
+
+
+
+ This method is invoked when a printer has been discovered. This method will be invoked for each printer that is found.
+
+ a discovered printer.
+
+
+
+ This method is invoked when discovery is finished.
+
+
+
+
+ This method is invoked when there is an error during discovery. The discovery will be cancelled when this method
+ is invoked. will not be called if this method is invoked.
+
+ the error message.
+
+
+
+ Class definition for a callback to be invoked for Link-OS™ printer discovery events.
+
+
+
+
+
+
+ Creates a DiscoveryHandler which will only report back Link-OS™ printers.
+
+ Base discovery handler for callbacks.
+
+
+
+ This method is invoked when there is an error during discovery. The discovery will be cancelled when this method
+ is invoked. will not be called if this method is invoked.
+
+ The error message.
+
+
+
+ This method is invoked when discovery is finished.
+
+
+
+
+ This method is invoked when a Link-OS™ printer has been discovered. This method will be invoked for each printer
+ that is found.
+
+ A discovered Link-OS™ printer.
+
+
+
+ Signals that there was an error during discovery packet decoding
+
+
+
+
+ Constructs a DiscoveryPacketDecodeException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Defines functions used when discovering information about a printer.
+
+
+
+
+
+ Decodes the provided MIME encoded discovery packet and returns a discovery data map
+
+ A Base64 encoded discovery packet
+ A discovery data map representative of the provided packet
+ If provided a malformed discovery packet
+
+
+
+ Reads the discovery packet from the provided connection and returns a discovery data map
+
+ A to a printer
+ A discovery data map representative of the provided packet
+ If an I/O error occurs.
+ If provided a malformed discovery packet
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class used to decode a Zebra discovery packet
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ Class used to decode a Zebra discovery packet
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ A class used to discover printers on an IP Network.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Sends a discovery packet to the IPs specified in the subnetRange.
+
+
+ Subnet searches are defined by the first three subnet octets, followed by a range, such as 192.168.2. This method accepts IP addresses of the form,
+ assuming a subnet of 192.168.2:
+
+ - 192.168.2.254 (will send a discovery packet to 192.168.2.254)
+ - 192.168.2.* (will send a discovery packet for the range 192.168.2.1 - 192.168.2.254)
+ - 192.168.2.8-* (will send a discovery packet for the range 192.168.2.8 - 192.168.2.254)
+ - 192.168.2.37-42 (will send a discovery packet for the range 192.168.2.37 - 192.168.2.42)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The subnet search range.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery packet to the IPs specified in the subnetRange.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ Subnet searches are defined by the first three subnet octets, followed by a range, such as 192.168.2. This method accepts IP
+ addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.254 (will send a discovery packet to 192.168.2.254)
+ - 192.168.2.* (will send a discovery packet for the range 192.168.2.1 - 192.168.2.254)
+ - 192.168.2.8-* (will send a discovery packet for the range 192.168.2.8 - 192.168.2.254)
+ - 192.168.2.37-42 (will send a discovery packet for the range 192.168.2.37 - 192.168.2.42)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The subnet search range.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a directed broadcast discovery packet to the subnet specified by ipAddress.
+
+
+ Directed broadcasts are defined by the first three subnet octets, followed by 255, such as 192.168.2.255. This method
+ accepts IP addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.255
+ - 192.168.2.1 (last octet will be replaced with 255)
+ - 192.168.2 (will append 255 for the last octet)
+ - 192.168.2. (will append 255 for the last octet)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The IP address of the subnet.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a directed broadcast discovery packet to the subnet specified by ipAddress.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ Directed broadcasts are defined by the first three subnet octets, followed by 255, such as 192.168.2.255. This method accepts
+ IP addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.255
+ - 192.168.2.1 (last octet will be replaced with 255)
+ - 192.168.2 (will append 255 for the last octet)
+ - 192.168.2. (will append 255 for the last octet)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The IP address of the subnet.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a local broadcast packet.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a local broadcast packet.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a multicast discovery packet.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+ For Android users : some extra code is required to obtain a multicast lock. See the example in
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The number of hops.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a multicast discovery packet.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+ For Android users : some extra code is required to obtain a multicast lock. See the example in
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The number of hops.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ This method will search the network using a combination of discovery methods to find printers on the network.
+
+
+ This is a convenience method that can be used as an alternative to the other discovery methods (e.g. multicast).
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery request to the list of printer DNS names or IPs in printersToFind.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A list of IP addresses or DNS names for the printers to be discovered.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery request to the list of printer DNS names or IPs in printersToFind.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A list of IP addresses or DNS names for the printers to be discovered.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Drive types.
+
+
+
+
+ Onboard flash drive.
+
+
+
+
+ RAM Drive.
+
+
+
+
+ Removable mass storage drive.
+
+
+
+
+ Unknown drive.
+
+
+
+
+ Read only drive.
+
+
+
+
+ This class is used to describe format variable fields.
+
+
+ For example, in CPCL, the following format will contain 2 .
+
+ ! DF SHELF.FMT
+ ! 0 200 200 210 1
+ CENTER
+ TEXT 4 3 0 15 \\
+ TEXT 4 0 0 95 \\
+ FORM
+ PRINT
+
+
+ The first will contain a fieldNumber of 1, and a fieldName of
+ null. The second will contain a fieldNumber of 2, and a fieldName of null.
+
+ In ZPL, the following ^FN command will contain 2 .
+
+
+ ^XA
+ ^DFR:SHELF.ZPL^FS
+ ^FO25,25^A0N,50,50^FN15"Name"^FS
+ ^FO25,75^A0N,50,50^FN15"Address"^FS
+ ^FO25,125^A0N,50,50^FN18^FS
+ ^FO25,175^A0N,50,50^FN15
+ ^XZ
+
+
+ The first will contain a fieldNumber of 15, and a fieldName of
+ "Address". The second will contain a fieldNumber of 18, and a fieldName of null.
+ Note: If a label format contains multiple Field Numbers, only 1 will be returned since the data will be shared
+ by all variables with the number. The portion of the variable will be the
+ last one in the format, unless it is not present.For example, in the format above, there are 3 ^FN15's. The
+ first 2 have a "prompt" parameter, the third does not. The second one, "Address", overwrites the first one, "Name".
+ The third one is not present, so the previous one, "Address", is preserved.
+
+
+
+
+ Create a descriptor for a field
+
+ The number of the field.
+ The name of the field, or null if not present.
+
+
+
+ In CPCL, this number will be the number of the variable field in the format. The fields are numbered starting at 1.
+ In ZPL, this number will correspond to the ^FN number.
+
+
+
+
+ In CPCL, this field is always null.
+ In ZPL, this field will correspond to the optional name parameter of the ^FN command, or null if the parameter is not present
+
+
+
+
+
+
+
+ Options for deleting files when loading profiles to a Zebra printer.
+
+
+
+
+ Attempts to delete all files from the printer. (Persistent files, hidden files, and System files will not be deleted.)
+
+
+
+
+ Will attempt to delete only the file types which are copied at profile/backup creation time.
+
+
+
+
+ Will not attempt to delete any files.
+
+
+
+
+ Handler class is used to update status while performing a firmware download and to notify the caller when the printer
+ has reconnected after restarting.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Called when the firmware download completes.
+
+
+
+
+ Called when the printer is back online and has been rediscovered.
+
+ The printer object which came back online.
+ The new firmware version on the printer.
+
+
+
+ Callback to notify the user of the firmware updating progress.
+
+ The total number of bytes written to the printer.
+ The total number of bytes to be written to the printer.
+
+
+
+ Handler class is used to update status while performing a firmware download.
+
+
+
+
+ Callback to notify the user of the firmware updating progress.
+
+ This is called for every 4K bytes written out.
+ Total number of bytes written to the printer.
+ Total number of bytes to be written to the printer.
+
+
+
+ Called when the firmware download completes. The printer will then begin flashing the firmware to memory followed
+ by a reboot.
+
+
+
+
+ This is the interface for updating firmware on a Link-OS™ printer.
+
+
+
+
+ Update firmware on the printer using the default timeout of 10 minutes.
+
+
+ If the firmware currently on the printer has the same version number as the
+ firmware file, the firmware will not be sent to the printer.
+
+
+ File path of firmware file.
+ Callback for firmware updating status
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer using the specified timeout.
+
+
+ If the firmware currently on the printer has the same version number as the firmware file, the firmware will not be sent to the printer.
+
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum will be
+ used instead.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer, using the default timeout of 10 minutes, regardless of the firmware version
+ currently on the printer.
+
+ File path of firmware file.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer, using the specified timeout, regardless of the firmware version
+ currently on the printer.
+
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum will be
+ used instead.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ A class used to convert TrueType® fonts for use on ZPL printers.
+
+
+
+
+ Returns a Stream which provides the TTF header information as determined from the source stream.
+
+ Stream containing TrueType® font data
+ Location of the font file on the printer.
+ Header information for the provided stream
+
+
+
+ Returns a Stream which provides the TTE header information as determined from the source stream.
+
+ Stream containing TrueType® font data
+ Location of the font file on the printer.
+ Header information for the provided stream
+
+
+
+ Converts a native TrueType® font to a ZPL TTF format.
+
+ Path to a TrueType® font.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+ If the source file is not found
+
+
+
+ Converts a native TrueType® font to a ZPL TTF format.
+
+ Stream containing the TrueType® font data.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+
+
+
+ Converts a native TrueType® font to a ZPL TTE format.
+
+ Path to a TrueType® font.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+ If the source file is not found
+
+
+
+ Converts a native TrueType® font to a ZPL TTE format.
+
+ Stream containing the TrueType® font data.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+
+
+
+ Defines functions used for downloading fonts to Zebra printers.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Defines functions used for interacting with printer formats.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Retrieves a format from the printer.
+
+
+ On a LinkOS/ZPL printer, only .ZPL files are supported. On a CPCL printer, only .FMT and .LBL files are supported.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ The contents of the format file.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+
+
+
+ Retrieves a format from the printer.
+
+
+ On a LinkOS/ZPL printer, only .ZPL files are supported. On a CPCL printer, only .FMT and .LBL files are supported.
+
+ The format.
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the array.
+
+
+ The values of any format variables will be encoded using the default encoding type. On a LinkOS/ZPL printer, only ZPL formats
+ are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The name of the format on the printer, including the extension (e.g. "E:FORMAT.ZPL").
+ An array of strings representing the data to fill into the format. For LinkOS/ZPL printer formats,
+ index 0 of the array corresponds to field number 2 (^FN2). For CPCL printer formats, the variables are passed in
+ the order that they are found in the format.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the array.
+
+
+ The values of any format variables will be encoded using the provided encoding type.eg.UTF-8. On a LinkOS/ZPL printer, only
+ ZPL formats are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ An array of strings representing the data to fill into the format. For LinkOS/ZPL printer formats,
+ index 0 of the array corresponds to field number 2 (^FN2). For CPCL printer formats, the variables are passed in
+ the order that they are found in the format.
+ A character-encoding name (eg. UTF-8).
+ If an I/O error occurs.
+ If the encoding is not supported.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the default encoding type. On a LinkOS/ZPL printer, only ZPL formats
+ are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For LinkOS/ZPL printer formats, the
+ key number should correspond directly to the number of the field in the format.For CPCL printer formats, the
+ values will be passed in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the provided encoding type.eg.UTF-8. On a LinkOS/ZPL printer, only
+ ZPL formats are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For LinkOS/ZPL printer formats, the
+ key number should correspond directly to the number of the field in the format.For CPCL printer formats, the
+ values will be passed in ascending numerical order.
+ A character-encoding name (e.g. UTF-8).
+ If an I/O error occurs.
+ If the encoding is not supported.
+
+
+
+ Returns a list of descriptors of the variable fields in this format.
+
+
+ On a LinkOS/ZPL printer, only ZPL formats are supported. On a CPCL printer, only CPCL formats are supported.
+
+ The contents of the recalled format.
+ A list of field data descriptors. For a CPCL printer, the nth element of the list will contain the
+ integer n and no name. For a LinkOS/ZPL printer, each element will contain an ^FN number and a variable name if
+ present. If the format contains multiple ^FNs with the same number, only the last one will be in the result.
+ See for an example of how variable fields look.
+
+
+
+
+ Defines functions used for interacting with Link-OS™ printer formats.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the default encoding type.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the provided encoding type. eg.UTF-8.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ A character-encoding name (e.g. UTF-8)
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionaries.
+
+
+ The images stored in imgVars will first be dithered and then sent down the the printer as SDK01.GRF-SDK99.GRF. These GRF
+ files will then be used when printing the format and overwritten each time the method is called with new images. The values of any
+ format variables will be encoded using the default encoding type.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the images to be used in the stored format. For ZPL
+ formats, the key number should correspond directly to the number of the field in the format. For CPCL formats,
+ the values will be passed in ascending numerical order.
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionaries.
+
+
+ The images stored in imgVars will first be dithered and then sent down the the printer as SDK01.GRF-SDK99.GRF.
+ These GRF files will then be used when printing the format and overwritten each time the method is called with new
+ images. The values of any format variables will be encoded using the provided encoding type. eg. UTF-8.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the images to be used in the stored format. For ZPL
+ formats, the key number should correspond directly to the number of the field in the format. For CPCL formats,
+ the values will be passed in ascending numerical order.
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ A character-encoding name (e.g. UTF-8)
+ If an I/O error occurs.
+
+
+
+ This is an utility class for printing images on a device.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Prints an image from the connecting device file system to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ Image file to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ If an I/O error occurs.
+ When the file could not be found, opened, or is an unsupported graphic.
+
+
+
+ Prints an image from the connecting device file system to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ Image file to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ Desired width of the printed image. Passing a value less than 1 will preserve original width.
+ Desired height of the printed image. Passing a value less than 1 will preserve original height.
+ Boolean value indicating whether this image should be printed by itself (false), or is part
+ of a format being written to the connection (true).
+ If an I/O error occurs.
+ When the file could not be found, opened, or is an unsupported graphic.
+
+
+
+ Prints an image to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ The image to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ Desired width of the printed image. Passing a value less than 1 will preserve original width.
+ Desired height of the printed image. Passing a value less than 1 will preserve original height.
+ Boolean value indicating whether this image should be printed by itself (false), or is part
+ of a format being written to the connection (true).
+ If an I/O error occurs.
+
+
+
+ Stores the specified image to the connected printer as a monochrome image.
+
+
+ The image will be stored on the printer at printerDriveAndFileName with the extension GRF.
+ If a drive letter is not supplied, E will be used as the default (e.g. FILE becomes E:FILE.GRF). If an extension is supplied,
+ it is ignored if it is not either BMP or PNG. If the extension is ignored, GRF will be used.
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or throw an .
+
+ Path on the printer where the image will be stored.
+ The image to be stored on the printer.
+ Desired width of the printed image, in dots. Passing -1 will preserve original width.
+ Desired height of the printed image, in dots. Passing -1 will preserve original height.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+ If printerDriveAndFileName has an incorrect format.
+
+
+
+ Stores the specified image to the connected printer as a monochrome image.
+
+
+ The image will be stored on the printer at printerDriveAndFileName with the extension GRF.
+ If a drive letter is not supplied, E will be used as the default (e.g. FILE becomes E:FILE.GRF). If an extension is supplied,
+ it is ignored if it is not either BMP or PNG. If the extension is ignored, GRF will be used.
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or throw an .
+
+ Path on the printer where the image will be stored.
+ The image file to be stored on the printer.
+ Desired width of the printed image, in dots. Passing -1 will preserve original width.
+ Desired height of the printed image, in dots. Passing -1 will preserve original height.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+ If printerDriveAndFileName has an incorrect format.
+ If the file could not be found, opened, or is an unsupported graphic.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Look through the result of a directory listing and extract the file name, drive letter, and extension for each
+ file in the listing.
+
+ The result of ^HZL, JSON file.drive_listing, or file.dir SGD.
+ A list (element type PrinterFileProperties) of file information.
+ If there is an error parsing the directory data returned by the printer.
+
+
+
+ Look through the result of a ^HZL and extract the file name, drive letter, and extension for each file in the listing.
+
+ The result of ^HZL.
+ A list (element type PrinterFileProperties) of file information.
+ If there is an error parsing the directory data returned by the printer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Utility methods for firmware files.
+
+
+
+
+ Given the contents of a firmware file, extract the firmware version string.
+
+
+ If the contents are not valid or if the version cannot be extracted, an empty string is returned.
+
+ Input stream containing the contents of a firmware file.
+ The version string, or an empty string.
+
+
+
+
+ Extract the firmware version from a firmware file input stream and return false if that version matches the
+ firmware on the connected printer.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Input stream containing the contents of a firmware file.
+ A connection to a printer
+ True if the firmware versions don't match
+ If there was an issue communicating with the printer.
+
+
+
+ Extract the firmware version from a firmware file input stream, and return false if that version matches the versionFromPrinter.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Input stream containing the contents of a firmware file.
+ Version of firmware that is already on the printer.
+ True if the firmware versions don't match
+
+
+
+ Extract the firmware version from a firmware file input stream, and return false if that version matches the versionFromPrinter.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Version of firmware that has already been extracted from the file.
+ A connection to a printer
+ True if the firmware versions don't match
+
+
+
+ Get the firmware version from the connected printer.
+
+ A connection to a printer.
+ The firmware version of the printer.
+ If there was an issue communicating with the printer."
+
+
+
+ Compare two firmware version strings.
+
+
+ If the only difference is that ZBI is enabled for one version but not the other, they are still considered to match.Matching is case insensitive.
+
+ One version string.
+ The other version string.
+ True if the versions match.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Search formatString, starting at index searchIx, for a ^FN, ^CC or ~CC command. Search is case insensitive. caret is the command prefix.
+
+
+
+
+
+ {-1,unknownCommand} if none of the commands is found, otherwise the index where a command
+ was found, and the type of command that was found.
+
+
+
+ Search formatString, starting at index searchIx, for one of the commands in commandStrings. Search is case
+ insensitive. caret is the command prefix.
+
+
+
+
+ {-1,unknownCommand} if none of the commands is found, otherwise the index where a command
+ was found, and the type of command that was found.
+
+
+
+ Represent a ZPL command type.
+
+
+
+
+ ^FN command
+
+
+
+
+ ^CC and ~CC commands
+
+
+
+
+ ^XG command
+
+
+
+
+ ^DF command
+
+
+
+
+ ^XA command
+
+
+
+
+ ^XZ command
+
+
+
+
+ everything else
+
+
+
+
+ the id, as a lower case string
+
+
+
+
+
+
+
+
+
+
+ Represent the index in a string where a ZPL command was found, and the type of the command at that spot.
+
+
+
+
+
+
+
+
+
+
+ Gets the index
+
+
+
+
+ Gets the command
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A container class used to hold Link-OS specific information
+
+
+
+
+ Creates a container class to hold Link-OS information.
+
+ the Link-OS major version number
+ the Link-OS minor version number
+
+
+
+ Creates a container class to hold Link-OS information.
+
+ e.g. ("2.1", "3.0")
+
+
+
+ Creates a container class to hold Link-OS information based on the supplied discoveredPrinter.
+
+ A discovered printer.
+
+
+
+ Gets the Link-OS major version number
+
+
+
+
+ Gets the Link-OS minor version number
+
+
+
+
+ Signals that a Link-OS™ operation has been attempted on a non-Link-OS™ printer.
+
+
+
+
+ Constructs a NotALinkOsPrinterException with "This is not a Link-OS™ printer" as
+ the detailed error message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a printer alert.
+
+ Applicable only to ZPL printers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates an instance of a PrinterAlert object.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+
+
+
+ Creates an instance of a PrinterAlert object, including a Set-Get-Do name.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If condition is SGD_SET, the name of the Set-Get-Do to be monitored.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+
+
+
+ Creates an instance of a PrinterAlert object, including the printer alert text.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+ The text received from the printer.
+
+
+
+ Creates an instance of a PrinterAlert object, including a Set-Get-Do name and the printer alert text.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If condition is SGD_SET, the name of the Set-Get-Do to be monitored.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+ The text received from the printer.
+
+
+
+ Return the string representation of the alert destination for Set-Get-Do.
+
+
+
+
+ Return the AlertCondition of the alert.
+
+
+
+
+ Gets the current alert condition.
+
+
+
+
+ Return true if the alert is fired when 'set'.
+
+
+
+
+ Return alert will be triggered on 'clear'.
+
+
+
+
+ Return the string representation of the Set-Get-Do Name.
+
+
+
+
+ Return the AlertDestination used by the alert.
+
+
+
+
+ Return the destination where the alert should be sent, for example, an IP Address or an email address, depending
+ on the value of getDestinationAsSGDString.
+
+
+
+
+ Return the destination port number where the alert should be sent.
+
+
+
+
+ Return the quelling state of the alert.
+
+
+
+
+ Return the text received from the printer.
+
+
+
+
+ Enumeration of the various printer control languages supported by Zebra Printers.
+
+
+
+
+ Printer control language ZPL
+
+
+
+
+ Printer control language CPCL
+
+
+
+
+ Printer control language line_print mode.
+
+
+
+
+ Converts the string name to the appropriate enum value.
+
+
+ The name parameter accepts the value returned from the printer's 'device.langauges' SGD.
+
+ The printer control language name (e.g. "zpl", "cpcl", or "line_print")
+ The printer language
+ If the printer language cannot be determined.
+
+
+
+ The name of the printer language - (e.g. "ZPL" or "CPCL").
+
+ ZPL, CPCL, or LINE_PRINT
+
+
+
+ Container for properties of a printer object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets/sets the drive prefix with the trailing colon.
+
+
+
+
+ Gets/sets the file name.
+
+
+
+
+ Gets/sets the file extension.
+
+
+
+
+ Gets the full name of the file on the printer.
+
+
+
+
+ Gets/sets the size of the file in bytes
+
+
+
+
+ Gets/sets the 32-bit CRC value of the file.
+
+
+
+
+ Interface definition for a callback to be invoked when a printer comes back online and has been rediscovered.
+
+
+
+
+
+ Called when the printer is back online and has been rediscovered.
+
+ The printer object which came back online.
+ The new firmware version on the printer.
+
+
+
+ A class used to obtain the status of a Zebra printer.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ The print mode. For CPCL printers this is always
+
+
+
+
+ The length of the label in dots. For CPCL printers this is always 0.
+
+
+
+
+ The number of formats currently in the receive buffer of the printer. For CPCL printers this is always 0.
+
+
+
+
+ The number of labels remaining in the batch. For CPCL printers this is always 0.
+
+
+
+
+ true if there is a partial format in progress. For CPCL printers this is always false.
+
+
+
+
+ true if the head is cold. For CPCL printers this is always false
+
+
+
+
+ true if the head is open.
+
+
+
+
+ true if the head is too hot. For CPCL printers this is always false
+
+
+
+
+ true if the paper is out.
+
+
+
+
+ true if the ribbon is out.
+
+
+
+
+ true if the receive buffer is full. For CPCL printers this is always false
+
+
+
+
+ true if the printer is paused. For CPCL printers this is always false
+
+
+
+
+ true if the printer reports back that it is ready to print
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructs a PrinterStatus instance that can be used to determine the status of a printer.
+
+
+ This will only query the printer's status upon creation. If the status needs to be updated see
+
+ Connection to the target printer
+ If an I/O error occurs
+
+
+
+
+
+
+
+
+ This class is used to acquire a human readable string of the current errors/warnings stored in a
+ instance.
+
+
+
+
+
+ Message to indicate the head is open.
+
+
+
+
+ Message to indicate the head is too hot.
+
+
+
+
+ Message to indicate the paper is out.
+
+
+
+
+ Message to indicate the ribbon is out.
+
+
+
+
+ Message to indicate the receive buffer is full.
+
+
+
+
+ Message to indicate printer is paused.
+
+
+
+
+ Message to indicate printerStatus is null.
+
+
+
+
+ Used to acquire a human readable string of the current errors/warnings stored in printerStatus
+
+ an instance of that will be used to acquire the human readable string
+ of warnings/errors stored in printerStatus
+
+
+
+ Used to acquire a human readable string of the current errors/warnings passed to this instance.
+
+ A human readable string array of the current errors/warnings passed to this instance.
+
+
+
+ Numerous utilities to simplify printer operations.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Send contents of data directly to the device specified via connectionString using UTF-8 encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using UTF-8 encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Retrieves a list of currently open tcp ports on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The port status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves status of the printer odometer which includes the total print length, head clean counter, label dot
+ length, head new, latch open counter, and both user resettable counters.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The odometer status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves status of the printer which includes any error messages currently set along with the number of labels
+ remaining in queue, number of labels remaining in batch, and whether or not a label is currently being processed.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The printer status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves the quick status of the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Highest level error or "Ready to Print".
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Set the RTC time and date on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Format MM-dd-yyyy HH:mm:ss.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If the format of dateTime is invalid.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Deletes file(s) from the printer and reports what files were actually removed.
+
+
+ The filePath may also contain wildcards.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ The location of the file on the printer. Wildcards are also accepted. (e.g. "E:FORMAT.ZPL", "E:*.*")
+ An array of the files which were deleted.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If the format of dateTime is invalid.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Deletes file(s) from the printer and reports what files were actually removed.
+
+
+ The filePath may also contain wildcards.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ The location of the file on the printer. Wildcards are also accepted. (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ Filter for returned files. (e.g. "E:*.ZPL", "*:*.*", "R:MYFILE.*")
+ List of file names on the printer.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an error parsing the directory data returned by the device.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ File contents.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ Stream to receive file contents.
+ The connection string.
+ The file to retrieve. (e.g. "R:MYFILE.PNG")
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ Password to use for ftp, if null a default password will be used.
+ File contents.
+ If there is an error connecting to the device, or the ftp password is not correct.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ Stream to receive the file contents.
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ Password to use for ftp, if null a default password will be used.
+ If there is an error connecting to the device, or the ftp password is not correct.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Update the printer firmware.
+
+
+ Download Firmware Here
+ See ConnectionBuilder for the format of connection
+
+ The connection string.
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum
+ will be used instead.
+ If the connection can not be opened or is closed prematurely.
+ If the printer language could not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ If the firmware file cannot be found or cannot be opened.
+
+
+
+ Encodes supplied image in either ZPL or CPCL after dithering and resizing.
+
+ The printer file path you wish to store the image to.
+ ZebraImage to be dithered and resized.
+ Stream to store encoded image data.
+ If the file type is not supported or an invalid image is supplied.
+ Could not read/write to file.
+
+
+
+ Encodes supplied image in either ZPL or CPCL after dithering and resizing.
+
+ The printer file path you wish to store the image to.
+ ZebraImage to be dithered and resized.
+ Width of the resulting image. If 0 the image is not resized.
+ Height of the resulting image. If 0 the image is not resized.
+ Stream to store converted image data encoded with the printers native
+ language.
+ If the file type is not supported or an invalid image is supplied.
+ Could not read/write to file.
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original configuration.
+ Some settings (such as I.P.address) which could conflict with the original printer will not be contained in the profile
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The location of where to store the profile.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ Could not interpret the response from the printer.
+ This feature is only available on Link-OS™ printers.
+
+
+
+
+ Create a backup of your printer's settings, alerts, and files.
+
+
+ A backup contains a snapshot of all pertinent settings to fully restore your printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The location of where to store the profile. The extension must be .zprofile; if it is not, the
+ method will change it to.zprofile for you.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ Could not interpret the response from the printer.
+ This feature is only available on Link-OS™ printers.
+
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ Increases the amount of detail presented to the user.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ Increases the amount of detail presented to the user.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Stores the file on the printer at the specified location and name using any required file wrappers.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The path of the file to store.
+ The path on the printer.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue storing the file.
+ This feature is only available on Link-OS™ printers.
+ If there is an issue storing the file.
+
+
+
+ Resets the specified printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Resets the network of the specified printer.
+
+
+ Usually performed to enable changed network settings to take effect.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Restores the printer's settings to their factory default configuration.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Restores the printer's network settings to their factory default configuration.
+
+
+ Use caution when issuing this command because you may lose connectivity with your printer if your network requires non-default settings.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a configuration label.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a network configuration label.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a directory listing of all the files saved on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieve all settings and their attributes from the specified printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ A map of setting names versus Setting objects from the printer specified in the connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the settings could not be retrieved.
+
+
+
+ Returns a new instance of PrinterStatus that can be used to determine the status of a printer.
+
+
+ Each invocation of this method will result in a query of the connected printer. If more than one status value is to be
+ read, it is recommended that a copy of PrinterStatus is stored locally.
+ This method must be invoked again to retrieve the most up-to-date status of the printer. The
+ object will only query the printer upon creation.
+ Some Mobile printers (including the MZ series printers) will not communicate if the printer is not ready to print.
+ On these printers, status information is not available when, for example, the printer is out of paper. This method
+ will throw a if it is called when the printer cannot communicate.
+
+ Connection to the printer.
+ Printer control language to be used.
+ A new instance of PrinterStatus.
+ If there is an issue communicating with the printer (e.g.\u00a0the connection is not
+ open.)
+
+
+
+ Defines functions used for creating and applying profiles to a Zebra printer.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original
+ configuration. Some settings (such as I.P.address) which could conflict with the original printer will
+ not be contained in the profile.
+
+ Path on your local machine where you want to save the profile.
+ (e.g. /home/user/profile.zprofile). The extension must be.zprofile; if it is not, the method will
+ change it to .zprofile for you.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+ for loading a profile to another printer
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original
+ configuration. Some settings (such as I.P.address) which could conflict with the original printer will
+ not be contained in the profile.
+
+ The destination stream where you want to write the profile.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+
+
+
+ Save a backup of your printer's settings, alerts, and files for later restoration.
+
+
+ A backup contains a snapshot of all pertinent settings to fully restore your printer.
+
+ Path on your local machine where you want to save the backup.
+ (e.g. /home/user/profile.zprofile). The extension must be.zprofile; if it is not, the method will
+ change it to .zprofile for you.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+ for loading the backup file to another printer
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ Increases the amount of detail presented to the user when loading firmware from the profile
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ his method will also delete all files on your printer before applying the backup.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ Increases the amount of detail presented to the user when loading firmware from the profile
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ A utility class used to wrap with a map and send settings commands to a connection.
+
+
+ Settings commands are accepted by Link-OS printers, version 1.0 and higher.
+
+
+
+
+
+ Sends the settingsToSet to the destinationDevice and then returns the updated setting values.
+
+ Due to the setting verification and validation, additional time and data traffic will be needed for each
+ SettingsSetter Process call. It is recommended to bundle all changing settings into one map and one
+ method call to reduce this overhead.
+
+ The connection string.
+ The settings map to send to the printer.
+ The settings' values after the map has been sent to the printer.
+ If there is an error communicating with the printer.
+ If the setting could not be set or retrieved.
+
+
+
+ A utility class used to wrap and send SGD commands to a connection.
+
+
+
+
+
+ Constructs an SGD SET command and sends it to the printer.
+
+
+ This method will not wait for a response from the printer.If the SGD SET command returns a response, the caller
+ is responsible for reading the data off of the connection.If a response is expected, consider using the analogous
+ command.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ if an I/O error occurs
+
+
+
+
+ Constructs an SGD SET command and sends it to the printer.
+
+
+ This method will not wait for a response from the printer. If the SGD SET command returns a response, the caller is
+ responsible for reading the data off of the connection. If a response is expected, consider using the analogous
+ command.
+
+
+
+
+ if an I/O error occurs
+
+
+
+
+ Constructs an SGD GET command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the connection to send the command to
+ the setting's value
+ if an I/O error occurs
+
+
+
+ Constructs an SGD GET command and sends it to the printer.
+
+
+ This method waits for a maximum of maxTimeoutForRead milliseconds for any data to be received.Once some data has been received it
+ waits until no more data is available within timeToWaitForMoreData milliseconds. This method returns the SGD value associated
+ with setting without the surrounding quotes.
+
+ the SGD setting
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ the setting's value
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ The response from the SGD DO command
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method write the SGD
+ value associated with setting, without the surrounding quotes, to responseData.
+
+ output stream to receive the response.
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ The response from the SGD DO command
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of maxTimeoutForRead milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within timeToWaitForMoreData milliseconds. This method write the SGD
+ value associated with setting without the surrounding quotes.
+
+ output stream to receive the response.
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ if an I/O error occurs
+
+
+
+ A utility class used to remove quotes from an output stream
+
+
+
+
+ Constructs a QuoteRemovingOutputStream
+
+
+
+
+
+ Signals that an error has occurred when attempting to communicate with SNMP.
+
+
+
+
+ Constructs an SnmpException with message as the detailed error message.
+
+ The error message.
+
+
+
+ An instance of an SNMP only Zebra printer.
+
+ The printer does not make a raw port connection.
+
+
+
+
+ Creates an instance of a Zebra printer which is limited to only SNMP operations.
+
+
+ The SNMP get and set community names default to "public". If you wish to use other community names, use
+ .
+
+ The IP Address or DNS Hostname.
+ If there was an exception communicating over SNMP.
+
+
+
+ Creates an instance of a Zebra printer, with the given community names, which is limited to only SNMP operations.
+
+ The IP Address or DNS Hostname.
+ SNMP get community name.
+ SNMP set community name.
+ If there was an exception communicating over SNMP.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the value of the specified oid.
+
+ Object identifier.
+ The value of the OID.
+ If there was an exception communicating over SNMP.
+
+
+
+ Sets the value of the specified oid to valueToSet.
+
+ Object identifier.
+ The value to set the OID to.
+ If there was an exception communicating over SNMP
+
+
+
+ Sets the value of the specified oid to valueToSet.
+
+ Object identifier.
+ The value to set the OID to.
+ If there was an exception communicating over SNMP
+
+
+
+ Gets the SNMP get community name.
+
+
+
+
+ Gets the SNMP set community name.
+
+
+
+
+ A container class which holds information about various printer drives.
+
+
+
+
+ Creates an empty StorageInfo container
+
+
+
+
+ The drive's alphabetical identifier.
+
+
+
+
+ The type of drive. (e.g. flash, RAM)
+
+
+
+
+
+ The number of bytes remaining on the drive.
+
+
+
+
+ Bool defining whether or not files persist across printer reboots.
+
+
+
+
+ Class for describing the status of ports open on a Zebra printer.
+
+
+
+
+ Creates a container which describes the status of a specific port on a Zebra printer.
+
+ The printer's port.
+ The name of the protocol used by the port.
+ Remote IP connected to the port.
+ Remote port number.
+ Port status.
+
+
+
+ The port number open on the printer.
+
+
+
+
+ The name of the protocol associated with that port, for example, HTTP for 80, FTP for 21.
+
+
+
+
+ The remote IP connected to the printer's port, will be 0.0.0.0 if not connected.
+
+
+
+
+ The port number of the remote connected to the printer, will be 0 if no connection.
+
+
+
+
+ The status of the printer's port, such as {@code LISTEN}, {@code ESTABLISHED}.
+
+
+
+
+ String description of the port status, prints as "PORT(NAME) REMOTE-IP:REMOTE-PORT STATUS"
+
+ Description of the port status.
+
+
+
+ This is a utility class for performing printer actions. (Restore defaults, calibrate, etc.)
+
+
+
+
+ Sends the appropriate calibrate command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate restore defaults command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate print configuration command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Converts the specified command to bytes using the default charset and sends the bytes to the printer.
+
+ The command to send to the printer.
+ If an I/O error occurs.
+
+
+
+ Converts the specified command to bytes using the specified charset "encoding" and sends the bytes to the
+ printer.
+
+ The command to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate reset command to the printer.
+
+
+ You should call after this method, as resetting the printer will terminate the connection.
+
+ If an I/O error occurs.
+
+
+
+
+ Utility class for performing Link-OS™ printer actions.
+
+
+
+
+ Send the restore network defaults command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Send the print network configuration command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Send the print directory label command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Sends the network reset command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Set the RTC time and date on the printer.
+
+
+ Accepted dateTime values include date (e.g. "MM-dd-yyyy"), time(e.g. " HH:mm:ss"),
+ or both(e.g. " MM-dd-yyyy HH:mm:ss").
+
+ Date and or time in the proper format (MM-dd-yyyy, HH:mm:ss, or MM-dd-yyyy HH:mm:ss).
+ If there is an error communicating with the printer.
+ If the format of dateTime is invalid.
+
+
+
+ A class used to print template formats using XML as input.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Print template formats using XML as input data.
+
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs."
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data to destinationDevice.
+
+ The connection string.
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ See ConnectionBuilder for the format of
+ destinationDevice.
+ If an I/O error occurs."
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data with optional running commentary to standard out.
+
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs."
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data to a device with connection string destinationDevice.
+
+ The connection string.
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ See ConnectionBuilder for the format of
+ destinationDevice.
+ If an I/O error occurs."
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+ An interface used to obtain various properties of a Zebra printer.
+
+
+
+
+
+ Returns the printer control language (e.g. ZPL or CPCL) of the printer.
+
+
+
+
+
+ Returns a new instance of PrinterStatus that can be used to determine the status of a printer.
+
+
+ Each invocation of this method will result in a query of the connected printer. If more than one status value is to be
+ read, it is recommended that a copy of PrinterStatus is stored locally.
+ Note: This method must be invoked again to retrieve the most up-to-date status of the printer. The
+ object will only query the printer upon creation.
+ Note: Some Mobile printers (including the MZ series printers) will not communicate if the printer is not
+ ready to print.On these printers, status information is not available when, for example, the printer is out of
+ paper. This method will throw a if it is called when the printer cannot communicate.
+
+ A new instance of PrinterStatus.
+ If there is an issue communicating with the printer (e.g. the connection is not
+ open.)
+
+
+
+ Returns the printer's connection.
+
+
+
+
+ Changes the printer's connection.
+
+ The new connection to be used for communication with the printer.
+
+
+
+ A factory used to acquire an instance of a ZebraPrinter.
+
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+
+ If the Set-Get-Do value, appl.name, starts with one of the following, the printer is determined to
+ be a CPCL printer. Otherwise it is considered to be a ZPL printer
+
+ - SH
+ - H8
+ - C
+
+
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+ If the printer language cannot be determined
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+
+ If the Set-Get-Do value, appl.name, starts with one of the cpclFwVersionPrefixes, the
+ printer is determined to be a CPCL printer.Otherwise it is considered to be a ZPL printer.
+
+ An array of possible CPCL version number prefixes
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+ If the printer language cannot be determined
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+ The language of the printer instance to be created
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS™ version and its control language.
+
+ An instance of a
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its control language, but will not query the printer for Link-OS information.
+
+ An instance of a
+ Link-OS Information
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS information, but will not query the printer for its control language.
+
+ An instance of a
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will not query the printer for any information but will use the supplied info and language.
+
+ An instance of a
+ Link-OS Information
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS™ version and its control language.
+
+ An open connection to a Link-OS™ printer
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its control language, but will not query the printer for Link-OS information.
+
+ An open connection to a Link-OS™ printer
+ Link-OS Information
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS information, but will not query the printer for
+ its control language.
+
+ An open connection to a Link-OS™ printer
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will not query the printer for any information but will use the supplied info and
+ language.
+
+ An open connection to a Link-OS™ printer
+ Link-OS Information
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Signals that an error has occurred when determining the printer language.
+
+
+
+
+ Constructs a ZebraPrinterLanguageUnknownException with message as the detailed error message
+
+ The error message
+
+
+
+ Constructs a ZebraPrinterLanguageUnknownException with "Unknown printer language" as
+ the detailed error message.
+
+
+
+
+ This interface defines increased capabilities of a Zebra Link-OS™ printer. Link-OS™ printers support many
+ features not supported by non-Link-OS™ Zebra printers.
+
+
+
+
+ Retrieve the TCP port status of the printer and returns a list of TcpPortStatus describing the open ports on the printer.
+
+
+ The open connection from the SDK will be listed in the return value. This method will throw
+ a if it is unable to communicate with the printer.
+ Note: Tabletop printers support more than one established connection on the raw port at a time, so the
+ same port may be listed more than once.
+
+ List of open ports on the ZebraPrinter. Note: The open connection from the SDK will be listed.
+ If there is an issue communicating with the printer (e.g. the connection is not open.)
+
+
+
+ Gets/sets the printer's SNMP get community name.
+
+
+
+
+ Returns specific Link-OS™ information.
+
+
+
+
+ Enumeration of the various print modes supported by Zebra Printers.
+
+
+
+
+ Rewind print mode
+
+
+
+
+ Peel-off print mode
+
+
+
+
+ Tear-off print mode (this also implies Linerless Tear print mode)
+
+
+
+
+ Cutter print mode
+
+
+
+
+ Applicator print mode
+
+
+
+
+ Delayed cut print mode
+
+
+
+
+ Linerless peel print mode
+
+
+
+
+ Linerless rewind print mode
+
+
+
+
+ Partial cutter print mode
+
+
+
+
+ RFID print mode
+
+
+
+
+ Kiosk print mode
+
+
+
+
+ Unknown print mode
+
+
+
+
+ Returns the print mode.
+
+ String representation of the print mode (e.g. "Rewind").
+
+
+
+ Enumeration of the various printer alert conditions which can be set on Zebra Printers.
+
+
+
+
+ Alert condition 'None'
+
+
+
+
+ Alert condition 'Paper Out'
+
+
+
+
+ Alert condition 'Ribbon Out'
+
+
+
+
+ Alert condition 'Head Too Hot'
+
+
+
+
+ Alert condition 'Head Cold'
+
+
+
+
+ Alert condition 'Head Open'
+
+
+
+
+ Alert condition 'Power Supply Too Hot'
+
+
+
+
+ Alert condition 'Ribbon In'
+
+
+
+
+ Alert condition 'Rewind'
+
+
+
+
+ Alert condition 'Cutter Jammed'
+
+
+
+
+ Alert condition 'Printer Paused'
+
+
+
+
+ Alert condition 'PQ Job Completed'
+
+
+
+
+ Alert condition 'Label Ready'
+
+
+
+
+ Alert condition 'Head Element Bad'
+
+
+
+
+ Alert condition 'Basic Runtime'
+
+
+
+
+ Alert condition 'Basic Forced'
+
+
+
+
+ Alert condition 'Power On'
+
+
+
+
+ Alert condition 'Clean Printhead'
+
+
+
+
+ Alert condition 'Media Low'
+
+
+
+
+ Alert condition 'Ribbon Low'
+
+
+
+
+ Alert condition 'Replace Head'
+
+
+
+
+ Alert condition 'Battery Low'
+
+
+
+
+ Alert condition 'RFID Error'
+
+
+
+
+ Alert condition 'All Messages'
+
+
+
+
+ Alert condition 'Cold Start'
+
+
+
+
+ Alert condition 'SGD Set'
+
+
+
+
+ Alert condition 'Motor Overtemp'
+
+
+
+
+ Alert condition 'Printhead Shutdown'
+
+
+
+
+ Alert condition 'Shutting Down'
+
+
+
+
+ Alert condition 'Restarting'
+
+
+
+
+ Alert condition 'No Reader Present'
+
+
+
+
+ Alert condition 'Thermistor Fault'
+
+
+
+
+ Alert condition 'Invalid Head'
+
+
+
+
+ Alert condition 'Country Code Error'
+
+
+
+
+ Alert condition 'MCR Result Ready'
+
+
+
+
+ Alert condition 'PMCU Download'
+
+
+
+
+ Alert condition 'Media Cartridge'
+
+
+
+
+ Alert condition 'Media Cartridge Load Failure'
+
+
+
+
+ Alert condition 'Media Cartridge Eject Failure'
+
+
+
+
+ Alert condition 'Media Cartridge Forced Eject'
+
+
+
+
+ Alert condition 'Cleaning Mode'
+
+
+
+
+ Creates an AlertCondition based on the condition.
+
+ If the condition is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the values of AlertCondition.
+ Based on the string condition
+ If condition is not a valid alert condition.
+
+
+
+ Creates an AlertCondition based on the conditionName.
+
+ If the conditionName is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the conditions in AlertCondition.
+ Based on the string conditionName
+ If conditionName is not a valid alert condition.
+
+
+
+ Returns the alert condition.
+
+ String representation of the alert condition (e.g. "PAPER OUT").
+
+
+
+ Gets/sets the alert condition name
+
+
+
+
+
+
+
+
+
+
+ Enumeration of the various alert destinations which can be set on Zebra Printers.
+
+
+
+
+ Alert Destination 'Serial'
+
+
+
+
+ Alert Destination 'Parallel'
+
+
+
+
+ Alert Destination 'E-Mail'
+
+
+
+
+ Alert Destination 'TCP'
+
+
+
+
+ Alert Destination 'UDP'
+
+
+
+
+ Alert Destination 'SNMP'
+
+
+
+
+ Alert Destination 'USB'
+
+
+
+
+ Alert Destination 'HTTP-POST'
+
+
+
+
+ Alert Destination 'Bluetooth'
+
+
+
+
+ Alert Destination 'SDK'
+
+
+
+
+ Returns the alert destination as a string.
+
+
+
+
+ Creates an AlertDestination based on the destination.
+
+ If the destination is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the values of AlertDestination.
+ Based on the destination
+ If destination is not a valid alert destination.
+
+
+
+ Creates an AlertDestination based on the destinationName.
+
+
+ If the destinationName is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the destinations in AlertDestination.
+ Based on the destinationName
+ If destinationName is not a valid alert destination.
+
+
+
+ Returns the alert destination.
+
+ String representation of the alert destination (e.g. "TCP").
+
+
+
+ Gets/Sets the alert destination name.
+
+
+
+
+
+
+
+
+
+
+ Decide whether to use the status channel or the print channel to get settings from the printer. For a
+ multichannel connection, prefer the status channel.
+
+ A connection to the printer.
+ The appropriate connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true if value is within the setting's range
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A class that represents an internal device setting.
+
+
+
+
+ Gets or sets the setting's value.
+
+
+
+
+ Gets or sets a string describing the data type of the setting.
+
+
+
+
+ Gets or sets a string that describes the acceptable range of values for this setting.
+
+
+
+
+ Gets or sets if this setting can be applied when loading a profile
+
+
+
+
+ Gets or sets if this setting can be applied when loading a backup
+
+
+
+
+ Gets or sets a string that describes the access permissions for the setting. RW is returned for settings that have
+ read and write permissions. R is returned for settings that are read-only W is returned for settings that are write-only
+
+
+
+
+ Returns true if the setting does not have write access.
+
+
+
+
+ Returns true if the setting does not have read access.
+
+
+
+
+ Returns true if value is valid for the given setting.
+
+ Setting value.
+ true if value is within the setting's range
+
+
+
+
+ Retruns a human readable string of the setting.
+
+ Setting [settingData=value=Value type=Type range=Range].
+
+
+
+ Signals that an error occurred retrieving a setting
+
+
+
+
+ Constructs a SettingsException with Setting not found as the detailed error message.
+
+
+
+
+ Constructs a SettingsException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a SettingsException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception
+
+
+
+ Interface that provides access to device related settings.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Retrieve all of the setting identifiers for a device.
+
+
+ These are the IDs that may be used as keys for retrieving and updating settings for a device.
+
+
+ Set of identifiers available for a device.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded
+
+
+
+ Retrieves the device's setting value for a setting id.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the setting could not be retrieved.
+
+
+
+ Retrieves the device's setting values for a list of setting IDs.
+
+ List of setting IDs.
+ The settings' values.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieve all settings and their attributes.
+
+ Map of setting IDs and setting attributes contained in the profile
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved
+
+
+
+ Retrieves all of the device's setting values.
+
+ Values of all the settings provided by the device.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded
+
+
+
+ Sets the setting to the given value.
+
+ The setting id.
+ The setting's value
+ If there is an error communicating with the printer.
+ If the setting is read only, does not exist, or if the setting could not be set
+
+
+
+ Set more than one setting.
+
+ Map a setting ID to the new value for the setting.
+ If there is an error communicating with the printer.
+ If the settings cannot be sent to the device.
+
+
+
+ Retrieves the allowable range for a setting.
+
+ The setting id.
+ The setting's range as a string
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if value is valid for the given setting.
+
+ The setting id.
+ The setting's value
+ True if value is valid for the given setting.
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if the setting is read only.
+
+ The setting id
+ True if the setting is read only
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if the setting is write only.
+
+ The setting id
+ True if the setting is write only
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns the data type of the setting.
+
+ The setting id
+ The data type of the setting (e.g. string, bool, enum, etc.)
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Change or retrieve printer settings.
+
+
+ Due to the setting verification and validation, additional time and data traffic will be needed for each
+ ProcessSettingsViaMap method call. It is recommended to bundle all settings into one map and one method call to
+ reduce this overhead.
+
+ The settings to change or retrieve
+ Results of the setting commands
+ If there is an error communicating with the printer.
+ If a setting is malformed, or one or more settings could not be set.
+
+
+
+ Methods to use the LinkOS 3.2 JSON syntax to get the ranges for a list of SDGs, without the need to use an allconfig.
+
+
+
+
+ Use the LinkOS 3.2 JSON syntax to get the ranges for a list of SDGs, without the need to use an allconfig.
+
+ A list of SGD names.
+ A connection to a LinkOS printer.
+ the current printer control language
+ LinkOS version
+ A map from setting name to a string representing the range.
+ If the printer is not LinkOS 3.2 or higher.
+ If the connection fails.
+ If there is an error parsing the JSON response from the printer.
+
+
+
+ Parse the JSON response from the JSON get range command. Assumes that the only field requested in the JSON get
+ command was the "range" field.
+
+ Response from a LinkOS 3.2 or greater printer.
+ Map from setting names to range strings.
+
+
+
+ Methods to use the LinkOS 3.2 JSON syntax to get the values for a list of SDGs, without the need to use an allconfig.
+
+
+
+
+ Get the values for a list of settings from a printer.
+
+
+ Use either JSON or SGD get commands to request the values from the printer,
+ depending on the connection type and the printer language. The default
+ timeout values from the connection will be used when communicating with the
+ printer. If printerConnection is a MultichannelConnection, prefer the status channel.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Set each of the settings in settingValues on a printer.
+
+
+ Use either JSON or SGD set commands to set the values on the printer, depending on the connection type and
+ the printer language.The default timeout values from the connection will be used when communicating with the
+ printer.If printerConnection is a MultichannelConnection, prefer the status channel.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+
+ Get the values for a list of settings from a LinkOS printer.
+
+
+ Use JSON to request the values from the printer. The default timeout values from the connection will
+ be used when communicating with the printer.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Get the values for a list of settings from a printer.
+
+
+ Use SGD get commands to request the values from the printer.The default timeout values from the connection
+ will be used when communicating with the printer.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+ Decide whether JSON can be used to get settings from the printer, or whether SGD setvar/getvar must be used.
+
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ true if JSON can be used, false if SGD setvar/getvar must be used.
+
+
+
+ Set each of the settings in settingValues on a LinkOS printer.
+
+
+ Use JSON to set the values on the printer. The default timeout values from the connection will be
+ used when communicating with the printer.Return a map of the values from the printer after the set
+ operation was performed.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Set each of the settings in settingValues on a printer.
+
+
+ Use SGD set commands to set the values on the printer. The default timeout values from the connection will
+ be used when communicating with the printer.Return a map of the values from the printer after the set operation was performed.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "SH", "H8", "C"
+
+
+
+
+ ESC + h (0x1b 0x68)
+
+
+
+
+ ESC + V (0x1b 0x56)
+
+
+
+
+ ESC + FormFeed (0x1b 0x0C)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Determines if the device is a zebra card printer
+
+ true if device is a card printer
+
+
+
+ 0, marks free or usable space
+
+
+
+
+ 1, bitmap or smooth font
+
+
+
+
+ 2, barcode data
+
+
+
+
+ 3, stored ZPL format
+
+
+
+
+ 4, GRF graphic image object
+
+
+
+
+ 5, print map - unused
+
+
+
+
+ 6, general purpose storage - used by DBCOs for parsing and bitmaps
+
+
+
+
+ 7, Intellifont cache
+
+
+
+
+ 8, wildcard
+
+
+
+
+ 9, Mag tables
+
+
+
+
+ 10, Multiplication tables
+
+
+
+
+ 11, Mirror tables
+
+
+
+
+ 12, use context-specific default
+
+
+
+
+ 13, magic mode buffers
+
+
+
+
+ 14, access locks for certain ZPL commands
+
+
+
+
+ 15, JisToUnicode tables
+
+
+
+
+ 16, Saved BASIC program
+
+
+
+
+ 17, Data storage object
+
+
+
+
+ 18, PNG graphic image object
+
+
+
+
+ 19, Downloadable Bar Code object
+
+
+
+
+ 20, BAZ encrypted BASIC object
+
+
+
+
+ 21, Stored label format
+
+
+
+
+ 22, TrueType Font
+
+
+
+
+ 23, PCX bitmap
+
+
+
+
+ 24, Bitmap
+
+
+
+
+ 25, GEM bitmap graphic
+
+
+
+
+ 26, DPL Datamax 7-bit format
+
+
+
+
+ 27, TrueType Extension Font
+
+
+
+
+ 28, TT? we will list TTE and TTF objects on the same label
+
+
+
+
+ 29, WLAN security certificate for TLS and TTLS
+
+
+
+
+ 30, WLAN security certificate for FAST
+
+
+
+
+ 31, stored EPL format
+
+
+
+
+ 32, Mirror feedback template file
+
+
+
+
+ 33, WML menu file
+
+
+
+
+ 34, MIB file for auto-generated SNMP MIB
+
+
+
+
+ 35, Comma Seperated Values file
+
+
+
+
+ 36, User-custom webpages
+
+
+
+
+ 37, BAE DES encrypted BASIC object
+
+
+
+
+ 38, Text file
+
+
+
+
+ 39, Executable code - MUST BE LAST IN LIST!
+
+
+
+
+ The contentStream will be exhausted. It is all read in to determine the metadata, you need a new stream to read
+ from for other stream operations.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ appl.name
+
+
+
+
+ device.host_status
+
+
+
+
+ ip.discovery_packet
+
+
+
+
+ device.languages
+
+
+
+
+ device.reset
+
+
+
+
+ Printer Reset JSON Command {}{"device.reset":""}
+
+
+
+
+ device.prompted_network_reset
+
+
+
+
+ Printer Reset JSON Command {}{"device.prompted_network_reset":"y"}
+
+
+
+
+ ezpl.restore_defaults
+
+
+
+
+ Printer Reset JSON Command {}{"ezpl.restore_defaults":"reload printer"}
+
+
+
+
+ device.prompted_default_network
+
+
+
+
+ Printer Reset JSON Command {}{"device.prompted_default_network":"y"}
+
+
+
+
+ zpl.calibrate
+
+
+
+
+ Calibrate Command {}{"zpl.calibrate":""}
+
+
+
+
+
+
+
+ ! U1 getvar "command"\r\n
+
+
+
+ Wrapper class for System.Threading.Tasks Task functions. For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only. Wrapper for to not throw an
+ exception. Causes the currently executing thread to sleep (temporarily cease execution) for the specified number
+ of milliseconds. The thread does not lose ownership of any monitors.
+
+
+
+
+ @param targetStream
+
+
+ @param data
+ @param offset
+ @param length
+ @throws IOException
+
+
+
+ Windows line terminator - carriage return + line feed
+
+
+
+
+ Line feed
+
+
+
+
+
+
+ The string that should be searched.
+ The list of patterns to search for.
+ start index in inputString
+ The index in inputString of the first pattern that is found. If none of the patterns are
+ found, -1 is returned.
+
+
+
+ Split input into lines.
+
+
+ Lines are terminated by <CR><LF>. The last line does not have to
+ end in <CR><LF>, although it may.The <CR><LF> terminators are removed.
+
+ Text to be split into lines.
+ the delimiter to split on
+ An array of lines - with trailing CRLF removed.
+
+
+
+ Join an array of strings into a single string separated by a delimiter.
+
+
+
+ a delimited list of the elements in strings
+
+
+
+ Count the number of distinct occurrences of substring in stringToSearch.
+
+
+ If there are overlapping occurrences of substring in stringToSearch, counting starts again after the
+ end of each match.
+
+ CountSubstringOccurences(" aaa", "aa")
+ returns 1, not 2.
+
+
+ String to be searched
+ String to search for
+ number of occurrences
+
+
+
+ Remove all double quotes from str
+
+ the string to strip the quotes from
+ str minus the quotes
+
+
+
+
+
+ String to be padded
+ character used for padding
+ total length the return string should be
+ whether or not to append padding in front of initialString
+
+
+
+
+
+
+ the prefixes to search for
+ string to search
+ true if prefixes exists in value
+
+
+
+
+
+ The hex representation of the byte array
+
+
+
+
+
+
+ A byte array
+
+
+
+
+
+
+ (e.g. 1234 Bytes, 9876 Main St)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Executes a group of tasks with a cap on the number of concurrent threads running.
+
+
+
+
+
+ Group of tasks to execute
+ Number of threads to execute concurrently
+
+
+
+ Internal printer representation of the ZPL format prefix
+
+
+
+
+ Internal printer representation of the ZPL command prefix
+
+
+
+
+ Internal printer representation of the ZPL delimiter
+
+
+
+
+ Internal printer representation of the ZPL format prefix, as a String
+
+
+
+
+ Internal printer representation of the ZPL command prefix, as a String
+
+
+
+
+ Internal printer representation of the ZPL delimiter, as a String
+
+
+
+
+ Printer Status Command ~HI
+
+
+
+
+ Printer Expanded Status Command ~HS
+
+
+
+
+ Config Label ~WC
+
+
+
+
+ Directory label ^XA^WD*:*.*^XZ
+
+
+
+
+ Config Label ~WL
+
+
+
+
+ Printer Calibrate Command ~JC
+
+
+
+
+ Printer Reset Command ~JR
+
+
+
+
+ Printer Network Reset Command ~WR
+
+
+
+
+ Printer restore defaults command ^XA^JUF^XZ
+
+
+
+
+ Printer get super host status command ^XA^HZA^XZ
+
+
+
+
+ Printer get storage info ^XA^HW*:XXXX.QQQ^XZ Use XXXX.QQQ to get drive info without matching a file name
+
+
+
+
+ Printer get file drive info for Linkos 2.5 and higher
+
+
+
+
+ Printer get drive listing for Linkos 2.5 and higher
+
+
+
+
+
+
+ the command to decorate with the internal command prefix
+ the command decorated with the internal ZPL command prefix. If command contains a '~' it
+ will be replace with the internal command prefix, otherwise the internal command prefix will simply be prefixed
+ to the front of command
+
+
+
+
+
+ the format to decorate with the internal format prefix
+ the format decorated with the internal ZPL format prefix. If format contains a '^' it will
+ be replace with the internal format prefix, otherwise the internal format prefix will simply be prefixed to the
+ front of format
+
+
+
+
+
+ the format to decorate with the internal format prefix
+ the format decorated with the internal ZPL format prefix. If format contains a '^' it will
+ be replace with the internal format prefix, otherwise the internal format prefix will simply be prefixed to the
+ front of format
+
+
+
+ Enumeration of a task's status.
+
+
+
+
+ Configuration state indicating the task has not been started.
+
+
+
+
+ Configuration state indicating the task is in process.
+
+
+
+
+ Configuration state indicating the task completed successfully.
+
+
+
+
+ Configuration state indicating the task failed.
+
+
+
+
+ ENumeration to determine how the Weblink address is set.
+
+
+
+
+ Looks at current weblink settings and determine which location to set based on if the URL is set and valid and if
+ the printer is connected to the address.
+
+
+
+
+ Overrides any setting in Weblink location 1.
+
+
+
+
+ Overrides any setting in Weblink location 2.
+
+
+
+
+ Enumeration of the weblink configuration task's state.
+
+
+
+
+ Configuration state indicating the task is creating a connection to the printer.
+
+
+
+
+ Configuration state indicating the task is retrieving the printer's settings.
+
+
+
+
+ Configuration state indicating the task is configuring the weblink setting.
+
+
+
+
+ Configuration state indicating the task is restarting the printer.
+
+
+
+
+ Configuration state indicating the task is waiting for the printer to restart and then reconnect.
+
+
+
+
+ Configuration state indicating the task is validating the printer's profile manager connection.
+
+
+
+
+ Callback for updating the status of a Weblink configuration task.
+
+
+
+
+ Sets the new state of the Weblink Configurator defined by WeblinkConfigurationState.
+
+ The updated WeblinkConfiguration state.
+
+
+
+ Provides a custom message for the current weblink configuration state.
+
+ Custom message.
+
+
+
+ Task to configure a printers Weblink setting.
+
+
+
+
+ Initializes a new instance of the WeblinkConfiguratior class.
+
+ The to configure.
+
+
+
+ Initializes a new instance of the WeblinkConfiguratior class.
+
+ A to a printer
+
+
+
+ Configures a printer to connect to a Zebra Weblink server and attempts to validate a successful connection.
+
+
+ Please note that this function will block while waiting for the printer to reset and while validating the
+ connection. This could take an excess of 60 seconds.
+
+ Weblink address to set.
+ Determines which weblink setting will be configured.
+ Callback object to report task status.
+ Thrown when a configuration error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the current .
+
+
+
+
+ Returns the of the weblink configuration task.
+
+
+
+
+ Returns true if the supplied weblink url is valid for the Zebra weblink server.
+
+ Potential URL to a Zebra Weblink server.
+ true if the URL is a properly formed URL for the Zebra Weblink server.
+
+
+
+ Signals that an error occured while configuring weblink.
+
+
+
+
+ Constructs a ZebraWeblinkException with a base Exception.
+
+ The base exception.
+
+
+
+ Constructs a ZebraWeblinkException with a custom detailed error message.
+
+ The custom error message.
+
+
+
diff --git a/bin/Debug/SdkApi.Desktop.Usb.dll b/bin/Debug/SdkApi.Desktop.Usb.dll
new file mode 100644
index 0000000..6124fdd
Binary files /dev/null and b/bin/Debug/SdkApi.Desktop.Usb.dll differ
diff --git a/bin/Debug/SdkApi.Desktop.dll b/bin/Debug/SdkApi.Desktop.dll
new file mode 100644
index 0000000..4beb6ab
Binary files /dev/null and b/bin/Debug/SdkApi.Desktop.dll differ
diff --git a/bin/Debug/SdkApi.Desktop.xml b/bin/Debug/SdkApi.Desktop.xml
new file mode 100644
index 0000000..4474204
--- /dev/null
+++ b/bin/Debug/SdkApi.Desktop.xml
@@ -0,0 +1,1410 @@
+
+
+
+ SdkApi.Desktop
+
+
+
+
+
+
+
+
+
+
+ Gets the expected bare word arguments.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Max length of optionTitle is 12 characters.
+
+
+
+
+
+
+ Max length of optionTitle is 12 characters.
+
+
+
+
+
+
+
+ Max length of optionTitle is 12 characters.
+
+
+
+
+
+
+
+
+ Hide the option so it does not appear on the help menu.
+ Option object.
+
+
+
+
+
+ Option object.
+
+
+
+
+
+
+
+
+
+ True if the Option is hidden from the help menu.
+
+
+
+
+
+
+
+ Argument name if there is one.
+
+
+
+
+ Whether command has arg.
+
+
+
+
+ Long option.
+
+
+
+
+ Short option.
+
+
+
+
+ Description.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes a Bluetooth® connection to a printer. (Windows 10 only)
+
+
+ In order to connect to a device with Bluetooth®, the device must be discoverable, authentication must be enabled,
+ and the authentication pin must be set (1-16 alphanumeric characters).
+ The encryption type and whether or not it is used is determined by the device initiating the connection and not
+ the device being connected to.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ Printer connection error or unsupported operating system.
+ For internal use of the Zebra Printer API only.
+
+
+
+ Constructs a new Bluetooth® connection with the given macAddress.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 10
+ seconds for any data to be received. If no more data is available after 500 milliseconds the read operation is assumed to be
+ complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The device's MAC address.
+ Unsupported operating system.
+
+
+
+ Constructs a new Bluetooth® connection with the givenmacAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete.
+
+ The device's MAC address.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Unsupported operating system.
+
+
+
+ Exposed this protected constructor for testing. We can pass in a mock Connector rather than the BT specific one.
+ The MAC address is a hexadecimal string with no separators between the octets (e.g. 0011BBDD55FF).
+
+
+
+
+
+ Unsupported operating system.
+
+
+
+ Opens a Bluetooth® connection as specified in the constructor.
+
+
+
+
+
+ Closes the Bluetooth® connection.
+
+
+
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name changes on the
+ device, it will not be refreshed until the connection is closed and reopened.
+
+ Bluetooth:[MAC Address]:[Friendly Name].
+
+
+
+
+ Gets the MAC address and the friendly name as the description.
+
+ [MAC Address]:[Friendly Name]
+
+
+
+
+ Gets the MAC address which was passed into the constructor. The MAC address is a hexadecimal string with
+ separators between the octets (e.g. 00:11:BB:DD:55:FF).
+
+
+
+
+ Gets the friendly name of the Bluetooth® connection. The friendly name is obtained from the device when
+ this connection is opened. If the friendly name changes on the device, it will not be refreshed until the
+ connection is closed and reopened.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes an insecure Bluetooth® connection to a printer. Insecure Bluetooth® connections do not require
+ the device and the printer to be paired. (Windows 10 only)
+
+
+
+
+
+ For Zebra Internal Use Only.
+
+
+ Unsupported operating system.
+
+
+
+ Constructs a new insecure Bluetooth® connection with the given macAddress.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for
+ any data to be received. If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ .
+
+ The device's MAC address.
+ Unsupported operating system.
+
+
+
+ Constructs a new insecure Bluetooth® connection with the given macAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the specified timeouts for . The timeout is a maximum of maxTimeoutForRead
+ milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData milliseconds the read operation
+ is assumed to be complete.
+
+ The device's MAC address.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Unsupported operating system.
+
+
+
+ Establishes a Bluetooth® status only connection to a Link-OS printer. (Windows 10 only)
+
+
+ A must be actively open before this connection can be used.
+ This connection requires Link-OS firmware 2.5 or higher. This channel will not block the printing channel,
+ nor can it print. If you wish to print, see .
+ Note: In order to connect to a device with Bluetooth®, the device must be discoverable, authentication
+ must be enabled, and the authentication pin must be set (1-16 alphanumeric characters).
+ The encryption type and whether or not it is used is determined by the device initiating the connection and not the
+ device being connected to.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ Printer connection error or unsupported soperating system.
+ For internal use of the Zebra Printer API only.
+
+
+
+ Constructs a new Bluetooth® connection with the given macAddress.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5
+ seconds for any data to be received. If no more data is available after 500 milliseconds the read operation is
+ assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The device's MAC address.
+ Unsupported operating system.
+
+
+
+ Constructs a new status only Bluetooth® connection with the given macAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete.
+
+ The device's MAC address.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Unsupported operating system.
+
+
+
+ Exposed this protected constructor for testing. We can pass in a mock Connector rather than the BT specific one.
+ The MAC address is a hexadecimal string with no separators between the octets (e.g. 0011BBDD55FF).
+
+
+
+
+
+ Unsupported operating system.
+
+
+
+ Opens a status only Bluetooth® connection as specified in the constructor.
+
+
+ If the device does not support status connections (that is, if it is not a Link-OS 2.5 or higher device) calling
+ open will throw a ConnectionException.
+
+
+
+
+
+ Closes the Bluetooth® connection.
+
+
+
+
+
+ Returns Bluetooth_STATUS:[MAC Address]:[Friendly Name].
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name changes on the
+ device, it will not be refreshed until the connection is closed and reopened.
+
+
+ Bluetooth_STATUS:[MAC Address]:[Friendly Name].
+
+
+
+ Return the MAC address and friendly name of the status port as the description.
+
+ [MAC Address]:[Friendly Name]
+
+
+
+
+ Returns the MAC address which was passed into the constructor.
+
+
+ The MAC address is a hexadecimal string with separators between the octets (e.g. 00:11:BB:DD:55:FF).
+
+
+
+
+ Returns the friendly name of the Bluetooth® connection.
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name
+ changes on the device, it will not be refreshed until the connection is closed and reopened.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes a status only insecure Bluetooth® connection to a Link-OS printer. (Windows 10 only)
+
+
+ A must be actively open before this connection can be used.
+ This connection requires Link-OS firmware 2.5 or higher. This channel will not block the printing channel, nor can it print.
+ If you wish to print, see . Insecure Bluetooth® connections do not require the device
+ and the printer to be paired.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ Unsupported operating system.
+
+
+
+
+ Constructs a new status only insecure Bluetooth® connection with the given macAddress.
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5
+ seconds for any data to be received. If no more data is available after 500 milliseconds the read operation is
+ assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ Unsupported operating system.
+
+
+
+ Constructs a new status only insecure Bluetooth® connection with the given macAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete.
+
+ The device's MAC address.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Unsupported operating system.
+
+
+
+ Builds a Connection from a description string. The description string is used to specify a connection to a specific
+ device over TCP, USB, or Bluetooth® (Windows 10 only).
+
+
+ The description string may be of the explicit forms:
+ "TCP:192.168.1.4:6101" -- creates a TCP connection to the device with IP address 192.168.1.4 on port 6101.
+ "TCP:192.168.1.4" -- creates a TCP connection to the device with IP address 192.168.1.4 on default port 9100.
+ "TCP:dnsName:6101" -- creates a TCP connection to the device with 'dnsName' on port 6101.
+ "TCP:dnsName" -- creates a TCP connection to the device with 'dnsName' on default port 9100.
+ "TCP_MULTI:192.168.1.4" -- creates a Multichannel TCP connection to the device with '192.168.1.4' using the default ports for both the printing channel(9100) and the status channel(9200).
+ "TCP_MULTI:192.168.1.4:1234" -- creates a Multichannel TCP connection to the device with '192.168.1.4' using the given port for the printing channel(1234) and the default port for the status channel(9200).
+ "TCP_MULTI:192.168.1.4:1234:5678" -- creates a Multichannel TCP connection to the device with '192.168.1.4' using the given ports for the printing channel(1234) and the status channel(5678).
+ "TCP_MULTI:dnsName:1234:5678" -- creates a Multichannel TCP connection to the device with 'dnsName' using the given ports for the printing channel(1234) and the status channel(5678).
+ "TCP_STATUS:192.168.1.4:1234" -- creates a TCP status only connection to the device with IP address 192.168.1.4 on port 1234.
+ "TCP_STATUS:192.168.1.4" -- creates a TCP status only connection to the device with IP address 192.168.1.4 on the default status port 9200.
+ "USB:deviceName" -- creates a USB connection (through the ZebraDesigner driver) to the device with printer name 'deviceName'.
+ "USB_DIRECT:\\?\usb#vid_0a5f&pid_00bd#qln320#..." -- creates a USB connection (direct) to the device using '\\?\usb#vid_0a5f&pid_00bd#qln320#...' as the USB symbolic name.
+ "BT:11:22:33:44:55:66" -- creates a Bluetooth® connection to the device using '11:22:33:44:55:66' as the MAC address. (Windows 10 only)
+ "BT_MULTI:11:22:33:44:55:66" -- creates a multichannel Bluetooth® connection to the device using '11:22:33:44:55:66' as the MAC address. (Link-OS 2.5 or higher for the status channel, Windows 10 only)
+ "BT_STATUS:11:22:33:44:55:66" -- creates a status only Bluetooth® connection to the device using '11:22:33:44:55:66' as the MAC address. (Link-OS 2.5 or higher, Windows 10 only)
+
+ Generic text may also be used to attempt to specify a device. For example a description string of "genericText" will
+ attempt to connect to a device using the following priority:
+
+ -
+ TCP_MULTI
+
+ -
+ TCP
+
+ -
+ TCP_STATUS
+
+ -
+ USB
+
+ -
+ USB_DIRECT
+
+ -
+ BT_MULTI
+
+ -
+ BT
+
+ -
+ BT_STATUS
+
+
+
+ If you supply the string 'MyString'. This could be interpreted to be either a DNS name, or a USB device name.
+ ConnectionBuilder will attempt to connect to this string given the above priority order.
+ If you supply a more specific string, such as '192.168.2.3', ConnectionBuilder will more efficiently interpret this
+ string as being an IP address and, therefore, only attempt the TCP connections.
+ Note: Colon (':') characters are not supported in dnsName, friendlyName, uniqueId, deviceName, or genericText fields.
+ The following is an example of building a connection from a string:
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Add a connection type to the ConnectionBuilder.
+
+ Connection class.
+
+
+
+ Creates a Connection type based on the contents of descriptionString.
+ "TCP:192.168.1.2:9100"
+ The format of the input string is: [prefix:] address [: port_number(s)].
+
+ -
+ Prefix is either TCP_MULTI, TCP, TCP_STATUS, USB (if applicable), USB_DIRECT (if applicable), BT_MULTI (if applicable),
+ BT (if applicable), or BT_STATUS (if applicable).
+
+ -
+ The format of address depends on the prefix
+
+ - USB : address is the printer driver name.
+ - USB_DIRECT : address is the USB symbolic name.
+ - TCP : address is either a DNS name or an IPv4 address.
+ - BT : address is the MAC address. (Windows 10 only)
+
+
+ - port_number(s) is optional, and only applicable for TCP connections.
+ -
+ Examples:
+
+ - TCP:ZBR3054027:9100
+ - TCP_MULTI:ZBR3054027:9100:9200
+ - USB:ZDesigner Qln320
+ - USB_DIRECT:\\?\usb#vid_0a5f&pid_00bd#qln320#...
+ - BT:11:22:33:44:55:66
+ - 10.1.2.3
+
+
+
+ Connection derived from the contents of descriptionString.If a connection could not be established for the given descriptionString.
+
+
+
+ Establishes a USB connection to a printer.
+
+ This class is only supported on Windows PC platforms.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+ Information required to instantiate a DriverPrinterConnection
+
+
+
+
+ Initializes a new instance of the DriverPrinterConnection class.
+
+
+ This constructor will use the default timeouts for .
+ The default timeout is a maximum of 5 seconds for any data to be received. If no more
+ data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ .
+
+ The printer name.
+
+
+
+
+ Initializes a new instance of the DriverPrinterConnection class.
+
+
+ This constructor will use the specified timeouts for .
+ The timeout is a maximum of maxTimeoutForRead milliseconds for any data to be received.
+ If no more data is available after timeToWaitForMoreData milliseconds the read operation
+ is assumed to be complete.
+
+ The printer name.
+ The maximum milliseconds to wait for the initial data to be received.
+ The maximum milliseconds to wait for additional data to be received.
+
+
+
+
+ Returns the name of the printer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns USB:[PrinterName].
+
+ The PrinterName is the parameter which was passed into the constructor.
+
+
+
+ Return the printer name as the description.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Releases all resources used by the
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This does not work at the moment so do not use
+
+
+
+
+
+ This sort of works on desktop but only worked on tablet if the bt devices window was open
+ so do not use
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 35 seconds was chosen for a Max Timeout so that if the pairing request is
+ ignored it will close and deny the pair before we hit the Max Timeout and close.
+
+
+
+
+ Establishes a Bluetooth® label and status connection to a printer. (Windows 10 only)
+
+
+ In order to connect to a device with Bluetooth®, the device must be discoverable,
+ authentication must be enabled, and the authentication pin must be set (1-16 alphanumeric characters).
+ The encryption type and whether or not it is used is determined by the device initiating the connection and not
+ the device being connected to.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ Unsupported operating system.
+
+
+
+ Initializes a new instance of the MultichannelBluetoothConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a
+ maximum of 5 seconds for any data to be received. If no more data is available after 500 milliseconds the read
+ operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ or
+ .
+
+ The MAC Address of the Printer.
+ Unsupported operating system.
+
+
+
+ Initializes a new instance of the MultichannelBluetoothConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels.
+ The timeout is a maximum of maxTimeoutForRead milliseconds for any data to be received. If no more
+ data is available after timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+ If you wish to specify different timeouts for each channel, use
+ }.
+
+ The MAC Address of the Printer.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Unsupported operating system.
+
+
+
+ Initializes a new instance of the MultichannelBluetoothConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels.
+ The timeout is a maximum of printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds
+ for any data to be received on the printing/status channels respectively. If no more data is available after
+ printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData milliseconds on the printing/status
+ channels respectively the read operation is assumed to be complete.
+
+ The MAC Address of the Printer.
+ The maximum time, in milliseconds, to wait for any data to be received on
+ the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the
+ initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on
+ the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the
+ initial read on the status channel.
+ Unsupported operating system.
+
+
+
+ Opens both the printing and status channel of this Multichannel connection.
+
+
+ If neither channel can be opened, then a is thrown. When this Multichannel connection
+ is no longer needed, you must call to free up system resources.
+
+ If the connection cannot be established.
+
+
+
+
+
+
+ Returns Bluetooth_MULTI:[MAC Address]:[Friendly Name].
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name changes on the
+ device, it will not be refreshed until the connection is closed and reopened.
+
+ Bluetooth_MULTI:[MAC Address]:[Friendly Name].
+
+
+
+ Return the MAC address as the description.
+
+
+
+
+
+
+
+
+
+
+ Unsupported operating system.
+
+
+
+ Establishes a direct connection to an attached Zebra USB printer without requiring the presence of a USB driver.
+
+
+
+
+ The symbolic name of the printer.
+
+
+
+
+ Initializes a new instance of the UsbConnection class.
+
+ This constructor will attempt a connection to the printer specified in the symbolic name.
+ The USB symbolic name for the device returned by the UsbDiscoverer.GetZebraUsbPrinters() member function.
+ If the system is not running the Windows operating system or if the device cannot be found.
+
+
+
+ Initializes a new instance of the UsbConnection class.
+
+ This constructor will attempt a connection to the printer specified in the symbolic name.
+ The USB symbolic name for the device returned by the UsbDiscoverer.GetZebraUsbPrinters() member function.
+ Maximum time to wait for read data
+ Maximum time to wait for more data after intial data is sent from printer
+ If the system is not running the Windows operating system or if the device cannot be found.
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the UsbConnection class.
+
+ This constructor will attempt a connection to a printer that meets the connectionInfo criteria
+ Printer serial number or model number
+ Printer connection error
+ Cannot find specified device among attached devices
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads up to maxBytesToRead into byte array
+
+ The maximum number of bytes to read.
+ Performing reads using DriverPrinterConnection and UsbConnection concurrently could cause indeterminate reads.
+
+
+
+ Returns number of bytes currently read from printer.
+
+ Number of bytes currently read from printer.
+ If an I/O error occurs.
+
+
+
+
+
+
+
+
+
+ Gets the printer's serial number.
+
+
+
+
+ Returns the Connection Builder name of the USB device.
+
+
+
+
+
+
+
+
+
+
+ Returns printer's manufacturer.
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ A factory used to acquire an instance of a ZebraImageI.
+
+
+
+
+ Creates an instance of from the image specified in image.
+
+ The image
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If image is null
+
+
+
+ Creates an instance of from the image specified in fullPath.
+
+ The full path of the image.
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If fullPath is null
+
+
+
+ Creates an instance of from the image data specified in imageData
+
+ A stream containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null
+
+
+
+ A class that discovers Bluetooth® devices.
+
+
+
+
+
+ Find Bluetooth® devices that are discoverable.
+
+ This method will return all devices found, not just Zebra printers.
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ For communication or discovery errors.
+
+
+
+ Find Bluetooth® devices that are discoverable.
+
+ This method will return all devices found, not just Zebra printers.
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ For communication or discovery errors.
+
+
+
+ Find Bluetooth® devices that are discoverable.
+
+ This method will return all devices found, not just Zebra printers.
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A custom instance used to determine whether or not a discovered device should be ignored.
+ For communication or discovery errors.
+
+
+
+ Find Bluetooth® devices that are discoverable.
+
+ This method will return all devices found, not just Zebra printers.
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A custom instance used to determine whether or not a discovered device should be ignored.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ For communication or discovery errors.
+
+
+
+ Find services (ConnectionChannels) that are supported by the device at macAddress.
+
+ MAC address of the device.
+ A instance that is used to handle service discovery events.
+ The Bluetooth MAC address is invalid.
+
+
+
+ DeviceFilter is an interface to allow the user to write custom code to determine whether or not the
+ BluetoothDiscoverer should include a particular BluetoothDevice in it's result set.
+
+
+
+
+ Method called by a BluetoothDiscoverer to determine whether or not a Bluetooth® device should be added to
+ it's list of discovered devices.
+
+ BluetoothDevice to potentially be added to the list of of discovered Bluetooth® devices.
+ A bool indicating whether or not a particular BluetoothDevice should be added.
+
+
+
+ Instance of DiscoveredPrinter that is returned when performing a Bluetooth® discovery.
+
+
+
+
+ The friendly name of the Bluetooth® device.
+
+
+
+
+ Returns an instance of a DiscoveredPrinterBluetooth with macAddress.
+
+ MAC address of the printer.
+ Friendly name of the printer.
+
+
+
+
+
+
+ Instance of that is returned when performing a Driver Discovery.
+
+
+
+
+ Local printer name associated with the driver.
+
+
+
+
+ Returns an instance of a with printerName, driverName,
+ and portNames.
+
+ The printer name.
+ The name of the ZebraDesigner driver.
+ The port name.
+
+
+
+ Returns the name of the printer.
+
+ The printer name.
+
+
+
+
+
+
+ Instance of that is returned when performing a search of currently connected Zebra USB printers.
+
+
+
+
+ Returns an instance of a built using built using the provided symbolicName.
+
+ The symbolic name for the printer returned by
+ or .
+ If a connection to the discover USB printer cannot be established.
+
+
+
+ Returns an instance of a built using the provided symbolicName and
+ attributes.
+
+ The symbolic name for the printer returned by
+ or .
+ A map of attributes associated with the discovered USB printer.
+ If a connection to the discover USB printer cannot be established.
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface definition for a callback to be invoked for service discovery events.
+
+
+
+
+ This method is invoked when a service has been discovered. This method will be invoked for each service that is found.
+
+ A discovered channel.
+
+
+
+ This method is invoked when discovery is finished.
+
+
+
+
+ A class used to discover a printer described by a URL. (Windows 10 only)
+
+
+
+
+ This method will search using a combination of discovery methods to find the printer described by the specified URL. (Windows 10 only)
+
+
+ This method will invoke the method for each interface that
+ the specified printer is found. will be invoked when the discovery is
+ finished and will be invoked when any errors are encountered during
+ discovery. When is invoked, the discovery will be canceled and
+ will not be invoked.
+ This method will typically be used when reading an NFC tag attached to a Zebra printer. To launch your app when a
+ Zebra NFC tag is read:
+
+ - Register to listen for Zebra NFC Tag scans in your application
+ - Handle the NFC scan in your application
+
+
+ The URL describing the targeted printer (Typically, this information is encoded on an NFC tag attached
+ to the printer)
+ Example:
+ "http://www.zebra.com/apps/r/nfc?mBL=00225832C75F&mW=000000000000&mE=000000000000&c=QN3-AUBA0E01-00&s=XXQLJ112600422&v=0"
+ A instance that is used to handle discovery events (e.g. found a
+ printer, errors, discovery finished).
+ If an error occurs while starting the discovery (errors during discovery will be sent
+ via ).
+
+
+
+
+ A class used to discover USB connected Zebra printers. Printers can be accessed directly or through a Zebra Designer
+ printer driver if your printer supports the driver.
+
+
+
+
+
+ A class used to discover USB connected Zebra printers. Printers can be accessed either directly or through a USB
+ printer driver.
+
+
+
+
+ Enumerate locally installed Zebra Designer Drivers.
+
+ List of ZebraDesigner drivers installed.
+ If the system is not running the Windows operating system or an error occurs during discovery.
+
+
+
+ Enumerate all currently connected Zebra USB printers.
+
+ List of locally connected Zebra USB printers.
+ If the system is not running the Windows operating system or an error occurs during discovery.
+
+
+
+ Enumerate currently connected Zebra USB printers that meet the specified DiscoveredPrinterFilter criteria.
+
+ A custom instance used to determine whether or not a discovered device should be ignored.
+ >List of locally connected Zebra USB printers.
+ If the system is not running the Windows operating system or an error occurs during discovery.
+
+
+
+ For Zebra Internal Use Only.
+
+
+
+
+
+
+ For Zebra Internal Use Only.
+
+
+
+
+
+
+ DiscoveredPrinterFilter implementation that filters out all unsupported Zebra Printers.
+
+
+
+
+ Determines if the discoveredPrinter is a supported Zebra Printer.
+
+ The discovered printer.
+ True if the discoveredPrinter is a supported Zebra Printer.
+
+
+
+ Handler class used to notify of connection status
+
+
+
+
+ Called when a printer establishes a connection.
+
+ Printer which just established a connection.
+
+
+
+ Called when a printer goes offline.
+
+ Printer which just went offline.
+
+
+
+ Removes the Connection handler from the runtime.
+
+
+
+
diff --git a/bin/Debug/SharpSnmpLib.dll b/bin/Debug/SharpSnmpLib.dll
new file mode 100644
index 0000000..69d7c98
Binary files /dev/null and b/bin/Debug/SharpSnmpLib.dll differ
diff --git a/bin/Debug/ZebraPrinterSdk.dll b/bin/Debug/ZebraPrinterSdk.dll
new file mode 100644
index 0000000..e7dbffb
Binary files /dev/null and b/bin/Debug/ZebraPrinterSdk.dll differ
diff --git a/bin/Debug/ZebraPrinterSdk.xml b/bin/Debug/ZebraPrinterSdk.xml
new file mode 100644
index 0000000..f5592dc
--- /dev/null
+++ b/bin/Debug/ZebraPrinterSdk.xml
@@ -0,0 +1,57 @@
+
+
+
+ ZebraPrinterSdk
+
+
+
+
+ A factory interface used to acquire a cross platform instance of ZebraImageI.
+
+
+
+
+ Creates an instance of from the image specified in fullPath.
+
+ The full path of the image.
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If fullPath is null.
+
+
+
+ Creates an instance of from the image data specified in imageData.
+
+ A byte[] containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null.
+
+
+
+ Creates an instance of from the image data specified in imageData.
+
+ A stream containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null.
+
+
+
+ A factory used to acquire an instance of ZebraImageI.
+
+
+
+
+ Current IZebraPrinterFactory to use
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bin/Debug/ZebraPrinterUtilities.exe b/bin/Debug/ZebraPrinterUtilities.exe
new file mode 100644
index 0000000..416f001
Binary files /dev/null and b/bin/Debug/ZebraPrinterUtilities.exe differ
diff --git a/bin/Debug/ZebraPrinterUtilities.exe.config b/bin/Debug/ZebraPrinterUtilities.exe.config
new file mode 100644
index 0000000..11d2c36
--- /dev/null
+++ b/bin/Debug/ZebraPrinterUtilities.exe.config
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/Debug/ZebraPrinterUtilities.pdb b/bin/Debug/ZebraPrinterUtilities.pdb
new file mode 100644
index 0000000..810da0f
Binary files /dev/null and b/bin/Debug/ZebraPrinterUtilities.pdb differ
diff --git a/bin/Debug/ZebraPrinterUtilities.xml b/bin/Debug/ZebraPrinterUtilities.xml
new file mode 100644
index 0000000..812125d
--- /dev/null
+++ b/bin/Debug/ZebraPrinterUtilities.xml
@@ -0,0 +1,68 @@
+
+
+
+
+ZebraPrinterUtilities
+
+
+
+
+
+ Modulo utilizzato per definire le proprietà disponibili nello spazio dei nomi My per WPF
+
+
+
+
+
+ Restituisce l'oggetto applicazione per l'applicazione in esecuzione
+
+
+
+
+ Restituisce le informazioni sul computer host.
+
+
+
+
+ Restituisce le informazioni per l'utente corrente. Se si desidera eseguire l'applicazione con le
+ credenziali utente di Windows correnti, chiamare My.User.InitializeWithWindowsUser().
+
+
+
+
+ Restituisce il registro applicazioni. I listener possono essere configurati dal file di configurazione dell'applicazione.
+
+
+
+
+ Restituisce la raccolta di oggetti Window definiti nel progetto.
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+Application
+
+
+
+
+Application Entry Point.
+
+
+
+
diff --git a/bin/Release/BouncyCastle.Crypto.dll b/bin/Release/BouncyCastle.Crypto.dll
new file mode 100644
index 0000000..b870046
Binary files /dev/null and b/bin/Release/BouncyCastle.Crypto.dll differ
diff --git a/bin/Release/BouncyCastle.Crypto.xml b/bin/Release/BouncyCastle.Crypto.xml
new file mode 100644
index 0000000..e43aa62
--- /dev/null
+++ b/bin/Release/BouncyCastle.Crypto.xml
@@ -0,0 +1,25101 @@
+
+
+
+ BouncyCastle.Crypto
+
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ Return the DER encoding of the object, null if the DER encoding can not be made.
+
+ @return a DER byte array, null otherwise.
+
+
+ a general purpose ASN.1 decoder - note: this class differs from the
+ others in that it returns null after it has read the last object in
+ the stream. If an ASN.1 Null is encountered a Der/BER Null object is
+ returned.
+
+
+ Create an ASN1InputStream where no DER object will be longer than limit.
+
+ @param input stream containing ASN.1 encoded data.
+ @param limit maximum size of a DER encoded object.
+
+
+ Create an ASN1InputStream based on the input byte array. The length of DER objects in
+ the stream is automatically limited to the length of the input array.
+
+ @param input array containing ASN.1 encoded data.
+
+
+ build an object given its tag and the number of bytes to construct it from.
+
+
+ A Null object.
+
+
+ Create a base ASN.1 object from a byte array.
+ The byte array to parse.
+ The base ASN.1 object represented by the byte array.
+
+ If there is a problem parsing the data, or parsing an object did not exhaust the available data.
+
+
+
+ Read a base ASN.1 object from a stream.
+ The stream to parse.
+ The base ASN.1 object represented by the byte array.
+ If there is a problem parsing the data.
+
+
+ return an Octet string from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return an Octet string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ @param string the octets making up the octet string.
+
+
+ return an Asn1Sequence from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 sequence from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ sequence - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sequences you really should
+ be using this method.
+
+ @param obj the tagged object.
+ @param explicitly true if the object is meant to be explicitly tagged,
+ false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return the object at the sequence position indicated by index.
+
+ @param index the sequence number (starting at zero) of the object
+ @return the object at the sequence position indicated by index.
+
+
+ return an ASN1Set from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 set from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ set - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sets you really should
+ be using this method.
+
+ @param obj the tagged object.
+ @param explicitly true if the object is meant to be explicitly tagged
+ false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return the object at the set position indicated by index.
+
+ @param index the set number (starting at zero) of the object
+ @return the object at the set position indicated by index.
+
+
+ ASN.1 TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if the object is explicitly tagged.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ return whether or not the object may be explicitly tagged.
+
+ Note: if the object has been read from an input stream, the only
+ time you can be sure if isExplicit is returning the true state of
+ affairs is if it returns false. An implicitly tagged object may appear
+ to be explicitly tagged, so you need to understand the context under
+ which the reading was done as well, see GetObject below.
+
+
+ return whatever was following the tag.
+
+ Note: tagged objects are generally context dependent if you're
+ trying to extract a tagged object you should be going via the
+ appropriate GetInstance method.
+
+
+ Return the object held in this tagged object as a parser assuming it has
+ the type of the passed in tag. If the object doesn't have a parser
+ associated with it, the base object is returned.
+
+
+
+
+
+ SHA-2.SHA-256; 1.3.6.1.4.1.22554.1.2.1
+
+
+ SHA-2.SHA-384; 1.3.6.1.4.1.22554.1.2.2
+
+
+ SHA-2.SHA-512; 1.3.6.1.4.1.22554.1.2.3
+
+
+ SHA-2.SHA-224; 1.3.6.1.4.1.22554.1.2.4
+
+
+ PKCS-5(1)|PKCS-12(2)
+ SHA-1.PKCS5; 1.3.6.1.4.1.22554.1.1.1
+
+
+ SHA-1.PKCS12; 1.3.6.1.4.1.22554.1.1.2
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.1
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.2
+
+
+ AES(1) . (CBC-128(2)|CBC-192(22)|CBC-256(42))
+ 1.3.6.1.4.1.22554.1.1.2.1.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.42
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.42
+
+
+ signature(2) algorithms
+
+
+ Sphincs-256
+
+
+ XMSS
+
+
+ XMSS^MT
+
+
+ key_exchange(3) algorithms
+
+
+ NewHope
+
+
+ A BER Null object.
+
+
+ convert a vector of octet strings into a single byte string
+
+
+ The octets making up the octet string.
+
+
+ return the DER octets that make up this string.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty sequence
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ BER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+
+ CAKeyUpdAnnContent ::= SEQUENCE {
+ oldWithNew CmpCertificate, -- old pub signed with new priv
+ newWithOld CmpCertificate, -- new pub signed with old priv
+ newWithNew CmpCertificate -- new pub signed with new priv
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertConfirmContent ::= SEQUENCE OF CertStatus
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertifiedKeyPair ::= SEQUENCE {
+ certOrEncCert CertOrEncCert,
+ privateKey [0] EncryptedValue OPTIONAL,
+ -- see [CRMF] for comment on encoding
+ publicationInfo [1] PKIPublicationInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertOrEncCert ::= CHOICE {
+ certificate [0] CMPCertificate,
+ encryptedCert [1] EncryptedValue
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRepMessage ::= SEQUENCE {
+ caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL,
+ response SEQUENCE OF CertResponse
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertResponse ::= SEQUENCE {
+ certReqId INTEGER,
+ -- to match this response with corresponding request (a value
+ -- of -1 is to be used if certReqId is not specified in the
+ -- corresponding request)
+ status PKIStatusInfo,
+ certifiedKeyPair CertifiedKeyPair OPTIONAL,
+ rspInfo OCTET STRING OPTIONAL
+ -- analogous to the id-regInfo-utf8Pairs string defined
+ -- for regInfo in CertReqMsg [CRMF]
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertStatus ::= SEQUENCE {
+ certHash OCTET STRING,
+ -- the hash of the certificate, using the same hash algorithm
+ -- as is used to create and verify the certificate signature
+ certReqId INTEGER,
+ -- to match this confirmation with the corresponding req/rep
+ statusInfo PKIStatusInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Note: the addition of attribute certificates is a BC extension.
+
+
+
+ CMPCertificate ::= CHOICE {
+ x509v3PKCert Certificate
+ x509v2AttrCert [1] AttributeCertificate
+ }
+
+ Note: the addition of attribute certificates is a BC extension.
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CrlAnnContent ::= SEQUENCE OF CertificateList
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenRepContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+ Example InfoTypeAndValue contents include, but are not limited
+ to, the following (un-comment in this ASN.1 module and use as
+ appropriate for a given environment):
+
+ id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1}
+ CAProtEncCertValue ::= CMPCertificate
+ id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
+ SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3}
+ EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
+ PreferredSymmAlgValue ::= AlgorithmIdentifier
+ id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5}
+ CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent
+ id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6}
+ CurrentCRLValue ::= CertificateList
+ id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7}
+ UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER
+ id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10}
+ KeyPairParamReqValue ::= OBJECT IDENTIFIER
+ id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11}
+ KeyPairParamRepValue ::= AlgorithmIdentifer
+ id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12}
+ RevPassphraseValue ::= EncryptedValue
+ id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13}
+ ImplicitConfirmValue ::= NULL
+ id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14}
+ ConfirmWaitTimeValue ::= GeneralizedTime
+ id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15}
+ OrigPKIMessageValue ::= PKIMessages
+ id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16}
+ SuppLangTagsValue ::= SEQUENCE OF UTF8String
+
+ where
+
+ id-pkix OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
+ and
+ id-it OBJECT IDENTIFIER ::= {id-pkix 4}
+
+
+
+
+ InfoTypeAndValue ::= SEQUENCE {
+ infoType OBJECT IDENTIFIER,
+ infoValue ANY DEFINED BY infoType OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ KeyRecRepContent ::= SEQUENCE {
+ status PKIStatusInfo,
+ newSigCert [0] CMPCertificate OPTIONAL,
+ caCerts [1] SEQUENCE SIZE (1..MAX) OF
+ CMPCertificate OPTIONAL,
+ keyPairHist [2] SEQUENCE SIZE (1..MAX) OF
+ CertifiedKeyPair OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OobCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the Der encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PbmParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiBody.
+ @param type one of the TYPE_* constants
+ @param content message content
+
+
+
+ PkiBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiConfirmContent ::= NULL
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIFailureInfo ::= BIT STRING {
+ badAlg (0),
+ -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2),
+ -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5),
+ -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+ certRevoked (10),
+ certConfirmed (11),
+ wrongIntegrity (12),
+ badRecipientNonce (13),
+ timeNotAvailable (14),
+ -- the TSA's time source is not available
+ unacceptedPolicy (15),
+ -- the requested TSA policy is not supported by the TSA
+ unacceptedExtension (16),
+ -- the requested extension is not supported by the TSA
+ addInfoNotAvailable (17)
+ -- the additional information requested could not be understood
+ -- or is not available
+ badSenderNonce (18),
+ badCertTemplate (19),
+ signerNotTrusted (20),
+ transactionIdInUse (21),
+ unsupportedVersion (22),
+ notAuthorized (23),
+ systemUnavail (24),
+ systemFailure (25),
+ -- the request cannot be handled due to system failure
+ duplicateCertReq (26)
+
+
+
+ Basic constructor.
+
+
+ Return the number of string elements present.
+
+ @return number of elements present.
+
+
+ Return the UTF8STRING at index.
+
+ @param index index of the string of interest
+ @return the string at index.
+
+
+
+ PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
+
+
+
+ Value for a "null" recipient or sender.
+
+
+
+ PkiHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiMessage.
+
+ @param header message header
+ @param body message body
+ @param protection message protection (may be null)
+ @param extraCerts extra certificates (may be null)
+
+
+
+ PkiMessage ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody,
+ protection [0] PKIProtection OPTIONAL,
+ extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiMessages ::= SEQUENCE SIZE (1..MAX) OF PkiMessage
+
+ @return a basic ASN.1 object representation.
+
+
+ @param status
+
+
+ @param status
+ @param statusString
+
+
+
+ PkiStatusInfo ::= SEQUENCE {
+ status PKIStatus, (INTEGER)
+ statusString PkiFreeText OPTIONAL,
+ failInfo PkiFailureInfo OPTIONAL (BIT STRING)
+ }
+
+ PKIStatus:
+ granted (0), -- you got exactly what you asked for
+ grantedWithMods (1), -- you got something like what you asked for
+ rejection (2), -- you don't get it, more information elsewhere in the message
+ waiting (3), -- the request body part has not yet been processed, expect to hear more later
+ revocationWarning (4), -- this message contains a warning that a revocation is imminent
+ revocationNotification (5), -- notification that a revocation has occurred
+ keyUpdateWarning (6) -- update already done for the oldCertId specified in CertReqMsg
+
+ PkiFailureInfo:
+ badAlg (0), -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2), -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5), -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+
+
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PollReqContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyChallContent ::= SEQUENCE OF Challenge
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyRespContent ::= SEQUENCE OF INTEGER
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ProtectedPart ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevAnnContent ::= SEQUENCE {
+ status PKIStatus,
+ certId CertId,
+ willBeRevokedAt GeneralizedTime,
+ badSinceDate GeneralizedTime,
+ crlDetails Extensions OPTIONAL
+ -- extra CRL details (e.g., crl number, reason, location, etc.)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevReqContent ::= SEQUENCE OF RevDetails
+
+ @return a basic ASN.1 object representation.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attribute ::= SEQUENCE {
+ attrType OBJECT IDENTIFIER,
+ attrValues SET OF AttributeValue
+ }
+
+
+
+
+ Attributes ::=
+ SET SIZE(1..MAX) OF Attribute -- according to RFC 5652
+
+ @return
+
+
+ Return the first attribute matching the given OBJECT IDENTIFIER
+
+
+ Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be
+ empty if there are no attributes of the required type present.
+
+ @param oid type of attribute required.
+ @return a vector of all the attributes found of type oid.
+
+
+ Return a new table with the passed in attribute added.
+
+ @param attrType
+ @param attrValue
+ @return
+
+
+ return an AuthenticatedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthenticatedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ The other Revocation Info arc
+ id-ri OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7) ri(16) }
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= Sequence {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ return a CompressedData object from a tagged object.
+
+ @param ato the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a CompressedData object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= SEQUENCE {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ MQVuserKeyingMaterial ::= SEQUENCE {
+ ephemeralPublicKey OriginatorPublicKey,
+ addedukm [0] EXPLICIT UserKeyingMaterial OPTIONAL }
+
+
+
+ return an EncryptedContentInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedData ::= SEQUENCE {
+ version CMSVersion,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ return an EnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an EnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= Sequence {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ return a KekIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekIdentifier ::= Sequence {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+
+
+ return a KekRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 4
+ kekID KekIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return an KeyAgreeRecipientIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an KeyAgreeRecipientIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyAgreeRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ rKeyId [0] IMPLICIT RecipientKeyIdentifier
+ }
+
+
+
+ return a KeyAgreeRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KeyAgreeRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ * Produce an object suitable for an Asn1OutputStream.
+ *
+ * KeyAgreeRecipientInfo ::= Sequence {
+ * version CMSVersion, -- always set to 3
+ * originator [0] EXPLICIT OriginatorIdentifierOrKey,
+ * ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
+ * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ * recipientEncryptedKeys RecipientEncryptedKeys
+ * }
+ *
+ * UserKeyingMaterial ::= OCTET STRING
+ *
+
+
+ return a KeyTransRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyTransRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 0 or 2
+ rid RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+
+ MetaData ::= SEQUENCE {
+ hashProtected BOOLEAN,
+ fileName UTF8String OPTIONAL,
+ mediaType IA5String OPTIONAL,
+ otherMetaData Attributes OPTIONAL
+ }
+
+ @return
+
+
+ return an OriginatorIdentifierOrKey object from a tagged object.
+
+ @param o the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorIdentifierOrKey object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorKey [1] OriginatorPublicKey
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ return an OriginatorInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorInfo ::= Sequence {
+ certs [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL
+ }
+
+
+
+ return an OriginatorPublicKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorPublicKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorPublicKey ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+ }
+
+
+
+ return an OtherKeyAttribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherKeyAttribute ::= Sequence {
+ keyAttrId OBJECT IDENTIFIER,
+ keyAttr ANY DEFINED BY keyAttrId OPTIONAL
+ }
+
+
+
+ return a OtherRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherRecipientInfo ::= Sequence {
+ oriType OBJECT IDENTIFIER,
+ oriValue ANY DEFINED BY oriType }
+
+
+
+ return a OtherRevocationInfoFormat object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRevocationInfoFormat object from the given object.
+
+ @param obj the object we want converted.
+ @exception IllegalArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ OtherRevocationInfoFormat ::= SEQUENCE {
+ otherRevInfoFormat OBJECT IDENTIFIER,
+ otherRevInfo ANY DEFINED BY otherRevInfoFormat }
+
+
+
+ return a PasswordRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a PasswordRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ PasswordRecipientInfo ::= Sequence {
+ version CMSVersion, -- Always set to 0
+ keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
+ OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+
+
+ return an RecipientEncryptedKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientEncryptedKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientEncryptedKey ::= SEQUENCE {
+ rid KeyAgreeRecipientIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return a RecipientIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientInfo ::= CHOICE {
+ ktri KeyTransRecipientInfo,
+ kari [1] KeyAgreeRecipientInfo,
+ kekri [2] KekRecipientInfo,
+ pwri [3] PasswordRecipientInfo,
+ ori [4] OtherRecipientInfo }
+
+
+
+ return a RecipientKeyIdentifier object from a tagged object.
+
+ @param _ato the tagged object holding the object we want.
+ @param _explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientKeyIdentifier object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientKeyIdentifier ::= Sequence {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+
+ ScvpReqRes ::= SEQUENCE {
+ request [0] EXPLICIT ContentInfo OPTIONAL,
+ response ContentInfo }
+
+ @return the ASN.1 primitive representation.
+
+
+ a signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+
+ SignedData ::= SEQUENCE {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+ return a SignerIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ SignerIdentifier sid,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+
+ TimeStampAndCRL ::= SEQUENCE {
+ timeStamp TimeStampToken, -- according to RFC 3161
+ crl CertificateList OPTIONAL -- according to RFC 5280
+ }
+
+ @return
+
+
+
+ TimeStampedData ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ dataUri IA5String OPTIONAL,
+ metaData MetaData OPTIONAL,
+ content OCTET STRING OPTIONAL,
+ temporalEvidence Evidence
+ }
+
+ @return
+
+
+
+ TimeStampTokenEvidence ::=
+ SEQUENCE SIZE(1..MAX) OF TimeStampAndCrl
+
+ @return
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertId ::= SEQUENCE {
+ issuer GeneralName,
+ serialNumber INTEGER }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new CertReqMsg.
+ @param certReq CertRequest
+ @param popo may be null
+ @param regInfo may be null
+
+
+
+ CertReqMsg ::= SEQUENCE {
+ certReq CertRequest,
+ pop ProofOfPossession OPTIONAL,
+ -- content depends upon key type
+ regInfo SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRequest ::= SEQUENCE {
+ certReqId INTEGER, -- ID for matching request and reply
+ certTemplate CertTemplate, -- Selected fields of cert to be issued
+ controls Controls OPTIONAL } -- Attributes affecting issuance
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Sets the X.509 version. Note: for X509v3, use 2 here.
+
+
+ Sets the issuer unique ID (deprecated in X.509v3)
+
+
+ Sets the subject unique ID (deprecated in X.509v3)
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ EncKeyWithID ::= SEQUENCE {
+ privateKey PrivateKeyInfo,
+ identifier CHOICE {
+ string UTF8String,
+ generalName GeneralName
+ } OPTIONAL
+ }
+
+ @return
+
+
+
+ EncryptedKey ::= CHOICE {
+ encryptedValue EncryptedValue, -- deprecated
+ envelopedData [0] EnvelopedData }
+ -- The encrypted private key MUST be placed in the envelopedData
+ -- encryptedContentInfo encryptedContent OCTET STRING.
+
+
+
+
+ EncryptedValue ::= SEQUENCE {
+ intendedAlg [0] AlgorithmIdentifier OPTIONAL,
+ -- the intended algorithm for which the value will be used
+ symmAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- the symmetric algorithm used to encrypt the value
+ encSymmKey [2] BIT STRING OPTIONAL,
+ -- the (encrypted) symmetric key used to encrypt the value
+ keyAlg [3] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used to encrypt the symmetric key
+ valueHint [4] OCTET STRING OPTIONAL,
+ -- a brief description or identifier of the encValue content
+ -- (may be meaningful only to the sending entity, and used only
+ -- if EncryptedValue might be re-examined by the sending entity
+ -- in the future)
+ encValue BIT STRING }
+ -- the encrypted value itself
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OptionalValidity ::= SEQUENCE {
+ notBefore [0] Time OPTIONAL,
+ notAfter [1] Time OPTIONAL } --at least one MUST be present
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiArchiveOptions ::= CHOICE {
+ encryptedPrivKey [0] EncryptedKey,
+ -- the actual value of the private key
+ keyGenParameters [1] KeyGenParameters,
+ -- parameters which allow the private key to be re-generated
+ archiveRemGenPrivKey [2] BOOLEAN }
+ -- set to TRUE if sender wishes receiver to archive the private
+ -- key of a key pair that the receiver generates in response to
+ -- this request; set to FALSE if no archival is desired.
+
+
+
+
+ PkiPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+ @return a basic ASN.1 object representation.
+
+
+ Password-based MAC value for use with POPOSigningKeyInput.
+
+
+ Creates a new PKMACValue.
+ @param params parameters for password-based MAC
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+ Creates a new PKMACValue.
+ @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+
+ PKMACValue ::= SEQUENCE {
+ algId AlgorithmIdentifier,
+ -- algorithm value shall be PasswordBasedMac 1.2.840.113533.7.66.13
+ -- parameter value is PBMParameter
+ value BIT STRING }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoPrivKey ::= CHOICE {
+ thisMessage [0] BIT STRING, -- Deprecated
+ -- possession is proven in this message (which contains the private
+ -- key itself (encrypted for the CA))
+ subsequentMessage [1] SubsequentMessage,
+ -- possession will be proven in a subsequent message
+ dhMAC [2] BIT STRING, -- Deprecated
+ agreeMAC [3] PKMACValue,
+ encryptedKey [4] EnvelopedData }
+
+
+
+ Creates a new Proof of Possession object for a signing key.
+ @param poposkIn the PopoSigningKeyInput structure, or null if the
+ CertTemplate includes both subject and publicKey values.
+ @param aid the AlgorithmIdentifier used to sign the proof of possession.
+ @param signature a signature over the DER-encoded value of poposkIn,
+ or the DER-encoded value of certReq if poposkIn is null.
+
+
+
+ PopoSigningKey ::= SEQUENCE {
+ poposkInput [0] PopoSigningKeyInput OPTIONAL,
+ algorithmIdentifier AlgorithmIdentifier,
+ signature BIT STRING }
+ -- The signature (using "algorithmIdentifier") is on the
+ -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg
+ -- certReq CertTemplate contains the subject and publicKey values,
+ -- then poposkInput MUST be omitted and the signature MUST be
+ -- computed on the DER-encoded value of CertReqMsg certReq. If
+ -- the CertReqMsg certReq CertTemplate does not contain the public
+ -- key and subject values, then poposkInput MUST be present and
+ -- MUST be signed. This strategy ensures that the public key is
+ -- not present in both the poposkInput and CertReqMsg certReq
+ -- CertTemplate fields.
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PopoSigningKeyInput with sender name as authInfo.
+
+
+ Creates a new PopoSigningKeyInput using password-based MAC.
+
+
+ Returns the sender field, or null if authInfo is publicKeyMac
+
+
+ Returns the publicKeyMac field, or null if authInfo is sender
+
+
+
+ PopoSigningKeyInput ::= SEQUENCE {
+ authInfo CHOICE {
+ sender [0] GeneralName,
+ -- used only if an authenticated identity has been
+ -- established for the sender (e.g., a DN from a
+ -- previously-issued and currently-valid certificate
+ publicKeyMac PKMacValue },
+ -- used if no authenticated GeneralName currently exists for
+ -- the sender; publicKeyMac contains a password-based MAC
+ -- on the DER-encoded value of publicKey
+ publicKey SubjectPublicKeyInfo } -- from CertTemplate
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a ProofOfPossession with type raVerified.
+
+
+ Creates a ProofOfPossession for a signing key.
+
+
+ Creates a ProofOfPossession for key encipherment or agreement.
+ @param type one of TYPE_KEY_ENCIPHERMENT or TYPE_KEY_AGREEMENT
+
+
+
+ ProofOfPossession ::= CHOICE {
+ raVerified [0] NULL,
+ -- used if the RA has already verified that the requester is in
+ -- possession of the private key
+ signature [1] PopoSigningKey,
+ keyEncipherment [2] PopoPrivKey,
+ keyAgreement [3] PopoPrivKey }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ SinglePubInfo ::= SEQUENCE {
+ pubMethod INTEGER {
+ dontCare (0),
+ x500 (1),
+ web (2),
+ ldap (3) },
+ pubLocation GeneralName OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Table of the available named parameters for GOST 3410-2001 / 2012.
+
+
+
+ return the ECDomainParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+
+ Gost28147-89-Parameters ::=
+ SEQUENCE {
+ iv Gost28147-89-IV,
+ encryptionParamSet OBJECT IDENTIFIER
+ }
+
+ Gost28147-89-IV ::= OCTET STRING (SIZE (8))
+
+
+
+ table of the available named parameters for GOST 3410-94.
+
+
+ return the GOST3410ParamSetParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for parameters
+ contained in this structure.
+
+
+ Base class for an application specific object
+
+
+ Return the enclosed object assuming explicit tagging.
+
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ Return the enclosed object assuming implicit tagging.
+
+ @param derTagNo the type tag that should be applied to the object's contents.
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ return a Bit string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Bit string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ @param data the octets making up the bit string.
+ @param padBits the number of extra bits at the end of the string.
+
+
+ Return the octets contained in this BIT STRING, checking that this BIT STRING really
+ does represent an octet aligned string. Only use this method when the standard you are
+ following dictates that the BIT STRING will be octet aligned.
+
+ @return a copy of the octet aligned data.
+
+
+ @return the value of the bit string as an int (truncating if necessary)
+
+
+ Der BMPString object.
+
+
+ return a BMP string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a BMP string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a bool from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a DerBoolean from the passed in bool.
+
+
+ return a Boolean from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Enumerated from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Class representing the DER-type External
+
+
+ Creates a new instance of DerExternal
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param externalData The external data in its encoded form.
+
+
+ Creates a new instance of DerExternal.
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param encoding The encoding to be used for the external data
+ @param externalData The external data
+
+
+ The encoding of the content. Valid values are
+
+ 0 single-ASN1-type
+ 1 OCTET STRING
+ 2 BIT STRING
+
+
+
+ Generalized time object.
+
+
+ return a generalized time from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Generalized Time object from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYYYMMDDHHMMSS[.f]Z, or without the Z
+ for local time, or Z+-HHMM on the end, for difference between local
+ time and UTC time. The fractional second amount f must consist of at
+ least one number with trailing zeroes removed.
+
+ @param time the time string.
+ @exception ArgumentException if string is an illegal format.
+
+
+ base constructor from a local time object
+
+
+ Return the time.
+ @return The time string as it appeared in the encoded object.
+
+
+ return the time - always in the form of
+ YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyyyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+
+ return a Graphic String from the passed in object
+
+ @param obj a DerGraphicString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ return a Graphic String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der IA5String object - this is an ascii string.
+
+
+ return a IA5 string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an IA5 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in an IA5String.
+
+
+ return true if the passed in String can be represented without
+ loss as an IA5String, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Integer from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ in some cases positive values Get crammed into a space,
+ that's not quite big enough...
+
+
+ A Null object.
+
+
+ Der NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
+
+
+ return a Numeric string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Numeric string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation..
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a NumericString.
+
+
+ Return true if the string can be represented as a NumericString ('0'..'9', ' ')
+
+ @param str string to validate.
+ @return true if numeric, fale otherwise.
+
+
+ return an Oid from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an object Identifier from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Return true if this oid is an extension of the passed in branch, stem.
+ @param stem the arc or branch that is a possible parent.
+ @return true if the branch is on the passed in stem, false otherwise.
+
+
+ The octets making up the octet string.
+
+
+ Der PrintableString object.
+
+
+ return a printable string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Printable string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor - this does not validate the string
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a PrintableString.
+
+
+ return true if the passed in String can be represented without
+ loss as a PrintableString, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ A Der encoded set object
+
+
+ create an empty set
+
+
+ @param obj - a single object that makes up the set.
+
+
+ @param v - a vector of objects making up the set.
+
+
+ Der T61String (also the teletex string) - 8-bit characters
+
+
+ return a T61 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an T61 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - with string.
+
+
+ DER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+ Der UniversalString object.
+
+
+ return a Universal string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Universal string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ UTC time object.
+
+
+ return an UTC Time from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTC Time from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYMMDDHHMMSSZ (it used to be that seconds were
+ never encoded. When you're creating one of these objects from scratch, that's
+ what you want to use, otherwise we'll try to deal with whatever Gets read from
+ the input stream... (this is why the input format is different from the GetTime()
+ method output).
+
+ @param time the time string.
+
+
+ base constructor from a DateTime object
+
+
+ return the time as a date based on whatever a 2 digit year will return. For
+ standardised processing use ToAdjustedDateTime().
+
+ @return the resulting date
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time as an adjusted date
+ in the range of 1950 - 2049.
+
+ @return a date in the range of 1950 to 2049.
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time - always in the form of
+ YYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+ Note: In some cases, due to the local date processing, this
+ may lead to unexpected results. If you want to stick the normal
+ convention of 1950 to 2049 use the GetAdjustedTime() method.
+
+
+
+ Return a time string as an adjusted date with a 4 digit year.
+ This goes in the range of 1950 - 2049.
+
+
+
+ Der UTF8String object.
+
+
+ return an UTF8 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTF8 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a Videotex String from the passed in object
+
+ @param obj a DERVideotexString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ return a Videotex String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der VisibleString object.
+
+
+ return a Visible string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Visible string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+
+ RFC 3126: 4.3.1 Certificate Values Attribute Definition
+
+ CertificateValues ::= SEQUENCE OF Certificate
+
+
+
+
+
+ CommitmentTypeIndication ::= SEQUENCE {
+ commitmentTypeId CommitmentTypeIdentifier,
+ commitmentTypeQualifier SEQUENCE SIZE (1..MAX) OF
+ CommitmentTypeQualifier OPTIONAL }
+
+
+
+ Commitment type qualifiers, used in the Commitment-Type-Indication attribute (RFC3126).
+
+
+ CommitmentTypeQualifier ::= SEQUENCE {
+ commitmentTypeIdentifier CommitmentTypeIdentifier,
+ qualifier ANY DEFINED BY commitmentTypeIdentifier OPTIONAL }
+
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param as CommitmentTypeQualifier structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a DER-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+ RFC 3126: 4.2.1 Complete Certificate Refs Attribute Definition
+
+ CompleteCertificateRefs ::= SEQUENCE OF OtherCertID
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CompleteRevocationRefs ::= SEQUENCE OF CrlOcspRef
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlIdentifier ::= SEQUENCE
+ {
+ crlissuer Name,
+ crlIssuedTime UTCTime,
+ crlNumber INTEGER OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CRLListID ::= SEQUENCE
+ {
+ crls SEQUENCE OF CrlValidatedID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlOcspRef ::= SEQUENCE {
+ crlids [0] CRLListID OPTIONAL,
+ ocspids [1] OcspListID OPTIONAL,
+ otherRev [2] OtherRevRefs OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlValidatedID ::= SEQUENCE {
+ crlHash OtherHash,
+ crlIdentifier CrlIdentifier OPTIONAL}
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspIdentifier ::= SEQUENCE {
+ ocspResponderID ResponderID,
+ -- As in OCSP response data
+ producedAt GeneralizedTime
+ -- As in OCSP response data
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspListID ::= SEQUENCE {
+ ocspResponses SEQUENCE OF OcspResponsesID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspResponsesID ::= SEQUENCE {
+ ocspIdentifier OcspIdentifier,
+ ocspRepHash OtherHash OPTIONAL
+ }
+
+
+
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+
+
+
+
+
+ OtherHash ::= CHOICE {
+ sha1Hash OtherHashValue, -- This contains a SHA-1 hash
+ otherHash OtherHashAlgAndValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ Summary description for OtherHashAlgAndValue.
+
+
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OtherHashValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OtherRevRefs ::= SEQUENCE
+ {
+ otherRevRefType OtherRevRefType,
+ otherRevRefs ANY DEFINED BY otherRevRefType
+ }
+
+ OtherRevRefType ::= OBJECT IDENTIFIER
+
+
+
+
+
+ RFC 3126: 4.3.2 Revocation Values Attribute Definition
+
+ OtherRevVals ::= SEQUENCE
+ {
+ otherRevValType OtherRevValType,
+ otherRevVals ANY DEFINED BY otherRevValType
+ }
+
+ OtherRevValType ::= OBJECT IDENTIFIER
+
+
+
+
+
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+
+
+
+
+ RFC 5126: 6.3.4. revocation-values Attribute Definition
+
+ RevocationValues ::= SEQUENCE {
+ crlVals [0] SEQUENCE OF CertificateList OPTIONAL,
+ ocspVals [1] SEQUENCE OF BasicOCSPResponse OPTIONAL,
+ otherRevVals [2] OtherRevVals OPTIONAL
+ }
+
+
+
+
+
+
+ SignaturePolicyId ::= SEQUENCE {
+ sigPolicyIdentifier SigPolicyId,
+ sigPolicyHash SigPolicyHash,
+ sigPolicyQualifiers SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo OPTIONAL
+ }
+
+ SigPolicyId ::= OBJECT IDENTIFIER
+
+ SigPolicyHash ::= OtherHashAlgAndValue
+
+
+
+
+
+
+ SignaturePolicyIdentifier ::= CHOICE {
+ SignaturePolicyId SignaturePolicyId,
+ SignaturePolicyImplied SignaturePolicyImplied
+ }
+
+ SignaturePolicyImplied ::= NULL
+
+
+
+
+
+
+ SignerAttribute ::= SEQUENCE OF CHOICE {
+ claimedAttributes [0] ClaimedAttributes,
+ certifiedAttributes [1] CertifiedAttributes }
+
+ ClaimedAttributes ::= SEQUENCE OF Attribute
+ CertifiedAttributes ::= AttributeCertificate -- as defined in RFC 3281: see clause 4.1.
+
+
+
+ Signer-Location attribute (RFC3126).
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1.. MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+
+
+ SigPolicyQualifierInfo ::= SEQUENCE {
+ sigPolicyQualifierId SigPolicyQualifierId,
+ sigQualifier ANY DEFINED BY sigPolicyQualifierId
+ }
+
+ SigPolicyQualifierId ::= OBJECT IDENTIFIER
+
+
+
+
+ constructor
+
+
+
+ ContentHints ::= SEQUENCE {
+ contentDescription UTF8String (SIZE (1..MAX)) OPTIONAL,
+ contentType ContentType }
+
+
+
+ Create from OCTET STRING whose octets represent the identifier.
+
+
+ Create from byte array representing the identifier.
+
+
+ The definition of ContentIdentifier is
+
+ ContentIdentifier ::= OCTET STRING
+
+ id-aa-contentIdentifier OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 7 }
+
+
+ constructor
+
+
+
+ EssCertID ::= SEQUENCE {
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+
+
+
+ EssCertIDv2 ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier
+ DEFAULT {algorithm id-sha256},
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+ Hash ::= OCTET STRING
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serialNumber CertificateSerialNumber
+ }
+
+
+
+ constructor
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+ OtherHash ::= CHOICE {
+ sha1Hash OCTET STRING,
+ otherHash OtherHashAlgAndValue }
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OCTET STRING }
+
+
+
+
+ constructors
+
+
+ The definition of OtherSigningCertificate is
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-ets-otherSigCert OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 19 }
+
+
+ constructors
+
+
+ The definition of SigningCertificate is
+
+ SigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF EssCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 12 }
+
+
+ The definition of SigningCertificateV2 is
+
+ SigningCertificateV2 ::= SEQUENCE {
+ certs SEQUENCE OF EssCertIDv2,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 47 }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ 1.3.6.1.4.1.11591.15 - ellipticCurve
+
+
+ Marker interface for CHOICE objects - if you implement this in a roll-your-own
+ object, any attempt to tag the object implicitly will convert the tag to an
+ explicit one as the encoding rules require.
+
+ If you use this interface your class should also implement the getInstance
+ pattern which takes a tag object and the tagging mode used.
+
+
+
+ basic interface for Der string objects.
+
+
+ The CscaMasterList object. This object can be wrapped in a
+ CMSSignedData to be published in LDAP.
+
+
+ CscaMasterList ::= SEQUENCE {
+ version CscaMasterListVersion,
+ certList SET OF Certificate }
+
+ CscaMasterListVersion :: INTEGER {v0(0)}
+
+
+
+ The DataGroupHash object.
+
+ DataGroupHash ::= SEQUENCE {
+ dataGroupNumber DataGroupNumber,
+ dataGroupHashValue OCTET STRING }
+
+ DataGroupNumber ::= INTEGER {
+ dataGroup1 (1),
+ dataGroup1 (2),
+ dataGroup1 (3),
+ dataGroup1 (4),
+ dataGroup1 (5),
+ dataGroup1 (6),
+ dataGroup1 (7),
+ dataGroup1 (8),
+ dataGroup1 (9),
+ dataGroup1 (10),
+ dataGroup1 (11),
+ dataGroup1 (12),
+ dataGroup1 (13),
+ dataGroup1 (14),
+ dataGroup1 (15),
+ dataGroup1 (16) }
+
+
+
+
+ The LDSSecurityObject object (V1.8).
+
+ LDSSecurityObject ::= SEQUENCE {
+ version LDSSecurityObjectVersion,
+ hashAlgorithm DigestAlgorithmIdentifier,
+ dataGroupHashValues SEQUENCE SIZE (2..ub-DataGroups) OF DataHashGroup,
+ ldsVersionInfo LDSVersionInfo OPTIONAL
+ -- if present, version MUST be v1 }
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier,
+
+ LDSSecurityObjectVersion :: INTEGER {V0(0)}
+
+
+
+
+ LDSVersionInfo ::= SEQUENCE {
+ ldsVersion PRINTABLE STRING
+ unicodeVersion PRINTABLE STRING
+ }
+
+ @return
+
+
+ The id-isismtt-cp-accredited OID indicates that the certificate is a
+ qualified certificate according to Directive 1999/93/EC of the European
+ Parliament and of the Council of 13 December 1999 on a Community
+ Framework for Electronic Signatures, which additionally conforms the
+ special requirements of the SigG and has been issued by an accredited CA.
+
+
+ Certificate extensionDate of certificate generation
+
+
+ DateOfCertGenSyntax ::= GeneralizedTime
+
+
+
+ Attribute to indicate that the certificate holder may sign in the name of
+ a third person. May also be used as extension in a certificate.
+
+
+ Attribute to indicate admissions to certain professions. May be used as
+ attribute in attribute certificate or as extension in a certificate
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST
+ be used in new certificates in place of the extension/attribute
+ MonetaryLimit since January 1, 2004. For the sake of backward
+ compatibility with certificates already in use, SigG conforming
+ components MUST support MonetaryLimit (as well as QcEuLimitValue).
+
+
+ A declaration of majority. May be used as attribute in attribute
+ certificate or as extension in a certificate
+
+
+
+ Serial number of the smart card containing the corresponding private key
+
+
+ ICCSNSyntax ::= OCTET STRING (SIZE(8..20))
+
+
+
+
+ Reference for a file of a smartcard that stores the public key of this
+ certificate and that is used as �security anchor�.
+
+
+ PKReferenceSyntax ::= OCTET STRING (SIZE(20))
+
+
+
+ Some other restriction regarding the usage of this certificate. May be
+ used as attribute in attribute certificate or as extension in a
+ certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Restriction
+
+
+
+ (Single)Request extension: Clients may include this extension in a
+ (single) Request to request the responder to send the certificate in the
+ response message along with the status information. Besides the LDAP
+ service, this extension provides another mechanism for the distribution
+ of certificates, which MAY optionally be provided by certificate
+ repositories.
+
+
+ RetrieveIfAllowed ::= BOOLEAN
+
+
+
+ SingleOCSPResponse extension: The certificate requested by the client by
+ inserting the RetrieveIfAllowed extension in the request, will be
+ returned in this extension.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate
+
+
+ Base ObjectIdentifier for naming authorities
+
+
+ SingleOCSPResponse extension: Date, when certificate has been published
+ in the directory and status information has become available. Currently,
+ accrediting authorities enforce that SigG-conforming OCSP servers include
+ this extension in the responses.
+
+
+ CertInDirSince ::= GeneralizedTime
+
+
+
+ Hash of a certificate in OCSP.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.CertHash
+
+
+
+ NameAtBirth ::= DirectoryString(SIZE(1..64)
+
+
+ Used in
+ {@link Org.BouncyCastle.Asn1.X509.SubjectDirectoryAttributes SubjectDirectoryAttributes}
+
+
+ Some other information of non-restrictive nature regarding the usage of
+ this certificate. May be used as attribute in atribute certificate or as
+ extension in a certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdditionalInformationSyntax
+
+
+ Indicates that an attribute certificate exists, which limits the
+ usability of this public key certificate. Whenever verifying a signature
+ with the help of this certificate, the content of the corresponding
+ attribute certificate should be concerned. This extension MUST be
+ included in a PKC, if a corresponding attribute certificate (having the
+ PKC as base certificate) contains some attribute that restricts the
+ usability of the PKC too. Attribute certificates with restricting content
+ MUST always be included in the signed document.
+
+
+ LiabilityLimitationFlagSyntax ::= BOOLEAN
+
+
+
+ ISIS-MTT PROFILE: The responder may include this extension in a response to
+ send the hash of the requested certificate to the responder. This hash is
+ cryptographically bound to the certificate and serves as evidence that the
+ certificate is known to the responder (i.e. it has been issued and is present
+ in the directory). Hence, this extension is a means to provide a positive
+ statement of availability as described in T8.[8]. As explained in T13.[1],
+ clients may rely on this information to be able to validate signatures after
+ the expiry of the corresponding certificate. Hence, clients MUST support this
+ extension. If a positive statement of availability is to be delivered, this
+ extension syntax and OID MUST be used.
+
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertHash:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param hashAlgorithm The hash algorithm identifier.
+ @param certificateHash The hash of the whole DER encoding of the certificate.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ ISIS-MTT-Optional: The certificate requested by the client by inserting the
+ RetrieveIfAllowed extension in the request, will be returned in this
+ extension.
+
+ ISIS-MTT-SigG: The signature act allows publishing certificates only then,
+ when the certificate owner gives his isExplicit permission. Accordingly, there
+ may be �nondownloadable� certificates, about which the responder must provide
+ status information, but MUST NOT include them in the response. Clients may
+ get therefore the following three kind of answers on a single request
+ including the RetrieveIfAllowed extension:
+
+ - a) the responder supports the extension and is allowed to publish the
+ certificate: RequestedCertificate returned including the requested
+ certificate
+ - b) the responder supports the extension but is NOT allowed to publish
+ the certificate: RequestedCertificate returned including an empty OCTET
+ STRING
+ - c) the responder does not support the extension: RequestedCertificate is
+ not included in the response
+
+ Clients requesting RetrieveIfAllowed MUST be able to handle these cases. If
+ any of the OCTET STRING options is used, it MUST contain the DER encoding of
+ the requested certificate.
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+
+ Constructor from a given details.
+
+ Only one parameter can be given. All other must be null.
+
+ @param certificate Given as Certificate
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ Some other information of non-restrictive nature regarding the usage of this
+ certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+
+ Constructor from a given details.
+
+ @param information The describtion of the information.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @return an Asn1Object
+
+
+ An Admissions structure.
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ Parameter professionInfos is mandatory.
+
+ @param admissionAuthority The admission authority.
+ @param namingAuthority The naming authority.
+ @param professionInfos The profession infos.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate admissions to certain professions.
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+
+ ISIS-MTT PROFILE: The relatively complex structure of AdmissionSyntax
+ supports the following concepts and requirements:
+
+ - External institutions (e.g. professional associations, chambers, unions,
+ administrative bodies, companies, etc.), which are responsible for granting
+ and verifying professional admissions, are indicated by means of the data
+ field admissionAuthority. An admission authority is indicated by a
+ GeneralName object. Here an X.501 directory name (distinguished name) can be
+ indicated in the field directoryName, a URL address can be indicated in the
+ field uniformResourceIdentifier, and an object identifier can be indicated in
+ the field registeredId.
+ - The names of authorities which are responsible for the administration of
+ title registers are indicated in the data field namingAuthority. The name of
+ the authority can be identified by an object identifier in the field
+ namingAuthorityId, by means of a text string in the field
+ namingAuthorityText, by means of a URL address in the field
+ namingAuthorityUrl, or by a combination of them. For example, the text string
+ can contain the name of the authority, the country and the name of the title
+ register. The URL-option refers to a web page which contains lists with
+ officially registered professions (text and possibly OID) as well as
+ further information on these professions. Object identifiers for the
+ component namingAuthorityId are grouped under the OID-branch
+ id-isis-at-namingAuthorities and must be applied for.
+ - See http://www.teletrust.de/anwend.asp?Id=30200&Sprache=E_&HomePG=0
+ for an application form and http://www.teletrust.de/links.asp?id=30220,11
+ for an overview of registered naming authorities.
+ - By means of the data type ProfessionInfo certain professions,
+ specializations, disciplines, fields of activity, etc. are identified. A
+ profession is represented by one or more text strings, resp. profession OIDs
+ in the fields professionItems and professionOIDs and by a registration number
+ in the field registrationNumber. An indication in text form must always be
+ present, whereas the other indications are optional. The component
+ addProfessionInfo may contain additional applicationspecific information in
+ DER-encoded form.
+
+
+ By means of different namingAuthority-OIDs or profession OIDs hierarchies of
+ professions, specializations, disciplines, fields of activity, etc. can be
+ expressed. The issuing admission authority should always be indicated (field
+ admissionAuthority), whenever a registration number is presented. Still,
+ information on admissions can be given without indicating an admission or a
+ naming authority by the exclusive use of the component professionItems. In
+ this case the certification authority is responsible for the verification of
+ the admission information.
+
+
+
+ This attribute is single-valued. Still, several admissions can be captured in
+ the sequence structure of the component contentsOfAdmissions of
+ AdmissionSyntax or in the component professionInfos of Admissions. The
+ component admissionAuthority of AdmissionSyntax serves as default value for
+ the component admissionAuthority of Admissions. Within the latter component
+ the default value can be overwritten, in case that another authority is
+ responsible. The component namingAuthority of Admissions serves as a default
+ value for the component namingAuthority of ProfessionInfo. Within the latter
+ component the default value can be overwritten, in case that another naming
+ authority needs to be recorded.
+
+ The length of the string objects is limited to 128 characters. It is
+ recommended to indicate a namingAuthorityURL in all issued attribute
+ certificates. If a namingAuthorityURL is indicated, the field professionItems
+ of ProfessionInfo should contain only registered titles. If the field
+ professionOIDs exists, it has to contain the OIDs of the professions listed
+ in professionItems in the same order. In general, the field professionInfos
+ should contain only one entry, unless the admissions that are to be listed
+ are logically connected (e.g. they have been issued under the same admission
+ number).
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Admissions
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ @param admissionAuthority The admission authority.
+ @param contentsOfAdmissions The admissions.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the admissionAuthority if present, null otherwise.
+
+
+ @return Returns the contentsOfAdmissions.
+
+
+ A declaration of majority.
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ fullAgeAtCountry indicates the majority of the owner with respect to the laws
+ of a specific country.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ @return an Asn1Object
+
+
+ @return notYoungerThan if that's what we are, -1 otherwise
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST be
+ used in new certificates in place of the extension/attribute MonetaryLimit
+ since January 1, 2004. For the sake of backward compatibility with
+ certificates already in use, components SHOULD support MonetaryLimit (as well
+ as QcEuLimitValue).
+
+ Indicates a monetary limit within which the certificate holder is authorized
+ to act. (This value DOES NOT express a limit on the liability of the
+ certification authority).
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ currency must be the ISO code.
+
+ value = amount�10*exponent
+
+
+ Constructor from a given details.
+
+
+ value = amount�10^exponent
+
+ @param currency The currency. Must be the ISO code.
+ @param amount The amount
+ @param exponent The exponent
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ @return an Asn1Object
+
+
+ Names of authorities which are responsible for the administration of title
+ registers.
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+
+ Profession OIDs should always be defined under the OID branch of the
+ responsible naming authority. At the time of this writing, the work group
+ �Recht, Wirtschaft, Steuern� (�Law, Economy, Taxes�) is registered as the
+ first naming authority under the OID id-isismtt-at-namingAuthorities.
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ @return Returns the namingAuthorityID.
+
+
+ @return Returns the namingAuthorityText.
+
+
+ @return Returns the namingAuthorityUrl.
+
+
+ Constructor from given details.
+
+ All parameters can be combined.
+
+ @param namingAuthorityID ObjectIdentifier for naming authority.
+ @param namingAuthorityUrl URL for naming authority.
+ @param namingAuthorityText Textual representation of naming authority.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate that the certificate holder may sign in the name of a
+ third person.
+
+ ISIS-MTT PROFILE: The corresponding ProcurationSyntax contains either the
+ name of the person who is represented (subcomponent thirdPerson) or a
+ reference to his/her base certificate (in the component signingFor,
+ subcomponent certRef), furthermore the optional components country and
+ typeSubstitution to indicate the country whose laws apply, and respectively
+ the type of procuration (e.g. manager, procuration, custody).
+
+
+ ISIS-MTT PROFILE: The GeneralName MUST be of type directoryName and MAY only
+ contain: - RFC3039 attributes, except pseudonym (countryName, commonName,
+ surname, givenName, serialNumber, organizationName, organizationalUnitName,
+ stateOrProvincename, localityName, postalAddress) and - SubjectDirectoryName
+ attributes (title, dateOfBirth, placeOfBirth, gender, countryOfCitizenship,
+ countryOfResidence and NameAtBirth).
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param certRef Reference to certificate of the person who is represented.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param thirdPerson The GeneralName of the person who is represented.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @return an Asn1Object
+
+
+ Professions, specializations, disciplines, fields of activity, etc.
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+ Rechtsanw�ltin
+
+
+ Rechtsanwalt
+
+
+ Rechtsbeistand
+
+
+ Steuerberaterin
+
+
+ Steuerberater
+
+
+ Steuerbevollm�chtigte
+
+
+ Steuerbevollm�chtigter
+
+
+ Notarin
+
+
+ Notar
+
+
+ Notarvertreterin
+
+
+ Notarvertreter
+
+
+ Notariatsverwalterin
+
+
+ Notariatsverwalter
+
+
+ Wirtschaftspr�ferin
+
+
+ Wirtschaftspr�fer
+
+
+ Vereidigte Buchpr�ferin
+
+
+ Vereidigter Buchpr�fer
+
+
+ Patentanw�ltin
+
+
+ Patentanwalt
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ professionItems is mandatory, all other parameters are
+ optional.
+
+ @param namingAuthority The naming authority.
+ @param professionItems Directory strings of the profession.
+ @param professionOids DERObjectIdentfier objects for the
+ profession.
+ @param registrationNumber Registration number.
+ @param addProfessionInfo Additional infos in encoded form.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the addProfessionInfo.
+
+
+ @return Returns the namingAuthority.
+
+
+ @return Returns the professionItems.
+
+
+ @return Returns the professionOids.
+
+
+ @return Returns the registrationNumber.
+
+
+ Some other restriction regarding the usage of this certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ Constructor from DirectoryString.
+
+ The DirectoryString is of type RestrictionSyntax:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @param restriction A IAsn1String.
+
+
+ Constructor from a given details.
+
+ @param restriction The description of the restriction.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ @return an Asn1Object
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ cast5CBCParameters ::= Sequence {
+ iv OCTET STRING DEFAULT 0,
+ -- Initialization vector
+ keyLength Integer
+ -- Key length, in bits
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IDEA-CBCPar ::= Sequence {
+ iv OCTET STRING OPTIONAL -- exactly 8 octets
+ }
+
+
+
+ The NetscapeCertType object.
+
+ NetscapeCertType ::= BIT STRING {
+ SSLClient (0),
+ SSLServer (1),
+ S/MIME (2),
+ Object Signing (3),
+ Reserved (4),
+ SSL CA (5),
+ S/MIME CA (6),
+ Object Signing CA (7) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509NetscapeCertType.sslCA | X509NetscapeCertType.smimeCA)
+
+
+ This is designed to parse
+ the PublicKeyAndChallenge created by the KEYGEN tag included by
+ Mozilla based browsers.
+
+ PublicKeyAndChallenge ::= SEQUENCE {
+ spki SubjectPublicKeyInfo,
+ challenge IA5STRING
+ }
+
+
+
+
+ Utility class for fetching curves using their NIST names as published in FIPS-PUB 186-3
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ From RFC 3657
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicOcspResponse ::= Sequence {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertID ::= Sequence {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ create a CertStatus object with a tag of zero.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertStatus ::= CHOICE {
+ good [0] IMPLICIT Null,
+ revoked [1] IMPLICIT RevokedInfo,
+ unknown [2] IMPLICIT UnknownInfo }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlID ::= Sequence {
+ crlUrl [0] EXPLICIT IA5String OPTIONAL,
+ crlNum [1] EXPLICIT Integer OPTIONAL,
+ crlTime [2] EXPLICIT GeneralizedTime OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspRequest ::= Sequence {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspResponse ::= Sequence {
+ responseStatus OcspResponseStatus,
+ responseBytes [0] EXPLICIT ResponseBytes OPTIONAL }
+
+
+
+ The OcspResponseStatus enumeration.
+
+ OcspResponseStatus ::= Enumerated {
+ successful (0), --Response has valid confirmations
+ malformedRequest (1), --Illegal confirmation request
+ internalError (2), --Internal error in issuer
+ tryLater (3), --Try again later
+ --(4) is not used
+ sigRequired (5), --Must sign the request
+ unauthorized (6) --Request unauthorized
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Request ::= Sequence {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponderID ::= CHOICE {
+ byName [1] Name,
+ byKey [2] KeyHash }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseBytes ::= Sequence {
+ responseType OBJECT IDENTIFIER,
+ response OCTET STRING }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseData ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ responderID ResponderID,
+ producedAt GeneralizedTime,
+ responses Sequence OF SingleResponse,
+ responseExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RevokedInfo ::= Sequence {
+ revocationTime GeneralizedTime,
+ revocationReason [0] EXPLICIT CRLReason OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ServiceLocator ::= Sequence {
+ issuer Name,
+ locator AuthorityInfoAccessSyntax OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Signature ::= Sequence {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL}
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SingleResponse ::= Sequence {
+ certID CertID,
+ certStatus CertStatus,
+ thisUpdate GeneralizedTime,
+ nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL,
+ singleExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ TBSRequest ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList Sequence OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+
+
+ class for breaking up an Oid into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Pkcs10 Certfication request object.
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+
+
+ Pkcs10 CertificationRequestInfo object.
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ The EncryptedData object.
+
+ EncryptedData ::= Sequence {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo
+ }
+
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+ EncryptedContent ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedPrivateKeyInfo ::= Sequence {
+ encryptionAlgorithm AlgorithmIdentifier {{KeyEncryptionAlgorithms}},
+ encryptedData EncryptedData
+ }
+
+ EncryptedData ::= OCTET STRING
+
+ KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= {
+ ... -- For local profiles
+ }
+
+
+
+
+ MacData ::= SEQUENCE {
+ mac DigestInfo,
+ macSalt OCTET STRING,
+ iterations INTEGER DEFAULT 1
+ -- Note: The default is for historic reasons and its use is deprecated. A
+ -- higher value, like 1024 is recommended.
+
+ @return the basic DERObject construction.
+
+
+ the infamous Pfx from Pkcs12
+
+
+ PKCS#1: 1.2.840.113549.1.1.15
+
+
+ PKCS#1: 1.2.840.113549.1.1.16
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.6.2.37 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.6.2.38 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.54 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.43 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.40 RFC7030
+
+
+ write out an RSA private key with its associated information
+ as described in Pkcs8.
+
+ PrivateKeyInfo ::= Sequence {
+ version Version,
+ privateKeyAlgorithm AlgorithmIdentifier {{PrivateKeyAlgorithms}},
+ privateKey PrivateKey,
+ attributes [0] IMPLICIT Attributes OPTIONAL
+ }
+ Version ::= Integer {v1(0)} (v1,...)
+
+ PrivateKey ::= OCTET STRING
+
+ Attributes ::= Set OF Attr
+
+
+
+ The default version
+
+
+
+ RSAES-OAEP-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ pSourceAlgorithm [2] PKCS1PSourceAlgorithms DEFAULT pSpecifiedEmpty
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+ PKCS1PSourceAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-pSpecified PARAMETERS OCTET STRING },
+ ... -- Allows for future expansion --
+ }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RsaPrivateKey ::= Sequence {
+ version Version,
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ privateExponent Integer, -- d
+ prime1 Integer, -- p
+ prime2 Integer, -- q
+ exponent1 Integer, -- d mod (p-1)
+ exponent2 Integer, -- d mod (q-1)
+ coefficient Integer -- (inverse of q) mod p
+ }
+
+ Version ::= Integer
+
+ This routine is written to output Pkcs1 version 0, private keys.
+
+
+ The default version
+
+
+
+ RSASSA-PSS-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ saltLength [2] INTEGER DEFAULT 20,
+ trailerField [3] TrailerField DEFAULT trailerFieldBC
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+
+ TrailerField ::= INTEGER { trailerFieldBC(1) }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ a Pkcs#7 signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates
+ [0] IMPLICIT ExtendedCertificatesAndCertificates
+ OPTIONAL,
+ crls
+ [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos }
+
+
+
+ a Pkcs#7 signer info object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ the elliptic curve private key object from SEC 1
+
+
+ ECPrivateKey ::= SEQUENCE {
+ version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
+ privateKey OCTET STRING,
+ parameters [0] Parameters OPTIONAL,
+ publicKey [1] BIT STRING OPTIONAL }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ EllipticCurve OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0)
+ }
+
+
+ Handler class for dealing with S/MIME Capabilities
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ returns an ArrayList with 0 or more objects of all the capabilities
+ matching the passed in capability Oid. If the Oid passed is null the
+ entire set is returned.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapabilities ::= Sequence OF SMIMECapability
+
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapability ::= Sequence {
+ capabilityID OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY capabilityID OPTIONAL
+ }
+
+
+
+ Handler for creating a vector S/MIME Capabilities
+
+
+ The SmimeEncryptionKeyPreference object.
+
+ SmimeEncryptionKeyPreference ::= CHOICE {
+ issuerAndSerialNumber [0] IssuerAndSerialNumber,
+ receipentKeyId [1] RecipientKeyIdentifier,
+ subjectAltKeyIdentifier [2] SubjectKeyIdentifier
+ }
+
+
+
+ @param sKeyId the subjectKeyIdentifier value (normally the X.509 one)
+
+
+ elliptic curves defined in "ECC Brainpool Standard Curves and Curve Generation"
+ http://www.ecc-brainpool.org/download/draft_pkix_additional_ecc_dp.txt
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+
+ Accuracy ::= SEQUENCE {
+ seconds INTEGER OPTIONAL,
+ millis [0] INTEGER (1..999) OPTIONAL,
+ micros [1] INTEGER (1..999) OPTIONAL
+ }
+
+
+
+ @param o
+ @return a MessageImprint object.
+
+
+
+ MessageImprint ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashedMessage OCTET STRING }
+
+
+
+
+ TimeStampReq ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ messageImprint MessageImprint,
+ --a hash algorithm OID and the hash value of the data to be
+ --time-stamped
+ reqPolicy TSAPolicyId OPTIONAL,
+ nonce INTEGER OPTIONAL,
+ certReq BOOLEAN DEFAULT FALSE,
+ extensions [0] IMPLICIT Extensions OPTIONAL
+ }
+
+
+
+
+ TimeStampResp ::= SEQUENCE {
+ status PkiStatusInfo,
+ timeStampToken TimeStampToken OPTIONAL }
+
+
+
+
+
+ TstInfo ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ policy TSAPolicyId,
+ messageImprint MessageImprint,
+ -- MUST have the same value as the similar field in
+ -- TimeStampReq
+ serialNumber INTEGER,
+ -- Time-Stamping users MUST be ready to accommodate integers
+ -- up to 160 bits.
+ genTime GeneralizedTime,
+ accuracy Accuracy OPTIONAL,
+ ordering BOOLEAN DEFAULT FALSE,
+ nonce INTEGER OPTIONAL,
+ -- MUST be present if the similar field was present
+ -- in TimeStampReq. In that case it MUST have the same value.
+ tsa [0] GeneralName OPTIONAL,
+ extensions [1] IMPLICIT Extensions OPTIONAL }
+
+
+
+
+
+ Base OID: 1.2.804.2.1.1.1
+
+
+ DSTU4145 Little Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1
+
+
+ DSTU4145 Big Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1.1
+
+
+ DSTU7564 256-bit digest presentation.
+
+
+ DSTU7564 384-bit digest presentation.
+
+
+ DSTU7564 512-bit digest presentation.
+
+
+ DSTU7564 256-bit mac presentation.
+
+
+ DSTU7564 384-bit mac presentation.
+
+
+ DSTU7564 512-bit mac presentation.
+
+
+ DSTU7624 in ECB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 512 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 128 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 256 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 512 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 512 bit block/key presentation
+
+
+ dump a Der object as a formatted string with indentation
+
+ @param obj the Asn1Object to be dumped out.
+
+
+ dump out a DER object as a formatted string, in non-verbose mode
+
+ @param obj the Asn1Encodable to be dumped out.
+ @return the resulting string.
+
+
+ Dump out the object as a string
+
+ @param obj the Asn1Encodable to be dumped out.
+ @param verbose if true, dump out the contents of octet and bit strings.
+ @return the resulting string.
+
+
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+ The AccessDescription object.
+
+ AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+
+
+ create an AccessDescription with the oid and location provided.
+
+
+
+ @return the access method.
+
+
+
+ @return the access location
+
+
+
+ Return the OID in the Algorithm entry of this identifier.
+
+
+
+
+ Return the parameters structure in the Parameters entry of this identifier.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AlgorithmIdentifier ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+
+
+
+
+ Don't use this one if you are trying to be RFC 3281 compliant.
+ Use it for v1 attribute certificates only.
+
+ Our GeneralNames structure
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertValidityPeriod ::= Sequence {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ @param obj
+ @return
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificate ::= Sequence {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= Integer { v2(1) }
+
+
+
+ The AuthorityInformationAccess object.
+
+ id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+ AuthorityInfoAccessSyntax ::=
+ Sequence SIZE (1..MAX) OF AccessDescription
+ AccessDescription ::= Sequence {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+ id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+ id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+
+
+
+ create an AuthorityInformationAccess with the oid and location provided.
+
+
+ The AuthorityKeyIdentifier object.
+
+ id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+ AuthorityKeyIdentifier ::= Sequence {
+ keyIdentifier [0] IMPLICIT KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] IMPLICIT GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] IMPLICIT CertificateSerialNumber OPTIONAL }
+
+ KeyIdentifier ::= OCTET STRING
+
+
+
+
+ *
+ * Calulates the keyidentifier using a SHA1 hash over the BIT STRING
+ * from SubjectPublicKeyInfo as defined in RFC2459.
+ *
+ * Example of making a AuthorityKeyIdentifier:
+ *
+ * SubjectPublicKeyInfo apki = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(
+ * publicKey.getEncoded()).readObject());
+ * AuthorityKeyIdentifier aki = new AuthorityKeyIdentifier(apki);
+ *
+ *
+ *
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided as well.
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided.
+
+
+ create an AuthorityKeyIdentifier with a precomputed key identifier
+
+
+ create an AuthorityKeyIdentifier with a precomupted key identifier
+ and the GeneralNames tag and the serial number provided as well.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ create a cA=true object for the given path length constraint.
+
+ @param pathLenConstraint
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicConstraints := Sequence {
+ cA Boolean DEFAULT FALSE,
+ pathLenConstraint Integer (0..MAX) OPTIONAL
+ }
+
+
+
+ PKIX RFC-2459
+
+ The X.509 v2 CRL syntax is as follows. For signature calculation,
+ the data that is to be signed is ASN.1 Der encoded.
+
+
+ CertificateList ::= Sequence {
+ tbsCertList TbsCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING }
+
+
+
+ This class helps to support crossCerfificatePairs in a LDAP directory
+ according RFC 2587
+
+
+ crossCertificatePairATTRIBUTE::={
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID joint-iso-ccitt(2) ds(5) attributeType(4) crossCertificatePair(40)}
+
+
+ The forward elements of the crossCertificatePair attribute of a
+ CA's directory entry shall be used to store all, except self-issued
+ certificates issued to this CA. Optionally, the reverse elements of the
+ crossCertificatePair attribute, of a CA's directory entry may contain a
+ subset of certificates issued by this CA to other CAs. When both the forward
+ and the reverse elements are present in a single attribute value, issuer name
+ in one certificate shall match the subject name in the other and vice versa,
+ and the subject public key in one certificate shall be capable of verifying
+ the digital signature on the other certificate and vice versa.
+
+ When a reverse element is present, the forward element value and the reverse
+ element value need not be stored in the same attribute value; in other words,
+ they can be stored in either a single attribute value or two attribute
+ values.
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertificatePair:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param forward Certificates issued to this CA.
+ @param reverse Certificates issued by this CA to other CAs.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @return a DERObject
+
+
+ @return Returns the forward.
+
+
+ @return Returns the reverse.
+
+
+ Construct a CertificatePolicies object containing one PolicyInformation.
+
+ @param name the name to be contained.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation
+
+
+
+ CertPolicyId, used in the CertificatePolicies and PolicyMappings
+ X509V3 Extensions.
+
+
+ CertPolicyId ::= OBJECT IDENTIFIER
+
+
+
+ Return the distribution points making up the sequence.
+
+ @return DistributionPoint[]
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlDistPoint ::= Sequence SIZE {1..MAX} OF DistributionPoint
+
+
+
+ The CRLNumber object.
+
+ CRLNumber::= Integer(0..MAX)
+
+
+
+ The CRLReason enumeration.
+
+ CRLReason ::= Enumerated {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10)
+ }
+
+
+
+ The DigestInfo object.
+
+ DigestInfo::=Sequence{
+ digestAlgorithm AlgorithmIdentifier,
+ digest OCTET STRING }
+
+
+
+ DisplayText class, used in
+ CertificatePolicies X509 V3 extensions (in policy qualifiers).
+
+ It stores a string in a chosen encoding.
+
+ DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Constant corresponding to ia5String encoding.
+
+
+
+ Constant corresponding to bmpString encoding.
+
+
+
+ Constant corresponding to utf8String encoding.
+
+
+
+ Constant corresponding to visibleString encoding.
+
+
+
+ Describe constant DisplayTextMaximumSize here.
+
+
+
+ Creates a new DisplayText instance.
+
+ @param type the desired encoding type for the text.
+ @param text the text to store. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+
+ @param text the text to encapsulate. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+ Useful when reading back a DisplayText class
+ from it's Asn1Encodable form.
+
+ @param contents an Asn1Encodable instance.
+
+
+ Returns the stored string object.
+
+ @return the stored text as a string.
+
+
+ The DistributionPoint object.
+
+ DistributionPoint ::= Sequence {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+ }
+
+
+
+ The DistributionPointName object.
+
+ DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RDN
+ }
+
+
+
+ The extendedKeyUsage object.
+
+ extendedKeyUsage ::= Sequence SIZE (1..MAX) OF KeyPurposeId
+
+
+
+ Returns all extended key usages.
+ The returned ArrayList contains DerObjectIdentifier instances.
+ @return An ArrayList with all key purposes.
+
+
+ The GeneralName object.
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+ OtherName ::= Sequence {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+ EDIPartyName ::= Sequence {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+
+
+ When the subjectAltName extension contains an Internet mail address,
+ the address MUST be included as an rfc822Name. The format of an
+ rfc822Name is an "addr-spec" as defined in RFC 822 [RFC 822].
+
+ When the subjectAltName extension contains a domain name service
+ label, the domain name MUST be stored in the dNSName (an IA5String).
+ The name MUST be in the "preferred name syntax," as specified by RFC
+ 1034 [RFC 1034].
+
+ When the subjectAltName extension contains a URI, the name MUST be
+ stored in the uniformResourceIdentifier (an IA5String). The name MUST
+ be a non-relative URL, and MUST follow the URL syntax and encoding
+ rules specified in [RFC 1738]. The name must include both a scheme
+ (e.g., "http" or "ftp") and a scheme-specific-part. The scheme-
+ specific-part must include a fully qualified domain name or IP
+ address as the host.
+
+ When the subjectAltName extension contains a iPAddress, the address
+ MUST be stored in the octet string in "network byte order," as
+ specified in RFC 791 [RFC 791]. The least significant bit (LSB) of
+ each octet is the LSB of the corresponding byte in the network
+ address. For IP Version 4, as specified in RFC 791, the octet string
+ MUST contain exactly four octets. For IP Version 6, as specified in
+ RFC 1883, the octet string MUST contain exactly sixteen octets [RFC
+ 1883].
+
+
+ Create a GeneralName for the given tag from the passed in string.
+
+ This constructor can handle:
+
+ - rfc822Name
+ - iPAddress
+ - directoryName
+ - dNSName
+ - uniformResourceIdentifier
+ - registeredID
+
+ For x400Address, otherName and ediPartyName there is no common string
+ format defined.
+
+ Note: A directory name can be encoded in different ways into a byte
+ representation. Be aware of this if the byte representation is used for
+ comparing results.
+
+
+ @param tag tag number
+ @param name string representation of name
+ @throws ArgumentException if the string encoding is not correct or
+ not supported.
+
+
+ Construct a GeneralNames object containing one GeneralName.
+ The name to be contained.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ GeneralNames ::= Sequence SIZE {1..MAX} OF GeneralName
+
+
+
+ Class for containing a restriction object subtrees in NameConstraints. See
+ RFC 3280.
+
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.NameConstraints
+
+
+
+ Constructor from a given details.
+
+ According RFC 3280, the minimum and maximum fields are not used with any
+ name forms, thus minimum MUST be zero, and maximum MUST be absent.
+
+ If minimum is null, zero is assumed, if
+ maximum is null, maximum is absent.
+
+ @param baseName
+ A restriction.
+ @param minimum
+ Minimum
+
+ @param maximum
+ Maximum
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @return a DERObject
+
+
+ The Holder object.
+
+ For an v2 attribute certificate this is:
+
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ For an v1 attribute certificate this is:
+
+
+ subject CHOICE {
+ baseCertificateID [0] IssuerSerial,
+ -- associated with a Public Key Certificate
+ subjectName [1] GeneralNames },
+ -- associated with a name
+
+
+
+
+ Constructor for a holder for an v1 attribute certificate.
+
+ @param tagObj The ASN.1 tagged holder object.
+
+
+ Constructor for a holder for an v2 attribute certificate. *
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructs a holder from a IssuerSerial.
+ @param baseCertificateID The IssuerSerial.
+ @param version The version of the attribute certificate.
+
+
+ Returns 1 for v2 attribute certificates or 0 for v1 attribute
+ certificates.
+ @return The version of the attribute certificate.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+ @param version The version of the attribute certificate.
+
+
+ Constructs a holder from an object digest info.
+
+ @param objectDigestInfo The object digest info object.
+
+
+ Returns the entityName for an v2 attribute certificate or the subjectName
+ for an v1 attribute certificate.
+
+ @return The entityname or subjectname.
+
+
+ The Holder object.
+
+ Holder ::= Sequence {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ Implementation of IetfAttrSyntax as specified by RFC3281.
+
+
+
+
+
+
+
+
+ IetfAttrSyntax ::= Sequence {
+ policyAuthority [0] GeneralNames OPTIONAL,
+ values Sequence OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IssuerSerial ::= Sequence {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUid UniqueIdentifier OPTIONAL
+ }
+
+
+
+
+ IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+
+
+ Constructor from given details.
+
+ @param distributionPoint
+ May contain an URI as pointer to most current CRL.
+ @param onlyContainsUserCerts Covers revocation information for end certificates.
+ @param onlyContainsCACerts Covers revocation information for CA certificates.
+
+ @param onlySomeReasons
+ Which revocation reasons does this point cover.
+ @param indirectCRL
+ If true then the CRL contains revocation
+ information about certificates ssued by other CAs.
+ @param onlyContainsAttributeCerts Covers revocation information for attribute certificates.
+
+
+ Constructor from Asn1Sequence
+
+
+ @return Returns the distributionPoint.
+
+
+ @return Returns the onlySomeReasons.
+
+
+ The KeyPurposeID object.
+
+ KeyPurposeID ::= OBJECT IDENTIFIER
+
+
+
+ The KeyUsage object.
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (KeyUsage.keyEncipherment | KeyUsage.dataEncipherment)
+
+
+ Constructor from a given details.
+
+ permitted and excluded are Vectors of GeneralSubtree objects.
+
+ @param permitted Permitted subtrees
+ @param excluded Excluded subtrees
+
+
+ NoticeReference class, used in
+ CertificatePolicies X509 V3 extensions
+ (in policy qualifiers).
+
+
+ NoticeReference ::= Sequence {
+ organization DisplayText,
+ noticeNumbers Sequence OF Integer }
+
+
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param numbers a Vector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization displayText
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+ Useful for reconstructing a NoticeReference
+ instance from its encodable/encoded form.
+
+ @param as an Asn1Sequence value obtained from either
+ calling @{link ToAsn1Object()} for a NoticeReference
+ instance or from parsing it from a Der-encoded stream.
+
+
+ Describe ToAsn1Object method here.
+
+ @return a Asn1Object value
+
+
+ ObjectDigestInfo ASN.1 structure used in v2 attribute certificates.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+
+ The public key is hashed.
+
+
+ The public key certificate is hashed.
+
+
+ An other object is hashed.
+
+
+ Constructor from given details.
+
+ If digestedObjectType is not {@link #publicKeyCert} or
+ {@link #publicKey} otherObjectTypeID must be given,
+ otherwise it is ignored.
+
+ @param digestedObjectType The digest object type.
+ @param otherObjectTypeID The object type ID for
+ otherObjectDigest.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param objectDigest The hash value.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+ PolicyMappings V3 extension, described in RFC3280.
+
+ PolicyMappings ::= Sequence SIZE (1..MAX) OF Sequence {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+
+ @see RFC 3280, section 4.2.1.6
+
+
+ Creates a new PolicyMappings instance.
+
+ @param seq an Asn1Sequence constructed as specified
+ in RFC 3280
+
+
+ Creates a new PolicyMappings instance.
+
+ @param mappings a HashMap value that maps
+ string oids
+ to other string oids.
+
+
+ PolicyQualifierId, used in the CertificatePolicies
+ X509V3 extension.
+
+
+ id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+
+
+ Policy qualifiers, used in the X509V3 CertificatePolicies
+ extension.
+
+
+ PolicyQualifierInfo ::= Sequence {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param policyQualifierId a PolicyQualifierId value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new PolicyQualifierInfo containing a
+ cPSuri qualifier.
+
+ @param cps the CPS (certification practice statement) uri as a
+ string.
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param as PolicyQualifierInfo X509 structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a Der-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+
+ PrivateKeyUsagePeriod ::= SEQUENCE
+ {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+
+
+
+
+ The BiometricData object.
+
+ BiometricData ::= SEQUENCE {
+ typeOfBiometricData TypeOfBiometricData,
+ hashAlgorithm AlgorithmIdentifier,
+ biometricDataHash OCTET STRING,
+ sourceDataUri IA5String OPTIONAL }
+
+
+
+ The Iso4217CurrencyCode object.
+
+ Iso4217CurrencyCode ::= CHOICE {
+ alphabetic PrintableString (SIZE 3), --Recommended
+ numeric INTEGER (1..999) }
+ -- Alphabetic or numeric currency code as defined in ISO 4217
+ -- It is recommended that the Alphabetic form is used
+
+
+
+ The MonetaryValue object.
+
+ MonetaryValue ::= SEQUENCE {
+ currency Iso4217CurrencyCode,
+ amount INTEGER,
+ exponent INTEGER }
+ -- value = amount * 10^exponent
+
+
+
+ The QCStatement object.
+
+ QCStatement ::= SEQUENCE {
+ statementId OBJECT IDENTIFIER,
+ statementInfo ANY DEFINED BY statementId OPTIONAL}
+
+
+
+ The SemanticsInformation object.
+
+ SemanticsInformation ::= SEQUENCE {
+ semanticsIdentifier OBJECT IDENTIFIER OPTIONAL,
+ nameRegistrationAuthorities NameRegistrationAuthorities
+ OPTIONAL }
+ (WITH COMPONENTS {..., semanticsIdentifier PRESENT}|
+ WITH COMPONENTS {..., nameRegistrationAuthorities PRESENT})
+
+ NameRegistrationAuthorities ::= SEQUENCE SIZE (1..MAX) OF
+ GeneralName
+
+
+
+ The TypeOfBiometricData object.
+
+ TypeOfBiometricData ::= CHOICE {
+ predefinedBiometricType PredefinedBiometricType,
+ biometricDataOid OBJECT IDENTIFIER }
+
+ PredefinedBiometricType ::= INTEGER {
+ picture(0),handwritten-signature(1)}
+ (picture|handwritten-signature)
+
+
+
+ The ReasonFlags object.
+
+ ReasonFlags ::= BIT STRING {
+ unused(0),
+ keyCompromise(1),
+ cACompromise(2),
+ affiliationChanged(3),
+ superseded(4),
+ cessationOfOperation(5),
+ certficateHold(6)
+ }
+
+
+
+ @param reasons - the bitwise OR of the Key Reason flags giving the
+ allowed uses for the key.
+
+
+ Implementation of the RoleSyntax object as specified by the RFC3281.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ RoleSyntax factory method.
+ @param obj the object used to construct an instance of
+ RoleSyntax. It must be an instance of RoleSyntax
+ or Asn1Sequence.
+ @return the instance of RoleSyntax built from the
+ supplied object.
+ @throws java.lang.ArgumentException if the object passed
+ to the factory is not an instance of RoleSyntax or
+ Asn1Sequence.
+
+
+ Constructor.
+ @param roleAuthority the role authority of this RoleSyntax.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Constructor. Invoking this constructor is the same as invoking
+ new RoleSyntax(null, roleName).
+ @param roleName the role name of this RoleSyntax.
+
+
+ Utility constructor. Takes a string argument representing
+ the role name, builds a GeneralName to hold the role name
+ and calls the constructor that takes a GeneralName.
+ @param roleName
+
+
+ Constructor that builds an instance of RoleSyntax by
+ extracting the encoded elements from the Asn1Sequence
+ object supplied.
+ @param seq an instance of Asn1Sequence that holds
+ the encoded elements used to build this RoleSyntax.
+
+
+ Gets the role authority of this RoleSyntax.
+ @return an instance of GeneralNames holding the
+ role authority of this RoleSyntax.
+
+
+ Gets the role name of this RoleSyntax.
+ @return an instance of GeneralName holding the
+ role name of this RoleSyntax.
+
+
+ Gets the role name as a java.lang.string object.
+ @return the role name of this RoleSyntax represented as a
+ string object.
+
+
+ Gets the role authority as a string[] object.
+ @return the role authority of this RoleSyntax represented as a
+ string[] array.
+
+
+ Implementation of the method ToAsn1Object as
+ required by the superclass ASN1Encodable.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RSAPublicKey ::= Sequence {
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ }
+
+
+
+ Structure for a name or pseudonym.
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.PersonalData
+
+
+
+ Constructor from DERString.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+ @param pseudonym pseudonym value to use.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param pseudonym The pseudonym.
+
+
+ Constructor from a given details.
+
+ @param surname The surname.
+ @param givenName A sequence of directory strings making up the givenName
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @return an Asn1Object
+
+
+ Contains personal data for the otherName field in the subjectAltNames
+ extension.
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.NameOrPseudonym
+ @see org.bouncycastle.asn1.x509.sigi.SigIObjectIdentifiers
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param nameOrPseudonym Name or pseudonym.
+ @param nameDistinguisher Name distinguisher.
+ @param dateOfBirth Date of birth.
+ @param placeOfBirth Place of birth.
+ @param gender Gender.
+ @param postalAddress Postal Address.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Object Identifiers of SigI specifciation (German Signature Law
+ Interoperability specification).
+
+
+ Key purpose IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Certificate policy IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Other Name IDs for German SigI (Signature Interoperability Specification)
+
+
+ To be used for for the generation of directory service certificates.
+
+
+ ID for PersonalData
+
+
+ Certificate is conform to german signature law.
+
+
+ This extension may contain further X.500 attributes of the subject. See also
+ RFC 3039.
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @see org.bouncycastle.asn1.x509.X509Name for AttributeType ObjectIdentifiers.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type SubjectDirectoryAttributes:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @param seq
+ The ASN.1 sequence.
+
+
+ Constructor from an ArrayList of attributes.
+
+ The ArrayList consists of attributes of type {@link Attribute Attribute}
+
+ @param attributes The attributes.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @return a DERObject
+
+
+ @return Returns the attributes.
+
+
+ The SubjectKeyIdentifier object.
+
+ SubjectKeyIdentifier::= OCTET STRING
+
+
+
+ Calculates the keyIdentifier using a SHA1 hash over the BIT STRING
+ from SubjectPublicKeyInfo as defined in RFC3280.
+
+ @param spki the subject public key info.
+
+
+ Return a RFC 3280 type 1 key identifier. As in:
+
+ (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the
+ value of the BIT STRING subjectPublicKey (excluding the tag,
+ length, and number of unused bits).
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ Return a RFC 3280 type 2 key identifier. As in:
+
+ (2) The keyIdentifier is composed of a four bit type field with
+ the value 0100 followed by the least significant 60 bits of the
+ SHA-1 hash of the value of the BIT STRING subjectPublicKey.
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ The object that contains the public key stored in a certficate.
+
+ The GetEncoded() method in the public keys in the JCE produces a DER
+ encoded one of these.
+
+
+ for when the public key is an encoded object - if the bitstring
+ can't be decoded this routine raises an IOException.
+
+ @exception IOException - if the bit string doesn't represent a Der
+ encoded object.
+
+
+ for when the public key is raw bits...
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SubjectPublicKeyInfo ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING }
+
+
+
+ Target structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+
+ The targetCert field is currently not supported and must not be used
+ according to RFC 3281.
+
+
+ Creates an instance of a Target from the given object.
+
+ obj can be a Target or a {@link Asn1TaggedObject}
+
+ @param obj The object.
+ @return A Target instance.
+ @throws ArgumentException if the given object cannot be
+ interpreted as Target.
+
+
+ Constructor from Asn1TaggedObject.
+
+ @param tagObj The tagged object.
+ @throws ArgumentException if the encoding is wrong.
+
+
+ Constructor from given details.
+
+ Exactly one of the parameters must be not null.
+
+ @param type the choice type to apply to the name.
+ @param name the general name.
+ @throws ArgumentException if type is invalid.
+
+
+ @return Returns the targetGroup.
+
+
+ @return Returns the targetName.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+ @return an Asn1Object
+
+
+ Target information extension for attributes certificates according to RFC
+ 3281.
+
+
+ SEQUENCE OF Targets
+
+
+
+
+ Creates an instance of a TargetInformation from the given object.
+
+ obj can be a TargetInformation or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A TargetInformation instance.
+ @throws ArgumentException if the given object cannot be interpreted as TargetInformation.
+
+
+ Constructor from a Asn1Sequence.
+
+ @param seq The Asn1Sequence.
+ @throws ArgumentException if the sequence does not contain
+ correctly encoded Targets elements.
+
+
+ Returns the targets in this target information extension.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Constructs a target information from a single targets element.
+ According to RFC 3281 only one targets element must be produced.
+
+ @param targets A Targets instance.
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given they must be merged in
+ into one targets element.
+
+ @param targets An array with {@link Targets}.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SEQUENCE OF Targets
+
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given in the constructor they are merged into one
+ targets element. If this was produced from a
+ {@link Org.BouncyCastle.Asn1.Asn1Sequence} the encoding is kept.
+
+ @return an Asn1Object
+
+
+ Targets structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.Target
+ @see org.bouncycastle.asn1.x509.TargetInformation
+
+
+ Creates an instance of a Targets from the given object.
+
+ obj can be a Targets or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A Targets instance.
+ @throws ArgumentException if the given object cannot be interpreted as Target.
+
+
+ Constructor from Asn1Sequence.
+
+ @param targets The ASN.1 SEQUENCE.
+ @throws ArgumentException if the contents of the sequence are
+ invalid.
+
+
+ Constructor from given targets.
+
+ The ArrayList is copied.
+
+ @param targets An ArrayList of {@link Target}s.
+ @see Target
+ @throws ArgumentException if the ArrayList contains not only Targets.
+
+
+ Returns the targets in an ArrayList.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Targets ::= SEQUENCE OF Target
+
+
+ @return an Asn1Object
+
+
+ The TbsCertificate object.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+ Note: issuerUniqueID and subjectUniqueID are both deprecated by the IETF. This class
+ will parse them, but you really shouldn't be creating new ones.
+
+
+ PKIX RFC-2459 - TbsCertList object.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+
+ Return our time as DateTime.
+
+ A date time.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+ UserNotice class, used in
+ CertificatePolicies X509 extensions (in policy
+ qualifiers).
+
+ UserNotice ::= Sequence {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+
+
+ @see PolicyQualifierId
+ @see PolicyInformation
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param explicitText a DisplayText value
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param str the explicitText field as a string.
+
+
+ Creates a new UserNotice instance.
+ Useful from reconstructing a UserNotice instance
+ from its encodable/encoded form.
+
+ @param as an ASN1Sequence value obtained from either
+ calling @{link toASN1Object()} for a UserNotice
+ instance or from parsing it from a DER-encoded stream.
+
+
+ Generator for Version 1 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ }
+
+
+
+
+ Generator for Version 2 AttributeCertificateInfo
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+
+
+
+ @param attribute
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ V2Form ::= Sequence {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST NOT
+ -- be present in this profile
+ }
+
+
+
+ Generator for Version 2 TbsCertList structures.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+ Note: This class may be subject to change
+
+
+ Generator for Version 3 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+
+
+ an X509Certificate structure.
+
+ Certificate ::= Sequence {
+ tbsCertificate TbsCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+
+
+ The default converter for X509 DN entries when going from their
+ string value to ASN.1 strings.
+
+
+ Apply default conversion for the given value depending on the oid
+ and the character range of the value.
+
+ @param oid the object identifier for the DN entry
+ @param value the value associated with it
+ @return the ASN.1 equivalent for the string value.
+
+
+ an object for the elements in the X.509 V3 extension block.
+
+
+ Convert the value of the passed in extension to an object.
+ The extension to parse.
+ The object the value string contains.
+ If conversion is not possible.
+
+
+ Subject Directory Attributes
+
+
+ Subject Key Identifier
+
+
+ Key Usage
+
+
+ Private Key Usage Period
+
+
+ Subject Alternative Name
+
+
+ Issuer Alternative Name
+
+
+ Basic Constraints
+
+
+ CRL Number
+
+
+ Reason code
+
+
+ Hold Instruction Code
+
+
+ Invalidity Date
+
+
+ Delta CRL indicator
+
+
+ Issuing Distribution Point
+
+
+ Certificate Issuer
+
+
+ Name Constraints
+
+
+ CRL Distribution Points
+
+
+ Certificate Policies
+
+
+ Policy Mappings
+
+
+ Authority Key Identifier
+
+
+ Policy Constraints
+
+
+ Extended Key Usage
+
+
+ Freshest CRL
+
+
+ Inhibit Any Policy
+
+
+ Authority Info Access
+
+
+ Subject Info Access
+
+
+ Logo Type
+
+
+ BiometricInfo
+
+
+ QCStatements
+
+
+ Audit identity extension in attribute certificates.
+
+
+ NoRevAvail extension in attribute certificates.
+
+
+ TargetInformation extension in attribute certificates.
+
+
+ Expired Certificates on CRL extension
+
+
+ Constructor from Asn1Sequence.
+
+ the extensions are a list of constructed sequences, either with (Oid, OctetString) or (Oid, Boolean, OctetString)
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ return an Enumeration of the extension field's object ids.
+
+
+ return the extension represented by the object identifier
+ passed in.
+
+ @return the extension if it's present, null otherwise.
+
+
+
+ Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+ Extension ::= SEQUENCE {
+ extnId EXTENSION.&id ({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+
+
+ Generator for X.509 extensions
+
+
+ Reset the generator
+
+
+
+ Add an extension with the given oid and the passed in value to be included
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The ASN.1 object to be included in the extension.
+
+
+
+ Add an extension with the given oid and the passed in byte array to be wrapped
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The byte array to be wrapped.
+
+
+ Return true if there are no extension present in this generator.
+ True if empty, false otherwise
+
+
+ Generate an X509Extensions object based on the current state of the generator.
+ An X509Extensions object
+
+
+
+ RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+ RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY }
+
+
+
+ country code - StringType(SIZE(2))
+
+
+ organization - StringType(SIZE(1..64))
+
+
+ organizational unit name - StringType(SIZE(1..64))
+
+
+ Title
+
+
+ common name - StringType(SIZE(1..64))
+
+
+ street - StringType(SIZE(1..64))
+
+
+ device serial number name - StringType(SIZE(1..64))
+
+
+ locality name - StringType(SIZE(1..64))
+
+
+ state, or province name - StringType(SIZE(1..64))
+
+
+ Naming attributes of type X520name
+
+
+ businessCategory - DirectoryString(SIZE(1..128)
+
+
+ postalCode - DirectoryString(SIZE(1..40)
+
+
+ dnQualifier - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 Pseudonym - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Z
+
+
+ RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128)
+
+
+ RFC 3039 DateOfBirth - PrintableString (SIZE(1)) -- "M", "F", "m" or "f"
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF
+ DirectoryString(SIZE(1..30))
+
+
+ RFC 2256 dmdName
+
+
+ id-at-telephoneNumber
+
+
+ id-at-organizationIdentifier
+
+
+ id-at-name
+
+
+ Email address (RSA PKCS#9 extension) - IA5String.
+ Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.
+
+
+ more from PKCS#9
+
+
+ email address in Verisign certificates
+
+
+ LDAP User id.
+
+
+ determines whether or not strings should be processed and printed
+ from back to front.
+
+
+ default look up table translating OID values into their common symbols following
+ the convention in RFC 2253 with a few extras
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 2253
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 1779
+
+
+
+ look up table translating common symbols into their OIDS.
+
+
+ Return a X509Name based on the passed in tagged object.
+
+ @param obj tag object holding name.
+ @param explicitly true if explicitly tagged false otherwise.
+ @return the X509Name
+
+
+ Constructor from Asn1Sequence
+
+ the principal will be a list of constructed sets, each containing an (OID, string) pair.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. If reverse
+ is true, create the encoded version of the sequence starting from the
+ last element in the string.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter. If reverse is true the ASN.1 sequence representing the DN will
+ be built by starting at the end of the string, rather than the start.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically.
+
+ If reverse is true, create the encoded version of the sequence
+ starting from the last element in the string.
+ @param reverse true if we should start scanning from the end (RFC 2553).
+ @param lookUp table of names and their oids.
+ @param dirName the X.500 string to be parsed.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically. The passed in converter is used to convert the
+ string values to the right of each equals sign to their ASN.1 counterparts.
+
+ @param reverse true if we should start scanning from the end, false otherwise.
+ @param lookUp table of names and oids.
+ @param dirName the string dirName
+ @param converter the converter to convert string values into their ASN.1 equivalents
+
+
+ return an IList of the oids in the name, in the order they were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found, with the DN label corresponding to passed in oid.
+
+
+ The X509Name object to test equivalency against.
+ If true, the order of elements must be the same,
+ as well as the values associated with each element.
+
+
+ test for equivalence - note: case is ignored.
+
+
+ convert the structure to a string - if reverse is true the
+ oids and values are listed out starting with the last element
+ in the sequence (ala RFC 2253), otherwise the string will begin
+ with the first element of the structure. If no string definition
+ for the oid is found in oidSymbols the string value of the oid is
+ added. Two standard symbol tables are provided DefaultSymbols, and
+ RFC2253Symbols as part of this class.
+
+ @param reverse if true start at the end of the sequence and work back.
+ @param oidSymbols look up table strings for oids.
+
+
+ * It turns out that the number of standard ways the fields in a DN should be
+ * encoded into their ASN.1 counterparts is rapidly approaching the
+ * number of machines on the internet. By default the X509Name class
+ * will produce UTF8Strings in line with the current recommendations (RFC 3280).
+ *
+ * An example of an encoder look like below:
+ *
+ * public class X509DirEntryConverter
+ * : X509NameEntryConverter
+ * {
+ * public Asn1Object GetConvertedValue(
+ * DerObjectIdentifier oid,
+ * string value)
+ * {
+ * if (str.Length() != 0 && str.charAt(0) == '#')
+ * {
+ * return ConvertHexEncoded(str, 1);
+ * }
+ * if (oid.Equals(EmailAddress))
+ * {
+ * return new DerIA5String(str);
+ * }
+ * else if (CanBePrintable(str))
+ * {
+ * return new DerPrintableString(str);
+ * }
+ * else if (CanBeUTF8(str))
+ * {
+ * return new DerUtf8String(str);
+ * }
+ * else
+ * {
+ * return new DerBmpString(str);
+ * }
+ * }
+ * }
+ *
+ *
+
+
+ Convert an inline encoded hex string rendition of an ASN.1
+ object back into its corresponding ASN.1 object.
+
+ @param str the hex encoded object
+ @param off the index at which the encoding starts
+ @return the decoded object
+
+
+ return true if the passed in string can be represented without
+ loss as a PrintableString, false otherwise.
+
+
+ Convert the passed in string value into the appropriate ASN.1
+ encoded object.
+
+ @param oid the oid associated with the value in the DN.
+ @param value the value of the particular DN component.
+ @return the ASN.1 equivalent for the value.
+
+
+ class for breaking up an X500 Name into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ A general class that reads all X9.62 style EC curve tables.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve. The routine returns null if the curve is not present.
+
+ @param name the name of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve.
+
+ @param oid the object id of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return an enumeration of the names of the available curves.
+
+ @return an enumeration of the names of the available curves.
+
+
+ ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeySpecificInfo ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ counter OCTET STRING SIZE (4..4)
+ }
+
+
+
+ ANS.1 def for Diffie-Hellman key exchange OtherInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherInfo ::= Sequence {
+ keyInfo KeySpecificInfo,
+ partyAInfo [0] OCTET STRING OPTIONAL,
+ suppPubInfo [2] OCTET STRING
+ }
+
+
+
+ table of the current named curves defined in X.962 EC-DSA.
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Parameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve CURVES.&id({CurveNames}),
+ implicitlyCA Null
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve Curve structure. See
+ X9.62, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Curve ::= Sequence {
+ a FieldElement,
+ b FieldElement,
+ seed BIT STRING OPTIONAL
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve ECParameters structure. See
+ X9.62, for further details.
+
+
+ Return the ASN.1 entry representing the Curve.
+
+ @return the X9Curve for the curve in these parameters.
+
+
+ Return the ASN.1 entry representing the FieldID.
+
+ @return the X9FieldID for the FieldID in these parameters.
+
+
+ Return the ASN.1 entry representing the base point G.
+
+ @return the X9ECPoint for the base point in these parameters.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECParameters ::= Sequence {
+ version Integer { ecpVer1(1) } (ecpVer1),
+ fieldID FieldID {{FieldTypes}},
+ curve X9Curve,
+ base X9ECPoint,
+ order Integer,
+ cofactor Integer OPTIONAL
+ }
+
+
+
+ class for describing an ECPoint as a Der object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECPoint ::= OCTET STRING
+
+
+ Octet string produced using ECPoint.GetEncoded().
+
+
+ Class for processing an ECFieldElement as a DER object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ FieldElement ::= OCTET STRING
+
+
+
+ - if q is an odd prime then the field element is
+ processed as an Integer and converted to an octet string
+ according to x 9.62 4.3.1.
+ - if q is 2m then the bit string
+ contained in the field element is converted into an octet
+ string with the same ordering padded at the front if necessary.
+
+
+
+
+
+ ASN.1 def for Elliptic-Curve Field ID structure. See
+ X9.62, for further details.
+
+
+ Constructor for elliptic curves over prime fields
+ F2.
+ @param primeP The prime p defining the prime field.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)..
+
+
+ Produce a Der encoding of the following structure.
+
+ FieldID ::= Sequence {
+ fieldType FIELD-ID.&id({IOSet}),
+ parameters FIELD-ID.&Type({IOSet}{@fieldType})
+ }
+
+
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) x9-57 (10040) x9cm(4) 3 }
+
+
+ X9.63
+
+
+ X9.42
+
+
+ reader for Base64 armored objects - read the headers and then start returning
+ bytes when the data is reached. An IOException is thrown if the CRC check
+ fails.
+
+
+ decode the base 64 encoded input data.
+
+ @return the offset the data starts in out.
+
+
+ Create a stream for reading a PGP armoured message, parsing up to a header
+ and then reading the data that follows.
+
+ @param input
+
+
+ Create an armoured input stream which will assume the data starts
+ straight away, or parse for headers first depending on the value of
+ hasHeaders.
+
+ @param input
+ @param hasHeaders true if headers are to be looked for, false otherwise.
+
+
+ @return true if we are inside the clear text section of a PGP
+ signed message.
+
+
+ @return true if the stream is actually at end of file.
+
+
+ Return the armor header line (if there is one)
+ @return the armor header line, null if none present.
+
+
+ Return the armor headers (the lines after the armor header line),
+ @return an array of armor headers, null if there aren't any.
+
+
+ Basic output stream.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+
+ Set an additional header entry. A null value will clear the entry for name.
+
+ @param name the name of the header entry.
+ @param v the value of the header entry.
+
+
+ Reset the headers to only contain a Version string (if one is present).
+
+
+ Start a clear text signed message.
+ @param hashAlgorithm
+
+
+ Note: Close() does not close the underlying stream. So it is possible to write
+ multiple objects using armoring to a single stream.
+
+
+ Basic type for a image attribute packet.
+
+
+ Reader for PGP objects.
+
+
+ Returns the next packet tag in the stream.
+
+
+
+ A stream that overlays our input stream, allowing the user to only read a segment of it.
+ NB: dataLength will be negative if the segment length is in the upper range above 2**31.
+
+
+
+ Base class for a PGP object.
+
+
+ Basic output stream.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+
+
+ Create a stream representing an old style partial object.
+ Output stream to write to.
+ The packet tag for the object.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+ If true, the header is written out in old format.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Buffer to use for collecting chunks.
+
+
+ Flush the underlying stream.
+
+
+ Finish writing out the current packet without closing the underlying stream.
+
+
+ Generic compressed data object.
+
+
+ The algorithm tag value.
+
+
+ Basic tags for compression algorithms.
+
+
+ Basic type for a PGP packet.
+
+
+ Base class for a DSA public key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for a DSA secret key.
+
+
+ @param in
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ @return x
+
+
+ Base class for an ECDH Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an ECDSA Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an EC Public Key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an EC Secret Key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal public key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal secret key.
+
+
+ @param in
+
+
+ @param x
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Basic packet for an experimental packet.
+
+
+ Basic tags for hash algorithms.
+
+
+ Base interface for a PGP key.
+
+
+
+ The base format for this key - in the case of the symmetric keys it will generally
+ be raw indicating that the key is just a straight byte representation, for an asymmetric
+ key the format will be PGP, indicating the key is a string of MPIs encoded in PGP format.
+
+ "RAW" or "PGP".
+
+
+ Note: you can only read from this once...
+
+
+ Generic literal data packet.
+
+
+ The format tag value.
+
+
+ The modification time of the file in milli-seconds (since Jan 1, 1970 UTC)
+
+
+ Basic type for a marker packet.
+
+
+ Basic packet for a modification detection code packet.
+
+
+ A multiple precision integer
+
+
+ Generic signature object
+
+
+ The encryption algorithm tag.
+
+
+ The hash algorithm tag.
+
+
+ Basic PGP packet tag types.
+
+
+ Public Key Algorithm tag numbers.
+
+
+ Basic packet for a PGP public key.
+
+
+ Basic packet for a PGP public key.
+
+
+ Construct a version 4 public key packet.
+
+
+ Basic packet for a PGP public subkey
+
+
+ Construct a version 4 public subkey packet.
+
+
+ Base class for an RSA public key.
+
+
+ Construct an RSA public key from the passed in stream.
+
+
+ The modulus.
+ The public exponent.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an RSA secret (or priate) key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ The string to key specifier class.
+
+
+ The hash algorithm.
+
+
+ The IV for the key generation algorithm.
+
+
+ The iteration count
+
+
+ The protection mode - only if GnuDummyS2K
+
+
+ Basic packet for a PGP secret key.
+
+
+ Basic packet for a PGP secret key.
+
+
+ Generic signature packet.
+
+
+ Generate a version 4 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param hashedData
+ @param unhashedData
+ @param fingerprint
+ @param signature
+
+
+ Generate a version 2/3 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param fingerprint
+ @param signature
+
+
+ return the keyId
+ @return the keyId that created the signature.
+
+
+ return the signature trailer that must be included with the data
+ to reconstruct the signature
+
+ @return byte[]
+
+
+ * return the signature as a set of integers - note this is normalised to be the
+ * ASN.1 encoding of what appears in the signature packet.
+
+
+ Return the byte encoding of the signature section.
+ @return uninterpreted signature bytes.
+
+
+ Return the creation time in milliseconds since 1 Jan., 1970 UTC.
+
+
+ Basic type for a PGP Signature sub-packet.
+
+
+ Return the generic data making up the packet.
+
+
+ reader for signature sub-packets
+
+
+ Basic PGP signature sub-packet tag types.
+
+
+ Packet embedded signature
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ Identifier for the modification detection feature
+
+
+ Returns if modification detection is supported.
+
+
+ Returns if a particular feature is supported.
+
+
+ Sets support for a particular feature.
+
+
+ packet giving signature creation time.
+
+
+ packet giving time after creation at which the key expires.
+
+
+ Return the number of seconds after creation time a key is valid for.
+
+ @return second count for key validity.
+
+
+ Packet holding the key flag values.
+
+
+
+ Return the flag values contained in the first 4 octets (note: at the moment
+ the standard only uses the first one).
+
+
+
+ Class provided a NotationData object according to
+ RFC2440, Chapter 5.2.3.15. Notation Data
+
+
+ packet giving signature creation time.
+
+
+ packet giving whether or not the signature is signed using the primary user ID for the key.
+
+
+ packet giving whether or not is revocable.
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ return time in seconds before signature expires after creation time.
+
+
+ packet giving the User ID of the signer.
+
+
+ packet giving trust.
+
+
+
+ Represents revocation key OpenPGP signature sub packet.
+
+
+
+
+ Represents revocation reason OpenPGP signature sub packet.
+
+
+
+ Basic type for a symmetric key encrypted packet.
+
+
+ Basic tags for symmetric key algorithms
+
+
+ Basic type for a symmetric encrypted session key packet
+
+
+ @return int
+
+
+ @return S2k
+
+
+ @return byte[]
+
+
+ @return int
+
+
+ Basic type for a trust packet.
+
+
+ Basic type for a user attribute packet.
+
+
+ Basic type for a user attribute sub-packet.
+
+
+ return the generic data making up the packet.
+
+
+ reader for user attribute sub-packets
+
+
+ Basic PGP user attribute sub-packet tag types.
+
+
+ Basic type for a user ID packet.
+
+
+ Compressed data objects
+
+
+ The algorithm used for compression
+
+
+ Get the raw input stream contained in the object.
+
+
+ Return an uncompressed input stream which allows reading of the compressed data.
+
+
+ Class for producing compressed data packets.
+
+
+
+
+ Return an output stream which will save the data being written to
+ the compressed object.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Stream to be used for output.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+
+ Return an output stream which will compress the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+ Note: using this may break compatibility with RFC 1991 compliant tools.
+ Only recent OpenPGP implementations are capable of accepting these streams.
+
+
+ Stream to be used for output.
+ The buffer to use.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+ Close the compressed object.summary>
+
+
+
+ Thrown if the IV at the start of a data stream indicates the wrong key is being used.
+
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return true if the message is integrity protected.
+ True, if there is a modification detection code namespace associated
+ with this stream.
+
+
+ Note: This can only be called after the message has been read.
+ True, if the message verifies, false otherwise
+
+
+ Generator for encrypted objects.
+
+
+ Existing SecureRandom constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+
+
+ Creates a cipher stream which will have an integrity packet associated with it.
+
+
+ Base constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+ PGP 2.6.x compatibility required.
+
+
+
+ Add a PBE encryption method to the encrypted object using the default algorithm (S2K_SHA1).
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Add a public key encrypted session key to the encrypted object.
+
+
+
+
+ If buffer is non null stream assumed to be partial, otherwise the length will be used
+ to output a fixed length packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+
+
+
+
+ Close off the encrypted object - this is equivalent to calling Close() on the stream
+ returned by the Open() method.
+
+
+ Note: This does not close the underlying output stream, only the stream on top of
+ it created by the Open() method.
+
+
+
+
+ A holder for a list of PGP encryption method packets.
+
+
+ Generic exception class for PGP encoding/decoding problems.
+
+
+ Key flag values for the KeyFlags subpacket.
+
+
+
+ General class to handle JCA key pairs and convert them into OpenPGP ones.
+
+ A word for the unwary, the KeyId for an OpenPGP public key is calculated from
+ a hash that includes the time of creation, if you pass a different date to the
+ constructor below with the same public private key pair the KeyIs will not be the
+ same as for previous generations of the key, so ideally you only want to do
+ this once.
+
+
+
+
+ Create a key pair from a PgpPrivateKey and a PgpPublicKey.
+ The public key.
+ The private key.
+
+
+ The keyId associated with this key pair.
+
+
+
+ Generator for a PGP master and subkey ring.
+ This class will generate both the secret and public key rings
+
+
+
+
+ Create a new key ring generator using old style checksumming. It is recommended to use
+ SHA1 checksumming where possible.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+ The key pair.
+ The hash algorithm.
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ exception adding subkey:
+
+
+
+ Return the secret key ring.
+
+
+ Return the public key ring that corresponds to the secret key ring.
+
+
+
+ Thrown if the key checksum is invalid.
+
+
+
+ Class for processing literal data objects.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+ The format of the data stream - Binary or Text
+
+
+ The file name that's associated with the data stream.
+
+
+ Return the file name as an unintrepreted byte array.
+
+
+ The modification time for the file.
+
+
+ The raw input stream for the data stream.
+
+
+ The input stream representing the data stream.
+
+
+ Class for producing literal data packets.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+
+ Generates literal data objects in the old format.
+ This is important if you need compatibility with PGP 2.6.x.
+
+ If true, uses old format.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The length of the data we will write.
+ The time of last modification we want stored.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet,
+ as an indefinite length stream. The stream is written out as a series of partial
+ packets with a chunk size determined by the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The time of last modification we want stored.
+ The buffer to use for collecting data to put into chunks.
+
+
+
+
+ Open a literal data packet for the passed in FileInfo object, returning
+ an output stream for saving the file contents.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The FileInfo object containg the packet details.
+
+
+
+ Close the literal data packet - this is equivalent to calling Close()
+ on the stream returned by the Open() method.
+
+
+
+
+ A PGP marker packet - in general these should be ignored other than where
+ the idea is to preserve the original input stream.
+
+
+
+
+ General class for reading a PGP object stream.
+
+ Note: if this class finds a PgpPublicKey or a PgpSecretKey it
+ will create a PgpPublicKeyRing, or a PgpSecretKeyRing for each
+ key found. If all you are trying to do is read a key ring file use
+ either PgpPublicKeyRingBundle or PgpSecretKeyRingBundle.
+
+
+
+ Return the next object in the stream, or null if the end is reached.
+ On a parse error
+
+
+
+ Return all available objects in a list.
+
+ An IList containing all objects from this factory, in order.
+
+
+ A one pass signature object.
+
+
+ Initialise the signature object for verification.
+
+
+ Verify the calculated signature against the passed in PgpSignature.
+
+
+ Holder for a list of PgpOnePassSignature objects.
+
+
+ Padding functions.
+
+
+ A password based encryption object.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ General class to contain a private key for use with other OpenPGP objects.
+
+
+
+ Create a PgpPrivateKey from a keyID, the associated public data packet, and a regular private key.
+
+ ID of the corresponding public key.
+ the public key data packet to be associated with this private key.
+ the private key data packet to be associated with this private key.
+
+
+ The keyId associated with the contained private key.
+
+
+ The public key packet associated with this private key, if available.
+
+
+ The contained private key.
+
+
+ General class to handle a PGP public key object.
+
+
+
+ Create a PgpPublicKey from the passed in lightweight one.
+
+
+ Note: the time passed in affects the value of the key's keyId, so you probably only want
+ to do this once for a lightweight key, or make sure you keep track of the time you used.
+
+ Asymmetric algorithm type representing the public key.
+ Actual public key to associate.
+ Date of creation.
+ If pubKey is not public.
+ On key creation problem.
+
+
+ Constructor for a sub-key.
+
+
+ Copy constructor.
+ The public key to copy.
+
+
+ The version of this key.
+
+
+ The creation time of this key.
+
+
+ The number of valid days from creation time - zero means no expiry.
+ WARNING: This method will return 1 for keys with version > 3 that expire in less than 1 day
+
+
+ Return the trust data associated with the public key, if present.
+ A byte array with trust data, null otherwise.
+
+
+ The number of valid seconds from creation time - zero means no expiry.
+
+
+ The keyId associated with the public key.
+
+
+ The fingerprint of the key
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for encryption.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for encryption.
+
+
+
+ True, if this is a master key.
+
+
+ The algorithm code associated with the public key.
+
+
+ The strength of the key in bits.
+
+
+ The public key contained in the object.
+ A lightweight public key.
+ If the key algorithm is not recognised.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of PgpUserAttributeSubpacketVector objects.
+
+
+ Allows enumeration of any signatures associated with the passed in id.
+ The ID to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures associated with the passed in user attributes.
+ The vector of user attributes to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures of the passed in type that are on this key.
+ The type of the signature to be returned.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of all signatures/certifications associated with this key.
+ An IEnumerable with all signatures/certifications.
+
+
+ Return all signatures/certifications directly associated with this key (ie, not to a user id).
+
+ @return an iterator (possibly empty) with all signatures/certifications.
+
+
+ Check whether this (sub)key has a revocation signature on it.
+ True, if this (sub)key has been revoked.
+
+
+ Add a certification for an id to the given public key.
+ The key the certification is to be added to.
+ The ID the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+ Add a certification for the given UserAttributeSubpackets to the given public key.
+ The key the certification is to be added to.
+ The attributes the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+
+ Remove any certifications associated with a user attribute subpacket on a key.
+
+ The key the certifications are to be removed from.
+ The attributes to be removed.
+
+ The re-certified key, or null if the user attribute subpacket was not found on the key.
+
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from.
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given user attributes on a key.
+ The key the certifications are to be removed from.
+ The user attributes that the certfication is to be removed from.
+ The certification to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Add a revocation or some other key certification to a key.
+ The key the revocation is to be added to.
+ The key signature to be added.
+ The new changed public key object.
+
+
+ Remove a certification from the key.
+ The key the certifications are to be removed from.
+ The certfication to be removed.
+ The modified key, null if the certification was not found.
+
+
+ A public key encrypted data object.
+
+
+ The key ID for the key used to encrypt the data.
+
+
+
+ Return the algorithm code for the symmetric algorithm used to encrypt the data.
+
+
+
+ Return the decrypted data stream for the packet.
+
+
+
+ Class to hold a single master public key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpPublicKeyRingBundle class.
+
+
+
+
+ Return the first public key in the ring.
+
+
+ Return the public key referred to by the passed in key ID if it is present.
+
+
+ Allows enumeration of all the public keys.
+ An IEnumerable of PgpPublicKey objects.
+
+
+
+ Returns a new key ring with the public key passed in either added or
+ replacing an existing one.
+
+ The public key ring to be modified.
+ The public key to be inserted.
+ A new PgpPublicKeyRing
+
+
+ Returns a new key ring with the public key passed in removed from the key ring.
+ The public key ring to be modified.
+ The public key to be removed.
+ A new PgpPublicKeyRing, or null if pubKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire public key file in one hit this is the class for you.
+
+
+
+ Build a PgpPublicKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpPublicKeyRing.
+
+
+ Return the number of key rings in this collection.
+
+
+ Allow enumeration of the public key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP public key associated with the given key id.
+ The ID of the public key to return.
+
+
+ Return the public key ring which contains the key referred to by keyId
+ key ID to match against
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in public key ring.
+
+ The PgpPublicKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpPublicKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in public key ring removed.
+
+ The PgpPublicKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpPublicKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ General class to handle a PGP secret key object.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for signing.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for use with signing.
+
+
+
+ True, if this is a master key.
+
+
+ Detect if the Secret Key's Private Key is empty or not
+
+
+ The algorithm the key is encrypted with.
+
+
+ The key ID of the public key associated with this key.
+
+
+ Return the S2K usage associated with this key.
+
+
+ Return the S2K used to process this key.
+
+
+ The public key associated with this key.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of string objects.
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+ Replace the passed the public key on the passed in secret key.
+ Secret key to change.
+ New public key.
+ A new secret key.
+ If KeyId's do not match.
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+
+
+ Class to hold a single master secret key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpSecretKeyRingBundle class.
+
+
+
+
+ Return the public key for the master key.
+
+
+ Return the master private key.
+
+
+ Allows enumeration of the secret keys.
+ An IEnumerable of PgpSecretKey objects.
+
+
+
+ Return an iterator of the public keys in the secret key ring that
+ have no matching private key. At the moment only personal certificate data
+ appears in this fashion.
+
+ An IEnumerable of unattached, or extra, public keys.
+
+
+
+ Replace the public key set on the secret ring with the corresponding key off the public ring.
+
+ Secret ring to be changed.
+ Public ring containing the new public key set.
+
+
+
+ Return a copy of the passed in secret key ring, with the master key and sub keys encrypted
+ using a new password and the passed in algorithm.
+
+ The PgpSecretKeyRing to be copied.
+ The current password for key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Returns a new key ring with the secret key passed in either added or
+ replacing an existing one with the same key ID.
+
+ The secret key ring to be modified.
+ The secret key to be inserted.
+ A new PgpSecretKeyRing
+
+
+ Returns a new key ring with the secret key passed in removed from the key ring.
+ The secret key ring to be modified.
+ The secret key to be removed.
+ A new PgpSecretKeyRing, or null if secKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire secret key file in one hit this is the class for you.
+
+
+
+ Build a PgpSecretKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpSecretKeyRing.
+
+
+ Return the number of rings in this collection.
+
+
+ Allow enumeration of the secret key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP secret key associated with the given key id.
+ The ID of the secret key to return.
+
+
+ Return the secret key ring which contains the key referred to by keyId
+ The ID of the secret key
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in secret key ring.
+
+ The PgpSecretKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpSecretKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in secret key ring removed.
+
+ The PgpSecretKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpSecretKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ A PGP signature object.
+
+
+ The OpenPGP version number for this signature.
+
+
+ The key algorithm associated with this signature.
+
+
+ The hash algorithm associated with this signature.
+
+
+ Return true if this signature represents a certification.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in user attributes.
+
+ User attributes the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in ID.
+
+ ID the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+ Verify a certification for the passed in key against the passed in master key.
+ The key we are verifying against.
+ The key we are verifying.
+ True, if the certification is valid, false otherwise.
+
+
+ Verify a key certification, such as revocation, for the passed in key.
+ The key we are checking.
+ True, if the certification is valid, false otherwise.
+
+
+ The ID of the key that created the signature.
+
+
+ The creation time of this signature.
+
+
+
+ Return true if the signature has either hashed or unhashed subpackets.
+
+
+
+
+ Return true if the passed in signature type represents a certification, false if the signature type is not.
+
+
+ true if signatureType is a certification, false otherwise.
+
+
+ Generator for PGP signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a signature object containing the current signature state.
+
+
+ Generate a certification for the passed in ID and key.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in userAttributes.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in key against the passed in master key.
+ The key we are certifying against.
+ The key we are certifying.
+ The certification.
+
+
+ Generate a certification, such as a revocation, for the passed in key.
+ The key we are certifying.
+ The certification.
+
+
+ A list of PGP signatures - normally in the signature block after literal data.
+
+
+ Generator for signature subpackets.
+
+
+
+ Add a TrustSignature packet to the signature. The values for depth and trust are largely
+ installation dependent but there are some guidelines in RFC 4880 - 5.2.3.13.
+
+ true if the packet is critical.
+ depth level.
+ trust amount.
+
+
+
+ Set the number of seconds a key is valid for after the time of its creation.
+ A value of zero means the key never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the key is valid, or zero if no expiry.
+
+
+
+ Set the number of seconds a signature is valid for after the time of its creation.
+ A value of zero means the signature never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the signature is valid, or zero if no expiry.
+
+
+
+ Set the creation time for the signature.
+
+ Note: this overrides the generation of a creation time when the signature
+ is generated.
+
+
+
+
+ Sets revocation reason sub packet
+
+
+
+
+ Sets revocation key sub packet
+
+
+
+
+ Sets issuer key sub packet
+
+
+
+ Container for a list of signature subpackets.
+
+
+ Return true if a particular subpacket type exists.
+
+ @param type type to look for.
+ @return true if present, false otherwise.
+
+
+ Return all signature subpackets of the passed in type.
+ @param type subpacket type code
+ @return an array of zero or more matching subpackets.
+
+
+
+ Return the number of seconds a signature is valid for after its creation date.
+ A value of zero means the signature never expires.
+
+ Seconds a signature is valid for.
+
+
+
+ Return the number of seconds a key is valid for after its creation date.
+ A value of zero means the key never expires.
+
+ Seconds a signature is valid for.
+
+
+ Return the number of packets this vector contains.
+
+
+ Container for a list of user attribute subpackets.
+
+
+ Basic utility class.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Write out the passed in file as a literal data packet.
+
+
+ Write out the passed in file as a literal data packet in partial packet format.
+
+
+
+ Return either an ArmoredInputStream or a BcpgInputStream based on whether
+ the initial characters of the stream are binary PGP encodings or not.
+
+
+
+ Generator for old style PGP V3 Signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a V3 signature object containing the current signature state.
+
+
+ Utility functions for looking a S-expression keys. This class will move when it finds a better home!
+
+ Format documented here:
+ http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=agent/keyformat.txt;h=42c4b1f06faf1bbe71ffadc2fee0fad6bec91a97;hb=refs/heads/master
+
+
+
+
+ The 'Signature' parameter is only available when generating unsigned attributes.
+
+
+
+ containing class for an CMS Authenticated Data object
+
+
+ return the object identifier for the content MAC algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the digested attributes indexed by
+ the OID of the attribute.
+
+
+ return a table of the undigested attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ General class for generating a CMS authenticated-data message.
+
+ A simple example of usage.
+
+
+ CMSAuthenticatedDataGenerator fact = new CMSAuthenticatedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSAuthenticatedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+
+
+ generate an authenticated object that contains an CMS Authenticated Data object
+
+
+ Parsing class for an CMS Authenticated Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CMSAuthenticatedDataParser ad = new CMSAuthenticatedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ad.getRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey, "BC");
+
+ processDataStream(recData.getContentStream());
+
+ if (!Arrays.equals(ad.getMac(), recipient.getMac())
+ {
+ System.err.println("Data corrupted!!!!");
+ }
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSAuthenticatedDataParser ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the mac algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ General class for generating a CMS authenticated-data message stream.
+
+ A simple example of usage.
+
+ CMSAuthenticatedDataStreamGenerator edGen = new CMSAuthenticatedDataStreamGenerator();
+
+ edGen.addKeyTransRecipient(cert);
+
+ ByteArrayOutputStream bOut = new ByteArrayOutputStream();
+
+ OutputStream out = edGen.open(
+ bOut, CMSAuthenticatedDataGenerator.AES128_CBC, "BC");*
+ out.write(data);
+
+ out.close();
+
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+ @throws java.io.IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+
+ @param rand instance of SecureRandom to use
+
+
+ containing class for an CMS AuthEnveloped Data object
+
+
+ containing class for an CMS Compressed Data object
+
+
+ Return the uncompressed content.
+
+ @return the uncompressed content
+ @throws CmsException if there is an exception uncompressing the data.
+
+
+ Return the uncompressed content, throwing an exception if the data size
+ is greater than the passed in limit. If the content is exceeded getCause()
+ on the CMSException will contain a StreamOverflowException
+
+ @param limit maximum number of bytes to read
+ @return the content read
+ @throws CMSException if there is an exception uncompressing the data.
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ * General class for generating a compressed CMS message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * CMSCompressedDataGenerator fact = new CMSCompressedDataGenerator();
+ * CMSCompressedData data = fact.Generate(content, algorithm);
+ *
+ *
+
+
+ Generate an object that contains an CMS Compressed Data
+
+
+ Class for reading a CMS Compressed Data stream.
+
+ CMSCompressedDataParser cp = new CMSCompressedDataParser(inputStream);
+
+ process(cp.GetContent().GetContentStream());
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSCompressedDataParser ep = new CMSCompressedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ General class for generating a compressed CMS message stream.
+
+ A simple example of usage.
+
+
+ CMSCompressedDataStreamGenerator gen = new CMSCompressedDataStreamGenerator();
+
+ Stream cOut = gen.Open(outputStream, CMSCompressedDataStreamGenerator.ZLIB);
+
+ cOut.Write(data);
+
+ cOut.Close();
+
+
+
+ base constructor
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Close the underlying data stream.
+ @throws IOException if the close fails.
+
+
+ containing class for an CMS Enveloped Data object
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CmsEnvelopedDataGenerator fact = new CmsEnvelopedDataGenerator();
+
+ fact.AddKeyTransRecipient(cert);
+
+ CmsEnvelopedData data = fact.Generate(content, algorithm);
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+
+ Generate an enveloped object that contains a CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Parsing class for an CMS Enveloped Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ep.GetRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey);
+
+ processDataStream(recData.getContentStream());
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message stream.
+
+ A simple example of usage.
+
+ CmsEnvelopedDataStreamGenerator edGen = new CmsEnvelopedDataStreamGenerator();
+
+ edGen.AddKeyTransRecipient(cert);
+
+ MemoryStream bOut = new MemoryStream();
+
+ Stream out = edGen.Open(
+ bOut, CMSEnvelopedDataGenerator.AES128_CBC);*
+ out.Write(data);
+
+ out.Close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data.
+ Length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CMSEnvelopedDataGenerator fact = new CMSEnvelopedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSEnvelopedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ add a recipient.
+
+ @param cert recipient's public key certificate
+ @exception ArgumentException if there is a problem with the certificate
+
+
+ add a recipient
+
+ @param key the public key used by the recipient
+ @param subKeyId the identifier for the recipient's public key
+ @exception ArgumentException if there is a problem with the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ Add a key agreement based recipient.
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCert recipient's public key certificate.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+ Add multiple key agreement based recipients (sharing a single KeyAgreeRecipientInfo structure).
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCerts recipients' public key certificates.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+
+ Generic routine to copy out the data we want processed.
+
+
+ This routine may be called multiple times.
+
+
+
+ a holding class for a byte array of data to be processed.
+
+
+ A clone of the byte array
+
+
+ a holding class for a file of data to be processed.
+
+
+ The file handle
+
+
+ general class for handling a pkcs7-signature message.
+
+ A simple example of usage - note, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer...
+
+
+ IX509Store certs = s.GetCertificates();
+ SignerInformationStore signers = s.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ if (signer.Verify(cert.GetPublicKey()))
+ {
+ verified++;
+ }
+ }
+
+
+
+ Content with detached signature, digests precomputed
+
+ @param hashes a map of precomputed digests for content indexed by name of hash.
+ @param sigBlock the signature object.
+
+
+ base constructor - content with detached signature.
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ base constructor - with encapsulated content
+
+
+ Return the version number for this object.
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Replace the signerinformation store associated with this
+ CmsSignedData object with the new one passed in. You would
+ probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ @param signedData the signed data object to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @return a new signed data object.
+
+
+ Replace the certificate and CRL information associated with this
+ CmsSignedData object with the new one passed in.
+
+ @param signedData the signed data object to be used as a base.
+ @param x509Certs the new certificates to be used.
+ @param x509Crls the new CRLs to be used.
+ @return a new signed data object.
+ @exception CmsException if there is an error processing the stores
+
+
+ * general class for generating a pkcs7-signature message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * IX509Store certs...
+ * IX509Store crls...
+ * CmsSignedDataGenerator gen = new CmsSignedDataGenerator();
+ *
+ * gen.AddSigner(privKey, cert, CmsSignedGenerator.DigestSha1);
+ * gen.AddCertificates(certs);
+ * gen.AddCrls(crls);
+ *
+ * CmsSignedData data = gen.Generate(content);
+ *
+ *
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ * add a signer - no attributes other than the default ones will be
+ * provided here.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param subjectKeyID subjectKeyID of corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param subjectKeyID subjectKeyID of corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a set of one or more SignerInformation objects representing counter signatures on
+ the passed in SignerInformation object.
+
+ @param signer the signer to be countersigned
+ @param sigProvider the provider to be used for counter signing.
+ @return a store containing the signers.
+
+
+ Parsing class for an CMS Signed Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one signer can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ A simple example of usage for an encapsulated signature.
+
+
+ Two notes: first, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer, and, second, because we are in a streaming
+ mode the order of the operations is important.
+
+
+ CmsSignedDataParser sp = new CmsSignedDataParser(encapSigData);
+
+ sp.GetSignedContent().Drain();
+
+ IX509Store certs = sp.GetCertificates();
+ SignerInformationStore signers = sp.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ Console.WriteLine("verify returns: " + signer.Verify(cert));
+ }
+
+ Note also: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsSignedDataParser ep = new CmsSignedDataParser(new BufferedInputStream(encapSigData, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ base constructor - with encapsulated content
+
+
+ base constructor
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ Return the version number for the SignedData object
+
+ @return the version number
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+ @throws CmsException
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception org.bouncycastle.x509.NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ Replace the signerinformation store associated with the passed
+ in message contained in the stream original with the new one passed in.
+ You would probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+
+
+ Replace the certificate and CRL information associated with this
+ CMSSignedData object with the new one passed in.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param certsAndCrls the new certificates and CRLs to be used.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+ @exception CmsException if there is an error processing the CertStore
+
+
+ General class for generating a pkcs7-signature message stream.
+
+ A simple example of usage.
+
+
+ IX509Store certs...
+ CmsSignedDataStreamGenerator gen = new CmsSignedDataStreamGenerator();
+
+ gen.AddSigner(privateKey, cert, CmsSignedDataStreamGenerator.DIGEST_SHA1);
+
+ gen.AddCertificates(certs);
+
+ Stream sigOut = gen.Open(bOut);
+
+ sigOut.Write(Encoding.UTF8.GetBytes("Hello World!"));
+
+ sigOut.Close();
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer, specifying the digest encryption algorithm - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes - specifying digest
+ encryption algorithm.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data". If dataOutputStream is non null the data
+ being signed will be written to the stream as it is processed.
+ @param out stream the CMS object is to be written to.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+ @param out stream the CMS object is to be written to.
+ @param signedContentType OID for data to be signed.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ Default type for the signed data.
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Add the attribute certificates contained in the passed in store to the
+ generator.
+
+ @param store a store of Version 2 attribute certificates
+ @throws CmsException if an error occurse processing the store.
+
+
+ Add a store of precalculated signers to the generator.
+
+ @param signerStore store of signers
+
+
+ Return a map of oids and byte arrays representing the digests calculated on the content during
+ the last generate.
+
+ @return a map of oids (as String objects) and byte[] representing digests.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+ Return the digest encryption algorithm using one of the standard
+ JCA string representations rather than the algorithm identifier (if
+ possible).
+
+
+ Default authenticated attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in IDictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ Default signed attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType, signingTime, and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType, signingTime, and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in Hashtable of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a secret key known to the other side.
+
+
+ decrypt the content and return an input stream.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using key agreement.
+
+
+ decrypt the content and return an input stream.
+
+
+ the KeyTransRecipientInformation class for a recipient who has been sent a secret
+ key encrypted using their public key that needs to be used to
+ extract the message.
+
+
+ decrypt the content and return it as a byte array.
+
+
+ a basic index for an originator.
+
+
+ Return the certificates stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CertificateHolder objects.
+
+
+ Return the CRLs stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CRLHolder objects.
+
+
+ Return the underlying ASN.1 object defining this SignerInformation object.
+
+ @return a OriginatorInfo.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a password.
+
+
+ return the object identifier for the key derivation algorithm, or null
+ if there is none present.
+
+ @return OID for key derivation algorithm, if present.
+
+
+ decrypt the content and return an input stream.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes assuming ASCII.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes using UTF-8.
+
+
+
+ Generate a RecipientInfo object for the given key.
+
+
+ A
+
+
+ A
+
+
+ A
+
+
+
+
+ * return the object identifier for the key encryption algorithm.
+ *
+ * @return OID for key encryption algorithm.
+
+
+ * return the ASN.1 encoded key encryption algorithm parameters, or null if
+ * there aren't any.
+ *
+ * @return ASN.1 encoding of key encryption algorithm parameters.
+
+
+ Return the MAC calculated for the content stream. Note: this call is only meaningful once all
+ the content has been read.
+
+ @return byte array containing the mac.
+
+
+ Return the first RecipientInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a recipient
+ @return a single RecipientInformation object. Null if none matches.
+
+
+ Return the number of recipients in the collection.
+
+ @return number of recipients identified.
+
+
+ Return all recipients in the collection
+
+ @return a collection of recipients.
+
+
+ Return possible empty collection with recipients matching the passed in RecipientID
+
+ @param selector a recipient id to select against.
+ @return a collection of RecipientInformation objects.
+
+
+ a basic index for a signer.
+
+
+ If the passed in flag is true, the signer signature will be based on the data, not
+ a collection of signed attributes, and no signed attributes will be included.
+
+ @return the builder object
+
+
+ Provide a custom signed attribute generator.
+
+ @param signedGen a generator of signed attributes.
+ @return the builder object
+
+
+ Provide a generator of unsigned attributes.
+
+ @param unsignedGen a generator for signed attributes.
+ @return the builder object
+
+
+ Build a generator with the passed in certHolder issuer and serial number as the signerIdentifier.
+
+ @param contentSigner operator for generating the final signature in the SignerInfo with.
+ @param certHolder carrier for the X.509 certificate related to the contentSigner.
+ @return a SignerInfoGenerator
+ @throws OperatorCreationException if the generator cannot be built.
+
+
+ Build a generator with the passed in subjectKeyIdentifier as the signerIdentifier. If used you should
+ try to follow the calculation described in RFC 5280 section 4.2.1.2.
+
+ @param signerFactory operator factory for generating the final signature in the SignerInfo with.
+ @param subjectKeyIdentifier key identifier to identify the public key for verifying the signature.
+ @return a SignerInfoGenerator
+
+
+ an expanded SignerInfo block from a CMS Signed message
+
+
+ return the version number for this objects underlying SignerInfo structure.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature parameters, or null if there aren't any.
+
+
+ return the content digest that was calculated during verification.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature/encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a table of the signed attributes - indexed by
+ the OID of the attribute.
+
+
+ return a table of the unsigned attributes indexed by
+ the OID of the attribute.
+
+
+ return the encoded signature
+
+
+ Return a SignerInformationStore containing the counter signatures attached to this
+ signer. If no counter signatures are present an empty store is returned.
+
+
+ return the DER encoding of the signed attributes.
+ @throws IOException if an encoding error occurs.
+
+
+ verify that the given public key successfully handles and confirms the
+ signature associated with this signer.
+
+
+ verify that the given certificate successfully handles and confirms
+ the signature associated with this signer and, if a signingTime
+ attribute is available, that the certificate was valid at the time the
+ signature was generated.
+
+
+ Return the base ASN.1 CMS structure that this object contains.
+
+ @return an object containing a CMS SignerInfo structure.
+
+
+ Return a signer information object with the passed in unsigned
+ attributes replacing the ones that are current associated with
+ the object passed in.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param unsignedAttributes the unsigned attributes to add.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Return a signer information object with passed in SignerInformationStore representing counter
+ signatures attached as an unsigned attribute.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param counterSigners signer info objects carrying counter signature.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Create a store containing a single SignerInformation object.
+
+ @param signerInfo the signer information to contain.
+
+
+ Create a store containing a collection of SignerInformation objects.
+
+ @param signerInfos a collection signer information objects to contain.
+
+
+ Return the first SignerInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a signer
+ @return a single SignerInformation object. Null if none matches.
+
+
+ The number of signers in the collection.
+
+
+ An ICollection of all signers in the collection
+
+
+ Return possible empty collection with signers matching the passed in SignerID
+
+ @param selector a signer id to select against.
+ @return a collection of SignerInformation objects.
+
+
+ Basic generator that just returns a preconstructed attribute table
+
+
+ a Diffie-Hellman key exchange engine.
+
+ note: This uses MTI/A0 key agreement in order to make the key agreement
+ secure against passive attacks. If you're doing Diffie-Hellman and both
+ parties have long term public keys you should look at using this. For
+ further information have a look at RFC 2631.
+
+ It's possible to extend this to more than two parties as well, for the moment
+ that is left as an exercise for the reader.
+
+
+ calculate our initial message.
+
+
+ given a message from a given party and the corresponding public key
+ calculate the next message in the agreement sequence. In this case
+ this will represent the shared secret.
+
+
+ a Diffie-Hellman key agreement class.
+
+ note: This is only the basic algorithm, it doesn't take advantage of
+ long term public keys if they are available. See the DHAgreement class
+ for a "better" implementation.
+
+
+ given a short term public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+ P1363 7.2.1 ECSVDP-DH
+
+ ECSVDP-DH is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version. It is based on the work of [DH76], [Mil86],
+ and [Kob87]. This primitive derives a shared secret value from one
+ party's private key and another party's public key, where both have
+ the same set of EC domain parameters. If two parties correctly
+ execute this primitive, they will produce the same output. This
+ primitive can be invoked by a scheme to derive a shared secret key;
+ specifically, it may be used with the schemes ECKAS-DH1 and
+ DL/ECKAS-DH2. It assumes that the input keys are valid (see also
+ Section 7.2.2).
+
+
+ P1363 7.2.2 ECSVDP-DHC
+
+ ECSVDP-DHC is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version with cofactor multiplication. It is based on
+ the work of [DH76], [Mil86], [Kob87], [LMQ98] and [Kal98a]. This
+ primitive derives a shared secret value from one party's private key
+ and another party's public key, where both have the same set of EC
+ domain parameters. If two parties correctly execute this primitive,
+ they will produce the same output. This primitive can be invoked by a
+ scheme to derive a shared secret key; specifically, it may be used
+ with the schemes ECKAS-DH1 and DL/ECKAS-DH2. It does not assume the
+ validity of the input public key (see also Section 7.2.1).
+
+ Note: As stated P1363 compatibility mode with ECDH can be preset, and
+ in this case the implementation doesn't have a ECDH compatibility mode
+ (if you want that just use ECDHBasicAgreement and note they both implement
+ BasicAgreement!).
+
+
+
+ A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange.
+
+ The J-PAKE exchange is defined by Feng Hao and Peter Ryan in the paper
+
+ "Password Authenticated Key Exchange by Juggling, 2008."
+
+ The J-PAKE protocol is symmetric.
+ There is no notion of a client or server, but rather just two participants.
+ An instance of JPakeParticipant represents one participant, and
+ is the primary interface for executing the exchange.
+
+ To execute an exchange, construct a JPakeParticipant on each end,
+ and call the following 7 methods
+ (once and only once, in the given order, for each participant, sending messages between them as described):
+
+ CreateRound1PayloadToSend() - and send the payload to the other participant
+ ValidateRound1PayloadReceived(JPakeRound1Payload) - use the payload received from the other participant
+ CreateRound2PayloadToSend() - and send the payload to the other participant
+ ValidateRound2PayloadReceived(JPakeRound2Payload) - use the payload received from the other participant
+ CalculateKeyingMaterial()
+ CreateRound3PayloadToSend(BigInteger) - and send the payload to the other participant
+ ValidateRound3PayloadReceived(JPakeRound3Payload, BigInteger) - use the payload received from the other participant
+
+ Each side should derive a session key from the keying material returned by CalculateKeyingMaterial().
+ The caller is responsible for deriving the session key using a secure key derivation function (KDF).
+
+ Round 3 is an optional key confirmation process.
+ If you do not execute round 3, then there is no assurance that both participants are using the same key.
+ (i.e. if the participants used different passwords, then their session keys will differ.)
+
+ If the round 3 validation succeeds, then the keys are guaranteed to be the same on both sides.
+
+ The symmetric design can easily support the asymmetric cases when one party initiates the communication.
+ e.g. Sometimes the round1 payload and round2 payload may be sent in one pass.
+ Also, in some cases, the key confirmation payload can be sent together with the round2 payload.
+ These are the trivial techniques to optimize the communication.
+
+ The key confirmation process is implemented as specified in
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ This class is stateful and NOT threadsafe.
+ Each instance should only be used for ONE complete J-PAKE exchange
+ (i.e. a new JPakeParticipant should be constructed for each new J-PAKE exchange).
+
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ the JPakePrimeOrderGroups#NIST_3072 prime order group,
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+
+
+
+ Constructor for a new JPakeParticipant.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+ Digest to use during zero knowledge proofs and key confirmation
+ (SHA-256 or stronger preferred).
+ Source of secure random data for x1 and x2, and for the zero knowledge proofs.
+
+
+
+ Gets the current state of this participant.
+ See the STATE_* constants for possible values.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 1.
+
+ After execution, the State state} will be STATE_ROUND_1_CREATED}.
+
+
+
+
+ Validates the payload received from the other participant during round 1.
+
+ Must be called prior to CreateRound2PayloadToSend().
+
+ After execution, the State state will be STATE_ROUND_1_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException
+ if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 2.
+
+ ValidateRound1PayloadReceived(JPakeRound1Payload) must be called prior to this method.
+
+ After execution, the State state will be STATE_ROUND_2_CREATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Validates the payload received from the other participant during round 2.
+ Note that this DOES NOT detect a non-common password.
+ The only indication of a non-common password is through derivation
+ of different keys (which can be detected explicitly by executing round 3 and round 4)
+
+ Must be called prior to CalculateKeyingMaterial().
+
+ After execution, the State state will be STATE_ROUND_2_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws
+ InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Calculates and returns the key material.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPakeParticipant).
+
+ The keying material will be identical for each participant if and only if
+ each participant's password is the same. i.e. If the participants do not
+ share the same password, then each participant will derive a different key.
+ Therefore, if you immediately start using a key derived from
+ the keying material, then you must handle detection of incorrect keys.
+ If you want to handle this detection explicitly, you can optionally perform
+ rounds 3 and 4. See JPakeParticipant for details on how to execute
+ rounds 3 and 4.
+
+ The keying material will be in the range [0, p-1].
+
+ ValidateRound2PayloadReceived(JPakeRound2Payload) must be called prior to this method.
+
+ As a side effect, the internal password array is cleared, since it is no longer needed.
+
+ After execution, the State state will be STATE_KEY_CALCULATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound2PayloadReceived(JPakeRound2Payload),
+ or if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state} will be STATE_ROUND_3_CREATED.
+ Throws InvalidOperationException if called prior to CalculateKeyingMaterial, or multiple
+ times.
+
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ Validates the payload received from the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state will be STATE_ROUND_3_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException if called prior to
+ CalculateKeyingMaterial or multiple times
+
+ The round 3 payload received from the other participant.
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ A pre-computed prime order group for use during a J-PAKE exchange.
+
+ Typically a Schnorr group is used. In general, J-PAKE can use any prime order group
+ that is suitable for public key cryptography, including elliptic curve cryptography.
+
+ See JPakePrimeOrderGroups for convenient standard groups.
+
+ NIST publishes
+ many groups that can be used for the desired level of security.
+
+
+
+
+ Constructs a new JPakePrimeOrderGroup.
+
+ In general, you should use one of the pre-approved groups from
+ JPakePrimeOrderGroups, rather than manually constructing one.
+
+ The following basic checks are performed:
+
+ p-1 must be evenly divisible by q
+ g must be in [2, p-1]
+ g^q mod p must equal 1
+ p must be prime (within reasonably certainty)
+ q must be prime (within reasonably certainty)
+
+ The prime checks are performed using BigInteger#isProbablePrime(int),
+ and are therefore subject to the same probability guarantees.
+
+ These checks prevent trivial mistakes.
+ However, due to the small uncertainties if p and q are not prime,
+ advanced attacks are not prevented.
+ Use it at your own risk.
+
+ Throws NullReferenceException if any argument is null. Throws
+ InvalidOperationException is any of the above validations fail.
+
+
+
+
+ Constructor used by the pre-approved groups in JPakePrimeOrderGroups.
+ These pre-approved groups can avoid the expensive checks.
+ User-specified groups should not use this constructor.
+
+
+
+
+ Standard pre-computed prime order groups for use by J-PAKE.
+ (J-PAKE can use pre-computed prime order groups, same as DSA and Diffie-Hellman.)
+
+ This class contains some convenient constants for use as input for
+ constructing {@link JPAKEParticipant}s.
+
+ The prime order groups below are taken from Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB),
+ and from the prime order groups
+ published by NIST.
+
+
+
+
+ From Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB)
+ 1024-bit p, 160-bit q and 1024-bit g for 80-bit security.
+
+
+
+
+ From NIST.
+ 2048-bit p, 224-bit q and 2048-bit g for 112-bit security.
+
+
+
+
+ From NIST.
+ 3072-bit p, 256-bit q and 3072-bit g for 128-bit security.
+
+
+
+
+ The payload sent/received during the first round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance of this payload to
+ the other. The payload to send should be created via
+ JPAKEParticipant.CreateRound1PayloadToSend().
+
+ Each participant must also validate the payload received from the other.
+ The received payload should be validated via
+ JPAKEParticipant.ValidateRound1PayloadReceived(JPakeRound1Payload).
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of g^x1
+
+
+
+
+ The value of g^x2
+
+
+
+
+ The zero knowledge proof for x1.
+
+ This is a two element array, containing {g^v, r} for x1.
+
+
+
+
+ The zero knowledge proof for x2.
+
+ This is a two element array, containing {g^v, r} for x2.
+
+
+
+
+ The payload sent/received during the second round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound2PayloadToSend()
+
+ Each JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound2PayloadReceived(JPakeRound2Payload)
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of A, as computed during round 2.
+
+
+
+
+ The zero knowledge proof for x2 * s.
+
+ This is a two element array, containing {g^v, r} for x2 * s.
+
+
+
+
+ The payload sent/received during the optional third round of a J-PAKE exchange,
+ which is for explicit key confirmation.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound3PayloadToSend(BigInteger)
+
+ Eeach JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound3PayloadReceived(JPakeRound3Payload, BigInteger)
+
+
+
+
+ The id of the {@link JPAKEParticipant} who created/sent this payload.
+
+
+
+
+ The value of MacTag, as computed by round 3.
+
+ See JPAKEUtil#calculateMacTag(string, string, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, org.bouncycastle.crypto.Digest)
+
+
+
+
+ Primitives needed for a J-PAKE exchange.
+
+ The recommended way to perform a J-PAKE exchange is by using
+ two JPAKEParticipants. Internally, those participants
+ call these primitive operations in JPakeUtilities.
+
+ The primitives, however, can be used without a JPAKEParticipant if needed.
+
+
+
+
+ Return a value that can be used as x1 or x3 during round 1.
+ The returned value is a random value in the range [0, q-1].
+
+
+
+
+ Return a value that can be used as x2 or x4 during round 1.
+ The returned value is a random value in the range [1, q-1].
+
+
+
+
+ Converts the given password to a BigInteger
+ for use in arithmetic calculations.
+
+
+
+
+ Calculate g^x mod p as done in round 1.
+
+
+
+
+ Calculate ga as done in round 2.
+
+
+
+
+ Calculate x2 * s as done in round 2.
+
+
+
+
+ Calculate A as done in round 2.
+
+
+
+
+ Calculate a zero knowledge proof of x using Schnorr's signature.
+ The returned array has two elements {g^v, r = v-x*h} for x.
+
+
+
+
+ Validates that g^x4 is not 1.
+ throws CryptoException if g^x4 is 1
+
+
+
+
+ Validates that ga is not 1.
+
+ As described by Feng Hao...
+ Alice could simply check ga != 1 to ensure it is a generator.
+ In fact, as we will explain in Section 3, (x1 + x3 + x4 ) is random over Zq even in the face of active attacks.
+ Hence, the probability for ga = 1 is extremely small - on the order of 2^160 for 160-bit q.
+
+ throws CryptoException if ga is 1
+
+
+
+
+ Validates the zero knowledge proof (generated by
+ calculateZeroKnowledgeProof(BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, string, Digest, SecureRandom)
+ is correct.
+
+ throws CryptoException if the zero knowledge proof is not correct
+
+
+
+
+ Calculates the keying material, which can be done after round 2 has completed.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPAKEParticipant).
+
+ KeyingMaterial = (B/g^{x2*x4*s})^x2
+
+
+
+
+ Validates that the given participant ids are not equal.
+ (For the J-PAKE exchange, each participant must use a unique id.)
+
+ Throws CryptoException if the participantId strings are equal.
+
+
+
+
+ Validates that the given participant ids are equal.
+ This is used to ensure that the payloads received from
+ each round all come from the same participant.
+
+
+
+
+ Validates that the given object is not null.
+ throws NullReferenceException if the object is null.
+
+ object in question
+ name of the object (to be used in exception message)
+
+
+
+ Calculates the MacTag (to be used for key confirmation), as defined by
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ MacTag = HMAC(MacKey, MacLen, MacData)
+ MacKey = H(K || "JPAKE_KC")
+ MacData = "KC_1_U" || participantId || partnerParticipantId || gx1 || gx2 || gx3 || gx4
+
+ Note that both participants use "KC_1_U" because the sender of the round 3 message
+ is always the initiator for key confirmation.
+
+ HMAC = {@link HMac} used with the given {@link Digest}
+ H = The given {@link Digest}
+ MacLen = length of MacTag
+
+
+
+
+ Calculates the MacKey (i.e. the key to use when calculating the MagTag for key confirmation).
+
+ MacKey = H(K || "JPAKE_KC")
+
+
+
+
+ Validates the MacTag received from the partner participant.
+
+ throws CryptoException if the participantId strings are equal.
+
+
+
+ Generator for Concatenation Key Derivation Function defined in NIST SP 800-56A, Sect 5.8.1
+
+
+ @param digest the digest to be used as the source of generated bytes
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ RFC 2631 Diffie-hellman KEK derivation function.
+
+
+ X9.63 based key derivation function for ECDH CMS.
+
+
+
+ SM2 Key Exchange protocol - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
+
+
+
+ Implements the client side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the client to begin new authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates client's credentials given the client's salt, identity and password
+ @param salt The salt used in the client's verifier.
+ @param identity The user's identity (eg. username)
+ @param password The user's password
+ @return Client's public value to send to server
+
+
+ Generates client's verification message given the server's credentials
+ @param serverB The server's credentials
+ @return Client's verification message for the server
+ @throws CryptoException If server's credentials are invalid
+
+
+ Computes the client evidence message M1 using the previously received values.
+ To be called after calculating the secret S.
+ @return M1: the client side generated evidence message
+ @throws CryptoException
+
+
+ Authenticates the server evidence message M2 received and saves it only if correct.
+ @param M2: the server side generated evidence message
+ @return A boolean indicating if the server message M2 was the expected one.
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after verifying the server evidence message M2.
+ @return Key: the mutually authenticated symmetric session key
+ @throws CryptoException
+
+
+ Implements the server side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the server to accept a new client authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param v The client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates the server's credentials that are to be sent to the client.
+ @return The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+ @param clientA The client's credentials
+ @return A shared secret BigInteger
+ @throws CryptoException If client's credentials are invalid
+
+
+ Authenticates the received client evidence message M1 and saves it only if correct.
+ To be called after calculating the secret S.
+ @param M1: the client side generated evidence message
+ @return A boolean indicating if the client message M1 was the expected one.
+ @throws CryptoException
+
+
+ Computes the server evidence message M2 using the previously verified values.
+ To be called after successfully verifying the client evidence message M1.
+ @return M2: the server side generated evidence message
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after calculating the server evidence message M2.
+ @return Key: the mutual authenticated symmetric session key
+ @throws CryptoException
+
+
+ Computes the client evidence message (M1) according to the standard routine:
+ M1 = H( A | B | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param B The public server value
+ @param S The secret calculated by both sides
+ @return M1 The calculated client evidence message
+
+
+ Computes the server evidence message (M2) according to the standard routine:
+ M2 = H( A | M1 | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param M1 The client evidence message
+ @param S The secret calculated by both sides
+ @return M2 The calculated server evidence message
+
+
+ Computes the final Key according to the standard routine: Key = H(S)
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param S The secret calculated by both sides
+ @return
+
+
+ Generates new SRP verifier for user
+
+
+ Initialises generator to create new verifiers
+ @param N The safe prime to use (see DHParametersGenerator)
+ @param g The group parameter to use (see DHParametersGenerator)
+ @param digest The digest to use. The same digest type will need to be used later for the actual authentication
+ attempt. Also note that the final session key size is dependent on the chosen digest.
+
+
+ Creates a new SRP verifier
+ @param salt The salt to use, generally should be large and random
+ @param identity The user's identifying information (eg. username)
+ @param password The user's password
+ @return A new verifier for use in future SRP authentication
+
+
+ a holding class for public/private parameter pairs.
+
+
+ basic constructor.
+
+ @param publicParam a public key parameters object.
+ @param privateParam the corresponding private key parameters.
+
+
+ return the public key parameters.
+
+ @return the public key parameters.
+
+
+ return the private key parameters.
+
+ @return the private key parameters.
+
+
+ The AEAD block ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ a buffer wrapper for an asymmetric block cipher, allowing input
+ to be accumulated in a piecemeal fashion until final processing.
+
+
+ base constructor.
+
+ @param cipher the cipher this buffering object wraps.
+
+
+ return the amount of data sitting in the buffer.
+
+ @return the amount of data sitting in the buffer.
+
+
+ initialise the buffer and the underlying cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+
+
+ process the contents of the buffer using the underlying
+ cipher.
+
+ @return the result of the encryption/decryption process on the
+ buffer.
+ @exception InvalidCipherTextException if we are given a garbage block.
+
+
+ Reset the buffer
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion. The BufferedBlockCipher outputs a block only when the
+ buffer is full and more data is being added, or on a doFinal.
+
+ Note: in the case where the underlying cipher is either a CFB cipher or an
+ OFB one the last block may not be a multiple of the block size.
+
+
+
+ constructor for subclasses
+
+
+ Create a buffered block cipher without padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ false otherwise.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The base class for symmetric, or secret, cipher key generators.
+
+
+ initialise the key generator.
+
+ @param param the parameters to be used for key generation
+
+
+ Generate a secret key.
+
+ @return a byte array containing the key value.
+
+
+ this exception is thrown if a buffer that is meant to have output
+ copied into it turns out to be too short, or if we've been given
+ insufficient input. In general this exception will Get thrown rather
+ than an ArrayOutOfBounds exception.
+
+
+ base constructor.
+
+
+ create a DataLengthException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Basic sized constructor - size in bits.
+
+ @param digestSize size of the digest in bits
+
+
+ Blake2b for authentication ("Prefix-MAC mode").
+ After calling the doFinal() method, the key will
+ remain to be used for further computations of
+ this instance.
+ The key can be overwritten using the clearKey() method.
+
+ @param key A key up to 64 bytes or null
+
+
+ Blake2b with key, required digest length (in bytes), salt and personalization.
+ After calling the doFinal() method, the key, the salt and the personal string
+ will remain and might be used for further computations with this instance.
+ The key can be overwritten using the clearKey() method, the salt (pepper)
+ can be overwritten using the clearSalt() method.
+
+ @param key A key up to 64 bytes or null
+ @param digestLength from 1 up to 64 bytes
+ @param salt 16 bytes or null
+ @param personalization 16 bytes or null
+
+
+ update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+ Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to it's initial state.
+ The key, the salt and the personal string will
+ remain for further computations.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies it's compression
+ function to.
+
+ @return byte length of the digests internal buffer.
+
+
+ Overwrite the key
+ if it is no longer used (zeroization)
+
+
+ Overwrite the salt (pepper) if it
+ is secret and no longer used (zeroization)
+
+
+ Implementation of the cryptographic hash function BLAKE2s.
+
+ BLAKE2s offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2s offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2s is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 32 bytes.
+
+
+ BLAKE2s Initialization Vector
+
+
+
+ Message word permutations
+
+
+
+ Whenever this buffer overflows, it will be processed in the Compress()
+ function. For performance issues, long messages will not use this buffer.
+
+
+ Position of last inserted byte
+
+
+
+ Internal state, in the BLAKE2 paper it is called v
+
+
+
+ State vector, in the BLAKE2 paper it is called h
+
+
+
+ holds least significant bits of counter
+
+
+
+ holds most significant bits of counter
+
+
+
+ finalization flag, for last block: ~0
+
+
+
+ BLAKE2s-256 for hashing.
+
+
+ BLAKE2s for hashing.
+
+ @param digestBits the desired digest length in bits. Must be one of
+ [128, 160, 224, 256].
+
+
+ BLAKE2s for authentication ("Prefix-MAC mode").
+
+ After calling the doFinal() method, the key will remain to be used for
+ further computations of this instance. The key can be overwritten using
+ the clearKey() method.
+
+ @param key a key up to 32 bytes or null
+
+
+ BLAKE2s with key, required digest length, salt and personalization.
+
+ After calling the doFinal() method, the key, the salt and the personal
+ string will remain and might be used for further computations with this
+ instance. The key can be overwritten using the clearKey() method, the
+ salt (pepper) can be overwritten using the clearSalt() method.
+
+ @param key a key up to 32 bytes or null
+ @param digestBytes from 1 up to 32 bytes
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Overwrite the key if it is no longer used (zeroization).
+
+
+ Overwrite the salt (pepper) if it is secret and no longer used
+ (zeroization).
+
+
+ implementation of Ukrainian DSTU 7564 hash function
+
+
+ base implementation of MD4 family style digest as outlined in
+ "Handbook of Applied Cryptography", pages 344 - 347.
+
+
+ implementation of GOST R 34.11-94
+
+
+ Standard constructor
+
+
+ Constructor to allow use of a particular sbox with GOST28147
+ @see GOST28147Engine#getSBox(String)
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Return the size of block that the compression function is applied to in bytes.
+
+ @return internal byte length of a block.
+
+
+ Base class for SHA-384 and SHA-512.
+
+
+ Constructor for variable length word
+
+
+ Copy constructor. We are using copy constructors in place
+ of the object.Clone() interface as this interface is not
+ supported by J2ME.
+
+
+ adjust the byte counts so that byteCount2 represents the
+ upper long (less 3 bits) word of the byte count.
+
+
+ implementation of MD2
+ as outlined in RFC1319 by B.Kaliski from RSA Laboratories April 1992
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param out the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ implementation of MD4 as RFC 1320 by R. Rivest, MIT Laboratory for
+ Computer Science and RSA Data Security, Inc.
+
+ NOTE: This algorithm is only included for backwards compatibility
+ with legacy applications, it's not secure, don't use it for anything new!
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ Wrapper removes exposure to the IMemoable interface on an IDigest implementation.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @exception IllegalArgumentException if baseDigest is null
+
+
+ implementation of RipeMD128
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of RipeMD see,
+ http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD256.
+ Note: this algorithm offers the same level of security as RipeMD128.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD 320.
+ Note: this algorithm offers the same level of security as RipeMD160.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349.
+
+ It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5
+ is the "endianness" of the word processing!
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ SHA-224 as described in RFC 3874
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-224 512 32 224
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-256. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-384. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHA-3 based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Draft FIPS 180-2 implementation of SHA-512. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ FIPS 180-4 implementation of SHA-512/t
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHAKE based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Wrapper class that reduces the output length of a particular digest to
+ only the first n bytes of the digest function.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @param length length in bytes of the output of doFinal.
+ @exception ArgumentException if baseDigest is null, or length is greater than baseDigest.GetDigestSize().
+
+
+
+ Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block
+ sizes, based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation is the basis for and , implementing the
+ parameter based configuration system that allows Skein to be adapted to multiple applications.
+ Initialising the engine with allows standard and arbitrary parameters to
+ be applied during the Skein hash function.
+
+ Implemented:
+
+ - 256, 512 and 1024 bit internal states.
+ - Full 96 bit input length.
+ - Parameters defined in the Skein specification, and arbitrary other pre and post message
+ parameters.
+ - Arbitrary output size in 1 byte intervals.
+
+
+ Not implemented:
+
+ - Sub-byte length input (bit padding).
+ - Tree hashing.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+ The parameter type for the Skein key.
+
+
+ The parameter type for the Skein configuration block.
+
+
+ The parameter type for the message.
+
+
+ The parameter type for the output transformation.
+
+
+ Precalculated UBI(CFG) states for common state/output combinations without key or other
+ pre-message params.
+
+
+ Point at which position might overflow long, so switch to add with carry logic
+
+
+ Bit 127 = final
+
+
+ Bit 126 = first
+
+
+ UBI uses a 128 bit tweak
+
+
+ Whether 64 bit position exceeded
+
+
+ Advances the position in the tweak by the specified value.
+
+
+ The Unique Block Iteration chaining mode.
+
+
+ Buffer for the current block of message data
+
+
+ Offset into the current message block
+
+
+ Buffer for message words for feedback into encrypted block
+
+
+ Underlying Threefish tweakable block cipher
+
+
+ Size of the digest output, in bytes
+
+
+ The current chaining/state value
+
+
+ The initial state value
+
+
+ The (optional) key parameter
+
+
+ Parameters to apply prior to the message
+
+
+ Parameters to apply after the message, but prior to output
+
+
+ The current UBI operation
+
+
+ Buffer for single byte update method
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Creates a SkeinEngine as an exact copy of an existing instance.
+
+
+
+
+ Initialises the Skein engine with the provided parameters. See for
+ details on the parameterisation of the Skein hash function.
+
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+ Calculate the initial (pre message block) chaining state.
+
+
+
+ Reset the engine to the initial state (with the key and any pre-message parameters , ready to
+ accept message input.
+
+
+
+
+ Implementation of Chinese SM3 digest as described at
+ http://tools.ietf.org/html/draft-shen-sm3-hash-00
+ and at .... ( Chinese PDF )
+
+
+ The specification says "process a bit stream",
+ but this is written to process bytes in blocks of 4,
+ meaning this will process 32-bit word groups.
+ But so do also most other digest specifications,
+ including the SHA-256 which was a origin for
+ this specification.
+
+
+
+
+ Standard constructor
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+
+ reset the chaining variables
+
+
+
+ implementation of Tiger based on:
+
+ http://www.cs.technion.ac.il/~biham/Reports/Tiger
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Implementation of WhirlpoolDigest, based on Java source published by Barreto
+ and Rijmen.
+
+
+
+ Copy constructor. This will copy the state of the provided message
+ digest.
+
+
+ Reset the chaining variables
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ ISO 9796-1 padding. Note in the light of recent results you should
+ only use this with RSA (rather than the "simpler" Rabin keys) and you
+ should never use it with anything other than a hash (ie. even if the
+ message is small don't sign the message, sign it's hash) or some "random"
+ value. See your favorite search engine for details.
+
+
+ return the input block size. The largest message we can process
+ is (key_size_in_bits + 3)/16, which in our world comes to
+ key_size_in_bytes / 2.
+
+
+ return the maximum possible size for the output.
+
+
+ set the number of bits in the next message to be treated as
+ pad bits.
+
+
+ retrieve the number of pad bits in the last decoded message.
+
+
+ @exception InvalidCipherTextException if the decrypted block is not a valid ISO 9796 bit string
+
+
+ Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2.
+
+
+ @exception InvalidCipherTextException if the decrypted block turns out to
+ be badly formatted.
+
+
+ int to octet string.
+
+
+ mask generator function, as described in PKCS1v2.
+
+
+ this does your basic Pkcs 1 v1.5 padding - whether or not you should be using this
+ depends on your application - see Pkcs1 Version 2 for details.
+
+
+ some providers fail to include the leading zero in PKCS1 encoded blocks. If you need to
+ work with one of these set the system property Org.BouncyCastle.Pkcs1.Strict to false.
+
+
+ The same effect can be achieved by setting the static property directly
+
+ The static property is checked during construction of the encoding object, it is set to
+ true by default.
+
+
+
+ Basic constructor.
+
+ @param cipher
+
+
+ Constructor for decryption with a fixed plaintext length.
+
+ @param cipher The cipher to use for cryptographic operation.
+ @param pLen Length of the expected plaintext.
+
+
+ Constructor for decryption with a fixed plaintext length and a fallback
+ value that is returned, if the padding is incorrect.
+
+ @param cipher
+ The cipher to use for cryptographic operation.
+ @param fallback
+ The fallback value, we don't to a arraycopy here.
+
+
+ Checks if the argument is a correctly PKCS#1.5 encoded Plaintext
+ for encryption.
+
+ @param encoded The Plaintext.
+ @param pLen Expected length of the plaintext.
+ @return Either 0, if the encoding is correct, or -1, if it is incorrect.
+
+
+ Decode PKCS#1.5 encoding, and return a random value if the padding is not correct.
+
+ @param in The encrypted block.
+ @param inOff Offset in the encrypted block.
+ @param inLen Length of the encrypted block.
+ @param pLen Length of the desired output.
+ @return The plaintext without padding, or a random value if the padding was incorrect.
+ @throws InvalidCipherTextException
+
+
+ @exception InvalidCipherTextException if the decrypted block is not in Pkcs1 format.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first.
+
+ The slowest version uses no static tables at all and computes the values in each round.
+
+
+ This file contains the middle performance version with 2Kbytes of static tables for round precomputation.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael)), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor), they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations), 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each), for a total of 2Kbytes),
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values in each round
+
+
+ This file contains the fast version with 8Kbytes of static tables for round precomputation
+
+
+ Unfortunately this class has a few side channel issues.
+ In an environment where encryption/decryption may be closely observed it should not be used.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values
+ in each round.
+
+
+ This file contains the slowest performance version with no static tables
+ for round precomputation, but it has the smallest foot print.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ A class that provides Blowfish key encryption operations,
+ such as encoding data and generating keys.
+ All the algorithms herein are from Applied Cryptography
+ and implement a simplified cryptography interface.
+
+
+ initialise a Blowfish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ apply the encryption cycle to each value pair in the table.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Camellia - based on RFC 3713.
+
+
+ Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.
+
+
+
+ An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3657.txt.
+
+
+
+ A class that provides CAST key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC's
+
+ RFC2144 - Cast5 (64bit block, 40-128bit key)
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ initialise a CAST cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ The first of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The second of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The third of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ Does the 16 rounds to encrypt the block.
+
+ @param L0 the LH-32bits of the plaintext block
+ @param R0 the RH-32bits of the plaintext block
+
+
+ A class that provides CAST6 key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC
+
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Does the 12 quad rounds rounds to encrypt the block.
+
+ @param A the 00-31 bits of the plaintext block
+ @param B the 32-63 bits of the plaintext block
+ @param C the 64-95 bits of the plaintext block
+ @param D the 96-127 bits of the plaintext block
+ @param result the resulting ciphertext
+
+
+ Does the 12 quad rounds rounds to decrypt the block.
+
+ @param A the 00-31 bits of the ciphertext block
+ @param B the 32-63 bits of the ciphertext block
+ @param C the 64-95 bits of the ciphertext block
+ @param D the 96-127 bits of the ciphertext block
+ @param result the resulting plaintext
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Creates a ChaCha engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+
+ ChaCha function.
+
+ The number of ChaCha rounds to execute
+ The input words.
+ The ChaCha state to modify.
+
+
+ A class that provides a basic DESede (or Triple DES) engine.
+
+
+ initialise a DESede cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ * Wrap keys according to
+ *
+ * draft-ietf-smime-key-wrap-01.txt.
+ *
+ * Note:
+ *
+ * - this is based on a draft, and as such is subject to change - don't use this class for anything requiring long term storage.
+ * - if you are using this to wrap triple-des keys you need to set the
+ * parity bits on the key and, if it's a two-key triple-des key, pad it
+ * yourself.
+ *
+ *
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ A class that provides a basic DES engine.
+
+
+ initialise a DES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ what follows is mainly taken from "Applied Cryptography", by
+ Bruce Schneier, however it also bears great resemblance to Richard
+ Outerbridge's D3DES...
+
+
+ Generate an integer based working key based on our secret key
+ and what we processing we are planning to do.
+
+ Acknowledgements for this routine go to James Gillogly and Phil Karn.
+ (whoever, and wherever they are!).
+
+
+ the DES engine.
+
+
+ implementation of DSTU 7624 (Kalyna)
+
+
+ this does your basic ElGamal algorithm.
+
+
+ initialise the ElGamal engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary ElGamal key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ encryption, and twice the length as the size of P on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ decryption, and twice the length as the size of P on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic ElGamal algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param length the length of the data to be processed.
+ @return the result of the ElGamal process.
+ @exception DataLengthException the input block is too large.
+
+
+ implementation of GOST 28147-89
+
+
+ standard constructor.
+
+
+ initialise an Gost28147 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ Return the S-Box associated with SBoxName
+ @param sBoxName name of the S-Box
+ @return byte array representing the S-Box
+
+
+ HC-128 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 128-bit secret key and a 128-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc128_p3.pdf
+
+ It is a third phase candidate in the eStream contest, and is patent-free.
+ No attacks are known as of today (April 2007). See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-128 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 128 bit long).
+
+
+ HC-256 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 256-bit secret key and a 256-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc256_p3.pdf
+
+ Its brother, HC-128, is a third phase candidate in the eStream contest.
+ The algorithm is patent-free. No attacks are known as of today (April 2007).
+ See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-256 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 256 bit long).
+
+
+ A class that provides a basic International Data Encryption Algorithm (IDEA) engine.
+
+ This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM"
+ implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (baring 1 typo at the
+ end of the mulinv function!).
+
+
+ It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/
+
+
+ Note 1: This algorithm is patented in the USA, Japan, and Europe including
+ at least Austria, France, Germany, Italy, Netherlands, Spain, Sweden, Switzerland
+ and the United Kingdom. Non-commercial use is free, however any commercial
+ products are liable for royalties. Please see
+ www.mediacrypt.com for
+ further details. This announcement has been included at the request of
+ the patent holders.
+
+
+ Note 2: Due to the requests concerning the above, this algorithm is now only
+ included in the extended assembly. It is not included in the default distributions.
+
+
+
+ standard constructor.
+
+
+ initialise an IDEA cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return x = x * y where the multiplication is done modulo
+ 65537 (0x10001) (as defined in the IDEA specification) and
+ a zero input is taken to be 65536 (0x10000).
+
+ @param x the x value
+ @param y the y value
+ @return x = x * y
+
+
+ The following function is used to expand the user key to the encryption
+ subkey. The first 16 bytes are the user key, and the rest of the subkey
+ is calculated by rotating the previous 16 bytes by 25 bits to the left,
+ and so on until the subkey is completed.
+
+
+ This function computes multiplicative inverse using Euclid's Greatest
+ Common Divisor algorithm. Zero and one are self inverse.
+
+ i.e. x * MulInv(x) == 1 (modulo BASE)
+
+
+
+ Return the additive inverse of x.
+
+ i.e. x + AddInv(x) == 0
+
+
+
+ The function to invert the encryption subkey to the decryption subkey.
+ It also involves the multiplicative inverse and the additive inverse functions.
+
+
+ support class for constructing intergrated encryption ciphers
+ for doing basic message exchanges on top of key agreement ciphers
+
+
+ set up for use with stream mode, where the key derivation function
+ is used to provide a stream of bytes to xor with the message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+
+
+ set up for use in conjunction with a block cipher to handle the
+ message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+ @param cipher the cipher to used for encrypting the message
+
+
+ Initialise the encryptor.
+
+ @param forEncryption whether or not this is encryption/decryption.
+ @param privParam our private key parameters
+ @param pubParam the recipient's/sender's public key parameters
+ @param param encoding and derivation parameters.
+
+
+ Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count).
+ see: http://www.burtleburtle.net/bob/rand/isaacafa.html
+
+
+ initialise an ISAAC cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ NaccacheStern Engine. For details on this cipher, please see
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Initializes this algorithm. Must be called before all other Functions.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#init(bool,
+ org.bouncycastle.crypto.CipherParameters)
+
+
+ Returns the input block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetInputBlockSize()
+
+
+ Returns the output block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetOutputBlockSize()
+
+
+ Process a single Block using the Naccache-Stern algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#ProcessBlock(byte[],
+ int, int)
+
+
+ Encrypts a BigInteger aka Plaintext with the public key.
+
+ @param plain
+ The BigInteger to encrypt
+ @return The byte[] representation of the encrypted BigInteger (i.e.
+ crypted.toByteArray())
+
+
+ Adds the contents of two encrypted blocks mod sigma
+
+ @param block1
+ the first encrypted block
+ @param block2
+ the second encrypted block
+ @return encrypt((block1 + block2) mod sigma)
+ @throws InvalidCipherTextException
+
+
+ Convenience Method for data exchange with the cipher.
+
+ Determines blocksize and splits data to blocksize.
+
+ @param data the data to be processed
+ @return the data after it went through the NaccacheSternEngine.
+ @throws InvalidCipherTextException
+
+
+ Computes the integer x that is expressed through the given primes and the
+ congruences with the chinese remainder theorem (CRT).
+
+ @param congruences
+ the congruences c_i
+ @param primes
+ the primes p_i
+ @return an integer x for that x % p_i == c_i
+
+
+ A Noekeon engine, using direct-key mode.
+
+
+ Create an instance of the Noekeon encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ The no-op engine that just copies bytes through, irrespective of whether encrypting and decrypting.
+ Provided for the sake of completeness.
+
+
+ an implementation of RC2 as described in RFC 2268
+ "A Description of the RC2(r) Encryption Algorithm" R. Rivest.
+
+
+ initialise a RC2 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the result rotating the 16 bit number in x left by y
+
+
+ Wrap keys according to RFC 3217 - RC2 mechanism
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ initialise a RC4 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation has a word size of 32 bits.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation is set to work with a 64 bit word size.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-64 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ An RC6 engine.
+
+
+ Create an instance of the RC6 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param inKey the key to be used
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ an implementation of the RFC 3211 Key Wrap
+ Specification.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap
+ Specification as described in RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3394.txt
+ and http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ an implementation of Rijndael, based on the documentation and reference implementation
+ by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.
+
+ Note: this implementation is based on information prior to readonly NIST publication.
+
+
+
+ multiply two elements of GF(2^m)
+ needed for MixColumn and InvMixColumn
+
+
+ xor corresponding text input and round key input bytes
+
+
+ Row 0 remains unchanged
+ The other three rows are shifted a variable amount
+
+
+ Replace every byte of the input by the byte at that place
+ in the nonlinear S-box
+
+
+ Mix the bytes of every column in a linear way
+
+
+ Mix the bytes of every column in a linear way
+ This is the opposite operation of Mixcolumn
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on keyBits and blockBits
+
+
+ default constructor - 128 bit block size.
+
+
+ basic constructor - set the cipher up for a given blocksize
+
+ @param blocksize the blocksize in bits, must be 128, 192, or 256.
+
+
+ initialise a Rijndael cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ this does your basic RSA algorithm with blinding
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+ This does your basic RSA Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475. You need to use this if you are
+ trying to get another party to generate signatures without them being aware
+ of the message they are signing.
+
+
+ Initialise the blinding engine.
+
+ @param forEncryption true if we are encrypting (blinding), false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the RSA blinding algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @throws DataLengthException the input block is too large.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+
+ Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005
+
+
+
+ Constants
+
+
+
+ Creates a 20 round Salsa20 engine.
+
+
+
+
+ Creates a Salsa20 engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ Rotate left
+
+ @param x value to rotate
+ @param y amount to rotate x
+
+ @return rotated x
+
+
+ Implementation of the SEED algorithm as described in RFC 4009
+
+
+
+ An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc4010.txt.
+
+
+
+ * Serpent is a 128-bit 32-round block cipher with variable key lengths,
+ * including 128, 192 and 256 bit keys conjectured to be at least as
+ * secure as three-key triple-DES.
+ *
+ * Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ * candidate algorithm for the NIST AES Quest.
+ *
+ *
+ * For full details see The Serpent home page
+ *
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ initialise a Serpent cipher.
+
+ @param encrypting whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @throws IllegalArgumentException if the params argument is
+ inappropriate.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @return the number of bytes processed and produced.
+ @throws DataLengthException if there isn't enough data in in, or
+ space in out.
+ @throws IllegalStateException if the cipher isn't initialised.
+
+
+ InvSO - {13, 3,11, 0,10, 6, 5,12, 1,14, 4, 7,15, 9, 8, 2 } - 15 terms.
+
+
+ S1 - {15,12, 2, 7, 9, 0, 5,10, 1,11,14, 8, 6,13, 3, 4 } - 14 terms.
+
+
+ InvS1 - { 5, 8, 2,14,15, 6,12, 3,11, 4, 7, 9, 1,13,10, 0 } - 14 steps.
+
+
+ S2 - { 8, 6, 7, 9, 3,12,10,15,13, 1,14, 4, 0,11, 5, 2 } - 16 terms.
+
+
+ InvS2 - {12, 9,15, 4,11,14, 1, 2, 0, 3, 6,13, 5, 8,10, 7 } - 16 steps.
+
+
+ S3 - { 0,15,11, 8,12, 9, 6, 3,13, 1, 2, 4,10, 7, 5,14 } - 16 terms.
+
+
+ InvS3 - { 0, 9,10, 7,11,14, 6,13, 3, 5,12, 2, 4, 8,15, 1 } - 15 terms
+
+
+ S4 - { 1,15, 8, 3,12, 0,11, 6, 2, 5, 4,10, 9,14, 7,13 } - 15 terms.
+
+
+ InvS4 - { 5, 0, 8, 3,10, 9, 7,14, 2,12,11, 6, 4,15,13, 1 } - 15 terms.
+
+
+ S5 - {15, 5, 2,11, 4,10, 9,12, 0, 3,14, 8,13, 6, 7, 1 } - 16 terms.
+
+
+ InvS5 - { 8,15, 2, 9, 4, 1,13,14,11, 6, 5, 3, 7,12,10, 0 } - 16 terms.
+
+
+ S6 - { 7, 2,12, 5, 8, 4, 6,11,14, 9, 1,15,13, 3,10, 0 } - 15 terms.
+
+
+ InvS6 - {15,10, 1,13, 5, 3, 6, 0, 4, 9,14, 7, 2,12, 8,11 } - 15 terms.
+
+
+ S7 - { 1,13,15, 0,14, 8, 2,11, 7, 4,12,10, 9, 3, 5, 6 } - 16 terms.
+
+
+ InvS7 - { 3, 0, 6,13, 9,14,15, 8, 5,12,11, 7,10, 1, 4, 2 } - 17 terms.
+
+
+ Apply the linear transformation to the register set.
+
+
+ Apply the inverse of the linear transformation to the register set.
+
+
+ a class that provides a basic SKIPJACK engine.
+
+
+ initialise a SKIPJACK cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The G permutation
+
+
+ the inverse of the G permutation.
+
+
+
+ SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.
+
+
+
+ An TEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+
+ Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block
+ sizes.
+
+
+ This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST
+ SHA-3 competition in October 2010.
+
+ Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables
+ to speed up key schedule injection.
+ 2 x block size state is retained by each cipher instance.
+
+
+
+
+ 256 bit block size - Threefish-256
+
+
+
+
+ 512 bit block size - Threefish-512
+
+
+
+
+ 1024 bit block size - Threefish-1024
+
+
+
+ Size of the tweak in bytes (always 128 bit/16 bytes)
+
+
+ Rounds in Threefish-256
+
+
+ Rounds in Threefish-512
+
+
+ Rounds in Threefish-1024
+
+
+ Max rounds of any of the variants
+
+
+ Key schedule parity constant
+
+
+ Block size in bytes
+
+
+ Block size in 64 bit words
+
+
+ Buffer for byte oriented processBytes to call internal word API
+
+
+ Tweak bytes (2 byte t1,t2, calculated t3 and repeat of t1,t2 for modulo free lookup
+
+
+ Key schedule words
+
+
+ The internal cipher implementation (varies by blocksize)
+
+
+
+ Constructs a new Threefish cipher, with a specified block size.
+
+ the block size in bits, one of , ,
+ .
+
+
+
+ Initialise the engine.
+
+ Initialise for encryption if true, for decryption if false.
+ an instance of or (to
+ use a 0 tweak)
+
+
+
+ Initialise the engine, specifying the key and tweak directly.
+
+ the cipher mode.
+ the words of the key, or null to use the current key.
+ the 2 word (128 bit) tweak, or null to use the current tweak.
+
+
+
+ Process a block of data represented as 64 bit words.
+
+ the number of 8 byte words processed (which will be the same as the block size).
+ a block sized buffer of words to process.
+ a block sized buffer of words to receive the output of the operation.
+ if either the input or output is not block sized
+ if this engine is not initialised
+
+
+
+ Read a single 64 bit word from input in LSB first order.
+
+
+
+
+ Write a 64 bit word to output in LSB first order.
+
+
+
+ Rotate left + xor part of the mix operation.
+
+
+ Rotate xor + rotate right part of the unmix operation.
+
+
+ The extended + repeated tweak words
+
+
+ The extended + repeated key words
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Tnepres is a 128-bit 32-round block cipher with variable key lengths,
+ including 128, 192 and 256 bit keys conjectured to be at least as
+ secure as three-key triple-DES.
+
+ Tnepres is based on Serpent which was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ candidate algorithm for the NIST AES Quest. Unfortunately there was an endianness issue
+ with test vectors in the AES submission and the resulting confusion lead to the Tnepres cipher
+ as well, which is a byte swapped version of Serpent.
+
+
+ For full details see The Serpent home page
+
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ A class that provides Twofish encryption operations.
+
+ This Java implementation is based on the Java reference
+ implementation provided by Bruce Schneier and developed
+ by Raif S. Naffah.
+
+
+ Define the fixed p0/p1 permutations used in keyed S-box lookup.
+ By changing the following constant definitions, the S-boxes will
+ automatically Get changed in the Twofish engine.
+
+
+ gSubKeys[] and gSBox[] are eventually used in the
+ encryption and decryption methods.
+
+
+ initialise a Twofish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+ encryptBlock uses the pre-calculated gSBox[] and subKey[]
+ arrays.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Use (12, 8) Reed-Solomon code over GF(256) to produce
+ a key S-box 32-bit entity from 2 key material 32-bit
+ entities.
+
+ @param k0 first 32-bit entity
+ @param k1 second 32-bit entity
+ @return Remainder polynomial Generated using RS code
+
+
+ * Reed-Solomon code parameters: (12,8) reversible code:
+ *
+ *
+ * G(x) = x^4 + (a+1/a)x^3 + ax^2 + (a+1/a)x + 1
+ *
+ * where a = primitive root of field generator 0x14D
+ *
+
+
+ initialise a VMPC cipher.
+
+ @param forEncryption
+ whether or not we are for encryption.
+ @param params
+ the parameters required to set up the cipher.
+ @exception ArgumentException
+ if the params argument is inappropriate.
+
+
+
+ Implementation of Daniel J. Bernstein's XSalsa20 stream cipher - Salsa20 with an extended nonce.
+
+
+ XSalsa20 requires a 256 bit key, and a 192 bit nonce.
+
+
+
+
+ XSalsa20 key generation: process 256 bit input key and 128 bits of the input nonce
+ using a core Salsa20 function without input addition to produce 256 bit working key
+ and use that with the remaining 64 bits of nonce to initialize a standard Salsa20 engine state.
+
+
+
+ An XTEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on ISO 18033/P1363a.
+
+
+ Construct a KDF Parameters generator.
+
+ @param counterStart value of counter.
+ @param digest the digest to be used as the source of derived keys.
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws ArgumentException if the size of the request will cause an overflow.
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Core of password hashing scheme Bcrypt,
+ designed by Niels Provos and David Mazières,
+ corresponds to the C reference implementation.
+
+ This implementation does not correspondent to the 1999 published paper
+ "A Future-Adaptable Password Scheme" of Niels Provos and David Mazières,
+ see: https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html.
+ In contrast to the paper, the order of key setup and salt setup is reversed:
+ state <- ExpandKey(state, 0, key)
+ state %lt;- ExpandKey(state, 0, salt)
+ This corresponds to the OpenBSD reference implementation of Bcrypt.
+
+ Note:
+ There is no successful cryptanalysis (status 2015), but
+ the amount of memory and the band width of Bcrypt
+ may be insufficient to effectively prevent attacks
+ with custom hardware like FPGAs, ASICs
+
+ This implementation uses some parts of Bouncy Castle's BlowfishEngine.
+
+
+
+ Derives a raw 192 bit Bcrypt key
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param psw the password
+ @return a 192 bit key
+
+
+ Size of the salt parameter in bytes
+
+
+ Minimum value of cost parameter, equal to log2(bytes of salt)
+
+
+ Maximum value of cost parameter (31 == 2,147,483,648)
+
+
+ Maximum size of password == max (unrestricted) size of Blowfish key
+
+
+ Calculates the bcrypt hash of a password.
+
+ This implements the raw bcrypt function as defined in the bcrypt specification, not
+ the crypt encoded version implemented in OpenBSD.
+
+ @param password the password bytes (up to 72 bytes) to use for this invocation.
+ @param salt the 128 bit salt to use for this invocation.
+ @param cost the bcrypt cost parameter. The cost of the bcrypt function grows as
+ 2^cost. Legal values are 4..31 inclusive.
+ @return the output of the raw bcrypt operation: a 192 bit (24 byte) hash.
+
+
+ initialise the key generator - if strength is set to zero
+ the key Generated will be 192 bits in size, otherwise
+ strength can be 128 or 192 (or 112 or 168 if you don't count
+ parity bits), depending on whether you wish to do 2-key or 3-key
+ triple DES.
+
+ @param param the parameters to be used for key generation
+
+
+ initialise the key generator - if strength is set to zero
+ the key generated will be 64 bits in size, otherwise
+ strength can be 64 or 56 bits (if you don't count the parity bits).
+
+ @param param the parameters to be used for key generation
+
+
+ a basic Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use with the basic algorithm for
+ Diffie-Hellman.
+
+
+ a Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use in the MTI/A0 key agreement protocol
+ as described in "Handbook of Applied Cryptography", Pages 516-519.
+
+
+ which Generates the p and g values from the given parameters,
+ returning the DHParameters object.
+
+ Note: can take a while...
+
+
+ a DSA key pair generator.
+
+ This Generates DSA keys in line with the method described
+ in FIPS 186-3 B.1 FFC Key Pair Generation.
+
+
+ Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3.
+
+
+ Initialise the generator
+ This form can only be used for older DSA (pre-DSA2) parameters
+ the size of keys in bits (from 512 up to 1024, and a multiple of 64)
+ measure of robustness of primes (at least 80 for FIPS 186-2 compliance)
+ the source of randomness to use
+
+
+ Initialise the generator for DSA 2
+ You must use this Init method if you need to generate parameters for DSA 2 keys
+ An instance of DsaParameterGenerationParameters used to configure this generator
+
+
+ Generates a set of DsaParameters
+ Can take a while...
+
+
+ generate suitable parameters for DSA, in line with
+ FIPS 186-3 A.1 Generation of the FFC Primes p and q.
+
+
+ Given the domain parameters this routine generates an EC key
+ pair in accordance with X9.62 section 5.2.1 pages 26, 27.
+
+
+ a ElGamal key pair generator.
+
+ This Generates keys consistent for use with ElGamal as described in
+ page 164 of "Handbook of Applied Cryptography".
+
+
+ * which Generates the p and g values from the given parameters,
+ * returning the ElGamalParameters object.
+ *
+ * Note: can take a while...
+ *
+
+
+ a GOST3410 key pair generator.
+ This generates GOST3410 keys in line with the method described
+ in GOST R 34.10-94.
+
+
+ generate suitable parameters for GOST3410.
+
+
+ initialise the key generator.
+
+ @param size size of the key
+ @param typeProcedure type procedure A,B = 1; A',B' - else
+ @param random random byte source.
+
+
+ Procedure C
+ procedure generates the a value from the given p,q,
+ returning the a value.
+
+
+ which generates the p , q and a values from the given parameters,
+ returning the Gost3410Parameters object.
+
+
+ HMAC-based Extract-and-Expand Key Derivation Function (HKDF) implemented
+ according to IETF RFC 5869, May 2010 as specified by H. Krawczyk, IBM
+ Research & P. Eronen, Nokia. It uses a HMac internally to compute de OKM
+ (output keying material) and is likely to have better security properties
+ than KDF's based on just a hash function.
+
+
+ Creates a HKDFBytesGenerator based on the given hash function.
+
+ @param hash the digest to be used as the source of generatedBytes bytes
+
+
+ Performs the extract part of the key derivation function.
+
+ @param salt the salt to use
+ @param ikm the input keying material
+ @return the PRK as KeyParameter
+
+
+ Performs the expand part of the key derivation function, using currentT
+ as input and output buffer.
+
+ @throws DataLengthException if the total number of bytes generated is larger than the one
+ specified by RFC 5869 (255 * HashLen)
+
+
+ KFD2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF1 byte generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ KDF2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF2 bytes generator. Generates key material
+ according to IEEE P1363 or ISO 18033 depending on the initialisation.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ Generator for MGF1 as defined in Pkcs 1v2
+
+
+ @param digest the digest to be used as the source of Generated bytes
+
+
+ return the underlying digest.
+
+
+ int to octet string.
+
+
+ fill len bytes of the output buffer with bytes Generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Key generation parameters for NaccacheStern cipher. For details on this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Generates a permuted ArrayList from the original one. The original List
+ is not modified
+
+ @param arr
+ the ArrayList to be permuted
+ @param rand
+ the source of Randomness for permutation
+ @return a new IList with the permuted elements.
+
+
+ Finds the first 'count' primes starting with 3
+
+ @param count
+ the number of primes to find
+ @return a vector containing the found primes as Integer
+
+
+ Password hashing scheme BCrypt,
+ designed by Niels Provos and David Mazières, using the
+ String format and the Base64 encoding
+ of the reference implementation on OpenBSD
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Checks if a password corresponds to a 60 character Bcrypt String
+
+ @param bcryptString a 60 character Bcrypt String, including
+ version, cost factor, salt and hash,
+ separated by '$'
+ @param password the password as an array of chars
+ @return true if the password corresponds to the
+ Bcrypt String, otherwise false
+
+
+ Generator for PBE derived keys and ivs as usd by OpenSSL.
+
+ The scheme is a simple extension of PKCS 5 V2.0 Scheme 1 using MD5 with an
+ iteration count of 1.
+
+
+
+ Construct a OpenSSL Parameters generator.
+
+
+ Initialise - note the iteration count for this algorithm is fixed at 1.
+
+ @param password password to use.
+ @param salt salt to use.
+
+
+ the derived key function, the ith hash of the password and the salt.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 12 V1.0.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs12 Page
+
+
+
+ Construct a Pkcs 12 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+ @exception ArgumentException if an unknown digest is passed in.
+
+
+ add a + b + 1, returning the result in a. The a value is treated
+ as a BigInteger of length (b.Length * 8) bits. The result is
+ modulo 2^b.Length in case of overflow.
+
+
+ generation of a derived key ala Pkcs12 V1.0.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 1.
+ Note this generator is limited to the size of the hash produced by the
+ digest used to drive it.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+
+ Construct a Pkcs 5 Scheme 1 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ the derived key function, the ith hash of the mPassword and the mSalt.
+
+
+ Generate a key parameter derived from the mPassword, mSalt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the mPassword, mSalt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the mPassword,
+ mSalt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 2.
+ This generator uses a SHA-1 HMac as the calculation function.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+ construct a Pkcs5 Scheme 2 Parameters generator.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+
+ Generates keys for the Poly1305 MAC.
+
+
+ Poly1305 keys are 256 bit keys consisting of a 128 bit secret key used for the underlying block
+ cipher followed by a 128 bit {@code r} value used for the polynomial portion of the Mac.
+ The {@code r} value has a specific format with some bits required to be cleared, resulting in an
+ effective 106 bit key.
+ A separately generated 256 bit key can be modified to fit the Poly1305 key format by using the
+ {@link #clamp(byte[])} method to clear the required bits.
+
+
+
+
+
+ Initialises the key generator.
+
+
+ Poly1305 keys are always 256 bits, so the key length in the provided parameters is ignored.
+
+
+
+
+ Generates a 256 bit key in the format required for Poly1305 - e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+
+
+
+ Modifies an existing 32 byte key value to comply with the requirements of the Poly1305 key by
+ clearing required bits in the r (second 16 bytes) portion of the key.
+ Specifically:
+
+ - r[3], r[7], r[11], r[15] have top four bits clear (i.e., are {0, 1, . . . , 15})
+ - r[4], r[8], r[12] have bottom two bits clear (i.e., are in {0, 4, 8, . . . , 252})
+
+
+ a 32 byte key value k[0] ... k[15], r[0] ... r[15]
+
+
+
+ Checks a 32 byte key for compliance with the Poly1305 key requirements, e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+ Key.
+ if the key is of the wrong length, or has invalid bits set
+ in the r portion of the key.
+
+
+ Generate a random factor suitable for use with RSA blind signatures
+ as outlined in Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475.
+
+
+ Initialise the factor generator
+
+ @param param the necessary RSA key parameters.
+
+
+ Generate a suitable blind factor for the public key the generator was initialised with.
+
+ @return a random blind factor
+
+
+ an RSA key pair generator.
+
+
+ Choose a random prime value for use with RSA
+ the bit-length of the returned prime
+ the RSA public exponent
+ a prime p, with (p-1) relatively prime to e
+
+
+ Implementation of the scrypt a password-based key derivation function.
+
+ Scrypt was created by Colin Percival and is specified in
+ draft-josefsson-scrypt-kd.
+
+
+
+ Generate a key using the scrypt key derivation function.
+ the bytes of the pass phrase.
+ the salt to use for this invocation.
+ CPU/Memory cost parameter. Must be larger than 1, a power of 2 and less than
+ 2^(128 * r / 8).
+ the block size, must be >= 1.
+ Parallelization parameter. Must be a positive integer less than or equal to
+ Int32.MaxValue / (128 * r * 8).
+ the length of the key to generate.
+ the generated key.
+
+
+ Base interface for a public/private key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The maximum size, in bytes, an input block may be.
+
+
+ The maximum size, in bytes, an output block will be.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The length of the input block.
+ Input decrypts improperly.
+ Input is too large for the cipher.
+
+
+ interface that a public/private key pair generator should conform to.
+
+
+ intialise the key pair generator.
+
+ @param the parameters the key pair is to be initialised with.
+
+
+ return an AsymmetricCipherKeyPair containing the Generated keys.
+
+ @return an AsymmetricCipherKeyPair containing the Generated keys.
+
+
+ The basic interface that basic Diffie-Hellman implementations
+ conforms to.
+
+
+ initialise the agreement engine.
+
+
+ return the field size for the agreement algorithm in bytes.
+
+
+ given a public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Base interface for a symmetric key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Indicates whether this cipher can handle partial blocks.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The output buffer.
+ The offset into outBuf to write the output block.
+ If input block is wrong size, or outBuf too small.
+ The number of bytes processed and produced.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to a single block return an object
+ of this type.
+
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ Block cipher engines are expected to conform to this interface.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+
+
+ Reset the cipher. After resetting the cipher is in the same state
+ as it was after the last init (if there was one).
+
+
+
+ all parameter classes implement this.
+
+
+ base interface for general purpose byte derivation functions.
+
+
+ return the message digest used as the basis for the function
+
+
+ Parameters for key/byte stream derivation classes
+
+
+ interface that a message digest conforms to.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ return the size, in bytes, of the internal buffer used by this digest.
+
+ @return the size, in bytes, of the internal buffer used by this digest.
+
+
+ update the message digest with a single byte.
+
+ @param inByte the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param input the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param output the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ interface for classes implementing the Digital Signature Algorithm
+
+
+ initialise the signer for signature generation or signature
+ verification.
+
+ @param forSigning true if we are generating a signature, false
+ otherwise.
+ @param param key parameters for signature generation.
+
+
+ sign the passed in message (usually the output of a hash function).
+
+ @param message the message to be signed.
+ @return two big integers representing the r and s values respectively.
+
+
+ verify the message message against the signature values r and s.
+
+ @param message the message that was supposed to have been signed.
+ @param r the r signature value.
+ @param s the s signature value.
+
+
+
+ Base interface describing an entropy source for a DRBG.
+
+
+
+
+ Return whether or not this entropy source is regarded as prediction resistant.
+
+ true if this instance is prediction resistant; otherwise, false.
+
+
+
+ Return a byte array of entropy.
+
+ The entropy bytes.
+
+
+
+ Return the number of bits of entropy this source can produce.
+
+ The size, in bits, of the return value of getEntropy.
+
+
+
+ Base interface describing a provider of entropy sources.
+
+
+
+
+ Return an entropy source providing a block of entropy.
+
+ The size of the block of entropy required.
+ An entropy source providing bitsRequired blocks of entropy.
+
+
+ The base interface for implementations of message authentication codes (MACs).
+
+
+ Initialise the MAC.
+
+ @param param the key and other data required by the MAC.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Return the name of the algorithm the MAC implements.
+
+ @return the name of the algorithm the MAC implements.
+
+
+ Return the block size for this MAC (in bytes).
+
+ @return the block size for this MAC in bytes.
+
+
+ add a single byte to the mac for processing.
+
+ @param in the byte to be processed.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ @param in the array containing the input.
+ @param inOff the index in the array the data begins at.
+ @param len the length of the input starting at inOff.
+ @exception InvalidOperationException if the MAC is not initialised.
+ @exception DataLengthException if there isn't enough data in in.
+
+
+ Compute the final stage of the MAC writing the output to the out
+ parameter.
+
+ doFinal leaves the MAC in the same state it was after the last init.
+
+ @param out the array the MAC is to be output to.
+ @param outOff the offset into the out buffer the output is to start at.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ Reset the MAC. At the end of resetting the MAC should be in the
+ in the same state it was after the last init (if there was one).
+
+
+ this exception is thrown whenever we find something we don't expect in a
+ message.
+
+
+ base constructor.
+
+
+ create a InvalidCipherTextException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Base interface for operators that serve as stream-based signature calculators.
+
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ Return the name of the algorithm the signer implements.
+
+ @return the name of the algorithm the signer implements.
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ reset the internal state
+
+
+ Signer with message recovery.
+
+
+ Returns true if the signer has recovered the full message as
+ part of signature verification.
+
+ @return true if full message recovered.
+
+
+ Returns a reference to what message was recovered (if any).
+
+ @return full/partial message, null if nothing.
+
+
+ Perform an update with the recovered message before adding any other data. This must
+ be the first update method called, and calling it will result in the signer assuming
+ that further calls to update will include message content past what is recoverable.
+
+ @param signature the signature that we are in the process of verifying.
+ @throws IllegalStateException
+
+
+
+ Base interface for cryptographic operations such as Hashes, MACs, and Signatures which reduce a stream of data
+ to a single value.
+
+
+
+ Return a "sink" stream which only exists to update the implementing object.
+ A stream to write to in order to update the implementing object.
+
+
+
+ Return the result of processing the stream. This value is only available once the stream
+ has been closed.
+
+ The result of processing the stream.
+
+
+ The interface stream ciphers conform to.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+ If the parameters argument is inappropriate.
+
+
+
+ encrypt/decrypt a single byte returning the result.
+ the byte to be processed.
+ the result of processing the input byte.
+
+
+
+ Process a block of bytes from input putting the result into output.
+
+ The input byte array.
+
+ The offset into input where the data to be processed starts.
+
+ The number of bytes to be processed.
+ The output buffer the processed bytes go into.
+
+ The offset into output the processed data starts at.
+
+ If the output buffer is too small.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to the validation of a signature produce this type.
+
+
+
+
+ Return true if the passed in data matches what is expected by the verification result.
+
+ The bytes representing the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Return true if the length bytes from off in the source array match the signature
+ expected by the verification result.
+
+ Byte array containing the signature.
+ The offset into the source array where the signature starts.
+ The number of bytes in source making up the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Base interface for operators that serve as stream-based signature verifiers.
+
+
+
+ The algorithm details object for this verifier.
+
+
+
+ Create a stream calculator for this verifier. The stream
+ calculator is used for the actual operation of entering the data to be verified
+ and producing a result which can be used to verify the original signature.
+
+ A calculator producing an IVerifier which can verify the signature.
+
+
+
+ Base interface for a provider to support the dynamic creation of signature verifiers.
+
+
+
+
+ Return a signature verfier for signature algorithm described in the passed in algorithm details object.
+
+ The details of the signature algorithm verification is required for.
+ A new signature verifier.
+
+
+ The name of the algorithm this cipher implements.
+
+
+
+ With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.
+ This interface provides the extra method required to support variable output on a digest implementation.
+
+
+
+
+ Output the results of the final calculation for this digest to outLen number of bytes.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+
+ Start outputting the results of the final calculation for this digest. Unlike DoFinal, this method
+ will continue producing output until the Xof is explicitly reset, or signals otherwise.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+ The base class for parameters to key generators.
+
+
+ initialise the generator with a source of randomness
+ and a strength (in bits).
+
+ @param random the random byte source.
+ @param strength the size, in bits, of the keys we want to produce.
+
+
+ return the random source associated with this
+ generator.
+
+ @return the generators random source.
+
+
+ return the bit strength for keys produced by this generator,
+
+ @return the strength of the keys this generator produces (in bits).
+
+
+ standard CBC Block Cipher MAC - if no padding is specified the default of
+ pad of zeroes is used.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding a padding to be used.
+
+
+ Reset the mac generator.
+
+
+ CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
+
+ CMAC is analogous to OMAC1 - see also en.wikipedia.org/wiki/CMAC
+
+ CMAC is a NIST recomendation - see
+ csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38B.pdf
+
+ CMAC/OMAC1 is a blockcipher-based message authentication code designed and
+ analyzed by Tetsu Iwata and Kaoru Kurosawa.
+
+ CMAC/OMAC1 is a simple variant of the CBC MAC (Cipher Block Chaining Message
+ Authentication Code). OMAC stands for One-Key CBC MAC.
+
+ It supports 128- or 64-bits block ciphers, with any key size, and returns
+ a MAC with dimension less or equal to the block size of the underlying
+ cipher.
+
+
+
+ create a standard MAC based on a CBC block cipher (64 or 128 bit block).
+ This will produce an authentication code the length of the block size
+ of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8 and @lt;= 128.
+
+
+ Reset the mac generator.
+
+
+
+ Implementation of DSTU7564 mac mode
+
+
+
+ implementation of DSTU 7624 MAC
+
+
+
+ The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication
+ 800-38D.
+
+
+ GMac is an invocation of the GCM mode where no data is encrypted (i.e. all input data to the Mac
+ is processed as additional authenticated data with the underlying GCM block cipher).
+
+
+
+
+ Creates a GMAC based on the operation of a block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+
+
+
+ Creates a GMAC based on the operation of a 128 bit block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+ the mac size to generate, in bits. Must be a multiple of 8, between 32 and 128 (inclusive).
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ Initialises the GMAC - requires a
+ providing a and a nonce.
+
+
+
+ implementation of GOST 28147-89 MAC
+
+
+ HMAC implementation based on RFC2104
+
+ H(K XOR opad, H(K XOR ipad, text))
+
+
+ Reset the mac generator.
+
+
+ DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC)
+
+ This could as well be derived from CBCBlockCipherMac, but then the property mac in the base
+ class must be changed to protected
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation. This must
+ be DESEngine.
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a Retail-MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation. The final block is decrypted and then encrypted using the
+ middle and right part of the key.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+
+ Poly1305 message authentication code, designed by D. J. Bernstein.
+
+
+ Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key
+ consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106
+ effective key bits) used in the authenticator.
+
+ The polynomial calculation in this implementation is adapted from the public domain poly1305-donna-unrolled C implementation
+ by Andrew M (@floodyberry).
+
+
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Current block of buffered input
+
+
+ Current offset in input buffer
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Constructs a Poly1305 MAC, where the key passed to init() will be used directly.
+
+
+ Constructs a Poly1305 MAC, using a 128 bit block cipher.
+
+
+
+ Initialises the Poly1305 MAC.
+
+ a {@link ParametersWithIV} containing a 128 bit nonce and a {@link KeyParameter} with
+ a 256 bit key complying to the {@link Poly1305KeyGenerator Poly1305 key format}.
+
+
+
+ Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe
+ Aumasson and Daniel J. Bernstein (https://131002.net/siphash/siphash.pdf).
+
+
+ "SipHash is a family of PRFs SipHash-c-d where the integer parameters c and d are the number of
+ compression rounds and the number of finalization rounds. A compression round is identical to a
+ finalization round and this round function is called SipRound. Given a 128-bit key k and a
+ (possibly empty) byte string m, SipHash-c-d returns a 64-bit value..."
+
+
+
+ SipHash-2-4
+
+
+ SipHash-c-d
+ the number of compression rounds
+ the number of finalization rounds
+
+
+
+ Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein MAC with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/MAC size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ This exception is thrown whenever a cipher requires a change of key, iv
+ or similar after x amount of bytes enciphered
+
+
+
+ implements Cipher-Block-Chaining (CBC) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of chaining.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CBC".
+
+
+ return the block size of the underlying cipher.
+
+ @return the block size of the underlying cipher.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Do the appropriate chaining step for CBC mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate chaining step for CBC mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the decrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Counter with Cipher Block Chaining mode (CCM) detailed in
+ NIST Special Publication 800-38C.
+
+ Note: this mode is a packet mode - it needs all the data up front.
+
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Returns a byte array containing the mac calculated as part of the
+ last encrypt or decrypt operation.
+
+ @return the last mac calculated.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @return a byte array containing the processed input..
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @param output output array.
+ @param outOff offset into output array to start putting processed bytes.
+ @return the number of bytes added to output.
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+ @throws DataLengthException if output buffer too short.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ A Cipher Text Stealing (CTS) mode cipher. CTS allows block ciphers to
+ be used to produce cipher text which is the same outLength as the plain text.
+
+
+ Create a buffered block cipher that uses Cipher Text Stealing
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ return the size of the output buffer required for an update of 'length' bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update
+ with length bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of length bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with length bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param length the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if cipher text decrypts wrongly (in
+ case the exception will never Get thrown).
+
+
+ A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and
+ Efficiency - by M. Bellare, P. Rogaway, D. Wagner.
+
+ http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf
+
+ EAX is an AEAD scheme based on CTR and OMAC1/CMAC, that uses a single block
+ cipher to encrypt and authenticate data. It's on-line (the length of a
+ message isn't needed to begin processing it), has good performances, it's
+ simple and provably secure (provided the underlying block cipher is secure).
+
+ Of course, this implementations is NOT thread-safe.
+
+
+ Constructor that accepts an instance of a block cipher engine.
+
+ @param cipher the engine to use
+
+
+
+ Implements the Galois/Counter mode (GCM) detailed in
+ NIST Special Publication 800-38D.
+
+
+
+
+ MAC sizes from 32 bits to 128 bits (must be a multiple of 8) are supported. The default is 128 bits.
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ implements the GOST 28147 OFB counter mode (GCTR).
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ counter mode (must have a 64 bit block size).
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param encrypting if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/GCTR"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+
+ A block cipher mode that includes authenticated encryption with a streaming mode
+ and optional associated data.
+
+
+
+ The name of the algorithm this cipher implements.
+
+
+ The block cipher underlying this algorithm.
+
+
+ Initialise the cipher.
+ Parameter can either be an AeadParameters or a ParametersWithIV object.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Add a single byte to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The byte to be processed.
+
+
+ Add a sequence of bytes to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The input byte array.
+ The offset into the input array where the data to be processed starts.
+ The number of bytes to be processed.
+
+
+ Encrypt/decrypt a single byte.
+
+ @param input the byte to be processed.
+ @param outBytes the output buffer the processed byte goes into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Process a block of bytes from in putting the result into out.
+
+ @param inBytes the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param outBytes the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Finish the operation either appending or verifying the MAC at the end of the data.
+
+ @param outBytes space for any resulting output data.
+ @param outOff offset into out to start copying the data at.
+ @return number of bytes written into out.
+ @throws InvalidOperationException if the cipher is in an inappropriate state.
+ @throws InvalidCipherTextException if the MAC fails to match.
+
+
+ Return the value of the MAC associated with the last stream processed.
+
+ @return MAC for plaintext data.
+
+
+ Return the size of the output buffer required for a ProcessBytes
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes
+ with len bytes of input.
+
+
+ Return the size of the output buffer required for a ProcessBytes plus a
+ DoFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes and DoFinal
+ with len bytes of input.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Base constructor. Nb value is set to 4.
+
+ base cipher to use under CCM.
+
+
+
+ Constructor allowing Nb configuration.
+
+ Nb is a parameter specified in CCM mode of DSTU7624 standard.
+ This parameter specifies maximum possible length of input.It should
+ be calculated as follows: Nb = 1 / 8 * (-3 + log[2]Nmax) + 1,
+ where Nmax - length of input message in bits.For practical reasons
+ Nmax usually less than 4Gb, e.g. for Nmax = 2^32 - 1, Nb = 4.
+
+ base cipher to use under CCM.
+ Nb value to use.
+
+
+ Implements a Gamming or Counter (CTR) mode on top of a DSTU 7624 block cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/KCTR"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ An implementation of RFC 7253 on The OCB
+ Authenticated-Encryption Algorithm, licensed per:
+
+ License for
+ Open-Source Software Implementations of OCB (Jan 9, 2013) - 'License 1'
+ Under this license, you are authorized to make, use, and distribute open-source software
+ implementations of OCB. This license terminates for you if you sue someone over their open-source
+ software implementation of OCB claiming that you have a patent covering their implementation.
+
+ This is a non-binding summary of a legal document (the link above). The parameters of the license
+ are specified in the license document and that document is controlling.
+
+
+ implements a Output-FeedBack (OFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/OFB"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ * Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode
+ * on top of a simple cipher. This class assumes the IV has been prepended
+ * to the data stream already, and just accomodates the reset after
+ * (blockSize + 2) bytes have been read.
+ *
+ * For further info see RFC 2440.
+ *
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/PGPCFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt one byte of data according to CFB mode.
+ @param data the byte to encrypt
+ @param blockOff offset in the current block
+ @returns the encrypted byte
+
+
+ Do the appropriate processing for CFB IV mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB IV mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Segmented Integer Counter (SIC) mode on top of a simple
+ block cipher.
+
+
+ Basic constructor.
+
+ @param c the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Calculator factory class for signature generation in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+
+
+
+ Constructor which also specifies a source of randomness to be used if one is required.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+ The source of randomness to be used in signature calculation.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+
+ Verifier class for signature verification in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The public key to be used in the verification operation.
+
+
+
+ Provider class which supports dynamic creation of signature verifiers.
+
+
+
+
+ Base constructor - specify the public key to be used in verification.
+
+ The public key to be used in creating verifiers provided by this object.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+ Block cipher padders are expected to conform to this interface
+
+
+ Initialise the padder.
+
+ @param param parameters, if any required.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+ @exception InvalidCipherTextException if the padding is badly formed
+ or invalid.
+
+
+ A padder that adds ISO10126-2 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds the padding according to the scheme referenced in
+ ISO 7814-4 - scheme 2 from ISO 9797-1. The first byte is 0x80, rest is 0x00
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the padder implements.
+
+ @return the name of the algorithm the padder implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion with padding. The PaddedBufferedBlockCipher
+ outputs a block only when the buffer is full and more data is being added,
+ or on a doFinal (unless the current block in the buffer is a pad block).
+ The default padding mechanism used is the one outlined in Pkcs5/Pkcs7.
+
+
+ Create a buffered block cipher with the desired padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ @param padding the padding type.
+
+
+ Create a buffered block cipher Pkcs7 padding
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the minimum size of the output buffer required for an update
+ plus a doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer. If the buffer is currently
+ full and padding needs to be added a call to doFinal will produce
+ 2 * GetBlockSize() bytes.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output or we are decrypting and the input is not block size aligned.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+
+
+ A padder that adds Pkcs7/Pkcs5 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Trailing-Bit-Compliment padding to a block.
+
+ This padding pads the block out compliment of the last bit
+ of the plain text.
+
+
+
+
+ Return the name of the algorithm the cipher implements.
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+ Note: this assumes that the last block of plain text is always
+ passed to it inside in. i.e. if inOff is zero, indicating the
+ entire block is to be overwritten with padding the value of in
+ should be the same as the last block of plain text.
+
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds X9.23 padding to a block - if a SecureRandom is
+ passed in random padding is assumed, otherwise padding with zeros is used.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if one is available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Null byte padding to a block.
+
+
+ Return the name of the algorithm the cipher implements.
+
+
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+
+
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+ @param length number of bytes making up the key
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2/3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ DES has 16 weak keys. This method will check
+ if the given DES key material is weak or semi-weak.
+ Key material that is too short is regarded as weak.
+
+ See "Applied
+ Cryptography" by Bruce Schneier for more information.
+
+ @return true if the given DES key material is weak or semi-weak,
+ false otherwise.
+
+
+ DES Keys use the LSB as the odd parity bit. This can
+ be used to check for corrupt keys.
+
+ @param bytes the byte array to set the parity on.
+
+
+ The minimum bitlength of the private value.
+
+
+ The bitlength of the private value.
+
+
+ Construct without a usage index, this will do a random construction of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+
+
+ Construct for a specific usage index - this has the effect of using verifiable canonical generation of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+ @param usageIndex a valid usage index.
+
+
+ return the generator - g
+
+
+ return private value limit - l
+
+
+ Parameter class for the HkdfBytesGenerator class.
+
+
+ Generates parameters for HKDF, specifying both the optional salt and
+ optional info. Step 1: Extract won't be skipped.
+
+ @param ikm the input keying material or seed
+ @param salt the salt to use, may be null for a salt for hashLen zeros
+ @param info the info to use, may be null for an info field of zero bytes
+
+
+ Factory method that makes the HKDF skip the extract part of the key
+ derivation function.
+
+ @param ikm the input keying material or seed, directly used for step 2:
+ Expand
+ @param info the info to use, may be null for an info field of zero bytes
+ @return HKDFParameters that makes the implementation skip step 1
+
+
+ Returns the input keying material or seed.
+
+ @return the keying material
+
+
+ Returns if step 1: extract has to be skipped or not
+
+ @return true for skipping, false for no skipping of step 1
+
+
+ Returns the salt, or null if the salt should be generated as a byte array
+ of HashLen zeros.
+
+ @return the salt, or null
+
+
+ Returns the info field, which may be empty (null is converted to empty).
+
+ @return the info field, never null
+
+
+ parameters for using an integrated cipher in stream mode.
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+ @param cipherKeySize the size of the associated Cipher key (in bits).
+
+
+ parameters for Key derivation functions for ISO-18033
+
+
+ parameters for Key derivation functions for IEEE P1363a
+
+
+ Parameters for mask derivation functions.
+
+
+ Parameters for NaccacheStern public private key generation. For details on
+ this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Parameters for generating a NaccacheStern KeyPair.
+
+ @param random
+ The source of randomness
+ @param strength
+ The desired strength of the Key in Bits
+ @param certainty
+ the probability that the generated primes are not really prime
+ as integer: 2^(-certainty) is then the probability
+ @param countSmallPrimes
+ How many small key factors are desired
+
+
+ * Parameters for a NaccacheStern KeyPair.
+ *
+ * @param random
+ * The source of randomness
+ * @param strength
+ * The desired strength of the Key in Bits
+ * @param certainty
+ * the probability that the generated primes are not really prime
+ * as integer: 2^(-certainty) is then the probability
+ * @param cntSmallPrimes
+ * How many small key factors are desired
+ * @param debug
+ * Ignored
+
+
+ @return Returns the certainty.
+
+
+ @return Returns the countSmallPrimes.
+
+
+ Public key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ @param privateKey
+
+
+ @return Returns the g.
+
+
+ @return Returns the lowerSigmaBound.
+
+
+ @return Returns the n.
+
+
+ Private key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Constructs a NaccacheSternPrivateKey
+
+ @param g
+ the public enryption parameter g
+ @param n
+ the public modulus n = p*q
+ @param lowerSigmaBound
+ the public lower sigma bound up to which data can be encrypted
+ @param smallPrimes
+ the small primes, of which sigma is constructed in the right
+ order
+ @param phi_n
+ the private modulus phi(n) = (p-1)(q-1)
+
+
+ Cipher parameters with a fixed salt value associated with them.
+
+
+
+ Parameters for the Skein hash function - a series of byte[] strings identified by integer tags.
+
+
+ Parameterised Skein can be used for:
+
+ - MAC generation, by providing a key.
+ - Randomised hashing, by providing a nonce.
+ - A hash function for digital signatures, associating a
+ public key with the message digest.
+ - A key derivation function, by providing a
+ key identifier.
+ - Personalised hashing, by providing a
+ recommended format or
+ arbitrary personalisation string.
+
+
+
+
+
+
+
+
+ The parameter type for a secret key, supporting MAC or KDF functions: 0
+
+
+
+
+ The parameter type for the Skein configuration block: 4
+
+
+
+
+ The parameter type for a personalisation string: 8
+
+
+
+
+ The parameter type for a public key: 12
+
+
+
+
+ The parameter type for a key identifier string: 16
+
+
+
+
+ The parameter type for a nonce: 20
+
+
+
+
+ The parameter type for the message: 48
+
+
+
+
+ The parameter type for the output transformation: 63
+
+
+
+
+ Obtains a map of type (int) to value (byte[]) for the parameters tracked in this object.
+
+
+
+
+ Obtains the value of the key parameter, or null if not
+ set.
+
+ The key.
+
+
+
+ Obtains the value of the personalisation parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the public key parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the key identifier parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the nonce parameter, or null if
+ not set.
+
+
+
+
+ A builder for .
+
+
+
+
+ Sets a parameters to apply to the Skein hash function.
+
+
+ Parameter types must be in the range 0,5..62, and cannot use the value 48
+ (reserved for message body).
+
+ Parameters with type < 48 are processed before
+ the message content, parameters with type > 48
+ are processed after the message and prior to output.
+
+ the type of the parameter, in the range 5..62.
+ the byte sequence of the parameter.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Implements the recommended personalisation format for Skein defined in Section 4.11 of
+ the Skein 1.3 specification.
+
+
+ The format is YYYYMMDD email@address distinguisher, encoded to a byte
+ sequence using UTF-8 encoding.
+
+ the date the personalised application of the Skein was defined.
+ the email address of the creation of the personalised application.
+ an arbitrary personalisation string distinguishing the application.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Constructs a new instance with the parameters provided to this
+ builder.
+
+
+
+ Private parameters for an SM2 key exchange.
+ The ephemeralPrivateKey is used to calculate the random point used in the algorithm.
+
+
+ Public parameters for an SM2 key exchange.
+ In this case the ephemeralPublicKey provides the random point used in the algorithm.
+
+
+
+ Parameters for tweakable block ciphers.
+
+
+
+
+ Gets the key.
+
+ the key to use, or null to use the current key.
+
+
+
+ Gets the tweak value.
+
+ The tweak to use, or null to use the current tweak.
+
+
+ super class for all Password Based Encyrption (Pbe) parameter generator classes.
+
+
+ base constructor.
+
+
+ initialise the Pbe generator.
+
+ @param password the password converted into bytes (see below).
+ @param salt the salt to be mixed with the password.
+ @param iterationCount the number of iterations the "mixing" function
+ is to be applied for.
+
+
+ return the password byte array.
+
+ @return the password byte array.
+
+
+ return the salt byte array.
+
+ @return the salt byte array.
+
+
+ return the iteration count.
+
+ @return the iteration count.
+
+
+ Generate derived parameters for a key of length keySize.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ Generate derived parameters for a key of length keySize, and
+ an initialisation vector (IV) of length ivSize.
+
+ @param keySize the length, in bits, of the key required.
+ @param ivSize the length, in bits, of the iv required.
+ @return a parameters object representing a key and an IV.
+
+
+ Generate derived parameters for a key of length keySize, specifically
+ for use with a MAC.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs5 (ascii, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ PKCS5 (UTF-8, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs12 (unicode, big endian, 2 zero pad bytes at the end).
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ An EntropySourceProvider where entropy generation is based on a SecureRandom output using SecureRandom.generateSeed().
+
+
+ Create a entropy source provider based on the passed in SecureRandom.
+
+ @param secureRandom the SecureRandom to base EntropySource construction on.
+ @param isPredictionResistant boolean indicating if the SecureRandom is based on prediction resistant entropy or not (true if it is).
+
+
+ Return an entropy source that will create bitsRequired bits of entropy on
+ each invocation of getEntropy().
+
+ @param bitsRequired size (in bits) of entropy to be created by the provided source.
+ @return an EntropySource that generates bitsRequired bits of entropy on each call to its getEntropy() method.
+
+
+
+ Uses RandomNumberGenerator.Create() to get randomness generator
+
+
+
+ Random generation based on the digest with counter. Calling AddSeedMaterial will
+ always increase the entropy of the hash.
+
+ Internal access to the digest is synchronized so a single one of these can be shared.
+
+
+
+ A SP800-90A CTR DRBG.
+
+
+ Construct a SP800-90A CTR DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param engine underlying block cipher to use to support DRBG
+ @param keySizeInBits size of the key to use with the block cipher.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Pad out a key for TDEA, setting odd parity for each byte.
+
+ @param keyMaster
+ @param keyOff
+ @param tmp
+ @param tmpOff
+
+
+ Used by both Dual EC and Hash.
+
+
+ A SP800-90A Hash DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param digest source digest to use for DRB stream.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ A SP800-90A HMAC DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param hMac Hash MAC to base the DRBG on.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Interface to SP800-90A deterministic random bit generators.
+
+
+ Return the block size of the DRBG.
+
+ @return the block size (in bits) produced by each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Generate numBytes worth of entropy from the passed in entropy source.
+
+ @param entropySource the entropy source to request the data from.
+ @param numBytes the number of bytes of entropy requested.
+ @return a byte array populated with the random data.
+
+
+ Generic interface for objects generating random bytes.
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+
+ Takes bytes generated by an underling RandomGenerator and reverses the order in
+ each small window (of configurable size).
+
+ Access to internals is synchronized so a single one of these can be shared.
+
+
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+ Force a reseed of the DRBG.
+ optional additional input
+
+
+ Builder class for making SecureRandom objects based on SP 800-90A Deterministic Random Bit Generators (DRBG).
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Set the personalization string for DRBG SecureRandoms created by this builder
+ @param personalizationString the personalisation string for the underlying DRBG.
+ @return the current builder.
+
+
+ Set the security strength required for DRBGs used in building SecureRandom objects.
+
+ @param securityStrength the security strength (in bits)
+ @return the current builder.
+
+
+ Set the amount of entropy bits required for seeding and reseeding DRBGs used in building SecureRandom objects.
+
+ @param entropyBitsRequired the number of bits of entropy to be requested from the entropy source on each seed/reseed.
+ @return the current builder.
+
+
+ Build a SecureRandom based on a SP 800-90A Hash DRBG.
+
+ @param digest digest algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a Hash DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A CTR DRBG.
+
+ @param cipher the block cipher to base the DRBG on.
+ @param keySizeInBits key size in bits to be used with the block cipher.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a CTR DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A HMAC DRBG.
+
+ @param hMac HMAC algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a HMAC DRBG.
+
+
+ A thread based seed generator - one source of randomness.
+
+ Based on an idea from Marcus Lippert.
+
+
+
+ Generate seed bytes. Set fast to false for best quality.
+
+ If fast is set to true, the code should be round about 8 times faster when
+ generating a long sequence of random bytes. 20 bytes of random values using
+ the fast mode take less than half a second on a Nokia e70. If fast is set to false,
+ it takes round about 2500 ms.
+
+ @param numBytes the number of bytes to generate
+ @param fast true if fast mode should be used
+
+
+
+ Permutation generated by code:
+
+ // First 1850 fractional digit of Pi number.
+ byte[] key = new BigInteger("14159265358979323846...5068006422512520511").ToByteArray();
+ s = 0;
+ P = new byte[256];
+ for (int i = 0; i < 256; i++)
+ {
+ P[i] = (byte) i;
+ }
+ for (int m = 0; m < 768; m++)
+ {
+ s = P[(s + P[m & 0xff] + key[m % key.length]) & 0xff];
+ byte temp = P[m & 0xff];
+ P[m & 0xff] = P[s & 0xff];
+ P[s & 0xff] = temp;
+ }
+
+
+
+ Value generated in the same way as P.
+
+
+
+ @param engine
+ @param entropySource
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the RNG.
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Construct a X9.31 secure random generator using the passed in engine and key. If predictionResistant is true the
+ generator will be reseeded on each request.
+
+ @param engine a block cipher to use as the operator.
+ @param key the block cipher key to initialise engine with.
+ @param predictionResistant true if engine to be reseeded on each use, false otherwise.
+ @return a SecureRandom.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ The Digital Signature Algorithm - as described in "Handbook of Applied
+ Cryptography", pages 452 - 453.
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message for standard DSA the message should be a
+ SHA-1 hash of the real message to be verified.
+
+
+ EC-DSA as described in X9.62
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message (for standard DSA the message should be
+ a SHA-1 hash of the real message to be verified).
+
+
+ GOST R 34.10-2001 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional GOST3410 the message should be a GOST3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a GOST3410 signature for
+ the passed in message (for standard GOST3410 the message should be
+ a GOST3411 hash of the real message to be verified).
+
+
+ EC-NR as described in IEEE 1363-2000
+
+
+ generate a signature for the given message using the key we were
+ initialised with. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR it *must* be at least as long.
+
+ @param digest the digest to be signed.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ return true if the value r and s represent a signature for the
+ message passed in. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR, it *must* be at least as long. But just in case the signer
+ applied mod(n) to the longer digest, this implementation will
+ apply mod(n) during verification.
+
+ @param digest the digest to be verified.
+ @param r the r value of the signature.
+ @param s the s value of the signature.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ initialise the signer for signing or verification.
+
+ @param forSigning
+ true if for signing, false otherwise
+ @param parameters
+ necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using the key
+ we were initialised with.
+
+
+ return true if the internal state represents the signature described in
+ the passed in array.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ Gost R 34.10-94 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional Gost3410 the message should be a Gost3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a Gost3410 signature for
+ the passed in message for standard Gost3410 the message should be a
+ Gost3411 hash of the real message to be verified.
+
+
+ A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979.
+
+
+ Base constructor.
+
+ @param digest digest to build the HMAC on.
+
+
+ Interface define calculators of K values for DSA/ECDSA.
+
+
+ Return true if this calculator is deterministic, false otherwise.
+
+ @return true if deterministic, otherwise false.
+
+
+ Non-deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param random a source of randomness.
+
+
+ Deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param d the DSA private value.
+ @param message the message being signed.
+
+
+ Return the next valid value of K.
+
+ @return a K value.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
+
+ Note: the usual length for the salt is the length of the hash
+ function used in bytes.
+
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ length of salt in bytes.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+ length of salt in bytes.
+
+
+
+ Initialise the signer.
+ true if for signing, false if for verification.
+ parameters for signature generation/verification. If the
+ parameters are for generation they should be a ParametersWithRandom,
+ a ParametersWithSalt, or just an RsaKeyParameters object. If RsaKeyParameters
+ are passed in a SecureRandom will be created.
+
+ if wrong parameter type or a fixed
+ salt is passed in which is the wrong length.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise, or if not sure.
+
+
+
+ int to octet string.
+ int to octet string.
+
+
+ long to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 1)
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise.
+
+
+
+ RSA-PSS as described in Pkcs# 1 v 2.1.
+
+ Note: the usual value for the salt length is the number of
+ bytes in the hash function.
+
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the length of the salt to use (in bytes).
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the fixed salt to be used.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+
+ int to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+
+ Load oid table.
+
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ The SM2 Digital Signature algorithm.
+
+
+ X9.31-1998 - signing using a hash.
+
+ The message digest hash, H, is encapsulated to form a byte string as follows
+
+
+ EB = 06 || PS || 0xBA || H || TRAILER
+
+ where PS is a string of bytes all of value 0xBB of length such that |EB|=|n|, and TRAILER is the ISO/IEC 10118 part number†for the digest. The byte string, EB, is converted to an integer value, the message representative, f.
+
+
+ Generate a signer with either implicit or explicit trailers for X9.31.
+
+ @param cipher base cipher to use for signature creation/verification
+ @param digest digest to use.
+ @param implicit whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+ @param cipher cipher to use.
+ @param digest digest to sign with.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+ a wrapper for block ciphers with a single byte block size, so that they
+ can be treated like stream ciphers.
+
+
+ basic constructor.
+
+ @param cipher the block cipher to be wrapped.
+ @exception ArgumentException if the cipher has a block size other than
+ one.
+
+
+ initialise the underlying cipher.
+
+ @param forEncryption true if we are setting up for encryption, false otherwise.
+ @param param the necessary parameters for the underlying cipher to be initialised.
+
+
+ return the name of the algorithm we are wrapping.
+
+ @return the name of the algorithm we are wrapping.
+
+
+ encrypt/decrypt a single byte returning the result.
+
+ @param in the byte to be processed.
+ @return the result of processing the input byte.
+
+
+ process a block of bytes from in putting the result into out.
+
+ @param in the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param out the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data stars at.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ reset the underlying cipher. This leaves it in the same state
+ it was at after the last init (if there was one).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.2
+
+
+
+ This message notifies the recipient that the sender will not send any more messages on this
+ connection. Note that as of TLS 1.1, failure to properly close a connection no longer
+ requires that a session not be resumed. This is a change from TLS 1.0 ("The session becomes
+ unresumable if any connection is terminated without proper close_notify messages with level
+ equal to warning.") to conform with widespread implementation practice.
+
+
+ An inappropriate message was received. This alert is always fatal and should never be
+ observed in communication between proper implementations.
+
+
+ This alert is returned if a record is received with an incorrect MAC. This alert also MUST be
+ returned if an alert is sent because a TLSCiphertext decrypted in an invalid way: either it
+ wasn't an even multiple of the block length, or its padding values, when checked, weren't
+ correct. This message is always fatal and should never be observed in communication between
+ proper implementations (except when messages were corrupted in the network).
+
+
+ This alert was used in some earlier versions of TLS, and may have permitted certain attacks
+ against the CBC mode [CBCATT]. It MUST NOT be sent by compliant implementations.
+
+
+ A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record
+ decrypted to a TLSCompressed record with more than 2^14+1024 bytes. This message is always
+ fatal and should never be observed in communication between proper implementations (except
+ when messages were corrupted in the network).
+
+
+ The decompression function received improper input (e.g., data that would expand to excessive
+ length). This message is always fatal and should never be observed in communication between
+ proper implementations.
+
+
+ Reception of a handshake_failure alert message indicates that the sender was unable to
+ negotiate an acceptable set of security parameters given the options available. This is a
+ fatal error.
+
+
+ This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ A certificate was corrupt, contained signatures that did not verify correctly, etc.
+
+
+ A certificate was of an unsupported type.
+
+
+ A certificate was revoked by its signer.
+
+
+ A certificate has expired or is not currently valid.
+
+
+ Some other (unspecified) issue arose in processing the certificate, rendering it
+ unacceptable.
+
+
+ A field in the handshake was out of range or inconsistent with other fields. This message is
+ always fatal.
+
+
+ A valid certificate chain or partial chain was received, but the certificate was not accepted
+ because the CA certificate could not be located or couldn't be matched with a known, trusted
+ CA. This message is always fatal.
+
+
+ A valid certificate was received, but when access control was applied, the sender decided not
+ to proceed with negotiation. This message is always fatal.
+
+
+ A message could not be decoded because some field was out of the specified range or the
+ length of the message was incorrect. This message is always fatal and should never be
+ observed in communication between proper implementations (except when messages were corrupted
+ in the network).
+
+
+ A handshake cryptographic operation failed, including being unable to correctly verify a
+ signature or validate a Finished message. This message is always fatal.
+
+
+ This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ The protocol version the client has attempted to negotiate is recognized but not supported.
+ (For example, old protocol versions might be avoided for security reasons.) This message is
+ always fatal.
+
+
+ Returned instead of handshake_failure when a negotiation has failed specifically because the
+ server requires ciphers more secure than those supported by the client. This message is
+ always fatal.
+
+
+ An internal error unrelated to the peer or the correctness of the protocol (such as a memory
+ allocation failure) makes it impossible to continue. This message is always fatal.
+
+
+ This handshake is being canceled for some reason unrelated to a protocol failure. If the user
+ cancels an operation after the handshake is complete, just closing the connection by sending
+ a close_notify is more appropriate. This alert should be followed by a close_notify. This
+ message is generally a warning.
+
+
+ Sent by the client in response to a hello request or by the server in response to a client
+ hello after initial handshaking. Either of these would normally lead to renegotiation; when
+ that is not appropriate, the recipient should respond with this alert. At that point, the
+ original requester can decide whether to proceed with the connection. One case where this
+ would be appropriate is where a server has spawned a process to satisfy a request; the
+ process might receive security parameters (key length, authentication, etc.) at startup, and
+ it might be difficult to communicate changes to these parameters after that point. This
+ message is always a warning.
+
+
+ Sent by clients that receive an extended server hello containing an extension that they did
+ not put in the corresponding client hello. This message is always fatal.
+
+
+ This alert is sent by servers who are unable to retrieve a certificate chain from the URL
+ supplied by the client (see Section 3.3). This message MAY be fatal - for example if client
+ authentication is required by the server for the handshake to continue and the server is
+ unable to retrieve the certificate chain, it may send a fatal alert.
+
+
+ This alert is sent by servers that receive a server_name extension request, but do not
+ recognize the server name. This message MAY be fatal.
+
+
+ This alert is sent by clients that receive an invalid certificate status response (see
+ Section 3.6). This message is always fatal.
+
+
+ This alert is sent by servers when a certificate hash does not match a client provided
+ certificate_hash. This message is always fatal.
+
+
+ If the server does not recognize the PSK identity, it MAY respond with an
+ "unknown_psk_identity" alert message.
+
+
+ If TLS_FALLBACK_SCSV appears in ClientHello.cipher_suites and the highest protocol version
+ supported by the server is higher than the version indicated in ClientHello.client_version,
+ the server MUST respond with a fatal inappropriate_fallback alert [..].
+
+
+
+ RFC 5246 7.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ A queue for bytes.
+
+ This file could be more optimized.
+
+
+
+
+ The smallest number which can be written as 2^x which is bigger than i.
+
+
+ The initial size for our buffer.
+
+
+ The buffer where we store our data.
+
+
+ How many bytes at the beginning of the buffer are skipped.
+
+
+ How many bytes in the buffer are valid data.
+
+
+ Add some data to our buffer.
+ A byte-array to read data from.
+ How many bytes to skip at the beginning of the array.
+ How many bytes to read from the array.
+
+
+ The number of bytes which are available in this buffer.
+
+
+ Copy some bytes from the beginning of the data to the provided Stream.
+ The Stream to copy the bytes to.
+ How many bytes to copy.
+ If insufficient data is available.
+ If there is a problem copying the data.
+
+
+ Read data from the buffer.
+ The buffer where the read data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ Return a MemoryStream over some bytes at the beginning of the data.
+ How many bytes will be readable.
+ A MemoryStream over the data.
+ If insufficient data is available.
+
+
+ Remove some bytes from our data from the beginning.
+ How many bytes to remove.
+
+
+ Parsing and encoding of a Certificate struct from RFC 4346.
+
+
+ opaque ASN.1Cert<2^24-1>;
+
+ struct {
+ ASN.1Cert certificate_list<0..2^24-1>;
+ } Certificate;
+
+
+ @see Org.BouncyCastle.Asn1.X509.X509CertificateStructure
+
+
+ The certificates.
+
+
+ @return an array of {@link org.bouncycastle.asn1.x509.Certificate} representing a certificate
+ chain.
+
+
+ @return true if this certificate chain contains no certificates, or
+ false otherwise.
+
+
+ Encode this {@link Certificate} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link Certificate} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link Certificate} object.
+ @throws IOException
+
+
+ Parsing and encoding of a CertificateRequest struct from RFC 4346.
+
+
+ struct {
+ ClientCertificateType certificate_types<1..2^8-1>;
+ DistinguishedName certificate_authorities<3..2^16-1>
+ } CertificateRequest;
+
+
+ @see ClientCertificateType
+ @see X509Name
+
+
+ @param certificateTypes see {@link ClientCertificateType} for valid constants.
+ @param certificateAuthorities an {@link IList} of {@link X509Name}.
+
+
+ @return an array of certificate types
+ @see {@link ClientCertificateType}
+
+
+ @return an {@link IList} of {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ @return an {@link IList} of {@link X509Name}
+
+
+ Encode this {@link CertificateRequest} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateRequest} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateRequest} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatus} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatus} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatus} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatusRequest} object.
+ @throws IOException
+
+
+ RFC 6091
+
+
+ @param type
+ see {@link CertChainType} for valid constants.
+ @param urlAndHashList
+ a {@link IList} of {@link UrlAndHash}.
+
+
+ @return {@link CertChainType}
+
+
+ @return an {@link IList} of {@link UrlAndHash}
+
+
+ Encode this {@link CertificateUrl} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateUrl} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateUrl} object.
+ @throws IOException
+
+
+ draft-ietf-tls-chacha20-poly1305-04
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 2246 A.5
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ A combined hash, which implements md5(m) || sha1(m).
+
+
+ @see org.bouncycastle.crypto.Digest#update(byte[], int, int)
+
+
+ @see org.bouncycastle.crypto.Digest#doFinal(byte[], int)
+
+
+ @see org.bouncycastle.crypto.Digest#reset()
+
+
+
+ RFC 2246 6.1
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246 6.2.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Accept only the group parameters specified in RFC 5054 Appendix A.
+
+
+ Specify a custom set of acceptable group parameters.
+
+ @param groups a {@link Vector} of acceptable {@link SRP6GroupParameters}
+
+
+ Buffers input until the hash algorithm is determined.
+
+
+ @return a {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ Encode this {@link DigitallySigned} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link DigitallySigned} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link DigitallySigned} object.
+ @throws IOException
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check that there are no "extra" messages left in the current inbound flight
+
+
+ RFC 4347 4.1.2.5 Anti-replay
+
+ Support fast rejection of duplicate records by maintaining a sliding receive window
+
+
+ Check whether a received record with the given sequence number should be rejected as a duplicate.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of a received record.
+ @return true if the record should be discarded without further processing.
+
+
+ Report that a received record with the given sequence number passed authentication checks.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of an authenticated record.
+
+
+ When a new epoch begins, sequence numbers begin again at 0
+
+
+ RFC 4492 5.4. (Errata ID: 2389)
+
+
+
+ RFC 4492 5.4
+
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a prime field.
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a characteristic-2 field.
+
+
+ Indicates that a named curve is used. This option SHOULD be used when applicable.
+
+
+
+ RFC 4492 5.1.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 5705
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ Encode this {@link HeartbeatExtension} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatExtension} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatExtension} object.
+ @throws IOException
+
+
+ Encode this {@link HeartbeatMessage} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatMessage} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatMessage} object.
+ @throws IOException
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ RFC 4492 5.1.1
+ The named curves defined here are those specified in SEC 2 [13]. Note that many of
+ these curves are also recommended in ANSI X9.62 [7] and FIPS 186-2 [11]. Values 0xFE00
+ through 0xFEFF are reserved for private use. Values 0xFF01 and 0xFF02 indicate that the
+ client supports arbitrary prime and characteristic-2 curves, respectively (the curve
+ parameters must be encoded explicitly in ECParameters).
+
+
+
+ Encode this {@link NewSessionTicket} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link NewSessionTicket} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link NewSessionTicket} object.
+ @throws IOException
+
+
+ RFC 3546 3.6
+
+
+ @param responderIDList
+ an {@link IList} of {@link ResponderID}, specifying the list of trusted OCSP
+ responders. An empty list has the special meaning that the responders are
+ implicitly known to the server - e.g., by prior arrangement.
+ @param requestExtensions
+ OCSP request extensions. A null value means that there are no extensions.
+
+
+ @return an {@link IList} of {@link ResponderID}
+
+
+ @return OCSP request extensions
+
+
+ Encode this {@link OcspStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link OcspStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return an {@link OcspStatusRequest} object.
+ @throws IOException
+
+
+ RFC 5246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+
+
+ An implementation of the TLS 1.0/1.1/1.2 record layer, allowing downgrade to SSLv3.
+
+
+ RFC 5246 E.1. "Earlier versions of the TLS specification were not fully clear on what the
+ record layer version number (TLSPlaintext.version) should contain when sending ClientHello
+ (i.e., before it is known which version of the protocol will be employed). Thus, TLS servers
+ compliant with this specification MUST accept any value {03,XX} as the record layer version
+ number for ClientHello."
+
+
+ @return {@link ConnectionEnd}
+
+
+ @return {@link CipherSuite}
+
+
+ @return {@link CompressionMethod}
+
+
+ @return {@link PRFAlgorithm}
+
+
+ Encode this {@link ServerDHParams} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerDHParams} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerDHParams} object.
+ @throws IOException
+
+
+ Encode this {@link ServerName} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerName} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerName} object.
+ @throws IOException
+
+
+ @param serverNameList an {@link IList} of {@link ServerName}.
+
+
+ @return an {@link IList} of {@link ServerName}.
+
+
+ Encode this {@link ServerNameList} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerNameList} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerNameList} object.
+ @throws IOException
+
+
+ Encode this {@link ServerSRPParams} to an {@link OutputStream}.
+
+ @param output
+ the {@link OutputStream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerSRPParams} from an {@link InputStream}.
+
+ @param input
+ the {@link InputStream} to parse from.
+ @return a {@link ServerSRPParams} object.
+ @throws IOException
+
+
+ RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned)
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ @param hash {@link HashAlgorithm}
+ @param signature {@link SignatureAlgorithm}
+
+
+ @return {@link HashAlgorithm}
+
+
+ @return {@link SignatureAlgorithm}
+
+
+ Encode this {@link SignatureAndHashAlgorithm} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link SignatureAndHashAlgorithm} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link SignatureAndHashAlgorithm} object.
+ @throws IOException
+
+
+ An implementation of {@link TlsSRPIdentityManager} that simulates the existence of "unknown" identities
+ to obscure the fact that there is no verifier for them.
+
+
+ Create a {@link SimulatedTlsSRPIdentityManager} that implements the algorithm from RFC 5054 2.5.1.3
+
+ @param group the {@link SRP6GroupParameters} defining the group that SRP is operating in
+ @param seedKey the secret "seed key" referred to in RFC 5054 2.5.1.3
+ @return an instance of {@link SimulatedTlsSRPIdentityManager}
+
+
+ HMAC implementation based on original internet draft for HMAC (RFC 2104)
+
+ The difference is that padding is concatentated versus XORed with the key
+
+ H(K + opad, H(K + ipad, text))
+
+
+ Base constructor for one of the standard digest algorithms that the byteLength of
+ the algorithm is know for. Behaviour is undefined for digests other than MD5 or SHA1.
+
+ @param digest the digest.
+
+
+ Reset the mac generator.
+
+
+ RFC 4680
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called by the protocol handler to report the server certificate.
+
+
+ This method is responsible for certificate verification and validation
+
+ The server received
+
+
+
+
+ Return client credentials in response to server's certificate request
+
+
+ A containing server certificate request details
+
+
+ A to be used for client authentication
+ (or null for no client authentication)
+
+
+
+
+
+ A generic TLS 1.0-1.2 / SSLv3 block cipher. This can be used for AES or 3DES for example.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called at the start of a new TLS session, before any other methods.
+
+
+ A
+
+
+
+ Return the session this client wants to resume, if any.
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ A representing the resumable session to be used for this connection,
+ or null to use a new session.
+
+
+
+
+ Return the to use for the TLSPlaintext.version field prior to
+ receiving the server version. NOTE: This method is not called for DTLS.
+
+
+ See RFC 5246 E.1.: "TLS clients that wish to negotiate with older servers MAY send any value
+ {03,XX} as the record layer version number. Typical values would be {03,00}, the lowest
+ version number supported by the client, and the value of ClientHello.client_version. No
+ single value will guarantee interoperability with all old servers, but this is a complex
+ topic beyond the scope of this document."
+
+ The to use.
+
+
+
+ Get the list of cipher suites that this client supports.
+
+
+ An array of values, each specifying a supported cipher suite.
+
+
+
+
+ Get the list of compression methods that this client supports.
+
+
+ An array of values, each specifying a supported compression method.
+
+
+
+
+ Get the (optional) table of client extensions to be included in (extended) client hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+
+
+
+ Notifies the client of the session_id sent in the ServerHello.
+
+ An array of
+
+
+
+ Report the cipher suite that was selected by the server.
+
+
+ The protocol handler validates this value against the offered cipher suites
+
+
+
+ A
+
+
+
+
+ Report the compression method that was selected by the server.
+
+
+ The protocol handler validates this value against the offered compression methods
+
+
+
+ A
+
+
+
+
+ Report the extensions from an extended server hello.
+
+
+ Will only be called if we returned a non-null result from .
+
+
+ A (Int32 -> byte[])
+
+
+
+ A list of
+
+
+
+
+ Return an implementation of to negotiate the key exchange
+ part of the protocol.
+
+
+ A
+
+
+
+
+
+ Return an implementation of to handle authentication
+ part of the protocol.
+
+
+
+
+ A list of
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message
+
+ This method will be called (only) when a NewSessionTicket handshake message is received. The
+ ticket is opaque to the client and clients MUST NOT examine the ticket under the assumption
+ that it complies with e.g. RFC 5077 4. Recommended Ticket Construction.
+
+ The ticket
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the server
+ @param output The stream of data to the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Initiates a TLS handshake in the role of client.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#NotifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsClient The {@link TlsClient} to use for the handshake.
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+ Used to get the resumable session, if any, used by this connection. Only available after the
+ handshake has successfully completed.
+
+ @return A {@link TlsSession} representing the resumable session used by this connection, or
+ null if no resumable session available.
+ @see TlsPeer#NotifyHandshakeComplete()
+
+
+ Export keying material according to RFC 5705: "Keying Material Exporters for TLS".
+
+ @param asciiLabel indicates which application will use the exported keys.
+ @param context_value allows the application using the exporter to mix its own data with the TLS PRF for
+ the exporter output.
+ @param length the number of bytes to generate
+ @return a pseudorandom bit string of 'length' bytes generated from the master_secret.
+
+
+ (D)TLS DH key exchange.
+
+
+ (D)TLS ECDHE key exchange (see RFC 4492).
+
+
+ (D)TLS ECDH key exchange (see RFC 4492).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic interface for key exchange implementations in (D)TLS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
+
+
+
+ Generate a new instance of an TlsMac.
+
+ @param context the TLS client context
+ @param digest The digest to use.
+ @param key A byte-array where the key for this MAC is located.
+ @param keyOff The number of bytes to skip, before the key starts in the buffer.
+ @param keyLen The length of the key.
+
+
+ @return the MAC write secret
+
+
+ @return The output length of this MAC.
+
+
+ Calculate the MAC for some given data.
+
+ @param type The message type of the message.
+ @param message A byte-buffer containing the message.
+ @param offset The number of bytes to skip, before the message starts.
+ @param length The length of the message.
+ @return A new byte-buffer containing the MAC value.
+
+
+
+ This exception will be thrown(only) when the connection is closed by the peer without sending a
+ close_notify warning alert.
+
+
+ If this happens, the TLS protocol cannot rule out truncation of the connection data (potentially
+ malicious). It may be possible to check for truncation via some property of a higher level protocol
+ built upon TLS, e.g.the Content-Length header for HTTPS.
+
+
+
+
+ A NULL CipherSuite, with optional MAC.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on
+ gmt_unix_time containing the current time, we recommend that implementors MAY provide the
+ ability to set gmt_unix_time as an option only, off by default."
+
+
+ true if the current time should be used in the gmt_unix_time field of
+ Random, or false if gmt_unix_time should contain a cryptographically
+ random value.
+
+
+
+
+ Report whether the server supports secure renegotiation
+
+
+ The protocol handler automatically processes the relevant extensions
+
+
+ A , true if the server supports secure renegotiation
+
+
+
+
+
+ Return an implementation of to handle record compression.
+
+ A
+
+
+
+
+ Return an implementation of to use for encryption/decryption.
+
+ A
+
+
+
+ This method will be called when an alert is raised by the protocol.
+
+
+ A human-readable message explaining what caused this alert. May be null.
+ The Exception that caused this alert to be raised. May be null.
+
+
+ This method will be called when an alert is received from the remote peer.
+
+
+
+
+ Notifies the peer that the handshake has been successfully completed.
+
+
+
+ This method is called, when a change cipher spec message is received.
+
+ @throws IOException If the message has an invalid content or the handshake is not in the correct
+ state.
+
+
+ Read data from the network. The method will return immediately, if there is still some data
+ left in the buffer, or block until some application data has been read from the network.
+
+ @param buf The buffer where the data will be copied to.
+ @param offset The position where the data will be placed in the buffer.
+ @param len The maximum number of bytes to read.
+ @return The number of bytes read.
+ @throws IOException If something goes wrong during reading data.
+
+
+ Send some application data to the remote system.
+
+ The method will handle fragmentation internally.
+
+ @param buf The buffer with the data.
+ @param offset The position in the buffer where the data is placed.
+ @param len The length of the data.
+ @throws IOException If something goes wrong during sending.
+
+
+ The secure bidirectional stream for this connection
+ Only allowed in blocking mode.
+
+
+ Should be called in non-blocking mode when the input data reaches EOF.
+
+
+ Offer input from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the input buffer is "owned" by this object. Other code
+ must not attempt to do anything with it.
+
+ This method will decrypt and process all records that are fully available.
+ If only part of a record is available, the buffer will be retained until the
+ remainder of the record is offered.
+
+ If any records containing application data were processed, the decrypted data
+ can be obtained using {@link #readInput(byte[], int, int)}. If any records
+ containing protocol data were processed, a response may have been generated.
+ You should always check to see if there is any available output after calling
+ this method by calling {@link #getAvailableOutputBytes()}.
+ @param input The input buffer to offer
+ @throws IOException If an error occurs while decrypting or processing a record
+
+
+ Gets the amount of received application data. A call to {@link #readInput(byte[], int, int)}
+ is guaranteed to be able to return at least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available application data
+
+
+ Retrieves received application data. Use {@link #getAvailableInputBytes()} to check
+ how much application data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the application data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Offer output from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the specified section of the buffer will have been
+ processed. Use {@link #readOutput(byte[], int, int)} to get the bytes to
+ transmit to the other peer.
+
+ This method must not be called until after the handshake is complete! Attempting
+ to call it before the handshake is complete will result in an exception.
+ @param buffer The buffer containing application data to encrypt
+ @param offset The offset at which to begin reading data
+ @param length The number of bytes of data to read
+ @throws IOException If an error occurs encrypting the data, or the handshake is not complete
+
+
+ Gets the amount of encrypted data available to be sent. A call to
+ {@link #readOutput(byte[], int, int)} is guaranteed to be able to return at
+ least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available encrypted data
+
+
+ Retrieves encrypted data to be sent. Use {@link #getAvailableOutputBytes()} to check
+ how much encrypted data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the encrypted data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Closes this connection.
+
+ @throws IOException If something goes wrong during closing.
+
+
+ Make sure the InputStream 'buf' now empty. Fail otherwise.
+
+ @param buf The InputStream to check.
+ @throws IOException If 'buf' is not empty.
+
+
+ 'sender' only relevant to SSLv3
+
+
+ Both streams can be the same object
+
+
+ (D)TLS PSK key exchange (RFC 4279).
+
+
+ (D)TLS and SSLv3 RSA key exchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A (Int32 -> byte[]). Will never be null.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the (optional) table of server extensions to be included in (extended) server hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+ A (). May be null.
+
+
+
+
+
+
+
+
+ This method will be called (only) if the server included an extension of type
+ "status_request" with empty "extension_data" in the extended server hello. See RFC 3546
+ 3.6. Certificate Status Request. If a non-null is returned, it
+ is sent to the client as a handshake message of type "certificate_status".
+
+ A to be sent to the client (or null for none).
+
+
+
+
+
+
+
+
+
+ ()
+
+
+
+
+ Called by the protocol handler to report the client certificate, only if GetCertificateRequest
+ returned non-null.
+
+ Note: this method is responsible for certificate verification and validation.
+ the effective client certificate (may be an empty chain).
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message.
+
+ This method will be called (only) if a NewSessionTicket extension was sent by the server. See
+ RFC 5077 4. Recommended Ticket Construction for recommended format and protection.
+
+ The ticket)
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Receives a TLS handshake in the role of server.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#notifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsServer
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+
+
+
+ Check whether the given SRP group parameters are acceptable for use.
+
+ @param group the {@link SRP6GroupParameters} to check
+ @return true if (and only if) the specified group parameters are acceptable
+
+
+ Lookup the {@link TlsSRPLoginParameters} corresponding to the specified identity.
+
+ NOTE: To avoid "identity probing", unknown identities SHOULD be handled as recommended in RFC
+ 5054 2.5.1.3. {@link SimulatedTlsSRPIdentityManager} is provided for this purpose.
+
+ @param identity
+ the SRP identity sent by the connecting client
+ @return the {@link TlsSRPLoginParameters} for the specified identity, or else 'simulated'
+ parameters if the identity is not recognized. A null value is also allowed, but not
+ recommended.
+
+
+ (D)TLS SRP key exchange (RFC 5054).
+
+
+ RFC 5764 DTLS Extension to Establish Keys for SRTP.
+
+
+
+
+
+
+
+
+
+
+
+ Some helper functions for MicroTLS.
+
+
+ Add a 'signature_algorithms' extension to existing extensions.
+
+ @param extensions A {@link Hashtable} to add the extension to.
+ @param supportedSignatureAlgorithms {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ Get a 'signature_algorithms' extension from extensions.
+
+ @param extensions A {@link Hashtable} to get the extension from, if it is present.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}, or null.
+ @throws IOException
+
+
+ Create a 'signature_algorithms' extension value.
+
+ @param supportedSignatureAlgorithms A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @return A byte array suitable for use as an extension value.
+ @throws IOException
+
+
+ Read 'signature_algorithms' extension data.
+
+ @param extensionData The extension data.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ RFC 6066 5.
+
+
+ Encode this {@link UrlAndHash} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link UrlAndHash} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link UrlAndHash} object.
+ @throws IOException
+
+
+ RFC 4681
+
+
+ RFC 5764 4.1.1
+
+
+ @param protectionProfiles see {@link SrtpProtectionProfile} for valid constants.
+ @param mki valid lengths from 0 to 255.
+
+
+ @return see {@link SrtpProtectionProfile} for valid constants.
+
+
+ @return valid lengths from 0 to 255.
+
+
+ return a = a + b - b preserved.
+
+
+ unsigned comparison on two arrays - note the arrays may
+ start with leading zeros.
+
+
+ return z = x / y - done in place (z value preserved, x contains the
+ remainder)
+
+
+ return whether or not a BigInteger is probably prime with a
+ probability of 1 - (1/2)**certainty.
+ From Knuth Vol 2, pg 395.
+
+
+ Calculate the numbers u1, u2, and u3 such that:
+
+ u1 * a + u2 * b = u3
+
+ where u3 is the greatest common divider of a and b.
+ a and b using the extended Euclid algorithm (refer p. 323
+ of The Art of Computer Programming vol 2, 2nd ed).
+ This also seems to have the side effect of calculating
+ some form of multiplicative inverse.
+
+ @param a First number to calculate gcd for
+ @param b Second number to calculate gcd for
+ @param u1Out the return object for the u1 value
+ @return The greatest common divisor of a and b
+
+
+ return w with w = x * x - w is assumed to have enough space.
+
+
+ return x with x = y * z - x is assumed to have enough space.
+
+
+ Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size)
+
+
+ Montgomery multiplication: a = x * y * R^(-1) mod m
+
+ Based algorithm 14.36 of Handbook of Applied Cryptography.
+
+ m, x, y should have length n
+ a should have length (n + 1)
+ b = 2^32, R = b^n
+
+ The result is put in x
+
+ NOTE: the indices of x, y, m, a different in HAC and in Java
+
+
+ return x = x % y - done in place (y value preserved)
+
+
+ do a left shift - this returns a new array.
+
+
+ do a right shift - this does it in place.
+
+
+ do a right shift by one - this does it in place.
+
+
+ returns x = x - y - we assume x is >= y
+
+
+ Class representing a simple version of a big decimal. A
+ SimpleBigDecimal is basically a
+ {@link java.math.BigInteger BigInteger} with a few digits on the right of
+ the decimal point. The number of (binary) digits on the right of the decimal
+ point is called the scale of the SimpleBigDecimal.
+ Unlike in {@link java.math.BigDecimal BigDecimal}, the scale is not adjusted
+ automatically, but must be set manually. All SimpleBigDecimals
+ taking part in the same arithmetic operation must have equal scale. The
+ result of a multiplication of two SimpleBigDecimals returns a
+ SimpleBigDecimal with double scale.
+
+
+ Returns a SimpleBigDecimal representing the same numerical
+ value as value.
+ @param value The value of the SimpleBigDecimal to be
+ created.
+ @param scale The scale of the SimpleBigDecimal to be
+ created.
+ @return The such created SimpleBigDecimal.
+
+
+ Constructor for SimpleBigDecimal. The value of the
+ constructed SimpleBigDecimal Equals bigInt /
+ 2scale.
+ @param bigInt The bigInt value parameter.
+ @param scale The scale of the constructed SimpleBigDecimal.
+
+
+ Class holding methods for point multiplication based on the window
+ τ-adic nonadjacent form (WTNAF). The algorithms are based on the
+ paper "Improved Algorithms for Arithmetic on Anomalous Binary Curves"
+ by Jerome A. Solinas. The paper first appeared in the Proceedings of
+ Crypto 1997.
+
+
+ The window width of WTNAF. The standard value of 4 is slightly less
+ than optimal for running time, but keeps space requirements for
+ precomputation low. For typical curves, a value of 5 or 6 results in
+ a better running time. When changing this value, the
+ αu's must be computed differently, see
+ e.g. "Guide to Elliptic Curve Cryptography", Darrel Hankerson,
+ Alfred Menezes, Scott Vanstone, Springer-Verlag New York Inc., 2004,
+ p. 121-122
+
+
+ 24
+
+
+ The αu's for a=0 as an array
+ of ZTauElements.
+
+
+ The αu's for a=0 as an array
+ of TNAFs.
+
+
+ The αu's for a=1 as an array
+ of ZTauElements.
+
+
+ The αu's for a=1 as an array
+ of TNAFs.
+
+
+ Computes the norm of an element λ of
+ Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The norm of λ.
+
+
+ Computes the norm of an element λ of
+ R[τ], where λ = u + vτ
+ and u and u are real numbers (elements of
+ R).
+ @param mu The parameter μ of the elliptic curve.
+ @param u The real part of the element λ of
+ R[τ].
+ @param v The τ-adic part of the element
+ λ of R[τ].
+ @return The norm of λ.
+
+
+ Rounds an element λ of R[τ]
+ to an element of Z[τ], such that their difference
+ has minimal norm. λ is given as
+ λ = λ0 + λ1τ.
+ @param lambda0 The component λ0.
+ @param lambda1 The component λ1.
+ @param mu The parameter μ of the elliptic curve. Must
+ equal 1 or -1.
+ @return The rounded element of Z[τ].
+ @throws ArgumentException if lambda0 and
+ lambda1 do not have same scale.
+
+
+ Approximate division by n. For an integer
+ k, the value λ = s k / n is
+ computed to c bits of accuracy.
+ @param k The parameter k.
+ @param s The curve parameter s0 or
+ s1.
+ @param vm The Lucas Sequence element Vm.
+ @param a The parameter a of the elliptic curve.
+ @param m The bit length of the finite field
+ Fm.
+ @param c The number of bits of accuracy, i.e. the scale of the returned
+ SimpleBigDecimal.
+ @return The value λ = s k / n computed to
+ c bits of accuracy.
+
+
+ Computes the τ-adic NAF (non-adjacent form) of an
+ element λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The τ-adic NAF of λ.
+
+
+ Applies the operation τ() to an
+ AbstractF2mPoint.
+ @param p The AbstractF2mPoint to which τ() is applied.
+ @return τ(p)
+
+
+ Returns the parameter μ of the elliptic curve.
+ @param curve The elliptic curve from which to obtain μ.
+ The curve must be a Koblitz curve, i.e. a Equals
+ 0 or 1 and b Equals
+ 1.
+ @return μ of the elliptic curve.
+ @throws ArgumentException if the given ECCurve is not a Koblitz
+ curve.
+
+
+ Calculates the Lucas Sequence elements Uk-1 and
+ Uk or Vk-1 and
+ Vk.
+ @param mu The parameter μ of the elliptic curve.
+ @param k The index of the second element of the Lucas Sequence to be
+ returned.
+ @param doV If set to true, computes Vk-1 and
+ Vk, otherwise Uk-1 and
+ Uk.
+ @return An array with 2 elements, containing Uk-1
+ and Uk or Vk-1
+ and Vk.
+
+
+ Computes the auxiliary value tw. If the width is
+ 4, then for mu = 1, tw = 6 and for
+ mu = -1, tw = 10
+ @param mu The parameter μ of the elliptic curve.
+ @param w The window width of the WTNAF.
+ @return the auxiliary value tw
+
+
+ Computes the auxiliary values s0 and
+ s1 used for partial modular reduction.
+ @param curve The elliptic curve for which to compute
+ s0 and s1.
+ @throws ArgumentException if curve is not a
+ Koblitz curve (Anomalous Binary Curve, ABC).
+
+
+ Partial modular reduction modulo
+ (τm - 1)/(τ - 1).
+ @param k The integer to be reduced.
+ @param m The bitlength of the underlying finite field.
+ @param a The parameter a of the elliptic curve.
+ @param s The auxiliary values s0 and
+ s1.
+ @param mu The parameter μ of the elliptic curve.
+ @param c The precision (number of bits of accuracy) of the partial
+ modular reduction.
+ @return ρ := k partmod (τm - 1)/(τ - 1)
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by a BigInteger using the reduced τ-adic
+ NAF (RTNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param k The BigInteger by which to Multiply p.
+ @return k * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param lambda The element λ of
+ Z[τ].
+ @return λ * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method, given the TNAF
+ of λ.
+ @param p The AbstractF2mPoint to Multiply.
+ @param u The the TNAF of λ..
+ @return λ * p
+
+
+ Computes the [τ]-adic window NAF of an element
+ λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @param width The window width of the resulting WNAF.
+ @param pow2w 2width.
+ @param tw The auxiliary value tw.
+ @param alpha The αu's for the window width.
+ @return The [τ]-adic window NAF of
+ λ.
+
+
+ Does the precomputation for WTNAF multiplication.
+ @param p The ECPoint for which to do the precomputation.
+ @param a The parameter a of the elliptic curve.
+ @return The precomputation array for p.
+
+
+ Class representing an element of Z[τ]. Let
+ λ be an element of Z[τ]. Then
+ λ is given as λ = u + vτ. The
+ components u and v may be used directly, there
+ are no accessor methods.
+ Immutable class.
+
+
+ The "real" part of λ.
+
+
+ The "τ-adic" part of λ.
+
+
+ Constructor for an element λ of
+ Z[τ].
+ @param u The "real" part of λ.
+ @param v The "τ-adic" part of
+ λ.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(boolean)}
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ Simple shift-and-add multiplication. Serves as reference implementation
+ to verify (possibly faster) implementations, and for very small scalars.
+
+ @param p
+ The point to multiply.
+ @param k
+ The multiplier.
+ @return The result of the point multiplication kP.
+
+
+ Base class for an elliptic curve.
+
+
+ Adds PreCompInfo for a point on this curve, under a given name. Used by
+ ECMultipliers to save the precomputation for this ECPoint for use
+ by subsequent multiplication.
+
+ @param point
+ The ECPoint to store precomputations for.
+ @param name
+ A String used to index precomputations of different types.
+ @param preCompInfo
+ The values precomputed by the ECMultiplier.
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately.
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately. An (optional) z-scaling factor can be applied; effectively
+ each z coordinate is scaled by this value prior to normalization (but only one
+ actual multiplication is needed).
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+ @param off
+ The start of the range of points to normalize
+ @param len
+ The length of the range of points to normalize
+ @param iso
+ The (optional) z-scaling factor - can be null
+
+
+ Sets the default ECMultiplier, unless already set.
+
+
+ Decode a point on this curve from its ASN.1 encoding. The different
+ encodings are taken account of, including point compression for
+ Fp (X9.62 s 4.2.1 pg 17).
+ @return The decoded point.
+
+
+ Elliptic curve over Fp
+
+
+ The auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Solves a quadratic equation z2 + z = beta(X9.62
+ D.1.6) The other solution is z + 1.
+
+ @param beta
+ The value to solve the qradratic equation for.
+ @return the solution for z2 + z = beta or
+ null if no solution exists.
+
+
+ @return the auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Returns true if this is a Koblitz curve (ABC curve).
+ @return true if this is a Koblitz curve (ABC curve), false otherwise
+
+
+ Elliptic curves over F2m. The Weierstrass equation is given by
+ y2 + xy = x3 + ax2 + b.
+
+
+ The exponent m of F2m.
+
+
+ TPB: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ PPB: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ The point at infinity on this curve.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Return true if curve uses a Trinomial basis.
+
+ @return true if curve Trinomial, false otherwise.
+
+
+ return the field name for this field.
+
+ @return the string "Fp".
+
+
+ return a sqrt root - the routine verifies that the calculation
+ returns the right value - if none exists it returns null.
+
+
+ Class representing the Elements of the finite field
+ F2m in polynomial basis (PB)
+ representation. Both trinomial (Tpb) and pentanomial (Ppb) polynomial
+ basis representations are supported. Gaussian normal basis (GNB)
+ representation is not supported.
+
+
+ Indicates gaussian normal basis representation (GNB). Number chosen
+ according to X9.62. GNB is not implemented at present.
+
+
+ Indicates trinomial basis representation (Tpb). Number chosen
+ according to X9.62.
+
+
+ Indicates pentanomial basis representation (Ppb). Number chosen
+ according to X9.62.
+
+
+ Tpb or Ppb.
+
+
+ The exponent m of F2m.
+
+
+ The LongArray holding the bits.
+
+
+ Constructor for Ppb.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Constructor for Tpb.
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Checks, if the ECFieldElements a and b
+ are elements of the same field F2m
+ (having the same representation).
+ @param a field element.
+ @param b field element to be compared.
+ @throws ArgumentException if a and b
+ are not elements of the same field
+ F2m (having the same
+ representation).
+
+
+ @return the representation of the field
+ F2m, either of
+ {@link F2mFieldElement.Tpb} (trinomial
+ basis representation) or
+ {@link F2mFieldElement.Ppb} (pentanomial
+ basis representation).
+
+
+ @return the degree m of the reduction polynomial
+ f(z).
+
+
+ @return Tpb: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ Ppb: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always returns 0
+ Ppb: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always set to 0
+ Ppb: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ base class for points on elliptic curves.
+
+
+ Normalizes this point, and then returns the affine x-coordinate.
+
+ Note: normalization can be expensive, this method is deprecated in favour
+ of caller-controlled normalization.
+
+
+ Normalizes this point, and then returns the affine y-coordinate.
+
+ Note: normalization can be expensive, this method is deprecated in favour
+ of caller-controlled normalization.
+
+
+ Returns the affine x-coordinate after checking that this point is normalized.
+
+ @return The affine x-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the affine y-coordinate after checking that this point is normalized
+
+ @return The affine y-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the x-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineXCoord if you expect the point to already have been normalized.
+
+ @return the x-coordinate of this point
+
+
+ Returns the y-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineYCoord if you expect the point to already have been normalized.
+
+ @return the y-coordinate of this point
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system.
+
+ @return a new ECPoint instance representing the same point, but with normalized coordinates
+
+
+ return the field element encoded with point compression. (S 4.3.6)
+
+
+ Multiplies this ECPoint by the given number.
+ @param k The multiplicator.
+ @return k * this.
+
+
+ Elliptic curve points over Fp
+
+
+ Create a point which encodes without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+
+ Create a point that encodes with or without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+
+ Elliptic curve points over F2m
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+ @param withCompression true if encode with point compression.
+
+
+ Constructor for point at infinity
+
+
+ Joye's double-add algorithm.
+
+
+ Interface for classes encapsulating a point multiplication algorithm
+ for ECPoints.
+
+
+ Multiplies the ECPoint p by k, i.e.
+ p is added k times to itself.
+ @param p The ECPoint to be multiplied.
+ @param k The factor by which p is multiplied.
+ @return p multiplied by k.
+
+
+ Class holding precomputation data for fixed-point multiplications.
+
+
+ Array holding the precomputed ECPoints used for a fixed
+ point multiplication.
+
+
+ The width used for the precomputation. If a larger width precomputation
+ is already available this may be larger than was requested, so calling
+ code should refer to the actual width.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left) using
+ mixed coordinates.
+
+
+ By default, addition will be done in Jacobian coordinates, and doubling will be done in
+ Modified Jacobian coordinates (independent of the original coordinate system of each point).
+
+
+ Montgomery ladder.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (left-to-right).
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left).
+
+
+ Interface for classes storing precomputation data for multiplication
+ algorithms. Used as a Memento (see GOF patterns) for
+ WNafMultiplier.
+
+
+ Class implementing the WNAF (Window Non-Adjacent Form) multiplication
+ algorithm.
+
+
+ Multiplies this by an integer k using the
+ Window NAF method.
+ @param k The integer by which this is multiplied.
+ @return A new ECPoint which equals this
+ multiplied by k.
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Class holding precomputation data for the WNAF (Window Non-Adjacent Form)
+ algorithm.
+
+
+ Array holding the precomputed ECPoints used for a Window
+ NAF multiplication.
+
+
+ Array holding the negations of the precomputed ECPoints used
+ for a Window NAF multiplication.
+
+
+ Holds an ECPoint representing Twice(this). Used for the
+ Window NAF multiplication to create or extend the precomputed values.
+
+
+ Computes the Window NAF (non-adjacent Form) of an integer.
+ @param width The width w of the Window NAF. The width is
+ defined as the minimal number w, such that for any
+ w consecutive digits in the resulting representation, at
+ most one is non-zero.
+ @param k The integer of which the Window NAF is computed.
+ @return The Window NAF of the given width, such that the following holds:
+ k = ∑i=0l-1 ki2i
+ , where the ki denote the elements of the
+ returned byte[].
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @return the window size to use
+
+
+ Class implementing the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by k using the reduced τ-adic NAF (RTNAF)
+ method.
+ @param p The AbstractF2mPoint to multiply.
+ @param k The integer by which to multiply k.
+ @return p multiplied by k.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ] using
+ the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to multiply.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @return p multiplied by λ.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the window τ-adic NAF (TNAF) method, given the
+ WTNAF of λ.
+ @param p The AbstractF2mPoint to multiply.
+ @param u The the WTNAF of λ..
+ @return λ * p
+
+
+ Class holding precomputation data for the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Array holding the precomputed AbstractF2mPoints used for the
+ WTNAF multiplication in
+ {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
+ WTauNafMultiplier.multiply()}.
+
+
+ 'Zeroless' Signed Digit Left-to-Right.
+
+
+ 'Zeroless' Signed Digit Right-to-Left.
+
+
+ Utility methods for generating primes and testing for primality.
+
+
+ Used to return the output from the
+ {@linkplain Primes#enhancedMRProbablePrimeTest(BigInteger, SecureRandom, int) Enhanced
+ Miller-Rabin Probabilistic Primality Test}
+
+
+ Used to return the output from the {@linkplain Primes#generateSTRandomPrime(Digest, int, byte[]) Shawe-Taylor Random_Prime Routine}
+
+
+ FIPS 186-4 C.6 Shawe-Taylor Random_Prime Routine
+
+ Construct a provable prime number using a hash function.
+
+ @param hash
+ the {@link Digest} instance to use (as "Hash()"). Cannot be null.
+ @param length
+ the length (in bits) of the prime to be generated. Must be at least 2.
+ @param inputSeed
+ the seed to be used for the generation of the requested prime. Cannot be null or
+ empty.
+ @return an {@link STOutput} instance containing the requested prime.
+
+
+ FIPS 186-4 C.3.2 Enhanced Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases. This is an
+ alternative to {@link #isMRProbablePrime(BigInteger, SecureRandom, int)} that provides more
+ information about a composite candidate, which may be useful when generating or validating
+ RSA moduli.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return an {@link MROutput} instance that can be further queried for details.
+
+
+ A fast check for small divisors, up to some implementation-specific limit.
+
+ @param candidate
+ the {@link BigInteger} instance to test for division by small factors.
+
+ @return true if the candidate is found to have any small factors,
+ false otherwise.
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return false if any witness to compositeness is found amongst the chosen bases
+ (so candidate is definitely NOT prime), or else true
+ (indicating primality with some probability dependent on the number of iterations
+ that were performed).
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test (to a fixed base).
+
+ Run a single iteration of the Miller-Rabin algorithm against the specified base.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param baseValue
+ the base value to use for this iteration.
+ @return false if the specified base is a witness to compositeness (so
+ candidate is definitely NOT prime), or else true.
+
+
+
+
+ BasicOcspResponse ::= SEQUENCE {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL
+ }
+
+
+
+
+ The DER encoding of the tbsResponseData field.
+ In the event of an encoding error.
+
+
+ The certificates, if any, associated with the response.
+ In the event of an encoding error.
+
+
+
+ Verify the signature against the tbsResponseData object we contain.
+
+
+
+ The ASN.1 encoded representation of this object.
+
+
+ Generator for basic OCSP response objects.
+
+
+ basic constructor
+
+
+ construct with the responderID to be the SHA-1 keyHash of the passed in public key.
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param thisUpdate date this response was valid on
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Set the extensions for the response.
+
+ @param responseExtensions the extension object to carry.
+
+
+
+ Generate the signed response using the passed in signature calculator.
+
+ Implementation of signing calculator factory.
+ The certificate chain associated with the response signer.
+ "produced at" date.
+
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ create from an issuer certificate and the serial number of the
+ certificate it signed.
+ @exception OcspException if any problems occur creating the id fields.
+
+
+ return the serial number for the certificate associated
+ with this request.
+
+
+ Create a new CertificateID for a new serial number derived from a previous one
+ calculated for the same CA certificate.
+
+ @param original the previously calculated CertificateID for the CA.
+ @param newSerialNumber the serial number for the new certificate of interest.
+
+ @return a new CertificateID for newSerialNumber
+
+
+
+ OcspRequest ::= SEQUENCE {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+ TBSRequest ::= SEQUENCE {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList SEQUENCE OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+ Signature ::= SEQUENCE {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL}
+
+ Version ::= INTEGER { v1(0) }
+
+ Request ::= SEQUENCE {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+ CertID ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ Return the DER encoding of the tbsRequest field.
+ @return DER encoding of tbsRequest
+ @throws OcspException in the event of an encoding error.
+
+
+ return the object identifier representing the signature algorithm
+
+
+ If the request is signed return a possibly empty CertStore containing the certificates in the
+ request. If the request is not signed the method returns null.
+
+ @return null if not signed, a CertStore otherwise
+ @throws OcspException
+
+
+ Return whether or not this request is signed.
+
+ @return true if signed false otherwise.
+
+
+ Verify the signature against the TBSRequest object we contain.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Add a request for the given CertificateID.
+
+ @param certId certificate ID of interest
+
+
+ Add a request with extensions
+
+ @param certId certificate ID of interest
+ @param singleRequestExtensions the extensions to attach to the request
+
+
+ Set the requestor name to the passed in X509Principal
+
+ @param requestorName a X509Principal representing the requestor name.
+
+
+ Generate an unsigned request
+
+ @return the OcspReq
+ @throws OcspException
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ base generator for an OCSP response - at the moment this only supports the
+ generation of responses containing BasicOCSP responses.
+
+
+ note 4 is not used.
+
+
+ Carrier for a ResponderID.
+
+
+ wrapper for the RevokedInfo object
+
+
+ return the revocation reason. Note: this field is optional, test for it
+ with hasRevocationReason() first.
+ @exception InvalidOperationException if a reason is asked for and none is avaliable
+
+
+ Return the status object for the response - null indicates good.
+
+ @return the status object for the response, null if it is good.
+
+
+ return the NextUpdate value - note: this is an optional field so may
+ be returned as null.
+
+ @return nextUpdate, or null if not present.
+
+
+ wrapper for the UnknownInfo object
+
+
+
+ Utility class for creating IBasicAgreement objects from their names/Oids
+
+
+
+
+ Cipher Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Utility class for creating IDigest objects from their names/Oids
+
+
+
+
+ Returns a ObjectIdentifier for a given digest mechanism.
+
+ A string representation of the digest meanism.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ A class containing methods to interface the BouncyCastle world to the .NET Crypto world.
+
+
+
+
+ Create an System.Security.Cryptography.X509Certificate from an X509Certificate Structure.
+
+
+ A System.Security.Cryptography.X509Certificate.
+
+
+
+ Utility class for creating HMac object from their names/Oids
+
+
+
+
+
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Create and auto-seed an instance based on the given algorithm.
+
+ Equivalent to GetInstance(algorithm, true)
+ e.g. "SHA256PRNG"
+
+
+
+ Create an instance based on the given algorithm, with optional auto-seeding
+
+ e.g. "SHA256PRNG"
+ If true, the instance will be auto-seeded.
+
+
+
+ To replicate existing predictable output, replace with GetInstance("SHA1PRNG", false), followed by SetSeed(seed)
+
+
+
+ Use the specified instance of IRandomGenerator as random source.
+
+ This constructor performs no seeding of either the IRandomGenerator or the
+ constructed SecureRandom. It is the responsibility of the client to provide
+ proper seed material as necessary/appropriate for the given IRandomGenerator
+ implementation.
+
+ The source to generate all random bytes from.
+
+
+ base constructor.
+
+
+ create a SecurityUtilityException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Signer Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns an ObjectIdentifier for a given encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the OID is not available.
+
+
+
+ Utility class for creating IWrapper objects from their names/Oids
+
+
+
+ PEM generator for the original set of PEM objects used in Open SSL.
+
+
+ Class for reading OpenSSL PEM encoded streams containing
+ X509 certificates, PKCS8 encoded keys and PKCS7 objects.
+
+ In the case of PKCS7 objects the reader will return a CMS ContentInfo object. Keys and
+ Certificates will be returned using the appropriate java.security type.
+
+
+ Create a new PemReader
+
+ @param reader the Reader
+
+
+ Create a new PemReader with a password finder
+
+ @param reader the Reader
+ @param pFinder the password finder
+
+
+ Reads in a X509Certificate.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509CRL.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS10 certification request.
+
+ @return the certificate request.
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509 Attribute Certificate.
+
+ @return the X509 Attribute Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS7 object. This returns a ContentInfo object suitable for use with the CMS
+ API.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Read a Key Pair
+
+
+ General purpose writer for OpenSSL PEM objects.
+
+
+ The TextWriter object to write the output to.
+
+
+ Constructor for an unencrypted private key PEM object.
+
+ @param key private key to be encoded.
+
+
+ Constructor for an encrypted private key PEM object.
+
+ @param key private key to be encoded
+ @param algorithm encryption algorithm to use
+ @param provider provider to use
+ @throws NoSuchAlgorithmException if algorithm/mode cannot be found
+
+
+
+ A class for verifying and creating Pkcs10 Certification requests.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ The factory for signature calculators to sign the PKCS#10 request with.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Get the public key.
+
+ The public key.
+
+
+
+ Verify Pkcs10 Cert Request is valid.
+
+ true = valid.
+
+
+
+ A class for creating and verifying Pkcs10 Certification requests (this is an extension on ).
+ The requests are made using delay signing. This is useful for situations where
+ the private key is in another environment and not directly accessible (e.g. HSM)
+ So the first step creates the request, then the signing is done outside this
+ object and the signature is then used to complete the request.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+ After the object is constructed use the and finally the
+ SignRequest methods to finalize the request.
+
+
+
+ simply return the cert entry for the private key
+
+
+ Utility class for reencoding PKCS#12 files to definite length.
+
+
+ Just re-encode the outer layer of the PKCS#12 file to definite length encoding.
+
+ @param berPKCS12File - original PKCS#12 file
+ @return a byte array representing the DER encoding of the PFX structure
+ @throws IOException
+
+
+ Re-encode the PKCS#12 structure to definite length encoding at the inner layer
+ as well, recomputing the MAC accordingly.
+
+ @param berPKCS12File - original PKCS12 file.
+ @param provider - provider to use for MAC calculation.
+ @return a byte array representing the DER encoding of the PFX structure.
+ @throws IOException on parsing, encoding errors.
+
+
+
+ Returns the revocationDate.
+
+
+
+
+ Returns the certStatus.
+
+
+
+ Returns an immutable Set of X.509 attribute certificate
+ extensions that this PkixAttrCertChecker supports or
+ null if no extensions are supported.
+
+ Each element of the set is a String representing the
+ Object Identifier (OID) of the X.509 extension that is supported.
+
+
+ All X.509 attribute certificate extensions that a
+ PkixAttrCertChecker might possibly be able to process
+ should be included in the set.
+
+
+ @return an immutable Set of X.509 extension OIDs (in
+ String format) supported by this
+ PkixAttrCertChecker, or null if no
+ extensions are supported
+
+
+ Performs checks on the specified attribute certificate. Every handled
+ extension is rmeoved from the unresolvedCritExts
+ collection.
+
+ @param attrCert The attribute certificate to be checked.
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param holderCertPath The certificate path which belongs to the holder
+ certificate.
+ @param unresolvedCritExts a Collection of OID strings
+ representing the current set of unresolved critical extensions
+ @throws CertPathValidatorException if the specified attribute certificate
+ does not pass the check.
+
+
+ Returns a clone of this object.
+
+ @return a copy of this PkixAttrCertChecker
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ CertPathValidatorSpi implementation for X.509 Attribute Certificates la RFC 3281.
+
+ @see org.bouncycastle.x509.ExtendedPkixParameters
+
+
+ Validates an attribute certificate with the given certificate path.
+
+
+ params must be an instance of
+ ExtendedPkixParameters.
+
+ The target constraints in the params must be an
+ X509AttrCertStoreSelector with at least the attribute
+ certificate criterion set. Obey that also target informations may be
+ necessary to correctly validate this attribute certificate.
+
+ The attribute certificate issuer must be added to the trusted attribute
+ issuers with {@link ExtendedPkixParameters#setTrustedACIssuers(Set)}.
+
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param params The PKIX parameters.
+ @return A PKIXCertPathValidatorResult of the result of
+ validating the certPath.
+ @throws InvalidAlgorithmParameterException if params is
+ inappropriate for this validator.
+ @throws CertPathValidatorException if the verification fails.
+
+
+
+ Summary description for PkixBuilderParameters.
+
+
+
+ Returns an instance of PkixBuilderParameters.
+
+ This method can be used to get a copy from other
+ PKIXBuilderParameters, PKIXParameters,
+ and ExtendedPKIXParameters instances.
+
+
+ @param pkixParams The PKIX parameters to create a copy of.
+ @return An PkixBuilderParameters instance.
+
+
+
+ Excluded certificates are not used for building a certification path.
+
+ the excluded certificates.
+
+
+
+ Sets the excluded certificates which are not used for building a
+ certification path. If the ISet is null an
+ empty set is assumed.
+
+
+ The given set is cloned to protect it against subsequent modifications.
+
+ The excluded certificates to set.
+
+
+ Can alse handle ExtendedPKIXBuilderParameters and
+ PKIXBuilderParameters.
+
+ @param params Parameters to set.
+ @see org.bouncycastle.x509.ExtendedPKIXParameters#setParams(java.security.cert.PKIXParameters)
+
+
+ Makes a copy of this PKIXParameters object. Changes to the
+ copy will not affect the original and vice versa.
+
+ @return a copy of this PKIXParameters object
+
+
+ An immutable sequence of certificates (a certification path).
+
+ This is an abstract class that defines the methods common to all CertPaths.
+ Subclasses can handle different kinds of certificates (X.509, PGP, etc.).
+
+ All CertPath objects have a type, a list of Certificates, and one or more
+ supported encodings. Because the CertPath class is immutable, a CertPath
+ cannot change in any externally visible way after being constructed. This
+ stipulation applies to all public fields and methods of this class and any
+ added or overridden by subclasses.
+
+ The type is a string that identifies the type of Certificates in the
+ certification path. For each certificate cert in a certification path
+ certPath, cert.getType().equals(certPath.getType()) must be true.
+
+ The list of Certificates is an ordered List of zero or more Certificates.
+ This List and all of the Certificates contained in it must be immutable.
+
+ Each CertPath object must support one or more encodings so that the object
+ can be translated into a byte array for storage or transmission to other
+ parties. Preferably, these encodings should be well-documented standards
+ (such as PKCS#7). One of the encodings supported by a CertPath is considered
+ the default encoding. This encoding is used if no encoding is explicitly
+ requested (for the {@link #getEncoded()} method, for instance).
+
+ All CertPath objects are also Serializable. CertPath objects are resolved
+ into an alternate {@link CertPathRep} object during serialization. This
+ allows a CertPath object to be serialized into an equivalent representation
+ regardless of its underlying implementation.
+
+ CertPath objects can be created with a CertificateFactory or they can be
+ returned by other classes, such as a CertPathBuilder.
+
+ By convention, X.509 CertPaths (consisting of X509Certificates), are ordered
+ starting with the target certificate and ending with a certificate issued by
+ the trust anchor. That is, the issuer of one certificate is the subject of
+ the following one. The certificate representing the
+ {@link TrustAnchor TrustAnchor} should not be included in the certification
+ path. Unvalidated X.509 CertPaths may not follow these conventions. PKIX
+ CertPathValidators will detect any departure from these conventions that
+ cause the certification path to be invalid and throw a
+ CertPathValidatorException.
+
+ Concurrent Access
+
+ All CertPath objects must be thread-safe. That is, multiple threads may
+ concurrently invoke the methods defined in this class on a single CertPath
+ object (or more than one) with no ill effects. This is also true for the List
+ returned by CertPath.getCertificates.
+
+ Requiring CertPath objects to be immutable and thread-safe allows them to be
+ passed around to various pieces of code without worrying about coordinating
+ access. Providing this thread-safety is generally not difficult, since the
+ CertPath and List objects in question are immutable.
+
+ @see CertificateFactory
+ @see CertPathBuilder
+
+ CertPath implementation for X.509 certificates.
+
+
+
+ @param certs
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Returns an iteration of the encodings supported by this
+ certification path, with the default encoding
+ first. Attempts to modify the returned Iterator via its
+ remove method result in an UnsupportedOperationException.
+
+ @return an Iterator over the names of the supported encodings (as Strings)
+
+
+
+ Compares this certification path for equality with the specified object.
+ Two CertPaths are equal if and only if their types are equal and their
+ certificate Lists (and by implication the Certificates in those Lists)
+ are equal. A CertPath is never equal to an object that is not a CertPath.
+
+ This algorithm is implemented by this method. If it is overridden, the
+ behavior specified here must be maintained.
+
+ @param other
+ the object to test for equality with this certification path
+
+ @return true if the specified object is equal to this certification path,
+ false otherwise
+
+ @see Object#hashCode() Object.hashCode()
+
+
+ Returns the encoded form of this certification path, using
+ the default encoding.
+
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error occurs
+
+
+
+ Returns the encoded form of this certification path, using
+ the specified encoding.
+
+ @param encoding the name of the encoding to use
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error
+ occurs or the encoding requested is not supported
+
+
+
+
+ Returns the list of certificates in this certification
+ path.
+
+
+
+ Return a DERObject containing the encoded certificate.
+
+ @param cert the X509Certificate object to be encoded
+
+ @return the DERObject
+
+
+
+ Implements the PKIX CertPathBuilding algorithm for BouncyCastle.
+
+ @see CertPathBuilderSpi
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+
+ Summary description for PkixCertPathBuilderException.
+
+
+
+
+ Summary description for PkixCertPathBuilderResult.
+
+
+
+ * Initializes the internal state of this PKIXCertPathChecker.
+ *
+ * The forward flag specifies the order that certificates
+ * will be passed to the {@link #check check} method (forward or reverse). A
+ * PKIXCertPathChecker must support reverse checking
+ * and may support forward checking.
+ *
+ *
+ * @param forward
+ * the order that certificates are presented to the
+ * check method. If true,
+ * certificates are presented from target to most-trusted CA
+ * (forward); if false, from most-trusted CA to
+ * target (reverse).
+ * @exception CertPathValidatorException
+ * if this PKIXCertPathChecker is unable to
+ * check certificates in the specified order; it should never
+ * be thrown if the forward flag is false since reverse
+ * checking must be supported
+
+
+ Indicates if forward checking is supported. Forward checking refers to
+ the ability of the PKIXCertPathChecker to perform its
+ checks when certificates are presented to the check method
+ in the forward direction (from target to most-trusted CA).
+
+ @return true if forward checking is supported,
+ false otherwise
+
+
+ * Returns an immutable Set of X.509 certificate extensions
+ * that this PKIXCertPathChecker supports (i.e. recognizes,
+ * is able to process), or null if no extensions are
+ * supported.
+ *
+ * Each element of the set is a String representing the
+ * Object Identifier (OID) of the X.509 extension that is supported. The OID
+ * is represented by a set of nonnegative integers separated by periods.
+ *
+ * All X.509 certificate extensions that a PKIXCertPathChecker
+ * might possibly be able to process should be included in the set.
+ *
+ *
+ * @return an immutable Set of X.509 extension OIDs (in
+ * String format) supported by this
+ * PKIXCertPathChecker, or null if no
+ * extensions are supported
+
+
+ Performs the check(s) on the specified certificate using its internal
+ state and removes any critical extensions that it processes from the
+ specified collection of OID strings that represent the unresolved
+ critical extensions. The certificates are presented in the order
+ specified by the init method.
+
+ @param cert
+ the Certificate to be checked
+ @param unresolvedCritExts
+ a Collection of OID strings representing the
+ current set of unresolved critical extensions
+ @exception CertPathValidatorException
+ if the specified certificate does not pass the check
+
+
+ Returns a clone of this object. Calls the Object.clone()
+ method. All subclasses which maintain state must support and override
+ this method, if necessary.
+
+ @return a copy of this PKIXCertPathChecker
+
+
+ The Service Provider Interface (SPI)
+ for the {@link CertPathValidator CertPathValidator} class. All
+ CertPathValidator implementations must include a class (the
+ SPI class) that extends this class (CertPathValidatorSpi)
+ and implements all of its methods. In general, instances of this class
+ should only be accessed through the CertPathValidator class.
+ For details, see the Java Cryptography Architecture.
+
+ Concurrent Access
+
+ Instances of this class need not be protected against concurrent
+ access from multiple threads. Threads that need to access a single
+ CertPathValidatorSpi instance concurrently should synchronize
+ amongst themselves and provide the necessary locking before calling the
+ wrapping CertPathValidator object.
+
+ However, implementations of CertPathValidatorSpi may still
+ encounter concurrency issues, since multiple threads each
+ manipulating a different CertPathValidatorSpi instance need not
+ synchronize.
+
+ CertPathValidatorSpi implementation for X.509 Certificate validation a la RFC
+ 3280.
+
+
+
+ An exception indicating one of a variety of problems encountered when
+ validating a certification path.
+
+ A CertPathValidatorException provides support for wrapping
+ exceptions. The {@link #getCause getCause} method returns the throwable,
+ if any, that caused this exception to be thrown.
+
+ A CertPathValidatorException may also include the
+ certification path that was being validated when the exception was thrown
+ and the index of the certificate in the certification path that caused the
+ exception to be thrown. Use the {@link #getCertPath getCertPath} and
+ {@link #getIndex getIndex} methods to retrieve this information.
+
+ Concurrent Access
+
+ Unless otherwise specified, the methods defined in this class are not
+ thread-safe. Multiple threads that need to access a single
+ object concurrently should synchronize amongst themselves and
+ provide the necessary locking. Multiple threads each manipulating
+ separate objects need not synchronize.
+
+ @see CertPathValidator
+
+
+
+
+ Creates a PkixCertPathValidatorException with the given detail
+ message. A detail message is a String that describes this
+ particular exception.
+
+ the detail message
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message and cause.
+
+ the detail message
+ the cause (which is saved for later retrieval by the
+ {@link #getCause getCause()} method). (A null
+ value is permitted, and indicates that the cause is
+ nonexistent or unknown.)
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message, cause, certification path, and index.
+
+ the detail message (or null if none)
+ the cause (or null if none)
+ the certification path that was in the process of being
+ validated when the error was encountered
+ the index of the certificate in the certification path that *
+
+
+
+ Returns the detail message for this CertPathValidatorException.
+
+ the detail message, or null if neither the message nor cause were specified
+
+
+ Returns the certification path that was being validated when the
+ exception was thrown.
+
+ @return the CertPath that was being validated when the
+ exception was thrown (or null if not specified)
+
+
+ Returns the index of the certificate in the certification path that
+ caused the exception to be thrown. Note that the list of certificates in
+ a CertPath is zero based. If no index has been set, -1 is
+ returned.
+
+ @return the index that has been set, or -1 if none has been set
+
+
+
+ Summary description for PkixCertPathValidatorResult.
+
+
+
+
+ Summary description for PkixCertPathValidatorUtilities.
+
+
+
+
+ key usage bits
+
+
+
+
+ Search the given Set of TrustAnchor's for one that is the
+ issuer of the given X509 certificate.
+
+ the X509 certificate
+ a Set of TrustAnchor's
+ the TrustAnchor object if found or
+ null if not.
+
+ @exception
+
+
+
+ Returns the issuer of an attribute certificate or certificate.
+
+ The attribute certificate or certificate.
+ The issuer as X500Principal.
+
+
+ Return the next working key inheriting DSA parameters if necessary.
+
+ This methods inherits DSA parameters from the indexed certificate or
+ previous certificates in the certificate chain to the returned
+ PublicKey. The list is searched upwards, meaning the end
+ certificate is at position 0 and previous certificates are following.
+
+
+ If the indexed certificate does not contain a DSA key this method simply
+ returns the public key. If the DSA key already contains DSA parameters
+ the key is also only returned.
+
+
+ @param certs The certification path.
+ @param index The index of the certificate which contains the public key
+ which should be extended with DSA parameters.
+ @return The public key of the certificate in list position
+ index extended with DSA parameters if applicable.
+ @throws Exception if DSA parameters cannot be inherited.
+
+
+
+ Return a Collection of all certificates or attribute certificates found
+ in the X509Store's that are matching the certSelect criteriums.
+
+ a {@link Selector} object that will be used to select
+ the certificates
+ a List containing only X509Store objects. These
+ are used to search for certificates.
+ a Collection of all found or
+ objects.
+ May be empty but never null.
+
+
+
+ Add the CRL issuers from the cRLIssuer field of the distribution point or
+ from the certificate if not given to the issuer criterion of the
+ selector.
+
+ The issuerPrincipals are a collection with a single
+ X500Principal for X509Certificates. For
+ {@link X509AttributeCertificate}s the issuer may contain more than one
+ X500Principal.
+
+
+ @param dp The distribution point.
+ @param issuerPrincipals The issuers of the certificate or attribute
+ certificate which contains the distribution point.
+ @param selector The CRL selector.
+ @param pkixParams The PKIX parameters containing the cert stores.
+ @throws Exception if an exception occurs while processing.
+ @throws ClassCastException if issuerPrincipals does not
+ contain only X500Principals.
+
+
+ Fetches complete CRLs according to RFC 3280.
+
+ @param dp The distribution point for which the complete CRL
+ @param cert The X509Certificate or
+ {@link org.bouncycastle.x509.X509AttributeCertificate} for
+ which the CRL should be searched.
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @return A Set of X509CRLs with complete
+ CRLs.
+ @throws Exception if an exception occurs while picking the CRLs
+ or no CRLs are found.
+
+
+ Fetches delta CRLs according to RFC 3280 section 5.2.4.
+
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @param completeCRL The complete CRL the delta CRL is for.
+ @return A Set of X509CRLs with delta CRLs.
+ @throws Exception if an exception occurs while picking the delta
+ CRLs.
+
+
+ Find the issuer certificates of a given certificate.
+
+ @param cert
+ The certificate for which an issuer should be found.
+ @param pkixParams
+ @return A Collection object containing the issuer
+ X509Certificates. Never null.
+
+ @exception Exception
+ if an error occurs.
+
+
+
+ Extract the value of the given extension, if it exists.
+
+ The extension object.
+ The object identifier to obtain.
+ Asn1Object
+ if the extension cannot be read.
+
+
+
+ crl checking
+ Return a Collection of all CRLs found in the X509Store's that are
+ matching the crlSelect criteriums.
+
+ a {@link X509CRLStoreSelector} object that will be used
+ to select the CRLs
+ a List containing only {@link org.bouncycastle.x509.X509Store
+ X509Store} objects. These are used to search for CRLs
+ a Collection of all found {@link X509CRL X509CRL} objects. May be
+ empty but never null.
+
+
+
+ Returns the intersection of the permitted IP ranges in
+ permitted with ip.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ips The IP address with its subnet mask.
+ @return The Set of permitted IP ranges intersected with
+ ip.
+
+
+ Returns the union of the excluded IP ranges in excluded
+ with ip.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address with its subnet mask.
+ @return The Set of excluded IP ranges unified with
+ ip as byte arrays.
+
+
+ Calculates the union if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the union of both addresses.
+
+
+ Calculates the interesction if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the single IP address with its subnet
+ mask as a byte array or an empty Set.
+
+
+ Concatenates the IP address with its subnet mask.
+
+ @param ip The IP address.
+ @param subnetMask Its subnet mask.
+ @return The concatenated IP address with its subnet mask.
+
+
+ Splits the IP addresses and their subnet mask.
+
+ @param ipWithSubmask1 The first IP address with the subnet mask.
+ @param ipWithSubmask2 The second IP address with the subnet mask.
+ @return An array with two elements. Each element contains the IP address
+ and the subnet mask in this order.
+
+
+ Based on the two IP addresses and their subnet masks the IP range is
+ computed for each IP address - subnet mask pair and returned as the
+ minimum IP address and the maximum address of the range.
+
+ @param ip1 The first IP address.
+ @param subnetmask1 The subnet mask of the first IP address.
+ @param ip2 The second IP address.
+ @param subnetmask2 The subnet mask of the second IP address.
+ @return A array with two elements. The first/second element contains the
+ min and max IP address of the first/second IP address and its
+ subnet mask.
+
+
+ Checks if the IP ip is included in the permitted ISet
+ permitted.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is not permitted.
+
+
+ Checks if the IP ip is included in the excluded ISet
+ excluded.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is excluded.
+
+
+ Checks if the IP address ip is constrained by
+ constraint.
+
+ @param ip The IP address.
+ @param constraint The constraint. This is an IP address concatenated with
+ its subnetmask.
+ @return true if constrained, false
+ otherwise.
+
+
+ The common part of email1 and email2 is
+ added to the union union. If email1 and
+ email2 have nothing in common they are added both.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param union The union.
+
+
+ The most restricting part from email1 and
+ email2 is added to the intersection intersect.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param intersect The intersection.
+
+
+ Checks if the given GeneralName is in the permitted ISet.
+
+ @param name The GeneralName
+ @throws PkixNameConstraintValidatorException
+ If the name
+
+
+ Check if the given GeneralName is contained in the excluded ISet.
+
+ @param name The GeneralName.
+ @throws PkixNameConstraintValidatorException
+ If the name is
+ excluded.
+
+
+ Updates the permitted ISet of these name constraints with the intersection
+ with the given subtree.
+
+ @param permitted The permitted subtrees
+
+
+ Adds a subtree to the excluded ISet of these name constraints.
+
+ @param subtree A subtree with an excluded GeneralName.
+
+
+ Returns the maximum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The maximum IP address.
+
+
+ Returns the minimum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The minimum IP address.
+
+
+ Compares IP address ip1 with ip2. If ip1
+ is equal to ip2 0 is returned. If ip1 is bigger 1 is returned, -1
+ otherwise.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return 0 if ip1 is equal to ip2, 1 if ip1 is bigger, -1 otherwise.
+
+
+ Returns the logical OR of the IP addresses ip1 and
+ ip2.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The OR of ip1 and ip2.
+
+
+ Stringifies an IPv4 or v6 address with subnet mask.
+
+ @param ip The IP with subnet mask.
+ @return The stringified IP address.
+
+
+
+ Summary description for PkixParameters.
+
+
+
+ This is the default PKIX validity model. Actually there are two variants
+ of this: The PKIX model and the modified PKIX model. The PKIX model
+ verifies that all involved certificates must have been valid at the
+ current time. The modified PKIX model verifies that all involved
+ certificates were valid at the signing time. Both are indirectly choosen
+ with the {@link PKIXParameters#setDate(java.util.Date)} method, so this
+ methods sets the Date when all certificates must have been
+ valid.
+
+
+ This model uses the following validity model. Each certificate must have
+ been valid at the moment where is was used. That means the end
+ certificate must have been valid at the time the signature was done. The
+ CA certificate which signed the end certificate must have been valid,
+ when the end certificate was signed. The CA (or Root CA) certificate must
+ have been valid, when the CA certificate was signed and so on. So the
+ {@link PKIXParameters#setDate(java.util.Date)} method sets the time, when
+ the end certificate must have been valid. It is used e.g.
+ in the German signature law.
+
+
+ Creates an instance of PKIXParameters with the specified Set of
+ most-trusted CAs. Each element of the set is a TrustAnchor.
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+ @param trustAnchors
+ a Set of TrustAnchors
+
+ @exception InvalidAlgorithmParameterException
+ if the specified Set is empty
+ (trustAnchors.isEmpty() == true)
+ @exception NullPointerException
+ if the specified Set is null
+ @exception ClassCastException
+ if any of the elements in the Set are not of type
+ java.security.cert.TrustAnchor
+
+
+ Returns the required constraints on the target certificate. The
+ constraints are returned as an instance of CertSelector. If
+ null, no constraints are defined.
+
+ Note that the CertSelector returned is cloned to protect against
+ subsequent modifications.
+
+ @return a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #setTargetCertConstraints(CertSelector)
+
+
+ Sets the required constraints on the target certificate. The constraints
+ are specified as an instance of CertSelector. If null, no constraints are
+ defined.
+
+ Note that the CertSelector specified is cloned to protect against
+ subsequent modifications.
+
+ @param selector
+ a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #getTargetCertConstraints()
+
+
+ Returns an immutable Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. The
+ default return value is an empty Set, which is
+ interpreted as meaning that any policy would be acceptable.
+
+ @return an immutable Set of initial policy OIDs in String
+ format, or an empty Set (implying any policy is
+ acceptable). Never returns null.
+
+ @see #setInitialPolicies(java.util.Set)
+
+
+ Sets the Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. By
+ default, any policy is acceptable (i.e. all policies), so a user that
+ wants to allow any policy as acceptable does not need to call this
+ method, or can call it with an empty Set (or
+ null).
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+
+ @param initialPolicies
+ a Set of initial policy OIDs in String format (or
+ null)
+
+ @exception ClassCastException
+ if any of the elements in the set are not of type String
+
+ @see #getInitialPolicies()
+
+
+ Sets a List of additional certification path checkers. If
+ the specified List contains an object that is not a PKIXCertPathChecker,
+ it is ignored.
+
+ Each PKIXCertPathChecker specified implements additional
+ checks on a certificate. Typically, these are checks to process and
+ verify private extensions contained in certificates. Each
+ PKIXCertPathChecker should be instantiated with any
+ initialization parameters needed to execute the check.
+
+ This method allows sophisticated applications to extend a PKIX
+ CertPathValidator or CertPathBuilder. Each
+ of the specified PKIXCertPathCheckers will be called, in turn, by a PKIX
+ CertPathValidator or CertPathBuilder for
+ each certificate processed or validated.
+
+ Regardless of whether these additional PKIXCertPathCheckers are set, a
+ PKIX CertPathValidator or CertPathBuilder
+ must perform all of the required PKIX checks on each certificate. The one
+ exception to this rule is if the RevocationEnabled flag is set to false
+ (see the {@link #setRevocationEnabled(boolean) setRevocationEnabled}
+ method).
+
+ Note that the List supplied here is copied and each PKIXCertPathChecker
+ in the list is cloned to protect against subsequent modifications.
+
+ @param checkers
+ a List of PKIXCertPathCheckers. May be null, in which case no
+ additional checkers will be used.
+ @exception ClassCastException
+ if any of the elements in the list are not of type
+ java.security.cert.PKIXCertPathChecker
+ @see #getCertPathCheckers()
+
+
+ Returns the List of certification path checkers. Each PKIXCertPathChecker
+ in the returned IList is cloned to protect against subsequent modifications.
+
+ @return an immutable List of PKIXCertPathCheckers (may be empty, but not
+ null)
+
+ @see #setCertPathCheckers(java.util.List)
+
+
+ Adds a PKIXCertPathChecker to the list of certification
+ path checkers. See the {@link #setCertPathCheckers setCertPathCheckers}
+ method for more details.
+
+ Note that the PKIXCertPathChecker is cloned to protect
+ against subsequent modifications.
+
+ @param checker a PKIXCertPathChecker to add to the list of
+ checks. If null, the checker is ignored (not added to list).
+
+
+ Method to support Clone() under J2ME.
+ super.Clone() does not exist and fields are not copied.
+
+ @param params Parameters to set. If this are
+ ExtendedPkixParameters they are copied to.
+
+
+ Whether delta CRLs should be used for checking the revocation status.
+ Defaults to false.
+
+
+ The validity model.
+ @see #CHAIN_VALIDITY_MODEL
+ @see #PKIX_VALIDITY_MODEL
+
+
+ Sets the Bouncy Castle Stores for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ The IList is cloned.
+
+
+ @param stores A list of stores to use.
+ @see #getStores
+ @throws ClassCastException if an element of stores is not
+ a {@link Store}.
+
+
+ Adds a Bouncy Castle {@link Store} to find CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ This method should be used to add local stores, like collection based
+ X.509 stores, if available. Local stores should be considered first,
+ before trying to use additional (remote) locations, because they do not
+ need possible additional network traffic.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores
+
+
+ Adds an additional Bouncy Castle {@link Store} to find CRLs, certificates,
+ attribute certificates or cross certificates.
+
+ You should not use this method. This method is used for adding additional
+ X.509 stores, which are used to add (remote) locations, e.g. LDAP, found
+ during X.509 object processing, e.g. in certificates or CRLs. This method
+ is used in PKIX certification path processing.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores()
+
+
+ Returns an IList of additional Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of additional Bouncy Castle
+ Stores. Never null.
+
+ @see #addAddionalStore(Store)
+
+
+ Returns an IList of Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of Bouncy Castle
+ Stores. Never null.
+
+ @see #setStores(IList)
+
+
+ Returns if additional {@link X509Store}s for locations like LDAP found
+ in certificates or CRLs should be used.
+
+ @return Returns true if additional stores are used.
+
+
+ Sets if additional {@link X509Store}s for locations like LDAP found in
+ certificates or CRLs should be used.
+
+ @param enabled true if additional stores are used.
+
+
+ Returns the required constraints on the target certificate or attribute
+ certificate. The constraints are returned as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector returned is cloned to protect
+ against subsequent modifications.
+
+ @return a IX509Selector specifying the constraints on the
+ target certificate or attribute certificate (or null)
+ @see #setTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Sets the required constraints on the target certificate or attribute
+ certificate. The constraints are specified as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector specified is cloned to protect
+ against subsequent modifications.
+
+
+ @param selector a IX509Selector specifying the constraints on
+ the target certificate or attribute certificate (or
+ null)
+ @see #getTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Returns the trusted attribute certificate issuers. If attribute
+ certificates is verified the trusted AC issuers must be set.
+
+ The returned ISet consists of TrustAnchors.
+
+ The returned ISet is immutable. Never null
+
+
+ @return Returns an immutable set of the trusted AC issuers.
+
+
+ Sets the trusted attribute certificate issuers. If attribute certificates
+ is verified the trusted AC issuers must be set.
+
+ The trustedACIssuers must be a ISet of
+ TrustAnchor
+
+ The given set is cloned.
+
+
+ @param trustedACIssuers The trusted AC issuers to set. Is never
+ null.
+ @throws ClassCastException if an element of stores is not
+ a TrustAnchor.
+
+
+ Returns the necessary attributes which must be contained in an attribute
+ certificate.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the necessary AC attributes.
+
+
+ Sets the necessary which must be contained in an attribute certificate.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param necessaryACAttributes The necessary AC attributes to set.
+ @throws ClassCastException if an element of
+ necessaryACAttributes is not a
+ String.
+
+
+ Returns the attribute certificates which are not allowed.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the prohibited AC attributes. Is never null.
+
+
+ Sets the attribute certificates which are not allowed.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param prohibitedACAttributes The prohibited AC attributes to set.
+ @throws ClassCastException if an element of
+ prohibitedACAttributes is not a
+ String.
+
+
+ Returns the attribute certificate checker. The returned set contains
+ {@link PKIXAttrCertChecker}s and is immutable.
+
+ @return Returns the attribute certificate checker. Is never
+ null.
+
+
+ Sets the attribute certificate checkers.
+
+ All elements in the ISet must a {@link PKIXAttrCertChecker}.
+
+
+ The given set is cloned.
+
+
+ @param attrCertCheckers The attribute certificate checkers to set. Is
+ never null.
+ @throws ClassCastException if an element of attrCertCheckers
+ is not a PKIXAttrCertChecker.
+
+
+
+ Summary description for PkixPolicyNode.
+
+
+
+ Constructors
+
+
+
+ This class helps to handle CRL revocation reasons mask. Each CRL handles a
+ certain set of revocation reasons.
+
+
+
+
+ Constructs are reason mask with the reasons.
+
+ The reasons.
+
+
+
+ A reason mask with no reason.
+
+
+
+
+ A mask with all revocation reasons.
+
+
+
+ Adds all reasons from the reasons mask to this mask.
+
+ @param mask The reasons mask to add.
+
+
+
+ Returns true if this reasons mask contains all possible
+ reasons.
+
+ true if this reasons mask contains all possible reasons.
+
+
+
+
+ Intersects this mask with the given reasons mask.
+
+ mask The mask to intersect with.
+ The intersection of this and teh given mask.
+
+
+
+ Returns true if the passed reasons mask has new reasons.
+
+ The reasons mask which should be tested for new reasons.
+ true if the passed reasons mask has new reasons.
+
+
+
+ Returns the reasons in this mask.
+
+
+
+ If the complete CRL includes an issuing distribution point (IDP) CRL
+ extension check the following:
+
+ (i) If the distribution point name is present in the IDP CRL extension
+ and the distribution field is present in the DP, then verify that one of
+ the names in the IDP matches one of the names in the DP. If the
+ distribution point name is present in the IDP CRL extension and the
+ distribution field is omitted from the DP, then verify that one of the
+ names in the IDP matches one of the names in the cRLIssuer field of the
+ DP.
+
+
+ (ii) If the onlyContainsUserCerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate does not include the basic
+ constraints extension with the cA boolean asserted.
+
+
+ (iii) If the onlyContainsCACerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate includes the basic constraints
+ extension with the cA boolean asserted.
+
+
+ (iv) Verify that the onlyContainsAttributeCerts boolean is not asserted.
+
+
+ @param dp The distribution point.
+ @param cert The certificate.
+ @param crl The CRL.
+ @throws AnnotatedException if one of the conditions is not met or an error occurs.
+
+
+ If the DP includes cRLIssuer, then verify that the issuer field in the
+ complete CRL matches cRLIssuer in the DP and that the complete CRL
+ contains an
+ g distribution point extension with the indirectCRL
+ boolean asserted. Otherwise, verify that the CRL issuer matches the
+ certificate issuer.
+
+ @param dp The distribution point.
+ @param cert The certificate ot attribute certificate.
+ @param crl The CRL for cert.
+ @throws AnnotatedException if one of the above conditions does not apply or an error
+ occurs.
+
+
+ Obtain and validate the certification path for the complete CRL issuer.
+ If a key usage extension is present in the CRL issuer's certificate,
+ verify that the cRLSign bit is set.
+
+ @param crl CRL which contains revocation information for the certificate
+ cert.
+ @param cert The attribute certificate or certificate to check if it is
+ revoked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param paramsPKIX paramsPKIX PKIX parameters.
+ @param certPathCerts The certificates on the certification path.
+ @return A Set with all keys of possible CRL issuer
+ certificates.
+ @throws AnnotatedException if the CRL is not valid or the status cannot be checked or
+ some error occurs.
+
+
+ Checks a distribution point for revocation information for the
+ certificate cert.
+
+ @param dp The distribution point to consider.
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param certStatus The current certificate revocation status.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ Checks a certificate if it is revoked.
+
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param sign The issuer certificate of the certificate cert.
+ @param workingPublicKey The public key of the issuer certificate sign.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ If use-deltas is set, verify the issuer and scope of the delta CRL.
+
+ @param deltaCRL The delta CRL.
+ @param completeCRL The complete CRL.
+ @param pkixParams The PKIX paramaters.
+ @throws AnnotatedException if an exception occurs.
+
+
+ Checks if an attribute certificate is revoked.
+
+ @param attrCert Attribute certificate to check if it is revoked.
+ @param paramsPKIX PKIX parameters.
+ @param issuerCert The issuer certificate of the attribute certificate
+ attrCert.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+
+ @throws CertPathValidatorException if the certificate is revoked or the
+ status cannot be checked or some error occurs.
+
+
+ Searches for a holder public key certificate and verifies its
+ certification path.
+
+ @param attrCert the attribute certificate.
+ @param pkixParams The PKIX parameters.
+ @return The certificate path of the holder certificate.
+ @throws Exception if
+
+ - no public key certificate can be found although holder
+ information is given by an entity name or a base certificate
+ ID
+ - support classes cannot be created
+ - no certification path for the public key certificate can
+ be built
+
+
+
+
+ Checks a distribution point for revocation information for the
+ certificate attrCert.
+
+ @param dp The distribution point to consider.
+ @param attrCert The attribute certificate which should be checked.
+ @param paramsPKIX PKIX parameters.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param issuerCert Certificate to check if it is revoked.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+ @throws Exception if the certificate is revoked or the status
+ cannot be checked or some error occurs.
+
+
+
+ A trust anchor or most-trusted Certification Authority (CA).
+
+ This class represents a "most-trusted CA", which is used as a trust anchor
+ for validating X.509 certification paths. A most-trusted CA includes the
+ public key of the CA, the CA's name, and any constraints upon the set of
+ paths which may be validated using this key. These parameters can be
+ specified in the form of a trusted X509Certificate or as individual
+ parameters.
+
+
+
+
+ Creates an instance of TrustAnchor with the specified X509Certificate and
+ optional name constraints, which are intended to be used as additional
+ constraints when validating an X.509 certification path.
+ The name constraints are specified as a byte array. This byte array
+ should contain the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459 and
+ X.509. The ASN.1 definition of this structure appears below.
+
+
+ NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+ GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+ GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+ BaseDistance ::= INTEGER (0..MAX)
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+
+ Note that the name constraints byte array supplied is cloned to protect
+ against subsequent modifications.
+
+ a trusted X509Certificate
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ if the specified X509Certificate is null
+
+
+
+ Creates an instance of TrustAnchor where the
+ most-trusted CA is specified as an X500Principal and public key.
+
+
+
+ Name constraints are an optional parameter, and are intended to be used
+ as additional constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459
+ and X.509. The ASN.1 notation for this structure is supplied in the
+ documentation for the other constructors.
+
+ Note that the name constraints byte array supplied here is cloned to
+ protect against subsequent modifications.
+
+
+ the name of the most-trusted CA as X509Name
+ the public key of the most-trusted CA
+
+ a byte array containing the ASN.1 DER encoding of a NameConstraints extension to
+ be used for checking name constraints. Only the value of the extension is included,
+ not the OID or criticality flag. Specify null to omit the parameter.
+
+
+ if caPrincipal or pubKey is null
+
+
+
+
+ Creates an instance of TrustAnchor where the most-trusted
+ CA is specified as a distinguished name and public key. Name constraints
+ are an optional parameter, and are intended to be used as additional
+ constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they would
+ appear in the NameConstraints structure defined in RFC 2459 and X.509.
+
+ the X.500 distinguished name of the most-trusted CA in RFC
+ 2253 string format
+ the public key of the most-trusted CA
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ throws NullPointerException, IllegalArgumentException
+
+
+
+ Returns the most-trusted CA certificate.
+
+
+
+
+ Returns the name of the most-trusted CA as an X509Name.
+
+
+
+
+ Returns the name of the most-trusted CA in RFC 2253 string format.
+
+
+
+
+ Returns the public key of the most-trusted CA.
+
+
+
+
+ Decode the name constraints and clone them if not null.
+
+
+
+
+ Returns a formatted string describing the TrustAnchor.
+
+ a formatted string describing the TrustAnchor
+
+
+ Base class for an RFC 3161 Time Stamp Request.
+
+
+ Create a TimeStampRequest from the past in byte array.
+
+ @param req byte array containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Create a TimeStampRequest from the past in input stream.
+
+ @param in input stream containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Validate the timestamp request, checking the digest to see if it is of an
+ accepted type and whether it is of the correct length for the algorithm specified.
+
+ @param algorithms a set of string OIDS giving accepted algorithms.
+ @param policies if non-null a set of policies we are willing to sign under.
+ @param extensions if non-null a set of extensions we are willing to accept.
+ @throws TspException if the request is invalid, or processing fails.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Request objects.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ Base class for an RFC 3161 Time Stamp Response object.
+
+
+ Create a TimeStampResponse from a byte array containing an ASN.1 encoding.
+
+ @param resp the byte array containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the byte array doesn't represent an ASN.1 encoding.
+
+
+ Create a TimeStampResponse from an input stream containing an ASN.1 encoding.
+
+ @param input the input stream containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the stream doesn't represent an ASN.1 encoding.
+
+
+ Check this response against to see if it a well formed response for
+ the passed in request. Validation will include checking the time stamp
+ token if the response status is GRANTED or GRANTED_WITH_MODS.
+
+ @param request the request to be checked against
+ @throws TspException if the request can not match this response.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Responses.
+
+
+ Return an appropriate TimeStampResponse.
+
+ If genTime is null a timeNotAvailable error response will be returned.
+
+ @param request the request this response is for.
+ @param serialNumber serial number for the response token.
+ @param genTime generation time for the response token.
+ @param provider provider to use for signature calculation.
+ @return
+ @throws NoSuchAlgorithmException
+ @throws NoSuchProviderException
+ @throws TSPException
+
+
+
+ Generate a TimeStampResponse with chosen status and FailInfoField.
+
+ @param status the PKIStatus to set.
+ @param failInfoField the FailInfoField to set.
+ @param statusString an optional string describing the failure.
+ @return a TimeStampResponse with a failInfoField and optional statusString
+ @throws TSPException in case the response could not be created
+
+
+ Validate the time stamp token.
+
+ To be valid the token must be signed by the passed in certificate and
+ the certificate must be the one referred to by the SigningCertificate
+ attribute included in the hashed attributes of the token. The
+ certificate must also have the ExtendedKeyUsageExtension with only
+ KeyPurposeID.IdKPTimeStamping and have been valid at the time the
+ timestamp was created.
+
+
+ A successful call to validate means all the above are true.
+
+
+
+ Return the underlying CmsSignedData object.
+
+ @return the underlying CMS structure.
+
+
+ Return a ASN.1 encoded byte stream representing the encoded object.
+
+ @throws IOException if encoding fails.
+
+
+ basic creation - only the default attributes will be included here.
+
+
+ create with a signer with extra signed/unsigned attributes.
+
+
+ @return the nonce value, null if there isn't one.
+
+
+ Recognised hash algorithms for the time stamp protocol.
+
+
+ Fetches the signature time-stamp attributes from a SignerInformation object.
+ Checks that the MessageImprint for each time-stamp matches the signature field.
+ (see RFC 3161 Appendix A).
+
+ @param signerInfo a SignerInformation to search for time-stamps
+ @return a collection of TimeStampToken objects
+ @throws TSPValidationException
+
+
+ Validate the passed in certificate as being of the correct type to be used
+ for time stamping. To be valid it must have an ExtendedKeyUsage extension
+ which has a key purpose identifier of id-kp-timeStamping.
+
+ @param cert the certificate of interest.
+ @throws TspValidationException if the certicate fails on one of the check points.
+
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Exception thrown if a TSP request or response fails to validate.
+
+ If a failure code is associated with the exception it can be retrieved using
+ the getFailureCode() method.
+
+
+ Return the failure code associated with this exception - if one is set.
+
+ @return the failure code if set, -1 otherwise.
+
+
+ General array utilities.
+
+
+
+ Are two arrays equal.
+
+ Left side.
+ Right side.
+ True if equal.
+
+
+
+ A constant time equals comparison - does not terminate early if
+ test will fail.
+
+ first array
+ second array
+ true if arrays equal, false otherwise.
+
+
+ Make a copy of a range of bytes from the passed in data array. The range can
+ extend beyond the end of the input array, in which case the return array will
+ be padded with zeroes.
+
+ @param data the array from which the data is to be copied.
+ @param from the start index at which the copying should take place.
+ @param to the final index of the range (exclusive).
+
+ @return a new byte array containing the range given.
+
+
+ BigInteger utilities.
+
+
+ Return the passed in value as an unsigned byte array.
+
+ @param value value to be converted.
+ @return a byte array without a leading zero byte if present in the signed encoding.
+
+
+ Return the passed in value as an unsigned byte array of specified length, zero-extended as necessary.
+
+ @param length desired length of result array.
+ @param n value to be converted.
+ @return a byte array of specified length, with leading zeroes as necessary given the size of n.
+
+
+ Return a random BigInteger not less than 'min' and not greater than 'max'
+
+ @param min the least value that may be generated
+ @param max the greatest value that may be generated
+ @param random the source of randomness
+ @return a random BigInteger value in the range [min,max]
+
+
+
+ Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value.
+
+ A UTC DateTime value not before epoch.
+ Number of whole milliseconds after epoch.
+ 'dateTime' is before epoch.
+
+
+
+ Create a DateTime value from the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+ Number of milliseconds since the epoch.
+ A UTC DateTime value
+
+
+
+ Return the current number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a base 64 output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A buffering class to allow translation from one format to another to
+ be done in discrete chunks.
+
+
+
+
+ Create a buffered Decoder.
+
+ The translater to use.
+ The size of the buffer.
+
+
+
+ Process one byte of data.
+
+ Data in.
+ Byte array for the output.
+ The offset in the output byte array to start writing from.
+ The amount of output bytes.
+
+
+
+ Process data from a byte array.
+
+ The input data.
+ Start position within input data array.
+ Amount of data to process from input data array.
+ Array to store output.
+ Position in output array to start writing from.
+ The amount of output bytes.
+
+
+
+ A class that allows encoding of data using a specific encoder to be processed in chunks.
+
+
+
+
+ Create.
+
+ The translator to use.
+ Size of the chunks.
+
+
+
+ Process one byte of data.
+
+ The byte.
+ An array to store output in.
+ Offset within output array to start writing from.
+
+
+
+
+ Process data from a byte array.
+
+ Input data Byte array containing data to be processed.
+ Start position within input data array.
+ Amount of input data to be processed.
+ Output data array.
+ Offset within output data array to start writing to.
+ The amount of data written.
+
+
+
+ Class to decode and encode Hex.
+
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a Hex output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A hex translator.
+
+
+
+
+ Return encoded block size.
+
+ 2
+
+
+
+ Encode some data.
+
+ Input data array.
+ Start position within input data array.
+ The amount of data to process.
+ The output data array.
+ The offset within the output data array to start writing from.
+ Amount of data encoded.
+
+
+
+ Returns the decoded block size.
+
+ 1
+
+
+
+ Decode data from a byte array.
+
+ The input data array.
+ Start position within input data array.
+ The amounty of data to process.
+ The output data array.
+ The position within the output data array to start writing from.
+ The amount of data written.
+
+
+ Encode and decode byte arrays (typically from binary to 7-bit ASCII
+ encodings).
+
+
+
+ Translator interface.
+
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Encode the input data producing a URL safe base 64 encoded byte array.
+
+ @return a byte array containing the URL safe base 64 encoded data.
+
+
+ Encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Decode the URL safe base 64 encoded input data - white space will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the URL safe base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the URL safe base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the URL safe base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+
+ Produce a copy of this object with its configuration and in its current state.
+
+
+ The returned object may be used simply to store the state, or may be used as a similar object
+ starting from the copied state.
+
+
+
+
+ Restore a copied object state into this object.
+
+
+ Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
+
+ an object originally {@link #copy() copied} from an object of the same type as this instance.
+ if the provided object is not of the correct type.
+ if the other parameter is in some other way invalid.
+
+
+
+ A
+
+
+
+
+
+ A
+
+
+ A
+
+
+
+
+
+ A
+
+
+
+
+ A generic PEM writer, based on RFC 1421
+
+
+ Base constructor.
+
+ @param out output stream to use.
+
+
+ Return the number of bytes or characters required to contain the
+ passed in object if it is PEM encoded.
+
+ @param obj pem object to be output
+ @return an estimate of the number of bytes
+
+
+
+ Pipe all bytes from inStr to outStr, throwing StreamFlowException if greater
+ than limit bytes in inStr.
+
+
+ A
+
+
+ A
+
+
+ A
+
+ The number of bytes actually transferred, if not greater than limit
+
+
+
+
+
+
+ Exception to be thrown on a failure to reset an object implementing Memoable.
+
+ The exception extends InvalidCastException to enable users to have a single handling case,
+ only introducing specific handling of this one if required.
+
+
+
+ Basic Constructor.
+
+ @param msg message to be associated with this exception.
+
+
+ Validate the given IPv4 or IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address, false otherwise
+
+
+ Validate the given IPv4 or IPv6 address and netmask.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address with netmask, false otherwise
+
+
+ Validate the given IPv4 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ Validate the given IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ General string utilities.
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ The Holder object.
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+
+ Constructs a holder for v2 attribute certificates with a hash value for
+ some type of object.
+
+ digestedObjectType can be one of the following:
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+ This cannot be used if a v1 attribute certificate is used.
+
+ @param digestedObjectType The digest object type.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param otherObjectTypeID The object type ID if
+ digestedObjectType is
+ otherObjectDigest.
+ @param objectDigest The hash value.
+
+
+ Returns the digest object type if an object digest info is used.
+
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+
+ @return The digest object type or -1 if no object digest info is set.
+
+
+ Returns the other object type ID if an object digest info is used.
+
+ @return The other object type ID or null if no object
+ digest info is set.
+
+
+ Returns the hash if an object digest info is used.
+
+ @return The hash or null if no object digest info is set.
+
+
+ Returns the digest algorithm ID if an object digest info is used.
+
+ @return The digest algorithm ID or null if no object
+ digest info is set.
+
+
+ Return any principal objects inside the attribute certificate holder entity names field.
+
+ @return an array of IPrincipal objects (usually X509Name), null if no entity names field is set.
+
+
+ Return the principals associated with the issuer attached to this holder
+
+ @return an array of principals, null if no BaseCertificateID is set.
+
+
+ Return the serial number associated with the issuer attached to this holder.
+
+ @return the certificate serial number, null if no BaseCertificateID is set.
+
+
+ Carrying class for an attribute certificate issuer.
+
+
+ Set the issuer directly with the ASN.1 structure.
+
+ @param issuer The issuer
+
+
+ Return any principal objects inside the attribute certificate issuer object.
+ An array of IPrincipal objects (usually X509Principal).
+
+
+ A high level authority key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Create an AuthorityKeyIdentifier using the passed in certificate's public
+ key, issuer and serial number.
+
+ @param certificate the certificate providing the information.
+ @throws CertificateParsingException if there is a problem processing the certificate
+
+
+ Create an AuthorityKeyIdentifier using just the hash of the
+ public key.
+
+ @param pubKey the key to generate the hash from.
+ @throws InvalidKeyException if there is a problem using the key.
+
+
+ A high level subject key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Interface for an X.509 Attribute Certificate.
+
+
+ The version number for the certificate.
+
+
+ The serial number for the certificate.
+
+
+ The UTC DateTime before which the certificate is not valid.
+
+
+ The UTC DateTime after which the certificate is not valid.
+
+
+ The holder of the certificate.
+
+
+ The issuer details for the certificate.
+
+
+ Return the attributes contained in the attribute block in the certificate.
+ An array of attributes.
+
+
+ Return the attributes with the same type as the passed in oid.
+ The object identifier we wish to match.
+ An array of matched attributes, null if there is no match.
+
+
+ Return an ASN.1 encoded byte array representing the attribute certificate.
+ An ASN.1 encoded byte array.
+ If the certificate cannot be encoded.
+
+
+
+ Get all critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ Get all non-critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ A utility class that will extract X509Principal objects from X.509 certificates.
+
+ Use this in preference to trying to recreate a principal from a string, not all
+ DNs are what they should be, so it's best to leave them encoded where they
+ can be.
+
+
+
+ Return the issuer of the given cert as an X509Principal.
+
+
+ Return the subject of the given cert as an X509Principal.
+
+
+ Return the issuer of the given CRL as an X509Principal.
+
+
+ This class is an Selector like implementation to select
+ attribute certificates from a given set of criteria.
+
+ @see org.bouncycastle.x509.X509AttributeCertificate
+ @see org.bouncycastle.x509.X509Store
+
+
+
+ Decides if the given attribute certificate should be selected.
+
+ The attribute certificate to be checked.
+ true if the object matches this selector.
+
+
+ The attribute certificate which must be matched.
+ If null is given, any will do.
+
+
+ The criteria for validity
+ If null is given any will do.
+
+
+ The holder.
+ If null is given any will do.
+
+
+ The issuer.
+ If null is given any will do.
+
+
+ The serial number.
+ If null is given any will do.
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name The name as a GeneralName (not null)
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the name in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target names criteria. If null is
+ given any will do.
+
+ The collection consists of either GeneralName objects or byte[] arrays representing
+ DER encoded GeneralName structures.
+
+
+ @param names A collection of target names.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetName(byte[])
+ @see #AddTargetName(GeneralName)
+
+
+ Gets the target names. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target names
+ @see #setTargetNames(Collection)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param group The group as GeneralName form (not null)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the group in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target groups criteria. If null is
+ given any will do.
+
+ The collection consists of GeneralName objects or byte[]
+ representing DER encoded GeneralNames.
+
+
+ @param names A collection of target groups.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetGroup(byte[])
+ @see #AddTargetGroup(GeneralName)
+
+
+ Gets the target groups. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target groups.
+ @see #setTargetGroups(Collection)
+
+
+
+ This class is an IX509Selector implementation to select
+ certificate pairs, which are e.g. used for cross certificates. The set of
+ criteria is given from two X509CertStoreSelector objects,
+ each of which, if present, must match the respective component of a pair.
+
+
+
+ The certificate pair which is used for testing on equality.
+
+
+ The certificate selector for the forward part.
+
+
+ The certificate selector for the reverse part.
+
+
+
+ Decides if the given certificate pair should be selected. If
+ obj is not a X509CertificatePair, this method
+ returns false.
+
+ The X509CertificatePair to be tested.
+ true if the object matches this selector.
+
+
+
+ An ISet of DerObjectIdentifier objects.
+
+
+
+ A simple collection backed store.
+
+
+ Basic constructor.
+
+ @param collection - initial contents for the store, this is copied.
+
+
+ Return the matches in the collection for the passed in selector.
+
+ @param selector the selector to match against.
+ @return a possibly empty collection of matching objects.
+
+
+ This class contains a collection for collection based X509Stores.
+
+
+
+ Constructor.
+
+ The collection is copied.
+
+
+ The collection containing X.509 object types.
+ If collection is null.
+
+
+ Returns a copy of the ICollection.
+
+
+ Returns a formatted string describing the parameters.
+
+
+
+ An ICollection of X509Name objects
+
+
+
+ The attribute certificate being checked. This is not a criterion.
+ Rather, it is optional information that may help a {@link X509Store} find
+ CRLs that would be relevant when checking revocation for the specified
+ attribute certificate. If null is specified, then no such
+ optional information is provided.
+
+ @param attrCert the IX509AttributeCertificate being checked (or
+ null)
+ @see #getAttrCertificateChecking()
+
+
+ If true only complete CRLs are returned. Defaults to
+ false.
+
+ @return true if only complete CRLs are returned.
+
+
+ Returns if this selector must match CRLs with the delta CRL indicator
+ extension set. Defaults to false.
+
+ @return Returns true if only CRLs with the delta CRL
+ indicator extension are selected.
+
+
+ The issuing distribution point.
+
+ The issuing distribution point extension is a CRL extension which
+ identifies the scope and the distribution point of a CRL. The scope
+ contains among others information about revocation reasons contained in
+ the CRL. Delta CRLs and complete CRLs must have matching issuing
+ distribution points.
+
+ The byte array is cloned to protect against subsequent modifications.
+
+ You must also enable or disable this criteria with
+ {@link #setIssuingDistributionPointEnabled(bool)}.
+
+ @param issuingDistributionPoint The issuing distribution point to set.
+ This is the DER encoded OCTET STRING extension value.
+ @see #getIssuingDistributionPoint()
+
+
+ Whether the issuing distribution point criteria should be applied.
+ Defaults to false.
+
+ You may also set the issuing distribution point criteria if not a missing
+ issuing distribution point should be assumed.
+
+ @return Returns if the issuing distribution point check is enabled.
+
+
+ The maximum base CRL number. Defaults to null.
+
+ @return Returns the maximum base CRL number.
+ @see #setMaxBaseCRLNumber(BigInteger)
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+ Class for carrying the values in an X.509 Attribute.
+
+
+ @param at an object representing an attribute.
+
+
+ Create an X.509 Attribute with the type given by the passed in oid and
+ the value represented by an ASN.1 Set containing value.
+
+ @param oid type of the attribute
+ @param value value object to go into the atribute's value set.
+
+
+ Create an X.59 Attribute with the type given by the passed in oid and the
+ value represented by an ASN.1 Set containing the objects in value.
+
+ @param oid type of the attribute
+ @param value vector of values to go in the attribute's value set.
+
+
+
+ An Object representing an X509 Certificate.
+ Has static methods for loading Certificates encoded in many forms that return X509Certificate Objects.
+
+
+
+
+ Return true if the current time is within the start and end times nominated on the certificate.
+
+ true id certificate is valid for the current time.
+
+
+
+ Return true if the nominated time is within the start and end times nominated on the certificate.
+
+ The time to test validity against.
+ True if certificate is valid for nominated time.
+
+
+
+ Checks if the current date is within certificate's validity period.
+
+
+
+
+ Checks if the given date is within certificate's validity period.
+
+ if the certificate is expired by given date
+ if the certificate is not yet valid on given date
+
+
+
+ Return the certificate's version.
+
+ An integer whose value Equals the version of the cerficate.
+
+
+
+ Return a BigInteger containing the serial number.
+
+ The Serial number.
+
+
+
+ Get the Issuer Distinguished Name. (Who signed the certificate.)
+
+ And X509Object containing name and value pairs.
+
+
+
+ Get the subject of this certificate.
+
+ An X509Name object containing name and value pairs.
+
+
+
+ The time that this certificate is valid from.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ The time that this certificate is valid up to.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ Return the Der encoded TbsCertificate data.
+ This is the certificate component less the signature.
+ To Get the whole certificate call the GetEncoded() member.
+
+ A byte array containing the Der encoded Certificate component.
+
+
+
+ The signature.
+
+ A byte array containg the signature of the certificate.
+
+
+
+ A meaningful version of the Signature Algorithm. (EG SHA1WITHRSA)
+
+ A sting representing the signature algorithm.
+
+
+
+ Get the Signature Algorithms Object ID.
+
+ A string containg a '.' separated object id.
+
+
+
+ Get the signature algorithms parameters. (EG DSA Parameters)
+
+ A byte array containing the Der encoded version of the parameters or null if there are none.
+
+
+
+ Get the issuers UID.
+
+ A DerBitString.
+
+
+
+ Get the subjects UID.
+
+ A DerBitString.
+
+
+
+ Get a key usage guidlines.
+
+
+
+
+ Get the public key of the subject of the certificate.
+
+ The public key parameters.
+
+
+
+ Return a Der encoded version of this certificate.
+
+ A byte array.
+
+
+
+ Verify the certificate's signature using the nominated public key.
+
+ An appropriate public key parameter object, RsaPublicKeyParameters, DsaPublicKeyParameters or ECDsaPublicKeyParameters
+ True if the signature is valid.
+ If key submitted is not of the above nominated types.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+
+ This class contains a cross certificate pair. Cross certificates pairs may
+ contain two cross signed certificates from two CAs. A certificate from the
+ other CA to this CA is contained in the forward certificate, the certificate
+ from this CA to the other CA is contained in the reverse certificate.
+
+
+
+ Constructor
+ Certificate from the other CA to this CA.
+ Certificate from this CA to the other CA.
+
+
+ Constructor from a ASN.1 CertificatePair structure.
+ The CertificatePair ASN.1 object.
+
+
+ Returns the certificate from the other CA to this CA.
+
+
+ Returns the certificate from this CA to the other CA.
+
+
+ class for dealing with X509 certificates.
+
+ At the moment this will deal with "-----BEGIN CERTIFICATE-----" to "-----END CERTIFICATE-----"
+ base 64 encoded certs, as well as the BER binaries of certificates and some classes of PKCS#7
+ objects.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRLs
+
+ Authority Key Identifier
+ Issuer Alternative Name
+ CRL Number
+ Delta CRL Indicator (critical)
+ Issuing Distribution Point (critical)
+
+
+
+ Verify the CRL's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the CRL's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the CRL algorithm is invalid.
+
+
+ Returns a string representation of this CRL.
+
+ @return a string representation of this CRL.
+
+
+ Checks whether the given certificate is on this CRL.
+
+ @param cert the certificate to check for.
+ @return true if the given certificate is on this CRL,
+ false otherwise.
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRL Entries
+
+ ReasonCode Hode Instruction Code Invalidity Date Certificate Issuer
+ (critical)
+
+
+ Constructor for CRLEntries of indirect CRLs. If isIndirect
+ is false {@link #getCertificateIssuer()} will always
+ return null, previousCertificateIssuer is
+ ignored. If this isIndirect is specified and this CrlEntry
+ has no certificate issuer CRL entry extension
+ previousCertificateIssuer is returned by
+ {@link #getCertificateIssuer()}.
+
+ @param c
+ TbsCertificateList.CrlEntry object.
+ @param isIndirect
+ true if the corresponding CRL is a indirect
+ CRL.
+ @param previousCertificateIssuer
+ Certificate issuer of the previous CrlEntry.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate revocation list (CRL) object and initializes
+ it with the data read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the CRLs read from
+ the given input stream inStream.
+
+ The inStream may contain a sequence of DER-encoded CRLs, or
+ a PKCS#7 CRL set. This is a PKCS#7 SignedData object, with the
+ only significant field being crls. In particular the signature
+ and the contents are ignored.
+
+
+
+ Get non critical extensions.
+
+ A set of non critical extension oids.
+
+
+
+ Get any critical extensions.
+
+ A sorted list of critical entension.
+
+
+
+ Get the value of a given extension.
+
+ The object ID of the extension.
+ An Asn1OctetString object if that extension is found or null if not.
+
+
+ A holding class for constructing an X509 Key Usage extension.
+
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509KeyUsage.keyEncipherment | X509KeyUsage.dataEncipherment)
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Class to Generate X509V1 Certificates.
+
+
+
+
+ Default Constructor.
+
+
+
+
+ Reset the generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can get.
+ The serial number.
+
+
+
+ Set the issuer distinguished name.
+ The issuer is the entity whose private key is used to sign the certificate.
+
+ The issuers DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the subject distinguished name.
+ The subject describes the entity associated with the public key.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+ This can be either a name or an OID, names are treated as case insensitive.
+
+ string representation of the algorithm name
+
+
+
+ Generate a new X509Certificate.
+
+ The private key of the issuer used to sign this certificate.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate specifying a SecureRandom instance that you would like to use.
+
+ The private key of the issuer used to sign this certificate.
+ The Secure Random you want to use.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ An implementation of a version 2 X.509 Attribute Certificate.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+ Class to produce an X.509 Version 2 AttributeCertificate.
+
+
+ Reset the generator
+
+
+ Set the Holder of this Attribute Certificate.
+
+
+ Set the issuer.
+
+
+ Set the serial number for the certificate.
+
+
+
+ Set the signature algorithm. This can be either a name or an OID, names
+ are treated as case insensitive.
+
+ The algorithm name.
+
+
+ Add an attribute.
+
+
+ Add a given extension field for the standard extensions tag.
+
+
+
+ Add a given extension field for the standard extensions tag.
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject,
+ using the supplied source of randomness, if required.
+
+
+
+
+ Generate a new X.509 Attribute Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An IX509AttributeCertificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ class to produce an X.509 Version 2 CRL.
+
+
+ reset the generator
+
+
+ Set the issuer distinguished name - the issuer is the entity whose private key is used to sign the
+ certificate.
+
+
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with an Invalidity Date extension as well as a CrlReason extension.
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with extensions.
+
+
+
+ Add the CRLEntry objects contained in a previous CRL.
+
+ @param other the X509Crl to source the other entries from.
+
+
+
+ Set the signature algorithm that will be used to sign this CRL.
+
+
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Crl.
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject using the specified secure random.
+
+ The private key of the issuer that is signing this certificate.
+ Your Secure Random instance.
+ An X509Crl.
+
+
+
+ Generate a new X509Crl using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Crl.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
+ A class to Generate Version 3 X509Certificates.
+
+
+
+
+ Reset the Generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can Get.
+ The serial number.
+
+
+
+ Set the distinguished name of the issuer.
+ The issuer is the entity which is signing the certificate.
+
+ The issuer's DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the DN of the entity that this certificate is about.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+
+
+
+
+
+ Set the subject unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Set the issuer unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3).
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension using a string with a dotted decimal OID.
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3),
+ copying the extension value from another certificate.
+
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ copying the extension value from another certificate.
+ @throws CertificateParsingException if the extension cannot be extracted.
+
+
+
+ Generate an X509Certificate.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Certificate.
+
+
+
+ Generate an X509Certificate using your own SecureRandom.
+
+ The private key of the issuer that is signing this certificate.
+ You Secure Random instance.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ Base class for both the compress and decompress classes.
+ Holds common arrays, and static data.
+
+ @author Keiron Liddle
+
+
+ An input stream that decompresses from the BZip2 format (with the file
+ header chars) to be read as any other stream.
+
+ @author Keiron Liddle
+
+ NB: note this class has been modified to read the leading BZ from the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+ An output stream that compresses into the BZip2 format (with the file
+ header chars) into another stream.
+
+ @author Keiron Liddle
+
+ TODO: Update to BZip2 1.0.1
+ NB: note this class has been modified to add a leading BZ to the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+
+ modified by Oliver Merkel, 010128
+
+
+
+ A simple class the hold and calculate the CRC for sanity checking
+ of the data.
+
+ @author Keiron Liddle
+
+
+
diff --git a/bin/Release/Csv.dll b/bin/Release/Csv.dll
new file mode 100644
index 0000000..06074ea
Binary files /dev/null and b/bin/Release/Csv.dll differ
diff --git a/bin/Release/Csv.xml b/bin/Release/Csv.xml
new file mode 100644
index 0000000..f657d28
--- /dev/null
+++ b/bin/Release/Csv.xml
@@ -0,0 +1,148 @@
+
+
+
+ Csv
+
+
+
+
+ Defines the options that can be passed to customize the reading or writing of csv files.
+
+
+
+
+ Gets or sets the number of rows to skip before reading the header row, defaults to 0.
+
+
+
+
+ Gets or sets a function to skip the current row based on its raw string value or 1-based index. Skips empty rows and rows starting with # by default.
+
+
+
+
+ Gets or sets the character to use for separating data, defaults to '\0' which will auto-detect from the header row.
+
+
+
+
+ Gets or sets wether data should be trimmed when accessed.
+
+
+
+
+ Gets or sets the comparer to use when looking up header names.
+
+
+
+
+ Gets or sets an indicator to the parser to expect a header row or not.
+
+
+
+
+ Gets or sets wether a row should be validated immediately that the column count matches the header count.
+
+
+
+
+ Helper class to read csv (comma separated values) data.
+
+
+
+
+ Reads the lines from the reader.
+
+ The text reader to read the data from.
+ The optional options to use when reading.
+
+
+
+ Reads the lines from the stream.
+
+ The stream to read the data from.
+ The optional options to use when reading.
+
+
+
+ Reads the lines from the csv string.
+
+ The csv string to read the data from.
+ The optional options to use when reading.
+
+
+
+ Helper class to write csv (comma separated values) data.
+
+
+
+
+ Writes the lines to the writer.
+
+ The text writer to write the data to.
+ The headers that should be used for the first line, determines the number of columns.
+ The lines with data that should be written.
+ The separator to use between columns (comma, semicolon, tab, ...)
+
+
+
+ Writes the lines and return the result.
+
+ The headers that should be used for the first line, determines the number of columns.
+ The lines with data that should be written.
+ The separator to use between columns (comma, semicolon, tab, ...)
+
+
+
+ Indicates the presence or absence of a header row
+
+
+
+
+ Indicates that the CSV file has a header row
+
+
+
+
+ Indicates that the CSV file does not have a header row
+
+
+
+
+ Represents a single data line inside a csv file.
+
+
+
+
+ Gets the headers from the csv file.
+
+
+
+
+ Gets the original raw content of the line.
+
+
+
+
+ Gets the 1-based index for the line inside the file.
+
+
+
+
+ Gets the number of columns of the line.
+
+
+
+
+ Gets the data for the specified named header.
+
+ The name of the header.
+
+
+
+ Gets the data for the specified indexed header.
+
+ The index of the header.
+
+
+
diff --git a/bin/Release/FluentFTP.dll b/bin/Release/FluentFTP.dll
new file mode 100644
index 0000000..15ae4f6
Binary files /dev/null and b/bin/Release/FluentFTP.dll differ
diff --git a/bin/Release/FluentFTP.xml b/bin/Release/FluentFTP.xml
new file mode 100644
index 0000000..83e3985
--- /dev/null
+++ b/bin/Release/FluentFTP.xml
@@ -0,0 +1,5436 @@
+
+
+
+ FluentFTP
+
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+
+
+ Used for internally synchronizing access to this
+ object from multiple threads
+
+
+
+
+ For usage by FTP proxies only
+
+
+
+
+ A list of asynchronous methods that are in progress
+
+
+
+
+ Control connection socket stream
+
+
+
+
+ Gets a value indicating if this object has already been disposed.
+
+
+
+
+ Gets the base stream for talking to the server via
+ the control connection.
+
+
+
+
+ Flags specifying which versions of the internet protocol to
+ support when making a connection. All addresses returned during
+ name resolution are tried until a successful connection is made.
+ You can fine tune which versions of the internet protocol to use
+ by adding or removing flags here. I.e., setting this property
+ to FtpIpVersion.IPv4 will cause the connection process to
+ ignore IPv6 addresses. The default value is ANY version.
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling
+ on the socket to test for connectivity.
+ Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Polling all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets or sets a value indicating whether a test should be performed to
+ see if there is stale (unrequested data) sitting on the socket. In some
+ cases the control connection may time out but before the server closes
+ the connection it might send a 4xx response that was unexpected and
+ can cause synchronization errors with transactions. To avoid this
+ problem the method checks to see if there is any data
+ available on the socket before executing a command. On Azure hosting
+ platforms this check can cause an exception to be thrown. In order
+ to work around the exception you can set this property to false
+ which will skip the test entirely however doing so eliminates the
+ best effort attempt of detecting such scenarios. See this thread
+ for more details about the Azure problem:
+ https://netftp.codeplex.com/discussions/535879
+
+
+
+
+ Gets a value indicating if the connection is alive
+
+
+
+
+ When this value is set to true (default) the control connection
+ is cloned and a new connection the server is established for the
+ data channel operation. This is a thread safe approach to make
+ asynchronous operations on a single control connection transparent
+ to the developer.
+
+
+
+
+ Gets a value indicating if this control connection is a clone. This property
+ is used with data streams to determine if the connection should be closed
+ when the stream is closed. Servers typically only allow 1 data connection
+ per control connection. If you try to open multiple data connections this
+ object will be cloned for 2 or more resulting in N new connections to the
+ server.
+
+
+
+
+ Gets or sets the text encoding being used when talking with the server. The default
+ value is however upon connection, the client checks
+ for UTF8 support and if it's there this property is switched over to
+ . Manually setting this value overrides automatic detection
+ based on the FEAT list; if you change this value it's always used
+ regardless of what the server advertises, if anything.
+
+
+
+
+ The server to connect to
+
+
+
+
+ The port to connect to. If this value is set to 0 (Default) the port used
+ will be determined by the type of SSL used or if no SSL is to be used it
+ will automatically connect to port 21.
+
+
+
+
+ Credentials used for authentication
+
+
+
+
+ Gets or sets a value that controls the maximum depth
+ of recursion that will follow symbolic
+ links before giving up. You can also specify the value
+ to be used as one of the overloaded parameters to the
+ method. The default value is 20. Specifying
+ -1 here means indefinitely try to resolve a link. This is
+ not recommended for obvious reasons (stack overflow).
+
+
+
+
+ Client certificates to be used in SSL authentication process
+
+
+
+
+ Delegate used for resolving local address, used for active data connections
+ This can be used in case you're behind a router, but port forwarding is configured to forward the
+ ports from your router to your internal IP. In that case, we need to send the router's IP instead of our internal IP.
+ See example: FtpClient.GetPublicIP -> This uses Ipify api to find external IP
+
+
+
+
+ Ports used for Active Data Connection
+
+
+
+
+ Data connection type, default is AutoPassive which tries
+ a connection with EPSV first and if it fails then tries
+ PASV before giving up. If you know exactly which kind of
+ connection you need you can slightly increase performance
+ by defining a specific type of passive or active data
+ connection here.
+
+
+
+
+ Disconnect from the server without sending QUIT. This helps
+ work around IOExceptions caused by buggy connection resets
+ when closing the control connection.
+
+
+
+
+ Gets or sets the length of time in milliseconds to wait for a connection
+ attempt to succeed before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time wait in milliseconds for data to be
+ read from the underlying stream. The default value is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds for a data connection
+ to be established before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds the data channel
+ should wait for the server to send data. Default value is
+ 15000 (15 seconds).
+
+
+
+
+ Gets or sets a value indicating if should be set on
+ the underlying stream's socket. If the connection is alive, the option is
+ adjusted in real-time. The value is stored and the KeepAlive option is set
+ accordingly upon any new connections. The value set here is also applied to
+ all future data streams. It has no affect on cloned control connections or
+ data connections already in progress. The default value is false.
+
+
+
+
+ Gets the server capabilities represented by flags
+
+
+
+
+ Get the hash types supported by the server, if any. This
+ is a recent extension to the protocol that is not fully
+ standardized and is not guaranteed to work. See here for
+ more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Type of SSL to use, or none. Default is none. Explicit is TLS, Implicit is SSL.
+
+
+
+
+ Indicates if data channel transfers should be encrypted. Only valid if
+ property is not equal to .
+
+
+
+
+ Indicates if the encryption should be disabled immediately after connecting using a CCC command.
+ This is useful when you have a FTP firewall that requires plaintext FTP, but your server mandates FTPS connections.
+
+
+
+
+ Encryption protocols to use. Only valid if EncryptionMode property is not equal to .
+ Default value is .NET Framework defaults from the class.
+
+
+
+
+ Event is fired to validate SSL certificates. If this event is
+ not handled and there are errors validating the certificate
+ the connection will be aborted.
+
+
+
+
+
+ Gets the type of system/server that we're
+ connected to.
+
+
+
+ Gets the connection type
+
+
+
+ Creates a new instance of an FTP Client.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, username and password.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port, username and password.
+
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+
+ Disconnects from the server, releases resources held by this
+ object.
+
+
+
+
+ Finalizer
+
+
+
+
+ Clones the control connection for opening multiple data streams
+
+ A new control connection with the same property settings as this one
+
+
+
+
+ Executes a command
+
+ The command to execute
+ The servers reply to the command
+
+
+
+
+ Performs execution of the specified command asynchronously
+
+ The command to execute
+ The method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends an asynchronous command
+
+ IAsyncResult returned from BeginExecute
+ FtpReply object (never null).
+
+
+
+
+ Performs an asynchronous execution of the specified command
+
+ The command to execute
+ The servers reply to the command
+
+
+
+ Retrieves a reply from the server. Do not execute this method
+ unless you are sure that a reply has been sent, i.e., you
+ executed a command. Doing so will cause the code to hang
+ indefinitely waiting for a server reply that is never coming.
+
+ FtpReply representing the response from the server
+
+
+
+
+ Retrieves a reply from the server. Do not execute this method
+ unless you are sure that a reply has been sent, i.e., you
+ executed a command. Doing so will cause the code to hang
+ indefinitely waiting for a server reply that is never coming.
+
+ FtpReply representing the response from the server
+
+
+
+
+ Connect to the server
+
+ Thrown if this object has been disposed.
+
+
+
+
+ Connect to the server
+
+ Thrown if this object has been disposed.
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+ Called during Connect(). Typically extended by FTP proxies.
+
+
+
+
+ Called during . Typically extended by FTP proxies.
+
+
+
+
+ Populates the capabilities flags based on capabilities
+ supported by this server. This method is overridable
+ so that new features can be supported
+
+ The reply object from the FEAT command. The InfoMessages property will
+ contain a list of the features the server supported delimited by a new line '\n' character.
+
+
+
+ Initiates a connection to the server
+
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends an asynchronous connection attempt to the server from
+
+ returned from
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Disconnects from the server
+
+
+
+
+ Initiates a disconnection on the server
+
+ method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+
+
+
+
+ Disconnects from the server asynchronously
+
+
+
+
+ Catches the socket stream ssl validation event and fires the event handlers
+ attached to this object for validating SSL certificates
+
+ The stream that fired the event
+ The event args used to validate the certificate
+
+
+
+ Fires the SSL validation event
+
+ Event Args
+
+
+
+ Performs a bitwise and to check if the specified
+ flag is set on the property.
+
+ The to check for
+ True if the feature was found, false otherwise
+
+
+
+ Retrieves the delegate for the specified IAsyncResult and removes
+ it from the m_asyncmethods collection if the operation is successful
+
+ Type of delegate to retrieve
+ The IAsyncResult to retrieve the delegate for
+ The delegate that generated the specified IAsyncResult
+
+
+
+ Ensure a relative path is absolute by appending the working dir
+
+
+
+
+ Ensure a relative path is absolute by appending the working dir
+
+
+
+
+ Disables UTF8 support and changes the Encoding property
+ back to ASCII. If the server returns an error when trying
+ to turn UTF8 off a FtpCommandException will be thrown.
+
+
+
+
+ Data shouldn't be on the socket, if it is it probably
+ means we've been disconnected. Read and discard
+ whatever is there and close the connection (optional).
+
+ close the connection?
+ even read encrypted data?
+ trace data to logs?
+
+
+
+ Data shouldn't be on the socket, if it is it probably
+ means we've been disconnected. Read and discard
+ whatever is there and close the connection (optional).
+
+ close the connection?
+ even read encrypted data?
+ trace data to logs?
+
+
+
+ Calculate the CHMOD integer value given a set of permissions.
+
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ FtpClient object
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ FtpClient object
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Restart location
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Calculate you public internet IP using the ipify service. Returns null if cannot be calculated.
+
+ Public IP Address
+
+
+
+ Gets the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The flag or if there was a problem.
+
+
+
+
+ Begins an asynchronous operation to get the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The flag or if there was a problem.
+
+
+
+ Gets the currently selected hash algorithm for the HASH command asynchronously.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The flag or if there was a problem.
+
+
+
+ Sets the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash Algorithm
+ Thrown if the selected algorithm is not available on the server
+
+
+
+
+ Begins an asynchronous operation to set the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash algorithm to use
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+
+
+
+ Sets the hash algorithm on the server to be used with the HASH command asynchronously.
+
+ Hash algorithm to use
+ Thrown if the selected algorithm is not available on the server
+
+
+
+ Gets the hash of an object on the server using the currently selected hash algorithm.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Full or relative path of the object to compute the hash for.
+ The hash of the file.
+
+ Thrown if the property is ,
+ the remote path does not exist, or the command cannot be executed.
+
+ Path argument is null
+ Thrown when an unknown hash algorithm type is returned by the server
+
+
+
+
+ Begins an asynchronous operation to get the hash of an object on the server using the currently selected hash algorithm.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The file you want the server to compute the hash for
+ AsyncCallback
+ State object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+
+
+
+ Gets the hash of an object on the server using the currently selected hash algorithm asynchronously.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The file you want the server to compute the hash for
+
+ Thrown if the property is ,
+ the remote path does not exist, or the command cannot be executed.
+
+ Path argument is null
+ Thrown when an unknown hash algorithm type is returned by the server
+ The hash of the file.
+
+
+
+ Retrieves a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path of the file to checksum
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+
+
+ Retrieves a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path of the file to checksum
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+ The command fails
+
+
+
+ Gets the MD5 hash of the specified file using MD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a MD5 hash. The MD5 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The MD5 hash of the specified file.
+
+
+
+ Gets the MD5 hash of the specified file using MD5 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Get the CRC value of the specified file. This is a non-standard extension of the protocol
+ and may throw a FtpCommandException if the server does not support it.
+
+ The path of the file you'd like the server to compute the CRC value for.
+ The response from the server, typically the XCRC value. FtpCommandException thrown on error
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a CRC hash. The XCRC command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The CRC hash of the specified file.
+
+
+
+ Gets the CRC hash of the specified file using XCRC asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the CRC hash.
+ The command fails
+
+
+
+ Gets the MD5 hash of the specified file using XMD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a XMD5 hash. The XMD5 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The MD5 hash of the specified file.
+
+
+
+ Gets the MD5 hash of the specified file using XMD5 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Gets the SHA-1 hash of the specified file using XSHA1. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-1 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA1 hash. The XSHA1 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-1 hash of the specified file.
+
+
+
+ Gets the SHA-1 hash of the specified file using XSHA1 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-1 hash.
+ The command fails
+
+
+
+ Gets the SHA-256 hash of the specified file using XSHA256. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-256 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA256 hash. The XSHA256 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-256 hash of the specified file.
+
+
+
+ Gets the SHA-256 hash of the specified file using XSHA256 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-256 hash.
+ The command fails
+
+
+
+ Gets the SHA-512 hash of the specified file using XSHA512. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-512 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA512 hash. The XSHA512 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-512 hash of the specified file.
+
+
+
+ Gets the SHA-512 hash of the specified file using XSHA512 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-512 hash.
+ The command fails
+
+
+
+ Gets or sets the number of bytes transferred in a single chunk (a single FTP command).
+ Used by / and /
+ to transfer large files in multiple chunks.
+
+
+
+
+ Gets or sets the retry attempts allowed when a verification failure occurs during download or upload.
+ This value must be set to 1 or more.
+
+
+
+
+ Rate limit for uploads in kbyte/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Rate limit for downloads in kbytes/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Controls if the high-level API uploads files in Binary or ASCII mode.
+
+
+
+
+ Controls if the high-level API downloads files in Binary or ASCII mode.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ Files to be uploaded
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server asynchronously.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The token to monitor for cancellation requests
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server asynchronously.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded into.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The token to monitor for cancellation requests
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded into.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the specified file directly onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified file directly onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ The token to monitor for cancellation requests.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified file directly onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified stream as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Uploads the specified byte array as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Uploads the specified stream as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ The token to monitor for cancellation requests.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Uploads the specified byte array as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ The token to monitor for cancellation requests.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Uploads the specified stream as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Uploads the specified byte array as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Upload the given stream to the server as a new file. Overwrites the file if it exists.
+ Writes data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Upload the given stream to the server as a new file asynchronously. Overwrites the file if it exists.
+ Writes data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Downloads the specified file onto the local file system.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file onto the local file system asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ The token to monitor for cancellation requests
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file onto the local file system asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file into the specified stream.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file and return the raw byte array.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The variable that will receive the bytes.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file into the specified stream asynchronously .
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ The token to monitor cancellation requests
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file into the specified stream asynchronously .
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file and return the raw byte array.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the server
+ The token to monitor cancellation requests
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ A byte array containing the contents of the downloaded file if successful, otherwise null.
+
+
+
+ Downloads the specified file into the specified stream asynchronously .
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the server
+ A byte array containing the contents of the downloaded file if successful, otherwise null.
+
+
+
+ Download a file from the server and write the data into the given stream.
+ Reads data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Download a file from the server and write the data into the given stream asynchronously.
+ Reads data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate.
+
+
+
+
+ File listing parser to be used.
+ Automatically calculated based on the type of the server, unless changed.
+
+
+
+
+ Culture used to parse file listings
+
+
+
+
+ Time difference between server and client, in hours.
+ If the server is located in New York and you are in London then the time difference is -5 hours.
+
+
+
+
+ Check if your server supports a recursive LIST command (LIST -R).
+ If you know for sure that this is unsupported, set it to false.
+
+
+
+
+ If true, increases performance of GetListing by reading multiple lines
+ of the file listing at once. If false then GetListing will read file
+ listings line-by-line. If GetListing is having issues with your server,
+ set it to false.
+
+ The number of bytes read is based upon .
+
+
+
+
+ Bytes to read during GetListing. Only honored if is true.
+
+
+
+
+ Returns information about a file system object. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ The path of the file or folder
+ Get the accurate modified date using another MDTM command
+ A FtpListItem object
+
+
+
+ Begins an asynchronous operation to return information about a remote file system object.
+
+
+ You should check the property for the
+ flag before calling this method. Failing to do so will result in an InvalidOperationException
+ being thrown when the server does not support machine listings. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ Path of the file or folder
+ Get the accurate modified date using another MDTM command
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ A if the command succeeded, or null if there was a problem.
+
+
+
+ Return information about a remote file system object asynchronously.
+
+
+ You should check the property for the
+ flag before calling this method. Failing to do so will result in an InvalidOperationException
+ being thrown when the server does not support machine listings. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+ Path of the item to retrieve information about
+ Get the accurate modified date using another MDTM command
+ Thrown if the server does not support this Capability
+ A if the command succeeded, or null if there was a problem.
+
+
+
+ Gets a file listing from the server from the current working directory. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ Options that dictacte how a list is performed and what information is gathered.
+ An array of FtpListItem objects
+
+
+
+
+ Begins an asynchronous operation to get a file listing from the server.
+ Each object returned contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to get a file listing from the server.
+ Each object returned contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Gets a file listing from the server asynchronously
+
+ The path to list
+ Options that dictate how the list operation is performed
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult return from
+ An array of items retrieved in the listing
+
+
+
+
+ Gets a file listing from the server asynchronously. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ Options that dictate how the list operation is performed
+ An array of items retrieved in the listing
+
+
+
+ Gets a file listing from the server asynchronously. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ An array of items retrieved in the listing
+
+
+
+ Gets a file listing from the server asynchronously. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ An array of items retrieved in the listing
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ A string array of file and directory names if any were returned.
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ The path of the directory to list
+ A string array of file and directory names if any were returned.
+
+
+
+
+ Begin an asynchronous operation to return a file/directory listing using the NLST command.
+
+ The path of the directory to list
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begin an asynchronous operation to return a file/directory listing using the NLST command.
+
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult object returned from
+ An array of file and directory names if any were returned.
+
+
+
+
+ Returns a file/directory listing using the NLST command asynchronously
+
+ The path of the directory to list
+ An array of file and directory names if any were returned.
+
+
+
+ Returns a file/directory listing using the NLST command asynchronously
+
+ An array of file and directory names if any were returned.
+
+
+
+ Opens the specified type of passive data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens the specified type of passive data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Returns the ip address to be sent to the server for the active connection
+
+
+
+
+
+
+ Opens the specified type of active data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens the specified type of active data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens a data stream.
+
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ The data stream.
+
+
+
+ Opens a data stream.
+
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ The data stream.
+
+
+
+ Disconnects a data stream
+
+ The data stream to close
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A readable stream of the remote file
+
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ ASCII/Binary
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ Resume location
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for writing
+
+ Full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for writing
+
+ Full or relative path of the file
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A writable stream
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket. asynchronously
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket. asynchronously
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for appending
+
+ Full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for appending
+
+ Full or relative path of the file
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A writable stream
+
+
+
+
+ Opens the specified file to be appended asynchronously
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file to be appended asynchronously
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file to be appended asynchronously
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+ Sets the data type of information sent over the data stream
+
+ ASCII/Binary
+
+
+ Internal method that handles actually setting the data type.
+ Thrown when a FTP Command error condition occurs.
+ Thrown when a FTP error condition occurs.
+ ASCII/Binary.
+ This method doesn't do any locking to prevent recursive lock scenarios. Callers must do their own locking.
+
+
+
+ Begins an asynchronous operation to set the data type of information sent over the data stream
+
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Sets the data type of information sent over the data stream asynchronously
+
+ ASCII/Binary
+
+
+
+ Deletes a file on the server
+
+ The full or relative path to the file
+
+
+
+
+ Begins an asynchronous operation to delete the specified file on the server
+
+ The full or relative path to the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDeleteFile
+
+
+
+
+ Deletes a file from the server asynchronously
+
+ The full or relative path to the file
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ If the directory is not empty, remove its contents
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Checks whether will be called recursively or not.
+
+
+
+
+
+
+ Begins an asynchronous operation to delete the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to delete the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDeleteDirectory
+
+
+
+
+ Asynchronously removes a directory and all its contents.
+
+ The full or relative path of the directory to delete
+
+
+
+ Asynchronously removes a directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+
+
+
+ Asynchronously removes a directory. Used by and
+ .
+
+ The full or relative path of the directory to delete
+ Delete the contents before deleting the folder
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Tests if the specified directory exists on the server. This
+ method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ The path of the directory
+ True if it exists, false otherwise.
+
+
+
+
+ Begins an asynchronous operation to test if the specified directory exists on the server.
+ This method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ IAsyncResult
+ The full or relative path of the directory to check for
+ Async callback
+ State object
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDirectoryExists
+ True if the directory exists. False otherwise.
+
+
+
+
+ Tests if the specified directory exists on the server asynchronously. This
+ method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ The full or relative path of the directory to check for
+ True if the directory exists. False otherwise.
+
+
+
+ Checks if a file exists on the server.
+
+ The full or relative path to the file
+ True if the file exists
+
+
+
+
+ Begins an asynchronous operation to check if a file exists on the
+ server by taking a file listing of the parent directory in the path
+ and comparing the results the path supplied.
+
+ The full or relative path to the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ True if the file exists, false otherwise
+
+
+
+
+ Checks if a file exists on the server asynchronously.
+
+ The full or relative path to the file
+ True if the file exists, false otherwise
+
+
+
+ Creates a directory on the server. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+
+
+
+
+ Creates a directory on the server
+
+ The full or relative path to the new remote directory
+ Try to force all non-existent pieces of the path to be created
+
+
+
+
+ Begins an asynchronous operation to create a remote directory. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to create a remote directory
+
+ The full or relative path to the new remote directory
+ Try to create the whole path if the preceding directories do not exist
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Creates a remote directory asynchronously
+
+ The full or relative path to the new remote directory
+ Try to create the whole path if the preceding directories do not exist
+
+
+
+ Creates a remote directory asynchronously. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+
+
+
+ Renames an object on the remote file system.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+
+
+
+
+ Begins an asynchronous operation to rename an object on the remote file system.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Renames an object on the remote file system asynchronously.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+
+
+
+ Moves a file on the remote file system from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Whether the file was moved
+
+
+
+ Begins an asynchronous operation to move a file on the remote file system, from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Moves a file asynchronously on the remote file system from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Whether the file was moved
+
+
+
+ Moves a directory on the remote file system from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Whether the directory was moved
+
+
+
+ Begins an asynchronous operation to move a directory on the remote file system, from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Moves a directory asynchronously on the remote file system from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Whether the directory was moved
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set.
+ Throws FtpCommandException if there is an issue.
+ Returns null if the server did not specify a permission value.
+ Use `GetChmod` if you required the integer value instead.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set.
+ Throws FtpCommandException if there is an issue.
+ Returns null if the server did not specify a permission value.
+ Use `GetChmod` if you required the integer value instead.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an integer in the CHMOD format.
+ Throws FtpCommandException if there is an issue.
+ Returns 0 if the server did not specify a permission value.
+ Use `GetFilePermissions` if you required the permissions in the FtpPermission format.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an integer in the CHMOD format.
+ Throws FtpCommandException if there is an issue.
+ Returns 0 if the server did not specify a permission value.
+ Use `GetFilePermissions` if you required the permissions in the FtpPermission format.
+
+ The full or relative path to the item
+
+
+
+ Recursively dereferences a symbolic link. See the
+ MaximumDereferenceCount property for controlling
+ how deep this method will recurse before giving up.
+
+ The symbolic link
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Recursively dereferences a symbolic link
+
+ The symbolic link
+ The maximum depth of recursion that can be performed before giving up.
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Derefence a FtpListItem object
+
+ The item to derefence
+ Maximum recursive calls
+ Counter
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Begins an asynchronous operation to dereference a object
+
+ The item to dereference
+ Maximum recursive calls
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to dereference a object. See the
+ property for controlling
+ how deep this method will recurse before giving up.
+
+ The item to dereference
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult
+ A , or null if the link can't be dereferenced
+
+
+
+
+ Derefence a FtpListItem object
+
+ The item to derefence
+ Maximum recursive calls
+ Counter
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+ Dereference a object asynchronously
+
+ The item to dereference
+ Maximum recursive calls
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+ Dereference a object asynchronously
+
+ The item to dereference
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+ Sets the work directory on the server
+
+ The path of the directory to change to
+
+
+
+
+ Begins an asynchronous operation to set the working directory on the server
+
+ The directory to change to
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Sets the working directory on the server asynchronously
+
+ The directory to change to
+
+
+
+ Gets the current working directory
+
+ The current working directory, ./ if the response couldn't be parsed.
+
+
+
+
+ Begins an asynchronous operation to get the working directory
+
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The current working directory
+
+
+
+
+ Gets the current working directory asynchronously
+
+ The current working directory, ./ if the response couldn't be parsed.
+
+
+
+ Gets the size of a remote file
+
+ The full or relative path of the file
+ -1 if the command fails, otherwise the file size
+
+
+
+
+ Begins an asynchronous operation to retrieve the size of a remote file
+
+ The full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The size of the file, -1 if there was a problem.
+
+
+
+
+ Retrieve the size of a remote file asynchronously
+
+ The full or relative path of the file
+ The size of the file, -1 if there was a problem.
+
+
+
+ Gets the modified time of a remote file
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ The modified time, or if there was a problem
+
+
+
+
+ Begins an asynchronous operation to get the modified time of a remote file
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The modified time, or if there was a problem
+
+
+
+
+ Gets the modified time of a remote file asynchronously
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ The modified time, or if there was a problem
+
+
+
+ Changes the modified time of a remote file
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+
+
+
+ Begins an asynchronous operation to get the modified time of a remote file
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The modified time, or if there was a problem
+
+
+
+ Gets the modified time of a remote file asynchronously
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+
+
+
+ Interface for the FtpClient class. For detailed documentation of the methods, please see the FtpClient class.
+
+
+
+
+ Defines the type of encryption to use
+
+
+
+
+ Plain text.
+
+
+
+
+ FTPS encryption is used from the start of the connection, port 990.
+
+
+
+
+ Connection starts in plain text and FTPS encryption is enabled
+ with the AUTH command immediately after the server greeting.
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ No response
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Temporary failure
+
+
+
+
+ Permanent failure
+
+
+
+
+ Server features
+
+
+
+
+ This server said it doesn't support anything!
+
+
+
+
+ Supports the MLST command
+
+
+
+
+ Supports the SIZE command
+
+
+
+
+ Supports the MDTM command
+
+
+
+
+ Supports download/upload stream resumes
+
+
+
+
+ Supports UTF8
+
+
+
+
+ PRET Command used in distributed ftp server software DrFTPD
+
+
+
+
+ Server supports the MFMT command for setting the
+ modified date of an object on the server
+
+
+
+
+ Server supports the MFCT command for setting the
+ created date of an object on the server
+
+
+
+
+ Server supports the MFF command for setting certain facts
+ about file system objects. If you need this command, it would
+ probably be handy to query FEAT your self and have a look at
+ the FtpReply.InfoMessages property to see which facts the server
+ allows you to modify.
+
+
+
+
+ Server supports the STAT command
+
+
+
+
+ Support for the HASH command
+
+
+
+
+ Support for the non-standard MD5 command
+
+
+
+
+ Support for the non-standard XMD5 command
+
+
+
+
+ Support for the non-standard XCRC command
+
+
+
+
+ Support for the non-standard XSHA1 command
+
+
+
+
+ Support for the non-standard XSHA256 command
+
+
+
+
+ Support for the non-standard XSHA512 command
+
+
+
+
+ Different types of hashing algorithms for computing checksums.
+
+
+
+
+ HASH command is not supported
+
+
+
+
+ SHA-1
+
+
+
+
+ SHA-256
+
+
+
+
+ SHA-512
+
+
+
+
+ MD5
+
+
+
+
+ CRC
+
+
+
+
+ IP Versions to allow when connecting
+ to a server.
+
+
+
+
+ Internet Protocol Version 4
+
+
+
+
+ Internet Protocol Version 6
+
+
+
+
+ Allow any supported version
+
+
+
+
+ Data connection type
+
+
+
+
+ This type of data connection attempts to use the EPSV command
+ and if the server does not support EPSV it falls back to the
+ PASV command before giving up unless you are connected via IPv6
+ in which case the PASV command is not supported.
+
+
+
+
+ Passive data connection. EPSV is a better
+ option if it's supported. Passive connections
+ connect to the IP address dictated by the server
+ which may or may not be accessible by the client
+ for example a server behind a NAT device may
+ give an IP address on its local network that
+ is inaccessible to the client. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Same as PASV except the host supplied by the server is ignored
+ and the data connection is made to the same address that the control
+ connection is connected to. This is useful in scenarios where the
+ server supplies a private/non-routable network address in the
+ PASV response. It's functionally identical to EPSV except some
+ servers may not implement the EPSV command. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Extended passive data connection, recommended. Works
+ the same as a PASV connection except the server
+ does not dictate an IP address to connect to, instead
+ the passive connection goes to the same address used
+ in the control connection. This type of data connection
+ supports IPv4 and IPv6.
+
+
+
+
+ This type of data connection attempts to use the EPRT command
+ and if the server does not support EPRT it falls back to the
+ PORT command before giving up unless you are connected via IPv6
+ in which case the PORT command is not supported.
+
+
+
+
+ Active data connection, not recommended unless
+ you have a specific reason for using this type.
+ Creates a listening socket on the client which
+ requires firewall exceptions on the client system
+ as well as client network when connecting to a
+ server outside of the client's network. In addition
+ the IP address of the interface used to connect to the
+ server is the address the server is told to connect to
+ which, if behind a NAT device, may be inaccessible to
+ the server. This type of data connection is not supported
+ by IPv6. If you specify PORT and are connected via IPv6
+ EPRT will automatically be used instead.
+
+
+
+
+ Extended active data connection, not recommended
+ unless you have a specific reason for using this
+ type. Creates a listening socket on the client
+ which requires firewall exceptions on the client
+ as well as client network when connecting to a
+ server outside of the client's network. The server
+ connects to the IP address it sees the client coming
+ from. This type of data connection supports IPv4 and IPv6.
+
+
+
+
+ Type of data transfer to do
+
+
+
+
+ ASCII transfer
+
+
+
+
+ Binary transfer
+
+
+
+
+ Type of file system of object
+
+
+
+
+ A file
+
+
+
+
+ A directory
+
+
+
+
+ A symbolic link
+
+
+
+
+ Types of file permissions
+
+
+
+
+ No access
+
+
+
+
+ Executable
+
+
+
+
+ Writable
+
+
+
+
+ Readable
+
+
+
+
+ Types of special UNIX permissions
+
+
+
+
+ No special permissions are set
+
+
+
+
+ Sticky bit is set
+
+
+
+
+ SGID bit is set
+
+
+
+
+ SUID bit is set
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ Use the legacy parser (for older projects that depend on the pre-2017 parser routines).
+
+
+
+
+ Automatically detect the file listing parser to use based on the FTP server (SYST command).
+
+
+
+
+ Machine listing parser, works on any FTP server supporting the MLST/MLSD commands.
+
+
+
+
+ File listing parser for Windows/IIS.
+
+
+
+
+ File listing parser for Unix.
+
+
+
+
+ Alternate parser for Unix. Use this if the default one does not work.
+
+
+
+
+ File listing parser for Vax/VMS/OpenVMS.
+
+
+
+
+ File listing parser for IBM OS400.
+
+
+
+
+ File listing parser for Tandem/Nonstop Guardian OS.
+
+
+
+
+ Flags that can dictate how a file listing is performed
+
+
+
+
+ Tries machine listings (MDTM command) if supported,
+ and if not then falls back to OS-specific listings (LIST command)
+
+
+
+
+ Load the modify date using MDTM when it could not
+ be parsed from the server listing. This only pertains
+ to servers that do not implement the MLSD command.
+
+
+
+
+ Load the file size using the SIZE command when it
+ could not be parsed from the server listing. This
+ only pertains to servers that do not support the
+ MLSD command.
+
+
+
+
+ Combines the Modify and Size flags
+
+
+
+
+ Show hidden/dot files. This only pertains to servers
+ that do not support the MLSD command. This option
+ makes use the non standard -a parameter to LIST to
+ tell the server to show hidden files. Since it's a
+ non-standard option it may not always work. MLSD listings
+ have no such option and whether or not a hidden file is
+ shown is at the discretion of the server.
+
+
+
+
+ Force the use of OS-specific listings (LIST command) even if
+ machine listings (MLSD command) are supported by the server
+
+
+
+
+ Use the NLST command instead of LIST for a reliable file listing
+
+
+
+
+ Force the use of the NLST command (the slowest mode) even if machine listings
+ and OS-specific listings are supported by the server
+
+
+
+
+ Try to dereference symbolic links, and stored the linked file/directory in FtpListItem.LinkObject
+
+
+
+
+ Sets the ForceList flag and uses `LS' instead of `LIST' as the
+ command for getting a directory listing. This option overrides
+ ForceNameList and ignores the AllFiles flag.
+
+
+
+
+ Gets files within subdirectories as well. Adds the -r option to the LIST command.
+ Some servers may not support this feature.
+
+
+
+
+ Do not retrieve path when no path is supplied to GetListing(),
+ instead just execute LIST with no path argument.
+
+
+
+
+ Include two extra items into the listing, for the current directory (".")
+ and the parent directory (".."). Meaningless unless you want these two
+ items for some reason.
+
+
+
+
+ Defines the behavior for uploading/downloading files that already exist
+
+
+
+
+ Do not check if the file exists. A bit faster than the other options. Only use this if you are SURE that the file does not exist on the server.
+ Otherwise it can cause the UploadFile method to hang due to filesize mismatch.
+
+
+
+
+ Skip the file if it exists, without any more checks.
+
+
+
+
+ Overwrite the file if it exists.
+
+
+
+
+ Append to the file if it exists, by checking the length and adding the missing data.
+
+
+
+
+ Defines the level of the tracing message. Depending on the framework version this is translated
+ to an equivalent logging level in System.Diagnostices (if available)
+
+
+
+
+ Used for logging Debug or Verbose level messages
+
+
+
+
+ Used for logging Informational messages
+
+
+
+
+ Used for logging non-fatal or ignorable error messages
+
+
+
+
+ Used for logging Error messages that may need investigation
+
+
+
+
+ Defines how multi-file processes should handle a processing error.
+
+ & Cannot Be Combined
+
+
+
+ No action is taken upon errors. The method absorbs the error and continues.
+
+
+
+
+ If any files have completed successfully (or failed after a partial download/upload) then should be deleted.
+ This will simulate an all-or-nothing transaction downloading or uploading multiple files. If this option is not
+ combined with or then the method will
+ continue to process all items whether if they are successful or not and then delete everything if a failure was
+ encountered at any point.
+
+
+
+
+ The method should stop processing any additional files and immediately return upon encountering an error.
+ Cannot be combined with
+
+
+
+
+ The method should stop processing any additional files and immediately throw the current error.
+ Cannot be combined with
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ No verification of the file is performed
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then we retry the download/upload
+ a specified amount of times before giving up. (See )
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the failed file will be deleted.
+ If combined with , then
+ the deletion will occur if it fails upon the final retry.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then an exception will be thrown.
+ If combined with , then the throw will
+ occur upon the failure of the final retry, and/or if combined with
+ the method will throw after the deletion is processed.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the method returns false and no other action is taken.
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ The date is whatever the server returns, with no conversion performed.
+
+
+
+
+ The date is converted to the local timezone, based on the TimeOffset property in FtpClient.
+
+
+
+
+ The date is converted to UTC, based on the TimeOffset property in FtpClient.
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+ The control connection that triggered the event
+ Event args
+
+
+
+ Event fired if a bad SSL certificate is encountered. This even is used internally; if you
+ don't have a specific reason for using it you are probably looking for FtpSslValidation.
+
+
+
+
+
+
+ Event args for the FtpSslValidationError delegate
+
+
+
+
+ The certificate to be validated
+
+
+
+
+ The certificate chain
+
+
+
+
+ Validation errors, if any.
+
+
+
+
+ Gets or sets a value indicating if this certificate should be accepted. The default
+ value is false. If the certificate is not accepted, an AuthenticationException will
+ be thrown.
+
+
+
+
+ FTP related error
+
+
+
+
+ Initializes a new instance of the class.
+
+ The error message
+
+
+
+ Initializes a new instance of the class with an inner exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Exception triggered on command failures
+
+
+
+
+ Gets the completion code associated with the response
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ Status code
+ Associated message
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ The FtpReply to build the exception from
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Exception is thrown when encryption could not be negotiated by the server
+
+
+
+
+ Default constructor
+
+
+
+
+ Custom error message
+
+ Error message
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Represents a computed hash of an object
+ on the FTP server. See the following link
+ for more information:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Gets the algorithm that was used to compute the hash
+
+
+
+
+ Gets the computed hash returned by the server
+
+
+
+
+ Gets a value indicating if this object represents a
+ valid hash response from the server.
+
+
+
+
+ Computes the hash for the specified file and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The file to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Computes the hash for the specified stream and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The stream to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Creates an empty instance.
+
+
+
+
+ Represents a file system object on the server
+
+
+
+
+
+ Blank constructor; Fill args manually.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Constructor with mandatory args filled.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Gets the type of file system object.
+
+
+
+
+ Gets the full path name to the object.
+
+
+
+
+ Gets the name of the object.
+
+
+
+
+ Gets the target a symbolic link points to.
+
+
+
+
+ Gets the number of links pointing to this file. Only supplied by Unix servers.
+
+
+
+
+ Gets the object that the LinkTarget points to. This property is null unless you pass the
+ flag in which case GetListing() will try to resolve
+ the target itself.
+
+
+
+
+ Gets the last write time of the object.
+
+
+
+
+ Gets the created date of the object.
+
+
+
+
+ Gets the size of the object.
+
+
+
+
+ Gets special UNIX permissions such as Sticky, SUID and SGID.
+
+
+
+
+ Gets the owner permissions.
+
+
+
+
+ Gets the group permissions.
+
+
+
+
+ Gets the others permissions.
+
+
+
+
+ Gets the raw string received for the file permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the file permissions in the CHMOD format.
+
+
+
+
+ Gets the raw string received for the file's GROUP permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the raw string received for the file's OWNER permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the input string that was parsed to generate the
+ values in this object.
+
+
+
+
+ Returns a string representation of this object and its properties
+
+ A string representing this object
+
+
+
+ Parses a line from a file listing using the first successful parser, or the specified parser.
+ Returns an FtpListItem object representing the parsed line, or null if the line was unable to be parsed.
+
+
+
+
+ the FTP connection that owns this parser
+
+
+
+
+ which server type? (SYST)
+
+
+
+
+ current parser, or parser set by user
+
+
+
+
+ parser calculated based on system type (SYST command)
+
+
+
+
+ if we have detected that the current parser is valid
+
+
+
+
+ which culture to read filenames with?
+
+
+
+
+ what is the time offset between server/client?
+
+
+
+
+ any time offset between server/client?
+
+
+
+
+ VMS ONLY : the blocksize used to calculate the file
+
+
+
+
+ Is the version number returned as part of the filename?
+
+ Some VMS FTP servers do not permit a file to be deleted unless
+ the filename includes the version number. Note that directories are
+ never returned with the version number.
+
+
+
+
+ Initializes a new instance of the class.
+
+ An existing object
+
+
+
+ Try to auto-detect which parser is suitable given a system string.
+
+ result of SYST command
+
+
+
+ Parse raw file list from server into file objects, using the currently active parser.
+
+
+
+
+ Parse raw file from server into a file object, using the currently active parser.
+
+
+
+
+ Validate if the current parser is correct, or if another parser seems more appropriate.
+
+
+
+
+ Validate if the current parser is correct
+
+
+
+
+ Parses a line from a file listing using the first successful match in the Parsers collection.
+
+ The source path of the file listing
+ A line from the file listing
+ Server capabilities
+ A FtpListItem object representing the parsed line, null if the line was
+ unable to be parsed. If you have encountered an unsupported list type add a parser
+ to the public static Parsers collection of FtpListItem.
+
+
+
+ Used for synchronizing access to the Parsers collection
+
+
+
+
+ Initializes the default list of parsers
+
+
+
+
+ Collection of parsers. Each parser object contains
+ a regex string that uses named groups, i.e., (?<group_name>foobar).
+ The support group names are modify for last write time, size for the
+ size and name for the name of the file system object. Each group name is
+ optional, if they are present then those values are retrieved from a
+ successful match. In addition, each parser contains a Type property
+ which gets set in the FtpListItem object to distinguish between different
+ types of objects.
+
+
+
+
+ Adds a custom parser
+
+ The parser delegate to add
+
+
+
+
+ Removes all parser delegates
+
+
+
+
+ Removes the specified parser
+
+ The parser delegate to remove
+
+
+
+ Parses LIST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS DOS format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Ftp listing line parser
+
+ The line from the listing
+ The server capabilities
+ FtpListItem if the line can be parsed, null otherwise
+
+
+
+ Parses MLSD/MLST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings with alternate parser
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS/DOS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Vax/VMS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses NonStop format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IBM OS/400 format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Split into fields by splitting on strings
+
+
+
+ Fix the date string to make the month camel case
+ array of fields
+
+
+
+ Represents a reply to an event on the server
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ The status code of the response
+
+
+
+
+ The message, if any, that the server sent with the response
+
+
+
+
+ Informational messages sent from the server
+
+
+
+
+ General success or failure of the last command executed
+
+
+
+
+ Gets the error message including any informational output
+ that was sent by the server. Sometimes the final response
+ line doesn't contain anything informative as to what was going
+ on with the server. Instead it may send information messages so
+ in an effort to give as meaningful as a response as possible
+ the informational messages will be included in the error.
+
+
+
+
+ Used for transaction logging and debug information.
+
+
+
+
+ Should the trace listeners be flushed immediately after writing to them?
+
+
+
+
+ Should the log entries be written with a prefix of "FluentFTP"?
+ Useful if you have a single TraceListener shared across multiple libraries.
+
+
+
+
+ Add a TraceListner to the collection. You can use one of the predefined
+ TraceListeners in the System.Diagnostics namespace, such as ConsoleTraceListener
+ for logging to the console, or you can write your own deriving from
+ System.Diagnostics.TraceListener.
+
+ The TraceListener to add to the collection
+
+
+
+ Remove the specified TraceListener from the collection
+
+ The TraceListener to remove from the collection.
+
+
+
+ Should the function calls be logged in Verbose mode?
+
+
+
+
+ Should the FTP server IP addresses be included in the logs?
+
+
+
+
+ Should the FTP usernames be included in the logs?
+
+
+
+
+ Should the FTP passwords be included in the logs?
+
+
+
+
+ Should we trace at all?
+
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, adding an automatic prefix to the message based on the `eventType`
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, for the purpose of logging a API function call
+
+ The name of the API function
+ The args passed to the function
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ A formattable string to write
+
+
+ A FTP client with a HTTP 1.1 proxy implementation.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+ Host name
+ Port number
+ IP version to use
+
+
+
+ Abstraction of an FtpClient with a proxy
+
+
+
+ The proxy connection info.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine connect for FtpClient : authentication on the Proxy
+ The socket stream.
+
+
+ A FTP client with a user@host proxy identification.
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+
+ A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers.
+
+ The 'blue coat variant' forces the client to wait for a 220 FTP response code in
+ the handshake phase.
+
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+ POCO holding proxy information
+
+
+ Proxy host name
+
+
+ Proxy port
+
+
+ Proxy login credentials
+
+
+
+ Base class for data stream connections
+
+
+
+
+ Gets the status of the command that was used to open
+ this data channel
+
+
+
+
+ Gets or sets the control connection for this data stream. Setting
+ the control connection causes the object to be cloned and a new
+ connection is made to the server to carry out the task. This ensures
+ that multiple streams can be opened simultaneously.
+
+
+
+
+ Gets or sets the length of the stream. Only valid for file transfers
+ and only valid on servers that support the Size command.
+
+
+
+
+ Gets or sets the position of the stream
+
+
+
+
+ Reads data off the stream
+
+ The buffer to read into
+ Where to start in the buffer
+ Number of bytes to read
+ The number of bytes read
+
+
+
+ Reads data off the stream asynchronously
+
+ The buffer to read into
+ Where to start in the buffer
+ Number of bytes to read
+ The cancellation token for this task
+ The number of bytes read
+
+
+
+ Writes data to the stream
+
+ The buffer to write to the stream
+ Where to start in the buffer
+ The number of bytes to write to the buffer
+
+
+
+ Writes data to the stream asynchronously
+
+ The buffer to write to the stream
+ Where to start in the buffer
+ The number of bytes to write to the buffer
+ The for this task
+
+
+
+ Sets the length of this stream
+
+ Value to apply to the Length property
+
+
+
+ Sets the position of the stream. Intended to be used
+ internally by FtpControlConnection.
+
+ The position
+
+
+
+ Closes the connection and reads the server's reply
+
+
+
+
+ Creates a new data stream object
+
+ The control connection to be used for carrying out this operation
+
+
+
+ Finalizer
+
+
+
+
+ Stream class used for talking. Used by FtpClient, extended by FtpDataStream
+
+
+
+
+ Used for tacking read/write activity on the socket
+ to determine if Poll() should be used to test for
+ socket connectivity. The socket in this class will
+ not know it has been disconnected if the remote host
+ closes the connection first. Using Poll() avoids
+ the exception that would be thrown when trying to
+ read or write to the disconnected socket.
+
+
+
+
+ The socket used for talking
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling Poll() on the socket to test for
+ connectivity. Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Poll()'ing all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets the number of available bytes on the socket, 0 if the
+ socket has not been initialized. This property is used internally
+ by FtpClient in an effort to detect disconnections and gracefully
+ reconnect the control connection.
+
+
+
+
+ Gets a value indicating if this socket stream is connected
+
+
+
+
+ Gets a value indicating if encryption is being used
+
+
+
+
+ The non-encrypted stream
+
+
+
+
+ The encrypted stream
+
+
+
+
+ Gets the underlying stream, could be a NetworkStream or SslStream
+
+
+
+
+ Gets a value indicating if this stream can be read
+
+
+
+
+ Gets a value indicating if this stream if seekable
+
+
+
+
+ Gets a value indicating if this stream can be written to
+
+
+
+
+ Gets the length of the stream
+
+
+
+
+ Gets the current position of the stream. Trying to
+ set this property throws an InvalidOperationException()
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+
+
+
+ Gets or sets the amount of time to wait for a read operation to complete. Default
+ value is Timeout.Infinite.
+
+
+
+
+ Gets or sets the length of time milliseconds to wait
+ for a connection succeed before giving up. The default
+ is 30000 (30 seconds).
+
+
+
+
+ Gets the local end point of the socket
+
+
+
+
+ Gets the remote end point of the socket
+
+
+
+
+ Fires the SSL certificate validation event
+
+ Certificate being validated
+ Certificate chain
+ Policy errors if any
+ True if it was accepted, false otherwise
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+ Ignored
+
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+
+
+
+ Flushes the stream
+
+
+
+
+ Flushes the stream asynchronously
+
+ The for this task
+
+
+
+ Bypass the stream and read directly off the socket.
+
+ The buffer to read into
+ The number of bytes read
+
+
+
+ Bypass the stream and read directly off the socket.
+
+ The buffer to read into
+ The number of bytes read
+
+
+
+ Reads data from the stream
+
+ Buffer to read into
+ Where in the buffer to start
+ Number of bytes to be read
+ The amount of bytes read from the stream
+
+
+
+ Reads data from the stream
+
+ Buffer to read into
+ Where in the buffer to start
+ Number of bytes to be read
+ The for this task
+ The amount of bytes read from the stream
+
+
+
+ Reads a line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads all line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ The size of the buffer
+ A list of lines from the stream
+
+
+
+ Reads a line from the socket asynchronously
+
+ The type of encoding used to convert from byte[] to string
+ The for this task
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads a line from the socket asynchronously
+
+ The type of encoding used to convert from byte[] to string
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads all line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ The size of the buffer
+ A list of lines from the stream
+
+
+
+ Writes data to the stream
+
+ Buffer to write to stream
+ Where in the buffer to start
+ Number of bytes to be read
+
+
+
+ Writes data to the stream asynchronously
+
+ Buffer to write to stream
+ Where in the buffer to start
+ Number of bytes to be read
+ The for this task
+
+
+
+ Writes a line to the stream using the specified encoding
+
+ Encoding used for writing the line
+ The data to write
+
+
+
+ Writes a line to the stream using the specified encoding asynchronously
+
+ Encoding used for writing the line
+ The data to write
+ The for this task
+
+
+
+ Writes a line to the stream using the specified encoding asynchronously
+
+ Encoding used for writing the line
+ The data to write
+
+
+
+ Disconnects from server
+
+
+
+
+ Sets socket options on the underlying socket
+
+ SocketOptionLevel
+ SocketOptionName
+ SocketOptionValue
+
+
+
+ Connect to the specified host
+
+ The host to connect to
+ The port to connect to
+ Internet Protocol versions to support during the connection phase
+
+
+
+ Connect to the specified host
+
+ The host to connect to
+ The port to connect to
+ Internet Protocol versions to support during the connection phase
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+
+
+
+ Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+ A bitwise parameter for supported encryption protocols.
+ Thrown when authentication fails
+
+
+
+ Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+ A bitwise parameter for supported encryption protocols.
+ Thrown when authentication fails
+
+
+
+ Deactivates SSL on this stream using the specified protocols and reverts back to plain-text FTP.
+
+
+
+
+ Instructs this stream to listen for connections on the specified address and port
+
+ The address to listen on
+ The port to listen on
+
+
+
+ Accepts a connection from a listening socket
+
+
+
+
+ Accepts a connection from a listening socket
+
+
+
+
+ Asynchronously accepts a connection from a listening socket
+
+
+
+
+
+
+
+ Completes a BeginAccept() operation
+
+ IAsyncResult returned from BeginAccept
+
+
+
+ .NET SslStream doesn't close TLS connection properly.
+ It does not send the close_notify alert before closing the connection.
+ FtpSslStream uses unsafe code to do that.
+ This is required when we want to downgrade the connection to plaintext using CCC command.
+ Thanks to Neco @ https://stackoverflow.com/questions/237807/net-sslstream-doesnt-close-tls-connection-properly/22626756#22626756
+
+
+
+
+ Send an SSL close_notify alert.
+
+
+
+
+
+ Extension methods related to FTP tasks
+
+
+
+
+ Converts the specified path into a valid FTP file system path
+
+ The file system path
+ A path formatted for FTP
+
+
+
+ Creates a valid FTP path by appending the specified segments to this string
+
+ This string
+ The path segments to append
+ A valid FTP path
+
+
+
+ Gets the parent directory path (formatted for a FTP server)
+
+ The path
+ The parent directory path
+
+
+
+ Gets the file name and extension from the path
+
+ The full path to the file
+ The file name
+
+
+
+ Tries to convert the string FTP date representation into a object
+
+ The date
+ UTC/Local Time
+ A object representing the date, or if there was a problem
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ This creates a that represents a pair of begin and end methods
+ that conform to the Asynchronous Programming Model pattern. This extends the maximum amount of arguments from
+ to 4 from a 3.
+
+ The type of the first argument passed to the delegate
+ The type of the second argument passed to the delegate
+ The type of the third argument passed to the delegate
+ The type of the forth argument passed to the delegate
+ The type of the result.
+ The used
+ The delegate that begins the asynchronous operation
+ The delegate that ends the asynchronous operation
+ The first argument passed to the delegate
+ The second argument passed to the delegate
+ The third argument passed to the delegate
+ The forth argument passed to the delegate
+ An object containing data to be used by the delegate
+ The created that represents the asynchronous operation
+
+ beginMethod is null
+ or
+ endMethod is null
+
+
+
+
+ Validates that the FtpError flags set are not in an invalid combination.
+
+ The error handling options set
+ True if a valid combination, otherwise false
+
+
+
+ Checks if every character in the string is whitespace, or the string is null.
+
+
+
+
+ Checks if the string is null or 0 length.
+
+
+
+
+ Checks if the array is null or 0 length.
+
+
+
+
+ Checks if the array is null or 0 length.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
diff --git a/bin/Release/Microsoft.DotNet.PlatformAbstractions.dll b/bin/Release/Microsoft.DotNet.PlatformAbstractions.dll
new file mode 100644
index 0000000..b60e8c3
Binary files /dev/null and b/bin/Release/Microsoft.DotNet.PlatformAbstractions.dll differ
diff --git a/bin/Release/Microsoft.Extensions.DependencyModel.dll b/bin/Release/Microsoft.Extensions.DependencyModel.dll
new file mode 100644
index 0000000..68f3631
Binary files /dev/null and b/bin/Release/Microsoft.Extensions.DependencyModel.dll differ
diff --git a/bin/Release/Newtonsoft.Json.dll b/bin/Release/Newtonsoft.Json.dll
new file mode 100644
index 0000000..8069902
Binary files /dev/null and b/bin/Release/Newtonsoft.Json.dll differ
diff --git a/bin/Release/Newtonsoft.Json.xml b/bin/Release/Newtonsoft.Json.xml
new file mode 100644
index 0000000..2ef7a77
--- /dev/null
+++ b/bin/Release/Newtonsoft.Json.xml
@@ -0,0 +1,10912 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false.
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a parameterized constructor.
+
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Creates a custom object.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a F# discriminated union type to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an Entity Framework to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z").
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+ The default value is false.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether integer values are allowed when deserializing.
+ The default value is true.
+
+ true if integers are allowed when deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from Unix epoch time
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements.
+
+ The name of the deserialized root element.
+
+
+
+ Gets or sets a flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attribute is written to the XML; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ true if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that it is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and set members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent an array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, when returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, when returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items.
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between .NET types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the to a JSON string.
+
+ The node to serialize.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false.
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false.
+
+
+
+ Converts an object to and from JSON.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read. If there is no existing value then null will be used.
+ The existing value has a value.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+ Parameter list to use when constructing the . Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false. The default is true.
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false. The default is true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the used when serializing the property's collection items.
+
+ The collection's items .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously skips the children of the current token.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ A read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader is in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the source should be closed when this reader is closed.
+
+
+ true to close the source when this reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false.
+ The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Gets or sets how time zones are handled when reading JSON.
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Gets or sets how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads the next JSON token from the source.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+ A flag indicating whether the position index inside an array should be updated.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the source is also closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and to require that the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+ The default value is .
+
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) are handled.
+ The default value is .
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+ Null value handling.
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The containing the JSON data to read.
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many s to write for each level in the hierarchy when is set to .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Initializes a new instance of the class using the specified .
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a read method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+
+ Represents a reader that provides validation.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Sets an event handler for receiving schema validation errors.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+
+ Initializes a new instance of the class that
+ validates the content returned from the given .
+
+ The to read from while validating.
+
+
+
+ Gets or sets the schema.
+
+ The schema.
+
+
+
+ Gets the used to construct this .
+
+ The specified in the constructor.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+
+ A [] or null if the next JSON token is null.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously ets the state of the .
+
+ The being written.
+ The value being written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Gets or sets a value indicating whether the destination should be closed when this writer is closed.
+
+
+ true to close the destination when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed.
+
+
+ true to auto-complete the JSON when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Gets or sets a value indicating how JSON text output should be formatted.
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+
+
+
+
+ Gets or sets how time zones are handled when writing JSON text.
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the destination and also flushes the destination.
+
+
+
+
+ Closes this writer.
+ If is set to true, the destination is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the .
+
+ The being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while writing JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A of that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+
+
+
+ Removes all items from the .
+
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the list changes or an item in the list changes.
+
+
+
+
+ Occurs before an item is added to the collection.
+
+
+
+
+ Occurs when the items list of the collection has changed, or the collection is reset.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An of containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An of containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates a that can be used to add tokens to the .
+
+ A that is ready to have content written to it.
+
+
+
+ Replaces the child nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens.
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Occurs when a property value is changing.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of of this object's properties.
+
+ An of of this object's properties.
+
+
+
+ Gets a the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets a of of this object's property values.
+
+ A of of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Determines whether the JSON object has the specified property name.
+
+ Name of the property.
+ true if the JSON object has the specified property name; otherwise, false.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries to get the with the specified property name.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a view of a .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ When overridden in a derived class, returns whether resetting an object changes its value.
+
+
+ true if resetting the component changes its value; otherwise, false.
+
+ The component to test for reset capability.
+
+
+
+ When overridden in a derived class, gets the current value of the property on a component.
+
+
+ The value of a property for a given component.
+
+ The component with the property for which to retrieve the value.
+
+
+
+ When overridden in a derived class, resets the value for this property of the component to the default value.
+
+ The component with the property value that is to be reset to the default value.
+
+
+
+ When overridden in a derived class, sets the value of the component to a different value.
+
+ The component with the property value that is to be set.
+ The new value.
+
+
+
+ When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted.
+
+
+ true if the property should be persisted; otherwise, false.
+
+ The component with the property to be examined for persistence.
+
+
+
+ When overridden in a derived class, gets the type of the component this property is bound to.
+
+
+ A that represents the type of component this property is bound to.
+ When the or
+
+ methods are invoked, the object specified might be an instance of this type.
+
+
+
+
+ When overridden in a derived class, gets a value indicating whether this property is read-only.
+
+
+ true if the property is read-only; otherwise, false.
+
+
+
+
+ When overridden in a derived class, gets the type of the property.
+
+
+ A that represents the type of the property.
+
+
+
+
+ Gets the hash code for the name of the member.
+
+
+
+ The hash code for the name of the member.
+
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Asynchronously creates an instance of with the content of the reader's current token.
+
+ The reader.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns an instance of with the content of the reader's current token.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+
+ The JSON line info handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output should be formatted.
+ A collection of s which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates a for this token.
+
+ A that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object.
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An of that contains the selected elements.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being written.
+
+ The token being written.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the JSON is auto-completed.
+
+
+ Setting to true has no additional effect, since the underlying is a type that cannot be closed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will be raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of s which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not of the same type as this instance.
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement .
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+
+ Contains the JSON schema extension methods.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ When this method returns, contains any error messages generated while validating.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ The validation event handler.
+
+
+
+
+ An in-memory representation of a JSON Schema.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the id.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ Gets or sets whether the object is required.
+
+
+
+
+ Gets or sets whether the object is read-only.
+
+
+
+
+ Gets or sets whether the object is visible to users.
+
+
+
+
+ Gets or sets whether the object is transient.
+
+
+
+
+ Gets or sets the description of the object.
+
+
+
+
+ Gets or sets the types of values allowed by the object.
+
+ The type.
+
+
+
+ Gets or sets the pattern.
+
+ The pattern.
+
+
+
+ Gets or sets the minimum length.
+
+ The minimum length.
+
+
+
+ Gets or sets the maximum length.
+
+ The maximum length.
+
+
+
+ Gets or sets a number that the value should be divisible by.
+
+ A number that the value should be divisible by.
+
+
+
+ Gets or sets the minimum.
+
+ The minimum.
+
+
+
+ Gets or sets the maximum.
+
+ The maximum.
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+
+
+ Gets or sets the minimum number of items.
+
+ The minimum number of items.
+
+
+
+ Gets or sets the maximum number of items.
+
+ The maximum number of items.
+
+
+
+ Gets or sets the of items.
+
+ The of items.
+
+
+
+ Gets or sets a value indicating whether items in an array are validated using the instance at their array position from .
+
+
+ true if items are validated using their array position; otherwise, false.
+
+
+
+
+ Gets or sets the of additional items.
+
+ The of additional items.
+
+
+
+ Gets or sets a value indicating whether additional items are allowed.
+
+
+ true if additional items are allowed; otherwise, false.
+
+
+
+
+ Gets or sets whether the array items must be unique.
+
+
+
+
+ Gets or sets the of properties.
+
+ The of properties.
+
+
+
+ Gets or sets the of additional properties.
+
+ The of additional properties.
+
+
+
+ Gets or sets the pattern properties.
+
+ The pattern properties.
+
+
+
+ Gets or sets a value indicating whether additional properties are allowed.
+
+
+ true if additional properties are allowed; otherwise, false.
+
+
+
+
+ Gets or sets the required property if this property is present.
+
+ The required property if this property is present.
+
+
+
+ Gets or sets the a collection of valid enum values allowed.
+
+ A collection of valid enum values allowed.
+
+
+
+ Gets or sets disallowed types.
+
+ The disallowed types.
+
+
+
+ Gets or sets the default value.
+
+ The default value.
+
+
+
+ Gets or sets the collection of that this schema extends.
+
+ The collection of that this schema extends.
+
+
+
+ Gets or sets the format.
+
+ The format.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The object representing the JSON Schema.
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The to use when resolving schema references.
+ The object representing the JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema.
+
+ A that contains JSON Schema.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema using the specified .
+
+ A that contains JSON Schema.
+ The resolver.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Writes this schema to a .
+
+ A into which this method will write.
+
+
+
+ Writes this schema to a using the specified .
+
+ A into which this method will write.
+ The resolver used.
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+
+ Returns detailed information about the schema exception.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+
+ Generates a from a specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets how undefined schemas are handled by the serializer.
+
+
+
+
+ Gets or sets the contract resolver.
+
+ The contract resolver.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+
+ Resolves from an id.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the loaded schemas.
+
+ The loaded schemas.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a for the specified reference.
+
+ The id.
+ A for the specified reference.
+
+
+
+
+ The value types allowed by the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ No type specified.
+
+
+
+
+ String type.
+
+
+
+
+ Float type.
+
+
+
+
+ Integer type.
+
+
+
+
+ Boolean type.
+
+
+
+
+ Object type.
+
+
+
+
+ Array type.
+
+
+
+
+ Null type.
+
+
+
+
+ Any type.
+
+
+
+
+
+ Specifies undefined schema Id handling options for the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Do not infer a schema Id.
+
+
+
+
+ Use the .NET type name as the schema Id.
+
+
+
+
+ Use the assembly qualified .NET type name as the schema Id.
+
+
+
+
+
+ Returns detailed information related to the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the associated with the validation error.
+
+ The JsonSchemaException associated with the validation error.
+
+
+
+ Gets the path of the JSON location where the validation error occurred.
+
+ The path of the JSON location where the validation error occurred.
+
+
+
+ Gets the text description corresponding to the validation error.
+
+ The text description.
+
+
+
+
+ Represents the callback method that will handle JSON schema validation events and the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ A camel case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false.
+
+
+
+
+ Gets or sets the default members search flags.
+
+ The default members search flags.
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types.
+
+
+ true if the interface will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types.
+
+
+ true if the attribute will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types.
+
+
+ true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types.
+
+
+ true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized.
+
+ The naming strategy used to resolve how property names and dictionary keys are serialized.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the name of the extension data. By default no changes are made to extension data names.
+
+ Name of the extension data.
+ Resolved name of the extension data.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default naming strategy. Property names and dictionary keys are unchanged.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer that writes to the application's instances.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that was resolved from the reference.
+
+
+
+ Gets the reference for the specified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false.
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false.
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non-public.
+
+ true if the default object creator is non-public; otherwise, false.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object constructor.
+
+ The object constructor.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Gets or sets the extension data name resolver.
+
+ The extension data name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes precedence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false.
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false.
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the type described by the argument.
+
+ The type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ A base class for resolving how property names and dictionary keys are serialized.
+
+
+
+
+ A flag indicating whether dictionary keys should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether extension data names should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether explicitly specified property names,
+ e.g. a property name customized with a , should be processed.
+ Defaults to false.
+
+
+
+
+ Gets the serialized name for a given property name.
+
+ The initial property name.
+ A flag indicating whether the property has had a name explicitly specified.
+ The serialized property name.
+
+
+
+ Gets the serialized name for a given extension data name.
+
+ The initial extension data name.
+ The serialized extension data name.
+
+
+
+ Gets the serialized key for a given dictionary key.
+
+ The initial dictionary key.
+ The serialized dictionary key.
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ A snake case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+ Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON
+ you must specify a root type object with
+ or .
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false.
+
+
+
+
+ Adds the elements of the specified collection to the specified generic .
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic that returns a result
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Returns a Restrictions object which includes our current restrictions merged
+ with a restriction limiting our type
+
+
+
+
+ Helper class for serializing immutable collections.
+ Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed
+ https://github.com/JamesNK/Newtonsoft.Json/issues/652
+
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the member is an indexed property.
+
+ The member.
+
+ true if the member is an indexed property; otherwise, false.
+
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false.
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false.
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false.
+
+
+
+
+ Builds a string. Unlike this class lets you reuse its internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false.
+
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls result in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ An array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+
diff --git a/bin/Release/SdkApi.Core.dll b/bin/Release/SdkApi.Core.dll
new file mode 100644
index 0000000..05b0e1e
Binary files /dev/null and b/bin/Release/SdkApi.Core.dll differ
diff --git a/bin/Release/SdkApi.Core.xml b/bin/Release/SdkApi.Core.xml
new file mode 100644
index 0000000..7a6f633
--- /dev/null
+++ b/bin/Release/SdkApi.Core.xml
@@ -0,0 +1,8999 @@
+
+
+
+ SdkApi.Core
+
+
+
+
+ Takes in a certificate file (P12, DER, PEM, etc) and processes it into a ZebraCertificateInfo object which contains
+ the selected certificate, Certificate Authority certificate chain, and private key (if applicable).
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Takes in a certificate file (P12, DER, PEM, etc) and processes it into a ZebraCertificateInfo object which contains
+ the selected certificate, Certificate Authority certificate chain, and private key (if applicable).
+
+ Data stream for the certificate file to be processed.
+ The certificate to use within a multi-certificate (like PKCS12) file.
+ Used to unlock a protected certificate file.
+ Instance containing all certificate and key information for the processed file.
+ If there is an issue reading the certificate file.
+ If there is an issue processing the certificate file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Signals that an error occurred while converting a certificate.
+
+
+
+
+ Constructs a ZebraCertificateConversionException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a ZebraCertificateConversionException with message as the detailed error
+ message and cause as the underlying exception.
+
+ User defined message for the exception.
+ What created the exception.
+
+
+
+ Handler class for managing certificate and private key information.
+
+
+
+
+ The file name on a printer to which a private key must be saved for wireless security.
+
+
+
+
+ The file name on a printer to which a wireless ca must be saved for wireless security.
+
+
+
+
+ The file name on a printer to which a client cert must be saved for wireless security.
+
+
+
+
+ Initializes a new instance of the ZebraCertificateInfo class.
+
+
+
+
+ Returns the CA Certificate chain.
+
+ CA Certificate chain in PEM format.
+
+
+
+ Contains the client certificate, if set.
+
+
+
+
+ Contains the Certificate Authority certificate chain, if set.
+
+
+
+
+ Contains the private key, if set.
+
+
+
+
+ A utility class used to extract info from certificate files and convert the contents into Zebra friendly formats.
+
+
+
+
+
+ Creates a wrapper that opens up the provided certificate keystore stream.
+
+ The stream containing certificate keystore file contents.
+ The password used to access the certificate file.
+ Thrown if the certificate stream contents cannot be accessed or if the
+ certificate password was incorrect.
+
+
+
+ Get a list of aliases present in the certificate keystore.
+
+ A list of the aliases present in the certificate keystore.
+ If the keystore has not been initialized (loaded).
+
+
+
+ Get the content of the first entry in the certificate's certificate chain.
+
+ The returned content is converted to PEM format. The resulting content can be stored to a printer for use
+ with wireless security. Since no alias is provided, the first entry in the certificate file will be used.
+ The Zebra-friendly certificate content
+ If the provided alias does not exist or the certificate content is corrupt
+
+
+
+ Get the content of the first entry in the certificate's certificate chain.
+
+ The returned content is converted to PEM format. The resulting content can be stored to a printer for use
+ with wireless security.
+ The alias name of the specific entry to extract from the certificate file.
+ The Zebra-friendly certificate content.
+ If the provided alias does not exist or the certificate content is corrupt
+
+
+
+ Get the content of the ca, which is determined to be all entries in the certificate chain after the first entry.
+
+ The returned ca is converted to PEM format. The resulting content can be stored to a printer for use with
+ wireless security. Since no alias is provided, the first entry in the certificate file will be used.
+ The Zebra-friendly ca content.
+ If the provided alias does not exist or the ca content is corrupt.
+
+
+
+ Get the content of the ca, which is determined to be all entries in the certificate chain after the first entry.
+
+ The returned ca is converted to PEM format. The resulting content can be stored to a printer for use with
+ wireless security.
+ The alias name of the specific entry to extract from the certificate file.
+ The Zebra-friendly ca content.
+ If the provided alias does not exist or the ca content is corrupt.
+
+
+
+ Get the encrypted private key content.
+
+ The returned key is encrypted and converted to PEM format. The resulting content can be stored
+ to a printer for use with wireless security.Since no alias is provided, the first entry in the certificate
+ file will be used. Note: Any printer using the generated private key must also be configured to use the
+ password provided here to encrypt the private key.Send the following command to the printer to configure
+ it to use a private key encryption password: ! U1 setvar "wlan.private_key_password" "value".
+ The password used to encrypt the resulting private key.
+ The encrypted private key in PEM format.
+ If the provided alias does not exist, certificate password is
+ incorrect, or private key content is corrupt.
+
+
+
+ Get the encrypted private key content.
+
+ The resulting content can be stored to a printer for use with wireless security.
+ Note: Any printer using the generated private key must also be configured to use the provided password to
+ encrypt the private key. Send the following command to the printer to configure it to use a private key
+ encryption password: ! U1 setvar "wlan.private_key_password" "value".
+ The alias name of the specific entry to extract from the certificate file.
+ The password used to encrypt the resulting private key.
+ The encrypted private key in PEM format.
+ If the provided alias does not exist, certificate password is
+ incorrect, or private key content is corrupt.
+
+
+
+ Get the common name of the client certificate associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The certificate common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the client certificate associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The certificate common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the CA associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The CA common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the CA associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file
+ The CA common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the expiration data of the client certificate associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The client certificate expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the client certificate associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The client certificate expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the CA associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The CA expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the CA associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The CA expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the algorithm used by the private key.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The private key algorithm.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the algorithm used by the private key.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The private key algorithm.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the issuer of the client certificate.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The client certificate issuer.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the issuer of the client certificate.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The client certificate issuer.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Gets the keystore of the processed client certificate.
+
+ The Pkcs12Store containing information about the processed certificate file.
+
+
+
+ A connection to a device.
+
+
+
+
+ Opens the connection to a device.
+
+
+ If the open method is called when this connection has already been
+ opened, this call is ignored. When a handle to the connection is no longer needed, you must call
+ to free up system resources.
+
+ If the connection cannot be established.
+
+
+
+ Closes this connection and releases any system resources associated with the connection.
+
+ If the connection is already closed then invoking this method has no effect.
+ If an I/O error occurs.
+
+
+
+ Writes data.Length bytes from the specified byte array to this output stream.
+
+
+ The connection must be open before this method is called. If write is called when a connection is closed, a
+ ConnectionException is thrown.
+
+ Data to write
+ If an I/O error occurs.
+
+
+
+ Writes length bytes from data starting at offset.
+
+
+ The connection must be open before this method is called. If Write is called when a
+ connection is closed, a ConnectionException is thrown.
+
+ The data.
+ The start offset in the data.
+ The number of bytes to write.
+ if an I/O error occurs.
+
+
+
+ Writes all available bytes from the data source to this output stream.
+
+
+ The connection must be open before this method is called. If write is called when a connection is closed,
+ a ConnectionException is thrown.
+
+ The data.
+ If an I/O error occurs.
+
+
+
+ Reads all the available data from the connection. This call is non-blocking.
+
+ Data read from the connection.
+ If an I/O error occurs.
+
+
+
+ Reads the next byte of data from the connection.
+
+
+ The value byte is returned as an int in the range of 0 to 255. If no byte is available on the
+ connection the value -1 is returned.
+
+ The next byte from the connection.
+ If an I/O error occurs.
+
+
+
+ Reads all the available data from the connection.
+
+ This call is non-blocking.
+ For read data.
+ If an I/O error occurs.
+
+
+
+ Returns true if the connection is open.
+
+
+
+
+ Returns an estimate of the number of bytes that can be read from this connection without blocking.
+
+ The estimated number of bytes available.
+ If an I/O error occurs.
+
+
+
+ See the classes which implement this method for the format of the description string.
+
+ The connection description string.
+
+
+
+ Gets a human-readable description of the connection.
+
+
+
+
+ Causes the currently executing thread to sleep until > 0, or for a maximum of
+ maxTimeout milliseconds.
+
+ The maximum time in milliseconds to wait for an initial response from the printer.
+ If an I/O error occurs.
+
+
+
+ Gets or sets the maximum time, in milliseconds, to wait for any data to be received.
+
+
+
+
+ Gets or sets the maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+
+ Sends dataToSend and returns the response data.
+
+
+ The software returns immediately if the data received contains terminator. The connection must be open before this method
+ is called. If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Byte array of data to send
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function returns a zero length array.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response contains this string, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response is always terminated with a known string. Use null
+ if no terminator is desired.
+ The received data.
+ If an I/O error occurs.
+
+
+
+ Sends data from sourceStream and writes the response data to destinationStream.
+
+
+ The software returns immediately if the data received contains terminator. The connection must be open before this method
+ is called. If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Destination for response.
+ Source of data to be sent.
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function does not write any data to the destination stream.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response contains this string, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response is always terminated with a known string. Use null
+ if no terminator is desired.
+ If an I/O error occurs.
+
+
+
+ Sends dataToSend and returns the response data.
+
+
+ The software returns immediately if the data received satisfies validator. The connection must be open before this method is called.
+ If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Byte array of data to send
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function returns a zero length array.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response satisfies this validator, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response follows a known format.
+ received data
+ If an I/O error occurs.
+
+
+
+ Sends data from sourceStream and writes the response data to destinationStream.
+
+
+ The software returns immediately if the data received satisfies validator. The connection must be open before this method is called.
+ If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Destination for response.
+ Source of data to be sent.
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function does not write any data to the destination stream.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response satisfies this validator, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response follows a known format.If validator is null, no validation is performed.
+ When performing validation, this method will use enough memory to hold the entire response.
+ If an I/O error occurs.
+
+
+
+ Returns a ConnectionReestablisher which allows for easy recreation of a connection which may have been closed.
+
+ This call should be made while there is still an active connection to the printer (prior to issuing a command which will make the printer non-responsive).
+ How long the Connection reestablisher will wait before attempting to reconnection to the printer.
+ Instance of
+ If the ConnectionReestablisher could not be created.
+
+
+
+ Abstract class which implements the default functionality of Connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ This call is non-blocking.
+ number of bytes to read
+ the bytes read from the connection
+ if an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sets the stream to log the write data to.
+
+ The stream to log the data to.
+
+
+
+ Log data sent to printer by sending to the WriteLogStream, if present
+
+ The data written to connection, send to log stream
+ The start offset in the buffer.
+ The number of bytes to write
+
+
+
+
+ Gets or sets the maximum number of bytes to write at one time
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ number of bytes to read
+ true to exit on first data read
+ the bytes read from the connection.
+ if an I/O error occurs.
+
+
+
+ See the classes which implement this property for the format of the printer manufacturer string.
+
+
+
+
+
+
+
+
+
+
+ Sets the underlying read timeout value.
+
+ The read timeout in milliseconds.
+ If an error occurs while attempting to set the read timeout.
+
+
+
+ For printers that support both Status and Printing channel (Link OS printers).
+
+
+
+
+ The status channel of a connection.
+
+
+
+
+ The printing channel of a connection.
+
+
+
+
+ Signals that an error has occurred on the connection.
+
+
+
+
+ onstructs a ConnectionException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a ConnectionException with cause as the source of the exception.
+
+ The cause of the exception.
+
+
+
+ Constructs a ConnectionException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception.
+
+
+
+ Defines methods used to reestablish a connection to a printer which may have been closed.
+
+
+
+
+ Reestablishes a connection to a printer which may have been closed due to an event, like a reboot.
+
+ Handles recreating and opening a connection to a printe.r
+ If the printer cannot be found.
+ If the connection can not be created or open.
+ If a connection can not be reestablished after a defined timeout
+ If the connection can not talk to the printer.
+
+
+
+ Abstract class which implements the default functionality of StatusConnection.
+
+
+
+
+
+
+
+
+ A connection to a device that copies data sent to the connection to the provided stream.
+
+
+
+
+ Sets the stream to log the write data to.
+
+ Log all write data to this stream.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ Number of bytes to read.
+ True to return on first read.
+ The bytes read from the printer.
+ If an I/O error occurs.
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ Number of bytes to read.
+ The bytes read from the printer.
+ If an I/O error occurs
+
+
+
+ Gets or sets the maximum number of bytes to write at one time.
+
+
+
+
+ Returns the printer manufacturer name.
+
+
+
+
+ Sets the underlying read timeout value.
+
+ The timeout in milliseconds.
+ If an I/O error occurs
+
+
+
+ A wrapper class containing information about a connection.
+
+
+
+
+
+
+ The connection string
+
+
+
+
+
+ The data of the connection info
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Writes a byte stream representation of the file to destination.
+
+
+ Currently all files are retrieved in binary mode.
+
+ Stream to receive the contents of the file.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+ the error message
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UnknownHostException
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sets the sockets read/block timeout.
+
+ Timeout in ms
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An interface defining methods associated with a device that may be addressed via an IP connection.
+
+
+
+
+ Returns the address which was passed into the constructor.
+
+ the address used to establish this connection. This can be either a DNS Hostname or an IP address.
+
+
+
+ Returns the port number which was passed into the constructor.
+
+ the port number associated with the connection.
+
+
+
+ Signals that an error has occurred while writing to the connections log stream.
+
+
+
+
+ Constructs a LogStreamException with message as the detailed error message.
+
+ the error message.
+
+
+
+ Base class for Link-OS printers which support separate printing and status channels.
+
+
+ This class conforms to a standard and if only the Connection methods are used, the SDK will attempt to open
+ both the printing and status channels. A will use the raw Connection when a method is called directly.
+ Furthermore, when using a in conjunction with a , the will
+ attempt to use whichever connection is the most efficient. If you wish to only open up a specific channel, use either the
+ or
+ method and their corresponding
+ and
+ method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Opens both the printing and status channel of this Multichannel connection.
+
+
+ If neither channel can be opened, then a is thrown. When this Multichannel connection is no longer needed, you must
+ call to free up system resources.
+
+
+
+
+
+ Opens the printing channel of this Multichannel connection.
+
+
+ If this method is called when this channel has already been opened, the call is ignored. When this channel is no longer needed, you must call either
+ or to free up system resources.
+
+ if the connection cannot be established.
+
+
+
+ Opens the status channel of this Multichannel connection.
+
+
+ If this method is called when this channel has already been opened, the call is ignored. When this channel is no longer needed, you must call either
+ or to free up system resources.
+
+ if the connection cannot be established.
+
+
+
+ Closes both the printing and status channels of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+
+
+
+
+ Closes the printing channel of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+ if an I/O error occurs.
+
+
+
+ Closes the status channel of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+ if an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the underlying printing of this MultichannelConnection.
+
+
+
+
+ Gets the underlying status of this MultichannelConnection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes a Multichannel TCP connection to a device.
+
+
+
+
+
+ The default Multichannel printing port for Link-OS devices.
+
+
+
+
+ The default Multichannel status port for Link-OS devices.
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data to be
+ received. If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ or
+
+
+ The discovered printer.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels. The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete. If you wish to specify different timeouts for each channel, use
+
+
+ The discovered printer.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels. The timeout is a maximum of
+ printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds for any data to be received on the printing/status
+ channels respectively.If no more data is available after printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData
+ milliseconds on the printing/status channels respectively the read operation is assumed to be complete.
+
+ The discovered printer.
+ The maximum time, in milliseconds, to wait for any data to be received on the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the status channel.
+ If discoveredPrinter is not a valid Link-OS printer.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any
+ data to be received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ or
+
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels. The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received.If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete. If you wish to specify different timeouts for each channel, use
+
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels. The timeout is a maximum of
+ printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds for any data to be received on the printing/status
+ channels respectively.If no more data is available after printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData
+ milliseconds on the printing/status channels respectively the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+ The maximum time, in milliseconds, to wait for any data to be received on the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the status channel.
+
+
+
+
+
+
+
+
+
+
+ The Address, PrintingPort, and StatusPort are the parameters which were passed into the constructor.
+
+ TCP_MULTI:[Address]:[PrintingPort]:[StatusPort]
+
+
+
+ Return the IP address as the description.
+
+
+
+
+
+ An interface defining a method to validate whether a response from the printer is complete.
+
+
+
+
+ Provide a method to determine whether a response from the printer is a complete response.
+
+ string to be validated
+ true if the string is a complete response
+
+
+
+ A status connection to a Link-OS printer. The status connection requires Link-OS firmware 2.5 or higher. This
+ connection will not block the printing channel, nor can it print.
+
+
+
+
+ A status connection to a Link-OS printer. The status connection requires Link-OS firmware 2.5 or higher. This
+ connection will not block the printing channel, nor can it print.It copies data sent to the connection to the
+ provided stream.
+
+
+
+
+ Sets the stream to log the write data to.
+
+ Log all write data to this stream.
+
+
+
+ Establishes a TCP connection to a device.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ The default TCP port for ZPL devices.
+
+
+
+
+ The default TCP port for CPCL devices.
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the TcpConnection class.
+
+
+ This constructor will use the default
+ timeouts for . The default timeout is a maximum of 5 seconds for any data to be
+ received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ .
+
+ the IP Address or DNS Hostname.
+ the port number.
+
+
+
+ Initializes a new instance of the TcpConnection class.
+
+
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after
+ timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Exposed this protected constructor for testing. We can pass in a mock Connector rather than the specific one
+
+
+
+
+ Returns TCP:[Address]:[PortNumber].
+
+ The address and port number are the parameters which were passed into the constructor.
+
+
+
+
+ Gets the IP address as the description.
+
+
+
+
+
+
+
+
+
+
+
+ Sets the read timeout on the underlying socket.
+
+ The read timeout in milliseconds
+
+
+
+
+
+
+
+
+
+ Establishes a status only TCP connection to a device
+
+
+
+
+
+ The default Status TCP port for ZPL devices.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class using the default status port of 9200.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data to be received.
+ If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The IP Address or DNS Hostname.
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data
+ to be received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The IP Address or DNS Hostname.
+ The port number.
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class.
+
+
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ The address and port number are the parameters which were passed into the constructor.
+
+ TCP_STATUS:[address]:[port number]
+
+
+
+ Returns the IP address and the status port as the description.
+
+
+
+
+
+ An interface used to control and obtain various properties of a device.
+
+
+
+
+ This is an utility class for performing file operations on a device.
+
+
+
+
+
+ Sends the contents of a file to the device.
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.lbl").
+ Note: If the file contains data which will trigger a response from the printer (e.g. JSON formatted settings), this method
+ will not clear the response from the buffer. This may cause subsequent method calls to fail unpredictably. Clear the read buffer
+ of the connection manually by calling Read() if this is applicable.
+ If there is an issue communicating with the device (e.g. the connection is not
+ open).
+
+
+
+ Sends the contents of a file to the device.
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.lbl").
+ Callback to update on progress
+ Note: If the file contains data which will trigger a response from the printer (e.g. JSON formatted settings), this method
+ will not clear the response from the buffer. This may cause subsequent method calls to fail unpredictably. Clear the read buffer
+ of the connection manually by calling Read() if this is applicable.
+ If there is an issue communicating with the device (e.g. the connection is not
+ open).
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+ List of file names.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+ This method only returns files which have one of the extensions in extensions.
+ The extensions to filter on.
+ List of file names.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Retrieves the properties of the objects which are stored on the device.
+
+ The list of objects with their properties.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Utility class for performing file operations on a Zebra Link-OS™ printer.
+
+
+
+
+ Retrieves storage information for all of the printer's available drives.
+
+ A list of objects detailing information about the printer's available drives.
+
+
+
+
+ Stores the file on the printer using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead. These commands include download commands and any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ If there is an error connecting to the device.
+ If there is an issue reading the file
+ If filePath cannot be used to create a printer file name.
+
+
+
+ Stores the file on the printer at the specified location and name using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead. These commands include download commands and any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+ If there is an issue reading the file
+ If fileNameOnPrinter is not a legal printer file name.
+
+
+
+ Stores a file on the printer named fileNameOnPrinter with the file contents from
+ fileContents using any required file wrappers.
+
+
+ If the fileContents contains any commands which need to be processed by the printer,
+ use instead. These commands include download commands and any immediate
+ commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF, ~JG, ~JI,
+ ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The contents of the file to store.
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+ If fileNameOnPrinter is not a legal printer file name.
+
+
+
+ Deletes the file from the printer. The filePath may also contain wildcards.
+
+ The location of the file on the printer. Wildcards are also accepted (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error connecting to the device.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ The file contents
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system and writes the contents of that file to destinationStream.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ Output stream to receive the file contents
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system via FTP and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+ NOTE: This method retrieves files over a network protocol and hence will only work over a TCP connected
+ printer with FTP enabled. If ftpPassword is not provided, a default will be tried.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ The password used to login to FTP, if null, a default password ("1234") will be used.
+ The file contents.
+ If there is an error communicating with the printer, or the ftpPassword is invalid
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system via FTP and writes the contents of that file to destinationStream.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+ NOTE: This method retrieves files over a network protocol and hence will only work over a TCP connected
+ printer with FTP enabled. If ftpPassword is not provided, a default will be tried.
+
+ The output stream to receive the file contents
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ The password used to login to FTP, if null, a default password ("1234") will be used.
+ If there is an error communicating with the printer, or the ftpPassword is invalid
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte array including
+ all necessary file wrappers for redownloading to a Zebra printer.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ A Zebra printer downloadable file content.
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ A class used to assemble a profile efficiently.
+
+
+
+
+ Prepares the destination stream to receive the profile data.
+
+
+ This method must be called prior to calling any other method in this class.
+
+ The stream in which to put the profile.
+ must be called to get a valid profile in the destinationStream.
+
+
+
+
+ Method to add settings data to a profile.
+
+
+ The profile expects settings data to be valid JSON and of the form of the allconfig response.
+
+ The stream containing the settings data.
+ If there is an error adding settings to the profile.
+
+
+
+ Method to add alerts to a profile.
+
+ The stream containing the alerts data.
+ If there is an error adding alerts to the profile.
+
+
+
+ Adds data to supplement an existing printer profile.
+
+
+ Any supplemental data added to a profile, upon loading the profile, will be sent to the
+ printer after all other profile components have been applied.
+
+ The stream containing the supplement data.
+ If there is an error adding the supplement to the profile.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ The desired display name of the firmware file.
+ The stream containing the firmware.
+ If there is an error adding firmware to the profile.
+
+
+
+ Adds user files to the profile.
+
+ Files to add to the profile. Each file entry should contain the desired file name
+ and the a stream of the file's content.
+ If there is an error adding files to the profile.
+
+
+
+
+
+
+
+
+
+
+ Flushes remaining profile data to prepare the destination stream for closing.
+
+
+ This method must be called when you are done assembling all the parts of your profile,
+ and should only be invoked once.
+
+
+
+
+ Handler to retrieve the parts of the profile.
+
+
+
+
+
+ Callback fired when settings are retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the settings
+
+
+
+ Callback fired when alerts are retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the alerts
+
+
+
+ Callback fired when firmware is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the firmware
+
+
+
+ Callback fired when the firmware display name is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the firmware display name
+
+
+
+ Callback fired when the supplement is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the supplement
+
+
+
+ Callback fired when a file is retrieved from a profile.
+
+ This will be called once for each user file in the profile.
+ The file name
+ The profile stream.
+ If there is an error retrieving the file
+
+
+
+ A class used to disassemble a profile efficiently.
+
+
+
+
+ Disassembles the profile and notifies the handler for all the profile parts.
+
+ The profile source stream.
+ Callback to retrieve the parts of the profile.
+ If there is an error disassembling the profile.
+
+
+
+ Provides access to the magnetic card reader, for devices equipped with one.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Activates the device's magnetic card reader, if present, and waits for a card to be swiped.
+
+
+ If the device does not have a reader the call will timeout.
+
+ The amount of time in milliseconds to enable the reader and wait for a card to be swiped.
+ An array of three strings corresponding to the tracks of the card. If a track could not be read that
+ string will be empty.
+
+
+
+ A class used to determine if a base has MagCard reader capabilities.
+ Not all Zebra printers are available with built-in readers.
+
+
+
+
+ Creates an instance of a Magcard reader, if available.
+
+ Base Zebra Printer that may or may not have MagCard reader capabilities.
+ An instance of a MagCardReader object or null if the base printer does not have MagCard reader hardware installed.
+
+
+
+ Interface to access the contents of a .zprofile file.
+
+
+
+
+
+ Create a Profile object backed by an existing .zprofile file.
+
+ Path to the profile file.
+ If the file pathToProfile does not exist.
+
+
+
+ Adds data to supplement an existing printer profile.
+
+
+ Any supplemental data added to a profile, upon loading the profile, will be sent to the printer
+ after all other profile components have been applied.
+
+ Byte array containing the data to be used to supplement the printer profile.
+ If there is an error writing to the .zprofile file.
+
+
+
+ Returns the supplement data within the profile.
+
+ The supplement data within the profile.
+ If there is an error writing to the .zprofile file.
+ If the .zprofile file cannot be found.
+
+
+
+ This method is not valid for a profile.
+
+
+ If this method is called.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ Full path to the firmware file to be added to the profile.
+ If there is an error reading pathToFirmwareFile or if there
+ is an error writing to the.zprofile file.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ The name of the firmware file
+ The firmware file contents
+ If there is an error reading pathToFirmwareFile or if there
+ is an error writing to the.zprofile file.
+
+
+
+ Removes the firmware file from the profile.
+
+ If there is an error removing the firmware file from the .zprofile file.
+
+
+
+ Returns the file name of the firmware file within the profile.
+
+ The file name of the firmware file within the profile.
+ If there is an error removing the firmware file from the .zprofile file.
+ If the firmware file cannot be found in the .zprofile file.
+
+
+
+
+
+
+ Retrieve all of the setting identifiers for a profile.
+
+
+ These are the IDs that may be used as keys for retrieving and updating settings for a profile.
+
+ Set of identifiers available for a profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+
+ Retrieves the profile's setting value for a setting id.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieves the profile's setting values for a list of setting ids.
+
+ List of setting ids.
+ The settings' values.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieves all of the profile's setting values.
+
+ Values of all the settings provided by the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Change the value of the setting in the profile to the given value.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the setting is read only, does not exist, or if the setting could not be set.
+
+
+
+ Set more than one setting.
+
+ Map a setting ID to the new value for the setting.
+ If there is an error communicating with the printer.
+ If the settings cannot be saved in the profile.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Retrieve the values of all the settings that are archivable.
+
+ Values of all the settings with the archivable attribute that are in the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Retrieve the values of all the settings that are clonable.
+
+ Values of all the settings with the clonable attribute that are in the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Retrieves the profile's for a setting id.
+
+ The setting id.
+ The
+ If there is an error communicating with the printer.
+ If the setting could not be retrieved.
+
+
+
+ Change the setting in the profile.
+
+ The setting id.
+ The setting.
+ If there is an error communicating with the printer.
+ If the setting is malformed, or if the setting could not be set.
+
+
+
+ Change settings in the profile.
+
+ The settings to change
+ If there is an error communicating with the printer.
+ If a setting is malformed, or one or more settings could not be set.
+
+
+
+ Change or retrieve settings in the profile.
+
+ The settings to change.
+ results of the setting commands
+ If there is an error communicating with the printer.
+ If the setting is malformed, or if the setting could not be set.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A list of objects detailing the alert configurations in a profile.
+
+ A list of alert objects currently in a profile.
+ If the alerts could not be extracted from the profile.
+
+
+
+
+
+
+
+
+
+ Removes a configured alert from a profile.
+
+ They may be reconfigured via the setAlert methods.
+ The alert to be removed from the configuration.
+ If an I/O error occurs.
+
+
+
+ Removes all alerts currently in a profile.
+
+ They may be reconfigured via the setAlert(s) methods.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ This method is not valid for a profile.
+
+ Path to the file containing the data to send.
+ If this method is called.
+
+
+
+ This method is not valid for a profile.
+
+ Path to the file containing the data to send.
+ Progress monitor callback handler.
+ If this method is called.
+
+
+
+ Adds a file to the profile named fileNameOnPrinter with the file contents from
+ fileContents.
+
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ The contents of the file to send.
+ If an I/O error occurs.
+
+
+
+ Retrieves the names of the files which are in the profile.
+
+ List of file names.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+
+ This method only returns files which have one of the extensions in extensions.
+
+ The extensions to filter on.
+ List of file names.
+
+
+
+ Stores the file in the profile using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ If there is an error connecting to the device.
+ If filePath cannot be used to create a printer file name.
+
+
+
+ Stores the file in the profile at the specified location and name using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+
+
+
+ Stores a file in the profile named fileNameOnPrinter with the file contents from
+ fileContents using any required file wrappers.
+
+
+ If the fileContents contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The contents of the file to store.
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+
+
+
+ Deletes the file from the profile. The filePath may also contain wildcards.
+
+ The location of the file on the printer. Wildcards are also
+ accepted (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error accessing the profile.
+
+
+
+ Retrieves a file from the profile and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, BAE, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ The file contents
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+
+
+
+ This method is not valid for a profile.
+
+ NA
+ NA
+ NA
+ If this method is called.
+
+
+
+ This method is not valid for a profile.
+
+ NA
+ NA
+ NA
+ If this method is called.
+
+
+
+ Retrieves a file from the profile and returns the contents of that file as a byte array including all necessary
+ file wrappers for re-downloading to a Zebra printer.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, BAE, TXT
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ A Zebra printer downloadable file content.
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+
+
+
+ Class which allows you to store a zprofile to a mirror server.
+
+
+
+
+ Creates an instance of a class which can be used to store a profile onto a mirror server.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile).
+ If an I/O error occurs.
+
+
+
+ Stores the profile to the mirror server.
+
+
+ This method also deletes all files in appl/, commands/, and files/ directory before storing
+ the contents of the profile in the proper directories.
+
+ The FTP server path.
+ The FTP user name. (The user should have read/write/create/delete access.)
+ The FTP password.
+ A list of the errors that happened while uploading settings and files.
+ If an I/O error occurs.
+ If the profile is not found.
+ If an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler to monitor long-running file operations.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Callback to notify the user as to the progress of the how many bytes have been sent.
+
+
+ Bytes currently written
+ Total bytes to send
+
+
+
+ Provides access to the smartcard reader, for printers equipped with one.
+
+ Not all Zebra printers are available with built-in readers.
+
+
+
+ Sends a CT_ATR command to the printer's smartcard reader, if present.
+
+ A byte array containing the response from the smartcard reader.
+ If an I/O error occurs.
+
+
+
+ Sends a CT_DATA command to the printer's smartcard reader, if present.
+
+ Data to be sent to the smartcard using the CT_DATA card command.
+ A byte array containing the response from the smartcard reader.
+ If an I/O error occurs.
+
+
+
+ Turns the printer's smartcard reader off, if present.
+
+ This call should be made after communicating with the smartcard via the method.
+
+
+
+ A class used to determine if a base ZebraPrinter has Smartcard reader capabilities.
+
+ Not all Zebra printers are available with built-in readers.
+
+
+
+ Creates an instance of a Smartcard reader, if available.
+
+ Base ZebraPrinter that may or may not have Smartcard reader capabilities.
+ An instance of a SmartcardReader object or null if the base printer does not have Smartcard reader
+ hardware installed.
+
+
+
+ Signals that an illegal argument was used.
+
+
+
+
+ Constructs a ZebraIllegalArgumentException with message as the detailed error message
+
+ the error message
+
+
+
+ Constructs a ZebraIllegalArgumentException with message as the detailed error message
+
+ the error message
+ The name of the parameter that caused the exception.
+
+
+
+ Constructs a ZebraIllegalArgumentException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception.
+
+
+
+ Constructs a ZebraIllegalArgumentException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The name of the parameter that caused the exception.
+ The cause of the exception.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Contains methods used to query attributes of an image formatted for a Zebra printer.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ A row of image data.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+ True if the image was scaled.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ Contains methods used to query attributes of an image formatted for a Zebra printer.
+
+ see ZebraImageFactory" for how to create an image.
+
+
+
+ Gets the image's height in pixels.
+
+
+
+
+ Gets the image's width in pixels.
+
+
+
+
+ This is an utility class for getting/setting alerts on a printer.
+
+
+
+
+
+ A list of objects detailing the alert configuration of a printer.
+
+ A list of alert objects currently configured on the printer.
+
+
+
+
+
+ Configures an alert to be triggered when the alert's condition occurs or becomes resolved.
+
+ The alert to trigger when it's condition occurs or becomes resolved.
+
+
+
+
+ Configures a list of alerts to be triggered when their conditions occur or become resolved.
+
+ The list of alerts to trigger when their conditions occur or become resolved.
+
+
+
+
+ Removes a configured alert from a printer. They may be reconfigured via the configureAlert(s) methods.
+
+ Alert to be removed from the configuration
+
+
+
+
+ Removes all alerts currently configured on a printer. They may be reconfigured via the configureAlert(s) methods.
+
+
+
+
+
+ A class used to print template formats using comma separated values as input data.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The connection string.
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The connection string.
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Container holding information about a discovered printer.
+
+
+
+
+ Creates a connection based on the information in the DiscoveredPrinter response.
+
+ a Connection to the discovered printer
+
+
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+
+
+
+
+
+ Creates an object holding information about a discovered printer.
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+
+ For TCP, this returns the IP Address. For driver, this returns the local printer name.
+
+
+
+
+ Returna a Dictionary of all settings obtained via the chosen discovery method.
+
+
+ The names of the settings will vary depending upon the type of connection to the printer. The following example
+ shows how to list all the properties of the discovered printer with the respective value.
+
+
+ foreach (string settingsKey in printer.DiscoveryDataMap.Keys) {
+ System.Diagnostics.Debug.WriteLine("Key: " + settingsKey + " Value: " + printer.DiscoveryDataMap[settingsKey]);
+ }
+
+ containing available attributes of the discovered printer.
+
+
+
+ Returns true if two discovered printer objects have the same address, otherwise it returns false.
+
+ DiscoveredPrinter object to compare against.
+ true if equal
+
+
+
+
+ Returns a hash code for this DiscoveredPrinter.
+
+ The hash code
+
+
+
+
+ DiscoveredPrinterFilter is an interface to allow the user to write custom code to determine
+ whether or not a DiscoveredPrinter should be included in the discovery result.
+
+
+
+
+ Method called by a discovery operation to determine whether or not the should be added to
+ the list of discovered devices.
+
+ DiscoveredPrinter to potentially be added to the list of of discovered devices.
+ A bool indicating whether or not the device should be added.
+
+
+
+ Instance of that is returned when performing a network discovery.
+
+
+
+
+ Returns an instance of a DiscoveredPrinterNetwork with address and port.
+
+ The address of the discovered network printer
+ The active raw port of the discovered network printer
+
+
+
+ Returns an instance of a DiscoveredPrinterNetwork built using the provided attributes.
+
+ A map of attributes associated with the discovered network printer
+
+
+
+
+
+
+
+
+
+ Returns a hash code for this DiscoveredPrinter.
+
+
+
+
+
+ Signals that there was an error during discovery.
+
+
+
+
+ Constructs a DiscoveryException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Interface definition for a callback to be invoked for printer discovery events
+
+
+
+
+
+ This method is invoked when a printer has been discovered. This method will be invoked for each printer that is found.
+
+ a discovered printer.
+
+
+
+ This method is invoked when discovery is finished.
+
+
+
+
+ This method is invoked when there is an error during discovery. The discovery will be cancelled when this method
+ is invoked. will not be called if this method is invoked.
+
+ the error message.
+
+
+
+ Class definition for a callback to be invoked for Link-OS™ printer discovery events.
+
+
+
+
+
+
+ Creates a DiscoveryHandler which will only report back Link-OS™ printers.
+
+ Base discovery handler for callbacks.
+
+
+
+ This method is invoked when there is an error during discovery. The discovery will be cancelled when this method
+ is invoked. will not be called if this method is invoked.
+
+ The error message.
+
+
+
+ This method is invoked when discovery is finished.
+
+
+
+
+ This method is invoked when a Link-OS™ printer has been discovered. This method will be invoked for each printer
+ that is found.
+
+ A discovered Link-OS™ printer.
+
+
+
+ Signals that there was an error during discovery packet decoding
+
+
+
+
+ Constructs a DiscoveryPacketDecodeException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Defines functions used when discovering information about a printer.
+
+
+
+
+
+ Decodes the provided MIME encoded discovery packet and returns a discovery data map
+
+ A Base64 encoded discovery packet
+ A discovery data map representative of the provided packet
+ If provided a malformed discovery packet
+
+
+
+ Reads the discovery packet from the provided connection and returns a discovery data map
+
+ A to a printer
+ A discovery data map representative of the provided packet
+ If an I/O error occurs.
+ If provided a malformed discovery packet
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class used to decode a Zebra discovery packet
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ Class used to decode a Zebra discovery packet
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ A class used to discover printers on an IP Network.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Sends a discovery packet to the IPs specified in the subnetRange.
+
+
+ Subnet searches are defined by the first three subnet octets, followed by a range, such as 192.168.2. This method accepts IP addresses of the form,
+ assuming a subnet of 192.168.2:
+
+ - 192.168.2.254 (will send a discovery packet to 192.168.2.254)
+ - 192.168.2.* (will send a discovery packet for the range 192.168.2.1 - 192.168.2.254)
+ - 192.168.2.8-* (will send a discovery packet for the range 192.168.2.8 - 192.168.2.254)
+ - 192.168.2.37-42 (will send a discovery packet for the range 192.168.2.37 - 192.168.2.42)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The subnet search range.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery packet to the IPs specified in the subnetRange.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ Subnet searches are defined by the first three subnet octets, followed by a range, such as 192.168.2. This method accepts IP
+ addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.254 (will send a discovery packet to 192.168.2.254)
+ - 192.168.2.* (will send a discovery packet for the range 192.168.2.1 - 192.168.2.254)
+ - 192.168.2.8-* (will send a discovery packet for the range 192.168.2.8 - 192.168.2.254)
+ - 192.168.2.37-42 (will send a discovery packet for the range 192.168.2.37 - 192.168.2.42)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The subnet search range.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a directed broadcast discovery packet to the subnet specified by ipAddress.
+
+
+ Directed broadcasts are defined by the first three subnet octets, followed by 255, such as 192.168.2.255. This method
+ accepts IP addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.255
+ - 192.168.2.1 (last octet will be replaced with 255)
+ - 192.168.2 (will append 255 for the last octet)
+ - 192.168.2. (will append 255 for the last octet)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The IP address of the subnet.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a directed broadcast discovery packet to the subnet specified by ipAddress.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ Directed broadcasts are defined by the first three subnet octets, followed by 255, such as 192.168.2.255. This method accepts
+ IP addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.255
+ - 192.168.2.1 (last octet will be replaced with 255)
+ - 192.168.2 (will append 255 for the last octet)
+ - 192.168.2. (will append 255 for the last octet)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The IP address of the subnet.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a local broadcast packet.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a local broadcast packet.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a multicast discovery packet.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+ For Android users : some extra code is required to obtain a multicast lock. See the example in
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The number of hops.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a multicast discovery packet.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+ For Android users : some extra code is required to obtain a multicast lock. See the example in
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The number of hops.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ This method will search the network using a combination of discovery methods to find printers on the network.
+
+
+ This is a convenience method that can be used as an alternative to the other discovery methods (e.g. multicast).
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery request to the list of printer DNS names or IPs in printersToFind.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A list of IP addresses or DNS names for the printers to be discovered.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery request to the list of printer DNS names or IPs in printersToFind.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A list of IP addresses or DNS names for the printers to be discovered.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Drive types.
+
+
+
+
+ Onboard flash drive.
+
+
+
+
+ RAM Drive.
+
+
+
+
+ Removable mass storage drive.
+
+
+
+
+ Unknown drive.
+
+
+
+
+ Read only drive.
+
+
+
+
+ This class is used to describe format variable fields.
+
+
+ For example, in CPCL, the following format will contain 2 .
+
+ ! DF SHELF.FMT
+ ! 0 200 200 210 1
+ CENTER
+ TEXT 4 3 0 15 \\
+ TEXT 4 0 0 95 \\
+ FORM
+ PRINT
+
+
+ The first will contain a fieldNumber of 1, and a fieldName of
+ null. The second will contain a fieldNumber of 2, and a fieldName of null.
+
+ In ZPL, the following ^FN command will contain 2 .
+
+
+ ^XA
+ ^DFR:SHELF.ZPL^FS
+ ^FO25,25^A0N,50,50^FN15"Name"^FS
+ ^FO25,75^A0N,50,50^FN15"Address"^FS
+ ^FO25,125^A0N,50,50^FN18^FS
+ ^FO25,175^A0N,50,50^FN15
+ ^XZ
+
+
+ The first will contain a fieldNumber of 15, and a fieldName of
+ "Address". The second will contain a fieldNumber of 18, and a fieldName of null.
+ Note: If a label format contains multiple Field Numbers, only 1 will be returned since the data will be shared
+ by all variables with the number. The portion of the variable will be the
+ last one in the format, unless it is not present.For example, in the format above, there are 3 ^FN15's. The
+ first 2 have a "prompt" parameter, the third does not. The second one, "Address", overwrites the first one, "Name".
+ The third one is not present, so the previous one, "Address", is preserved.
+
+
+
+
+ Create a descriptor for a field
+
+ The number of the field.
+ The name of the field, or null if not present.
+
+
+
+ In CPCL, this number will be the number of the variable field in the format. The fields are numbered starting at 1.
+ In ZPL, this number will correspond to the ^FN number.
+
+
+
+
+ In CPCL, this field is always null.
+ In ZPL, this field will correspond to the optional name parameter of the ^FN command, or null if the parameter is not present
+
+
+
+
+
+
+
+ Options for deleting files when loading profiles to a Zebra printer.
+
+
+
+
+ Attempts to delete all files from the printer. (Persistent files, hidden files, and System files will not be deleted.)
+
+
+
+
+ Will attempt to delete only the file types which are copied at profile/backup creation time.
+
+
+
+
+ Will not attempt to delete any files.
+
+
+
+
+ Handler class is used to update status while performing a firmware download and to notify the caller when the printer
+ has reconnected after restarting.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Called when the firmware download completes.
+
+
+
+
+ Called when the printer is back online and has been rediscovered.
+
+ The printer object which came back online.
+ The new firmware version on the printer.
+
+
+
+ Callback to notify the user of the firmware updating progress.
+
+ The total number of bytes written to the printer.
+ The total number of bytes to be written to the printer.
+
+
+
+ Handler class is used to update status while performing a firmware download.
+
+
+
+
+ Callback to notify the user of the firmware updating progress.
+
+ This is called for every 4K bytes written out.
+ Total number of bytes written to the printer.
+ Total number of bytes to be written to the printer.
+
+
+
+ Called when the firmware download completes. The printer will then begin flashing the firmware to memory followed
+ by a reboot.
+
+
+
+
+ This is the interface for updating firmware on a Link-OS™ printer.
+
+
+
+
+ Update firmware on the printer using the default timeout of 10 minutes.
+
+
+ If the firmware currently on the printer has the same version number as the
+ firmware file, the firmware will not be sent to the printer.
+
+
+ File path of firmware file.
+ Callback for firmware updating status
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer using the specified timeout.
+
+
+ If the firmware currently on the printer has the same version number as the firmware file, the firmware will not be sent to the printer.
+
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum will be
+ used instead.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer, using the default timeout of 10 minutes, regardless of the firmware version
+ currently on the printer.
+
+ File path of firmware file.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer, using the specified timeout, regardless of the firmware version
+ currently on the printer.
+
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum will be
+ used instead.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ A class used to convert TrueType® fonts for use on ZPL printers.
+
+
+
+
+ Returns a Stream which provides the TTF header information as determined from the source stream.
+
+ Stream containing TrueType® font data
+ Location of the font file on the printer.
+ Header information for the provided stream
+
+
+
+ Returns a Stream which provides the TTE header information as determined from the source stream.
+
+ Stream containing TrueType® font data
+ Location of the font file on the printer.
+ Header information for the provided stream
+
+
+
+ Converts a native TrueType® font to a ZPL TTF format.
+
+ Path to a TrueType® font.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+ If the source file is not found
+
+
+
+ Converts a native TrueType® font to a ZPL TTF format.
+
+ Stream containing the TrueType® font data.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+
+
+
+ Converts a native TrueType® font to a ZPL TTE format.
+
+ Path to a TrueType® font.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+ If the source file is not found
+
+
+
+ Converts a native TrueType® font to a ZPL TTE format.
+
+ Stream containing the TrueType® font data.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+
+
+
+ Defines functions used for downloading fonts to Zebra printers.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Defines functions used for interacting with printer formats.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Retrieves a format from the printer.
+
+
+ On a LinkOS/ZPL printer, only .ZPL files are supported. On a CPCL printer, only .FMT and .LBL files are supported.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ The contents of the format file.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+
+
+
+ Retrieves a format from the printer.
+
+
+ On a LinkOS/ZPL printer, only .ZPL files are supported. On a CPCL printer, only .FMT and .LBL files are supported.
+
+ The format.
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the array.
+
+
+ The values of any format variables will be encoded using the default encoding type. On a LinkOS/ZPL printer, only ZPL formats
+ are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The name of the format on the printer, including the extension (e.g. "E:FORMAT.ZPL").
+ An array of strings representing the data to fill into the format. For LinkOS/ZPL printer formats,
+ index 0 of the array corresponds to field number 2 (^FN2). For CPCL printer formats, the variables are passed in
+ the order that they are found in the format.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the array.
+
+
+ The values of any format variables will be encoded using the provided encoding type.eg.UTF-8. On a LinkOS/ZPL printer, only
+ ZPL formats are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ An array of strings representing the data to fill into the format. For LinkOS/ZPL printer formats,
+ index 0 of the array corresponds to field number 2 (^FN2). For CPCL printer formats, the variables are passed in
+ the order that they are found in the format.
+ A character-encoding name (eg. UTF-8).
+ If an I/O error occurs.
+ If the encoding is not supported.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the default encoding type. On a LinkOS/ZPL printer, only ZPL formats
+ are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For LinkOS/ZPL printer formats, the
+ key number should correspond directly to the number of the field in the format.For CPCL printer formats, the
+ values will be passed in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the provided encoding type.eg.UTF-8. On a LinkOS/ZPL printer, only
+ ZPL formats are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For LinkOS/ZPL printer formats, the
+ key number should correspond directly to the number of the field in the format.For CPCL printer formats, the
+ values will be passed in ascending numerical order.
+ A character-encoding name (e.g. UTF-8).
+ If an I/O error occurs.
+ If the encoding is not supported.
+
+
+
+ Returns a list of descriptors of the variable fields in this format.
+
+
+ On a LinkOS/ZPL printer, only ZPL formats are supported. On a CPCL printer, only CPCL formats are supported.
+
+ The contents of the recalled format.
+ A list of field data descriptors. For a CPCL printer, the nth element of the list will contain the
+ integer n and no name. For a LinkOS/ZPL printer, each element will contain an ^FN number and a variable name if
+ present. If the format contains multiple ^FNs with the same number, only the last one will be in the result.
+ See for an example of how variable fields look.
+
+
+
+
+ Defines functions used for interacting with Link-OS™ printer formats.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the default encoding type.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the provided encoding type. eg.UTF-8.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ A character-encoding name (e.g. UTF-8)
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionaries.
+
+
+ The images stored in imgVars will first be dithered and then sent down the the printer as SDK01.GRF-SDK99.GRF. These GRF
+ files will then be used when printing the format and overwritten each time the method is called with new images. The values of any
+ format variables will be encoded using the default encoding type.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the images to be used in the stored format. For ZPL
+ formats, the key number should correspond directly to the number of the field in the format. For CPCL formats,
+ the values will be passed in ascending numerical order.
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionaries.
+
+
+ The images stored in imgVars will first be dithered and then sent down the the printer as SDK01.GRF-SDK99.GRF.
+ These GRF files will then be used when printing the format and overwritten each time the method is called with new
+ images. The values of any format variables will be encoded using the provided encoding type. eg. UTF-8.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the images to be used in the stored format. For ZPL
+ formats, the key number should correspond directly to the number of the field in the format. For CPCL formats,
+ the values will be passed in ascending numerical order.
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ A character-encoding name (e.g. UTF-8)
+ If an I/O error occurs.
+
+
+
+ This is an utility class for printing images on a device.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Prints an image from the connecting device file system to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ Image file to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ If an I/O error occurs.
+ When the file could not be found, opened, or is an unsupported graphic.
+
+
+
+ Prints an image from the connecting device file system to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ Image file to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ Desired width of the printed image. Passing a value less than 1 will preserve original width.
+ Desired height of the printed image. Passing a value less than 1 will preserve original height.
+ Boolean value indicating whether this image should be printed by itself (false), or is part
+ of a format being written to the connection (true).
+ If an I/O error occurs.
+ When the file could not be found, opened, or is an unsupported graphic.
+
+
+
+ Prints an image to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ The image to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ Desired width of the printed image. Passing a value less than 1 will preserve original width.
+ Desired height of the printed image. Passing a value less than 1 will preserve original height.
+ Boolean value indicating whether this image should be printed by itself (false), or is part
+ of a format being written to the connection (true).
+ If an I/O error occurs.
+
+
+
+ Stores the specified image to the connected printer as a monochrome image.
+
+
+ The image will be stored on the printer at printerDriveAndFileName with the extension GRF.
+ If a drive letter is not supplied, E will be used as the default (e.g. FILE becomes E:FILE.GRF). If an extension is supplied,
+ it is ignored if it is not either BMP or PNG. If the extension is ignored, GRF will be used.
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or throw an .
+
+ Path on the printer where the image will be stored.
+ The image to be stored on the printer.
+ Desired width of the printed image, in dots. Passing -1 will preserve original width.
+ Desired height of the printed image, in dots. Passing -1 will preserve original height.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+ If printerDriveAndFileName has an incorrect format.
+
+
+
+ Stores the specified image to the connected printer as a monochrome image.
+
+
+ The image will be stored on the printer at printerDriveAndFileName with the extension GRF.
+ If a drive letter is not supplied, E will be used as the default (e.g. FILE becomes E:FILE.GRF). If an extension is supplied,
+ it is ignored if it is not either BMP or PNG. If the extension is ignored, GRF will be used.
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or throw an .
+
+ Path on the printer where the image will be stored.
+ The image file to be stored on the printer.
+ Desired width of the printed image, in dots. Passing -1 will preserve original width.
+ Desired height of the printed image, in dots. Passing -1 will preserve original height.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+ If printerDriveAndFileName has an incorrect format.
+ If the file could not be found, opened, or is an unsupported graphic.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Look through the result of a directory listing and extract the file name, drive letter, and extension for each
+ file in the listing.
+
+ The result of ^HZL, JSON file.drive_listing, or file.dir SGD.
+ A list (element type PrinterFileProperties) of file information.
+ If there is an error parsing the directory data returned by the printer.
+
+
+
+ Look through the result of a ^HZL and extract the file name, drive letter, and extension for each file in the listing.
+
+ The result of ^HZL.
+ A list (element type PrinterFileProperties) of file information.
+ If there is an error parsing the directory data returned by the printer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Utility methods for firmware files.
+
+
+
+
+ Given the contents of a firmware file, extract the firmware version string.
+
+
+ If the contents are not valid or if the version cannot be extracted, an empty string is returned.
+
+ Input stream containing the contents of a firmware file.
+ The version string, or an empty string.
+
+
+
+
+ Extract the firmware version from a firmware file input stream and return false if that version matches the
+ firmware on the connected printer.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Input stream containing the contents of a firmware file.
+ A connection to a printer
+ True if the firmware versions don't match
+ If there was an issue communicating with the printer.
+
+
+
+ Extract the firmware version from a firmware file input stream, and return false if that version matches the versionFromPrinter.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Input stream containing the contents of a firmware file.
+ Version of firmware that is already on the printer.
+ True if the firmware versions don't match
+
+
+
+ Extract the firmware version from a firmware file input stream, and return false if that version matches the versionFromPrinter.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Version of firmware that has already been extracted from the file.
+ A connection to a printer
+ True if the firmware versions don't match
+
+
+
+ Get the firmware version from the connected printer.
+
+ A connection to a printer.
+ The firmware version of the printer.
+ If there was an issue communicating with the printer."
+
+
+
+ Compare two firmware version strings.
+
+
+ If the only difference is that ZBI is enabled for one version but not the other, they are still considered to match.Matching is case insensitive.
+
+ One version string.
+ The other version string.
+ True if the versions match.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Search formatString, starting at index searchIx, for a ^FN, ^CC or ~CC command. Search is case insensitive. caret is the command prefix.
+
+
+
+
+
+ {-1,unknownCommand} if none of the commands is found, otherwise the index where a command
+ was found, and the type of command that was found.
+
+
+
+ Search formatString, starting at index searchIx, for one of the commands in commandStrings. Search is case
+ insensitive. caret is the command prefix.
+
+
+
+
+ {-1,unknownCommand} if none of the commands is found, otherwise the index where a command
+ was found, and the type of command that was found.
+
+
+
+ Represent a ZPL command type.
+
+
+
+
+ ^FN command
+
+
+
+
+ ^CC and ~CC commands
+
+
+
+
+ ^XG command
+
+
+
+
+ ^DF command
+
+
+
+
+ ^XA command
+
+
+
+
+ ^XZ command
+
+
+
+
+ everything else
+
+
+
+
+ the id, as a lower case string
+
+
+
+
+
+
+
+
+
+
+ Represent the index in a string where a ZPL command was found, and the type of the command at that spot.
+
+
+
+
+
+
+
+
+
+
+ Gets the index
+
+
+
+
+ Gets the command
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A container class used to hold Link-OS specific information
+
+
+
+
+ Creates a container class to hold Link-OS information.
+
+ the Link-OS major version number
+ the Link-OS minor version number
+
+
+
+ Creates a container class to hold Link-OS information.
+
+ e.g. ("2.1", "3.0")
+
+
+
+ Creates a container class to hold Link-OS information based on the supplied discoveredPrinter.
+
+ A discovered printer.
+
+
+
+ Gets the Link-OS major version number
+
+
+
+
+ Gets the Link-OS minor version number
+
+
+
+
+ Signals that a Link-OS™ operation has been attempted on a non-Link-OS™ printer.
+
+
+
+
+ Constructs a NotALinkOsPrinterException with "This is not a Link-OS™ printer" as
+ the detailed error message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a printer alert.
+
+ Applicable only to ZPL printers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates an instance of a PrinterAlert object.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+
+
+
+ Creates an instance of a PrinterAlert object, including a Set-Get-Do name.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If condition is SGD_SET, the name of the Set-Get-Do to be monitored.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+
+
+
+ Creates an instance of a PrinterAlert object, including the printer alert text.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+ The text received from the printer.
+
+
+
+ Creates an instance of a PrinterAlert object, including a Set-Get-Do name and the printer alert text.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If condition is SGD_SET, the name of the Set-Get-Do to be monitored.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+ The text received from the printer.
+
+
+
+ Return the string representation of the alert destination for Set-Get-Do.
+
+
+
+
+ Return the AlertCondition of the alert.
+
+
+
+
+ Gets the current alert condition.
+
+
+
+
+ Return true if the alert is fired when 'set'.
+
+
+
+
+ Return alert will be triggered on 'clear'.
+
+
+
+
+ Return the string representation of the Set-Get-Do Name.
+
+
+
+
+ Return the AlertDestination used by the alert.
+
+
+
+
+ Return the destination where the alert should be sent, for example, an IP Address or an email address, depending
+ on the value of getDestinationAsSGDString.
+
+
+
+
+ Return the destination port number where the alert should be sent.
+
+
+
+
+ Return the quelling state of the alert.
+
+
+
+
+ Return the text received from the printer.
+
+
+
+
+ Enumeration of the various printer control languages supported by Zebra Printers.
+
+
+
+
+ Printer control language ZPL
+
+
+
+
+ Printer control language CPCL
+
+
+
+
+ Printer control language line_print mode.
+
+
+
+
+ Converts the string name to the appropriate enum value.
+
+
+ The name parameter accepts the value returned from the printer's 'device.langauges' SGD.
+
+ The printer control language name (e.g. "zpl", "cpcl", or "line_print")
+ The printer language
+ If the printer language cannot be determined.
+
+
+
+ The name of the printer language - (e.g. "ZPL" or "CPCL").
+
+ ZPL, CPCL, or LINE_PRINT
+
+
+
+ Container for properties of a printer object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets/sets the drive prefix with the trailing colon.
+
+
+
+
+ Gets/sets the file name.
+
+
+
+
+ Gets/sets the file extension.
+
+
+
+
+ Gets the full name of the file on the printer.
+
+
+
+
+ Gets/sets the size of the file in bytes
+
+
+
+
+ Gets/sets the 32-bit CRC value of the file.
+
+
+
+
+ Interface definition for a callback to be invoked when a printer comes back online and has been rediscovered.
+
+
+
+
+
+ Called when the printer is back online and has been rediscovered.
+
+ The printer object which came back online.
+ The new firmware version on the printer.
+
+
+
+ A class used to obtain the status of a Zebra printer.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ The print mode. For CPCL printers this is always
+
+
+
+
+ The length of the label in dots. For CPCL printers this is always 0.
+
+
+
+
+ The number of formats currently in the receive buffer of the printer. For CPCL printers this is always 0.
+
+
+
+
+ The number of labels remaining in the batch. For CPCL printers this is always 0.
+
+
+
+
+ true if there is a partial format in progress. For CPCL printers this is always false.
+
+
+
+
+ true if the head is cold. For CPCL printers this is always false
+
+
+
+
+ true if the head is open.
+
+
+
+
+ true if the head is too hot. For CPCL printers this is always false
+
+
+
+
+ true if the paper is out.
+
+
+
+
+ true if the ribbon is out.
+
+
+
+
+ true if the receive buffer is full. For CPCL printers this is always false
+
+
+
+
+ true if the printer is paused. For CPCL printers this is always false
+
+
+
+
+ true if the printer reports back that it is ready to print
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructs a PrinterStatus instance that can be used to determine the status of a printer.
+
+
+ This will only query the printer's status upon creation. If the status needs to be updated see
+
+ Connection to the target printer
+ If an I/O error occurs
+
+
+
+
+
+
+
+
+ This class is used to acquire a human readable string of the current errors/warnings stored in a
+ instance.
+
+
+
+
+
+ Message to indicate the head is open.
+
+
+
+
+ Message to indicate the head is too hot.
+
+
+
+
+ Message to indicate the paper is out.
+
+
+
+
+ Message to indicate the ribbon is out.
+
+
+
+
+ Message to indicate the receive buffer is full.
+
+
+
+
+ Message to indicate printer is paused.
+
+
+
+
+ Message to indicate printerStatus is null.
+
+
+
+
+ Used to acquire a human readable string of the current errors/warnings stored in printerStatus
+
+ an instance of that will be used to acquire the human readable string
+ of warnings/errors stored in printerStatus
+
+
+
+ Used to acquire a human readable string of the current errors/warnings passed to this instance.
+
+ A human readable string array of the current errors/warnings passed to this instance.
+
+
+
+ Numerous utilities to simplify printer operations.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Send contents of data directly to the device specified via connectionString using UTF-8 encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using UTF-8 encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Retrieves a list of currently open tcp ports on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The port status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves status of the printer odometer which includes the total print length, head clean counter, label dot
+ length, head new, latch open counter, and both user resettable counters.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The odometer status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves status of the printer which includes any error messages currently set along with the number of labels
+ remaining in queue, number of labels remaining in batch, and whether or not a label is currently being processed.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The printer status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves the quick status of the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Highest level error or "Ready to Print".
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Set the RTC time and date on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Format MM-dd-yyyy HH:mm:ss.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If the format of dateTime is invalid.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Deletes file(s) from the printer and reports what files were actually removed.
+
+
+ The filePath may also contain wildcards.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ The location of the file on the printer. Wildcards are also accepted. (e.g. "E:FORMAT.ZPL", "E:*.*")
+ An array of the files which were deleted.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If the format of dateTime is invalid.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Deletes file(s) from the printer and reports what files were actually removed.
+
+
+ The filePath may also contain wildcards.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ The location of the file on the printer. Wildcards are also accepted. (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ Filter for returned files. (e.g. "E:*.ZPL", "*:*.*", "R:MYFILE.*")
+ List of file names on the printer.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an error parsing the directory data returned by the device.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ File contents.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ Stream to receive file contents.
+ The connection string.
+ The file to retrieve. (e.g. "R:MYFILE.PNG")
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ Password to use for ftp, if null a default password will be used.
+ File contents.
+ If there is an error connecting to the device, or the ftp password is not correct.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ Stream to receive the file contents.
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ Password to use for ftp, if null a default password will be used.
+ If there is an error connecting to the device, or the ftp password is not correct.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Update the printer firmware.
+
+
+ Download Firmware Here
+ See ConnectionBuilder for the format of connection
+
+ The connection string.
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum
+ will be used instead.
+ If the connection can not be opened or is closed prematurely.
+ If the printer language could not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ If the firmware file cannot be found or cannot be opened.
+
+
+
+ Encodes supplied image in either ZPL or CPCL after dithering and resizing.
+
+ The printer file path you wish to store the image to.
+ ZebraImage to be dithered and resized.
+ Stream to store encoded image data.
+ If the file type is not supported or an invalid image is supplied.
+ Could not read/write to file.
+
+
+
+ Encodes supplied image in either ZPL or CPCL after dithering and resizing.
+
+ The printer file path you wish to store the image to.
+ ZebraImage to be dithered and resized.
+ Width of the resulting image. If 0 the image is not resized.
+ Height of the resulting image. If 0 the image is not resized.
+ Stream to store converted image data encoded with the printers native
+ language.
+ If the file type is not supported or an invalid image is supplied.
+ Could not read/write to file.
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original configuration.
+ Some settings (such as I.P.address) which could conflict with the original printer will not be contained in the profile
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The location of where to store the profile.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ Could not interpret the response from the printer.
+ This feature is only available on Link-OS™ printers.
+
+
+
+
+ Create a backup of your printer's settings, alerts, and files.
+
+
+ A backup contains a snapshot of all pertinent settings to fully restore your printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The location of where to store the profile. The extension must be .zprofile; if it is not, the
+ method will change it to.zprofile for you.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ Could not interpret the response from the printer.
+ This feature is only available on Link-OS™ printers.
+
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ Increases the amount of detail presented to the user.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ Increases the amount of detail presented to the user.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Stores the file on the printer at the specified location and name using any required file wrappers.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The path of the file to store.
+ The path on the printer.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue storing the file.
+ This feature is only available on Link-OS™ printers.
+ If there is an issue storing the file.
+
+
+
+ Resets the specified printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Resets the network of the specified printer.
+
+
+ Usually performed to enable changed network settings to take effect.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Restores the printer's settings to their factory default configuration.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Restores the printer's network settings to their factory default configuration.
+
+
+ Use caution when issuing this command because you may lose connectivity with your printer if your network requires non-default settings.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a configuration label.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a network configuration label.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a directory listing of all the files saved on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieve all settings and their attributes from the specified printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ A map of setting names versus Setting objects from the printer specified in the connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the settings could not be retrieved.
+
+
+
+ Returns a new instance of PrinterStatus that can be used to determine the status of a printer.
+
+
+ Each invocation of this method will result in a query of the connected printer. If more than one status value is to be
+ read, it is recommended that a copy of PrinterStatus is stored locally.
+ This method must be invoked again to retrieve the most up-to-date status of the printer. The
+ object will only query the printer upon creation.
+ Some Mobile printers (including the MZ series printers) will not communicate if the printer is not ready to print.
+ On these printers, status information is not available when, for example, the printer is out of paper. This method
+ will throw a if it is called when the printer cannot communicate.
+
+ Connection to the printer.
+ Printer control language to be used.
+ A new instance of PrinterStatus.
+ If there is an issue communicating with the printer (e.g.\u00a0the connection is not
+ open.)
+
+
+
+ Defines functions used for creating and applying profiles to a Zebra printer.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original
+ configuration. Some settings (such as I.P.address) which could conflict with the original printer will
+ not be contained in the profile.
+
+ Path on your local machine where you want to save the profile.
+ (e.g. /home/user/profile.zprofile). The extension must be.zprofile; if it is not, the method will
+ change it to .zprofile for you.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+ for loading a profile to another printer
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original
+ configuration. Some settings (such as I.P.address) which could conflict with the original printer will
+ not be contained in the profile.
+
+ The destination stream where you want to write the profile.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+
+
+
+ Save a backup of your printer's settings, alerts, and files for later restoration.
+
+
+ A backup contains a snapshot of all pertinent settings to fully restore your printer.
+
+ Path on your local machine where you want to save the backup.
+ (e.g. /home/user/profile.zprofile). The extension must be.zprofile; if it is not, the method will
+ change it to .zprofile for you.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+ for loading the backup file to another printer
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ Increases the amount of detail presented to the user when loading firmware from the profile
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ his method will also delete all files on your printer before applying the backup.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ Increases the amount of detail presented to the user when loading firmware from the profile
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ A utility class used to wrap with a map and send settings commands to a connection.
+
+
+ Settings commands are accepted by Link-OS printers, version 1.0 and higher.
+
+
+
+
+
+ Sends the settingsToSet to the destinationDevice and then returns the updated setting values.
+
+ Due to the setting verification and validation, additional time and data traffic will be needed for each
+ SettingsSetter Process call. It is recommended to bundle all changing settings into one map and one
+ method call to reduce this overhead.
+
+ The connection string.
+ The settings map to send to the printer.
+ The settings' values after the map has been sent to the printer.
+ If there is an error communicating with the printer.
+ If the setting could not be set or retrieved.
+
+
+
+ A utility class used to wrap and send SGD commands to a connection.
+
+
+
+
+
+ Constructs an SGD SET command and sends it to the printer.
+
+
+ This method will not wait for a response from the printer.If the SGD SET command returns a response, the caller
+ is responsible for reading the data off of the connection.If a response is expected, consider using the analogous
+ command.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ if an I/O error occurs
+
+
+
+
+ Constructs an SGD SET command and sends it to the printer.
+
+
+ This method will not wait for a response from the printer. If the SGD SET command returns a response, the caller is
+ responsible for reading the data off of the connection. If a response is expected, consider using the analogous
+ command.
+
+
+
+
+ if an I/O error occurs
+
+
+
+
+ Constructs an SGD GET command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the connection to send the command to
+ the setting's value
+ if an I/O error occurs
+
+
+
+ Constructs an SGD GET command and sends it to the printer.
+
+
+ This method waits for a maximum of maxTimeoutForRead milliseconds for any data to be received.Once some data has been received it
+ waits until no more data is available within timeToWaitForMoreData milliseconds. This method returns the SGD value associated
+ with setting without the surrounding quotes.
+
+ the SGD setting
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ the setting's value
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ The response from the SGD DO command
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method write the SGD
+ value associated with setting, without the surrounding quotes, to responseData.
+
+ output stream to receive the response.
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ The response from the SGD DO command
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of maxTimeoutForRead milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within timeToWaitForMoreData milliseconds. This method write the SGD
+ value associated with setting without the surrounding quotes.
+
+ output stream to receive the response.
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ if an I/O error occurs
+
+
+
+ A utility class used to remove quotes from an output stream
+
+
+
+
+ Constructs a QuoteRemovingOutputStream
+
+
+
+
+
+ Signals that an error has occurred when attempting to communicate with SNMP.
+
+
+
+
+ Constructs an SnmpException with message as the detailed error message.
+
+ The error message.
+
+
+
+ An instance of an SNMP only Zebra printer.
+
+ The printer does not make a raw port connection.
+
+
+
+
+ Creates an instance of a Zebra printer which is limited to only SNMP operations.
+
+
+ The SNMP get and set community names default to "public". If you wish to use other community names, use
+ .
+
+ The IP Address or DNS Hostname.
+ If there was an exception communicating over SNMP.
+
+
+
+ Creates an instance of a Zebra printer, with the given community names, which is limited to only SNMP operations.
+
+ The IP Address or DNS Hostname.
+ SNMP get community name.
+ SNMP set community name.
+ If there was an exception communicating over SNMP.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the value of the specified oid.
+
+ Object identifier.
+ The value of the OID.
+ If there was an exception communicating over SNMP.
+
+
+
+ Sets the value of the specified oid to valueToSet.
+
+ Object identifier.
+ The value to set the OID to.
+ If there was an exception communicating over SNMP
+
+
+
+ Sets the value of the specified oid to valueToSet.
+
+ Object identifier.
+ The value to set the OID to.
+ If there was an exception communicating over SNMP
+
+
+
+ Gets the SNMP get community name.
+
+
+
+
+ Gets the SNMP set community name.
+
+
+
+
+ A container class which holds information about various printer drives.
+
+
+
+
+ Creates an empty StorageInfo container
+
+
+
+
+ The drive's alphabetical identifier.
+
+
+
+
+ The type of drive. (e.g. flash, RAM)
+
+
+
+
+
+ The number of bytes remaining on the drive.
+
+
+
+
+ Bool defining whether or not files persist across printer reboots.
+
+
+
+
+ Class for describing the status of ports open on a Zebra printer.
+
+
+
+
+ Creates a container which describes the status of a specific port on a Zebra printer.
+
+ The printer's port.
+ The name of the protocol used by the port.
+ Remote IP connected to the port.
+ Remote port number.
+ Port status.
+
+
+
+ The port number open on the printer.
+
+
+
+
+ The name of the protocol associated with that port, for example, HTTP for 80, FTP for 21.
+
+
+
+
+ The remote IP connected to the printer's port, will be 0.0.0.0 if not connected.
+
+
+
+
+ The port number of the remote connected to the printer, will be 0 if no connection.
+
+
+
+
+ The status of the printer's port, such as {@code LISTEN}, {@code ESTABLISHED}.
+
+
+
+
+ String description of the port status, prints as "PORT(NAME) REMOTE-IP:REMOTE-PORT STATUS"
+
+ Description of the port status.
+
+
+
+ This is a utility class for performing printer actions. (Restore defaults, calibrate, etc.)
+
+
+
+
+ Sends the appropriate calibrate command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate restore defaults command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate print configuration command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Converts the specified command to bytes using the default charset and sends the bytes to the printer.
+
+ The command to send to the printer.
+ If an I/O error occurs.
+
+
+
+ Converts the specified command to bytes using the specified charset "encoding" and sends the bytes to the
+ printer.
+
+ The command to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate reset command to the printer.
+
+
+ You should call after this method, as resetting the printer will terminate the connection.
+
+ If an I/O error occurs.
+
+
+
+
+ Utility class for performing Link-OS™ printer actions.
+
+
+
+
+ Send the restore network defaults command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Send the print network configuration command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Send the print directory label command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Sends the network reset command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Set the RTC time and date on the printer.
+
+
+ Accepted dateTime values include date (e.g. "MM-dd-yyyy"), time(e.g. " HH:mm:ss"),
+ or both(e.g. " MM-dd-yyyy HH:mm:ss").
+
+ Date and or time in the proper format (MM-dd-yyyy, HH:mm:ss, or MM-dd-yyyy HH:mm:ss).
+ If there is an error communicating with the printer.
+ If the format of dateTime is invalid.
+
+
+
+ A class used to print template formats using XML as input.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Print template formats using XML as input data.
+
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs."
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data to destinationDevice.
+
+ The connection string.
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ See ConnectionBuilder for the format of
+ destinationDevice.
+ If an I/O error occurs."
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data with optional running commentary to standard out.
+
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs."
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data to a device with connection string destinationDevice.
+
+ The connection string.
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ See ConnectionBuilder for the format of
+ destinationDevice.
+ If an I/O error occurs."
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+ An interface used to obtain various properties of a Zebra printer.
+
+
+
+
+
+ Returns the printer control language (e.g. ZPL or CPCL) of the printer.
+
+
+
+
+
+ Returns a new instance of PrinterStatus that can be used to determine the status of a printer.
+
+
+ Each invocation of this method will result in a query of the connected printer. If more than one status value is to be
+ read, it is recommended that a copy of PrinterStatus is stored locally.
+ Note: This method must be invoked again to retrieve the most up-to-date status of the printer. The
+ object will only query the printer upon creation.
+ Note: Some Mobile printers (including the MZ series printers) will not communicate if the printer is not
+ ready to print.On these printers, status information is not available when, for example, the printer is out of
+ paper. This method will throw a if it is called when the printer cannot communicate.
+
+ A new instance of PrinterStatus.
+ If there is an issue communicating with the printer (e.g. the connection is not
+ open.)
+
+
+
+ Returns the printer's connection.
+
+
+
+
+ Changes the printer's connection.
+
+ The new connection to be used for communication with the printer.
+
+
+
+ A factory used to acquire an instance of a ZebraPrinter.
+
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+
+ If the Set-Get-Do value, appl.name, starts with one of the following, the printer is determined to
+ be a CPCL printer. Otherwise it is considered to be a ZPL printer
+
+ - SH
+ - H8
+ - C
+
+
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+ If the printer language cannot be determined
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+
+ If the Set-Get-Do value, appl.name, starts with one of the cpclFwVersionPrefixes, the
+ printer is determined to be a CPCL printer.Otherwise it is considered to be a ZPL printer.
+
+ An array of possible CPCL version number prefixes
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+ If the printer language cannot be determined
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+ The language of the printer instance to be created
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS™ version and its control language.
+
+ An instance of a
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its control language, but will not query the printer for Link-OS information.
+
+ An instance of a
+ Link-OS Information
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS information, but will not query the printer for its control language.
+
+ An instance of a
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will not query the printer for any information but will use the supplied info and language.
+
+ An instance of a
+ Link-OS Information
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS™ version and its control language.
+
+ An open connection to a Link-OS™ printer
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its control language, but will not query the printer for Link-OS information.
+
+ An open connection to a Link-OS™ printer
+ Link-OS Information
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS information, but will not query the printer for
+ its control language.
+
+ An open connection to a Link-OS™ printer
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will not query the printer for any information but will use the supplied info and
+ language.
+
+ An open connection to a Link-OS™ printer
+ Link-OS Information
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Signals that an error has occurred when determining the printer language.
+
+
+
+
+ Constructs a ZebraPrinterLanguageUnknownException with message as the detailed error message
+
+ The error message
+
+
+
+ Constructs a ZebraPrinterLanguageUnknownException with "Unknown printer language" as
+ the detailed error message.
+
+
+
+
+ This interface defines increased capabilities of a Zebra Link-OS™ printer. Link-OS™ printers support many
+ features not supported by non-Link-OS™ Zebra printers.
+
+
+
+
+ Retrieve the TCP port status of the printer and returns a list of TcpPortStatus describing the open ports on the printer.
+
+
+ The open connection from the SDK will be listed in the return value. This method will throw
+ a if it is unable to communicate with the printer.
+ Note: Tabletop printers support more than one established connection on the raw port at a time, so the
+ same port may be listed more than once.
+
+ List of open ports on the ZebraPrinter. Note: The open connection from the SDK will be listed.
+ If there is an issue communicating with the printer (e.g. the connection is not open.)
+
+
+
+ Gets/sets the printer's SNMP get community name.
+
+
+
+
+ Returns specific Link-OS™ information.
+
+
+
+
+ Enumeration of the various print modes supported by Zebra Printers.
+
+
+
+
+ Rewind print mode
+
+
+
+
+ Peel-off print mode
+
+
+
+
+ Tear-off print mode (this also implies Linerless Tear print mode)
+
+
+
+
+ Cutter print mode
+
+
+
+
+ Applicator print mode
+
+
+
+
+ Delayed cut print mode
+
+
+
+
+ Linerless peel print mode
+
+
+
+
+ Linerless rewind print mode
+
+
+
+
+ Partial cutter print mode
+
+
+
+
+ RFID print mode
+
+
+
+
+ Kiosk print mode
+
+
+
+
+ Unknown print mode
+
+
+
+
+ Returns the print mode.
+
+ String representation of the print mode (e.g. "Rewind").
+
+
+
+ Enumeration of the various printer alert conditions which can be set on Zebra Printers.
+
+
+
+
+ Alert condition 'None'
+
+
+
+
+ Alert condition 'Paper Out'
+
+
+
+
+ Alert condition 'Ribbon Out'
+
+
+
+
+ Alert condition 'Head Too Hot'
+
+
+
+
+ Alert condition 'Head Cold'
+
+
+
+
+ Alert condition 'Head Open'
+
+
+
+
+ Alert condition 'Power Supply Too Hot'
+
+
+
+
+ Alert condition 'Ribbon In'
+
+
+
+
+ Alert condition 'Rewind'
+
+
+
+
+ Alert condition 'Cutter Jammed'
+
+
+
+
+ Alert condition 'Printer Paused'
+
+
+
+
+ Alert condition 'PQ Job Completed'
+
+
+
+
+ Alert condition 'Label Ready'
+
+
+
+
+ Alert condition 'Head Element Bad'
+
+
+
+
+ Alert condition 'Basic Runtime'
+
+
+
+
+ Alert condition 'Basic Forced'
+
+
+
+
+ Alert condition 'Power On'
+
+
+
+
+ Alert condition 'Clean Printhead'
+
+
+
+
+ Alert condition 'Media Low'
+
+
+
+
+ Alert condition 'Ribbon Low'
+
+
+
+
+ Alert condition 'Replace Head'
+
+
+
+
+ Alert condition 'Battery Low'
+
+
+
+
+ Alert condition 'RFID Error'
+
+
+
+
+ Alert condition 'All Messages'
+
+
+
+
+ Alert condition 'Cold Start'
+
+
+
+
+ Alert condition 'SGD Set'
+
+
+
+
+ Alert condition 'Motor Overtemp'
+
+
+
+
+ Alert condition 'Printhead Shutdown'
+
+
+
+
+ Alert condition 'Shutting Down'
+
+
+
+
+ Alert condition 'Restarting'
+
+
+
+
+ Alert condition 'No Reader Present'
+
+
+
+
+ Alert condition 'Thermistor Fault'
+
+
+
+
+ Alert condition 'Invalid Head'
+
+
+
+
+ Alert condition 'Country Code Error'
+
+
+
+
+ Alert condition 'MCR Result Ready'
+
+
+
+
+ Alert condition 'PMCU Download'
+
+
+
+
+ Alert condition 'Media Cartridge'
+
+
+
+
+ Alert condition 'Media Cartridge Load Failure'
+
+
+
+
+ Alert condition 'Media Cartridge Eject Failure'
+
+
+
+
+ Alert condition 'Media Cartridge Forced Eject'
+
+
+
+
+ Alert condition 'Cleaning Mode'
+
+
+
+
+ Creates an AlertCondition based on the condition.
+
+ If the condition is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the values of AlertCondition.
+ Based on the string condition
+ If condition is not a valid alert condition.
+
+
+
+ Creates an AlertCondition based on the conditionName.
+
+ If the conditionName is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the conditions in AlertCondition.
+ Based on the string conditionName
+ If conditionName is not a valid alert condition.
+
+
+
+ Returns the alert condition.
+
+ String representation of the alert condition (e.g. "PAPER OUT").
+
+
+
+ Gets/sets the alert condition name
+
+
+
+
+
+
+
+
+
+
+ Enumeration of the various alert destinations which can be set on Zebra Printers.
+
+
+
+
+ Alert Destination 'Serial'
+
+
+
+
+ Alert Destination 'Parallel'
+
+
+
+
+ Alert Destination 'E-Mail'
+
+
+
+
+ Alert Destination 'TCP'
+
+
+
+
+ Alert Destination 'UDP'
+
+
+
+
+ Alert Destination 'SNMP'
+
+
+
+
+ Alert Destination 'USB'
+
+
+
+
+ Alert Destination 'HTTP-POST'
+
+
+
+
+ Alert Destination 'Bluetooth'
+
+
+
+
+ Alert Destination 'SDK'
+
+
+
+
+ Returns the alert destination as a string.
+
+
+
+
+ Creates an AlertDestination based on the destination.
+
+ If the destination is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the values of AlertDestination.
+ Based on the destination
+ If destination is not a valid alert destination.
+
+
+
+ Creates an AlertDestination based on the destinationName.
+
+
+ If the destinationName is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the destinations in AlertDestination.
+ Based on the destinationName
+ If destinationName is not a valid alert destination.
+
+
+
+ Returns the alert destination.
+
+ String representation of the alert destination (e.g. "TCP").
+
+
+
+ Gets/Sets the alert destination name.
+
+
+
+
+
+
+
+
+
+
+ Decide whether to use the status channel or the print channel to get settings from the printer. For a
+ multichannel connection, prefer the status channel.
+
+ A connection to the printer.
+ The appropriate connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true if value is within the setting's range
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A class that represents an internal device setting.
+
+
+
+
+ Gets or sets the setting's value.
+
+
+
+
+ Gets or sets a string describing the data type of the setting.
+
+
+
+
+ Gets or sets a string that describes the acceptable range of values for this setting.
+
+
+
+
+ Gets or sets if this setting can be applied when loading a profile
+
+
+
+
+ Gets or sets if this setting can be applied when loading a backup
+
+
+
+
+ Gets or sets a string that describes the access permissions for the setting. RW is returned for settings that have
+ read and write permissions. R is returned for settings that are read-only W is returned for settings that are write-only
+
+
+
+
+ Returns true if the setting does not have write access.
+
+
+
+
+ Returns true if the setting does not have read access.
+
+
+
+
+ Returns true if value is valid for the given setting.
+
+ Setting value.
+ true if value is within the setting's range
+
+
+
+
+ Retruns a human readable string of the setting.
+
+ Setting [settingData=value=Value type=Type range=Range].
+
+
+
+ Signals that an error occurred retrieving a setting
+
+
+
+
+ Constructs a SettingsException with Setting not found as the detailed error message.
+
+
+
+
+ Constructs a SettingsException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a SettingsException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception
+
+
+
+ Interface that provides access to device related settings.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Retrieve all of the setting identifiers for a device.
+
+
+ These are the IDs that may be used as keys for retrieving and updating settings for a device.
+
+
+ Set of identifiers available for a device.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded
+
+
+
+ Retrieves the device's setting value for a setting id.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the setting could not be retrieved.
+
+
+
+ Retrieves the device's setting values for a list of setting IDs.
+
+ List of setting IDs.
+ The settings' values.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieve all settings and their attributes.
+
+ Map of setting IDs and setting attributes contained in the profile
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved
+
+
+
+ Retrieves all of the device's setting values.
+
+ Values of all the settings provided by the device.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded
+
+
+
+ Sets the setting to the given value.
+
+ The setting id.
+ The setting's value
+ If there is an error communicating with the printer.
+ If the setting is read only, does not exist, or if the setting could not be set
+
+
+
+ Set more than one setting.
+
+ Map a setting ID to the new value for the setting.
+ If there is an error communicating with the printer.
+ If the settings cannot be sent to the device.
+
+
+
+ Retrieves the allowable range for a setting.
+
+ The setting id.
+ The setting's range as a string
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if value is valid for the given setting.
+
+ The setting id.
+ The setting's value
+ True if value is valid for the given setting.
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if the setting is read only.
+
+ The setting id
+ True if the setting is read only
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if the setting is write only.
+
+ The setting id
+ True if the setting is write only
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns the data type of the setting.
+
+ The setting id
+ The data type of the setting (e.g. string, bool, enum, etc.)
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Change or retrieve printer settings.
+
+
+ Due to the setting verification and validation, additional time and data traffic will be needed for each
+ ProcessSettingsViaMap method call. It is recommended to bundle all settings into one map and one method call to
+ reduce this overhead.
+
+ The settings to change or retrieve
+ Results of the setting commands
+ If there is an error communicating with the printer.
+ If a setting is malformed, or one or more settings could not be set.
+
+
+
+ Methods to use the LinkOS 3.2 JSON syntax to get the ranges for a list of SDGs, without the need to use an allconfig.
+
+
+
+
+ Use the LinkOS 3.2 JSON syntax to get the ranges for a list of SDGs, without the need to use an allconfig.
+
+ A list of SGD names.
+ A connection to a LinkOS printer.
+ the current printer control language
+ LinkOS version
+ A map from setting name to a string representing the range.
+ If the printer is not LinkOS 3.2 or higher.
+ If the connection fails.
+ If there is an error parsing the JSON response from the printer.
+
+
+
+ Parse the JSON response from the JSON get range command. Assumes that the only field requested in the JSON get
+ command was the "range" field.
+
+ Response from a LinkOS 3.2 or greater printer.
+ Map from setting names to range strings.
+
+
+
+ Methods to use the LinkOS 3.2 JSON syntax to get the values for a list of SDGs, without the need to use an allconfig.
+
+
+
+
+ Get the values for a list of settings from a printer.
+
+
+ Use either JSON or SGD get commands to request the values from the printer,
+ depending on the connection type and the printer language. The default
+ timeout values from the connection will be used when communicating with the
+ printer. If printerConnection is a MultichannelConnection, prefer the status channel.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Set each of the settings in settingValues on a printer.
+
+
+ Use either JSON or SGD set commands to set the values on the printer, depending on the connection type and
+ the printer language.The default timeout values from the connection will be used when communicating with the
+ printer.If printerConnection is a MultichannelConnection, prefer the status channel.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+
+ Get the values for a list of settings from a LinkOS printer.
+
+
+ Use JSON to request the values from the printer. The default timeout values from the connection will
+ be used when communicating with the printer.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Get the values for a list of settings from a printer.
+
+
+ Use SGD get commands to request the values from the printer.The default timeout values from the connection
+ will be used when communicating with the printer.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+ Decide whether JSON can be used to get settings from the printer, or whether SGD setvar/getvar must be used.
+
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ true if JSON can be used, false if SGD setvar/getvar must be used.
+
+
+
+ Set each of the settings in settingValues on a LinkOS printer.
+
+
+ Use JSON to set the values on the printer. The default timeout values from the connection will be
+ used when communicating with the printer.Return a map of the values from the printer after the set
+ operation was performed.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Set each of the settings in settingValues on a printer.
+
+
+ Use SGD set commands to set the values on the printer. The default timeout values from the connection will
+ be used when communicating with the printer.Return a map of the values from the printer after the set operation was performed.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "SH", "H8", "C"
+
+
+
+
+ ESC + h (0x1b 0x68)
+
+
+
+
+ ESC + V (0x1b 0x56)
+
+
+
+
+ ESC + FormFeed (0x1b 0x0C)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Determines if the device is a zebra card printer
+
+ true if device is a card printer
+
+
+
+ 0, marks free or usable space
+
+
+
+
+ 1, bitmap or smooth font
+
+
+
+
+ 2, barcode data
+
+
+
+
+ 3, stored ZPL format
+
+
+
+
+ 4, GRF graphic image object
+
+
+
+
+ 5, print map - unused
+
+
+
+
+ 6, general purpose storage - used by DBCOs for parsing and bitmaps
+
+
+
+
+ 7, Intellifont cache
+
+
+
+
+ 8, wildcard
+
+
+
+
+ 9, Mag tables
+
+
+
+
+ 10, Multiplication tables
+
+
+
+
+ 11, Mirror tables
+
+
+
+
+ 12, use context-specific default
+
+
+
+
+ 13, magic mode buffers
+
+
+
+
+ 14, access locks for certain ZPL commands
+
+
+
+
+ 15, JisToUnicode tables
+
+
+
+
+ 16, Saved BASIC program
+
+
+
+
+ 17, Data storage object
+
+
+
+
+ 18, PNG graphic image object
+
+
+
+
+ 19, Downloadable Bar Code object
+
+
+
+
+ 20, BAZ encrypted BASIC object
+
+
+
+
+ 21, Stored label format
+
+
+
+
+ 22, TrueType Font
+
+
+
+
+ 23, PCX bitmap
+
+
+
+
+ 24, Bitmap
+
+
+
+
+ 25, GEM bitmap graphic
+
+
+
+
+ 26, DPL Datamax 7-bit format
+
+
+
+
+ 27, TrueType Extension Font
+
+
+
+
+ 28, TT? we will list TTE and TTF objects on the same label
+
+
+
+
+ 29, WLAN security certificate for TLS and TTLS
+
+
+
+
+ 30, WLAN security certificate for FAST
+
+
+
+
+ 31, stored EPL format
+
+
+
+
+ 32, Mirror feedback template file
+
+
+
+
+ 33, WML menu file
+
+
+
+
+ 34, MIB file for auto-generated SNMP MIB
+
+
+
+
+ 35, Comma Seperated Values file
+
+
+
+
+ 36, User-custom webpages
+
+
+
+
+ 37, BAE DES encrypted BASIC object
+
+
+
+
+ 38, Text file
+
+
+
+
+ 39, Executable code - MUST BE LAST IN LIST!
+
+
+
+
+ The contentStream will be exhausted. It is all read in to determine the metadata, you need a new stream to read
+ from for other stream operations.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ appl.name
+
+
+
+
+ device.host_status
+
+
+
+
+ ip.discovery_packet
+
+
+
+
+ device.languages
+
+
+
+
+ device.reset
+
+
+
+
+ Printer Reset JSON Command {}{"device.reset":""}
+
+
+
+
+ device.prompted_network_reset
+
+
+
+
+ Printer Reset JSON Command {}{"device.prompted_network_reset":"y"}
+
+
+
+
+ ezpl.restore_defaults
+
+
+
+
+ Printer Reset JSON Command {}{"ezpl.restore_defaults":"reload printer"}
+
+
+
+
+ device.prompted_default_network
+
+
+
+
+ Printer Reset JSON Command {}{"device.prompted_default_network":"y"}
+
+
+
+
+ zpl.calibrate
+
+
+
+
+ Calibrate Command {}{"zpl.calibrate":""}
+
+
+
+
+
+
+
+ ! U1 getvar "command"\r\n
+
+
+
+ Wrapper class for System.Threading.Tasks Task functions. For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only. Wrapper for to not throw an
+ exception. Causes the currently executing thread to sleep (temporarily cease execution) for the specified number
+ of milliseconds. The thread does not lose ownership of any monitors.
+
+
+
+
+ @param targetStream
+
+
+ @param data
+ @param offset
+ @param length
+ @throws IOException
+
+
+
+ Windows line terminator - carriage return + line feed
+
+
+
+
+ Line feed
+
+
+
+
+
+
+ The string that should be searched.
+ The list of patterns to search for.
+ start index in inputString
+ The index in inputString of the first pattern that is found. If none of the patterns are
+ found, -1 is returned.
+
+
+
+ Split input into lines.
+
+
+ Lines are terminated by <CR><LF>. The last line does not have to
+ end in <CR><LF>, although it may.The <CR><LF> terminators are removed.
+
+ Text to be split into lines.
+ the delimiter to split on
+ An array of lines - with trailing CRLF removed.
+
+
+
+ Join an array of strings into a single string separated by a delimiter.
+
+
+
+ a delimited list of the elements in strings
+
+
+
+ Count the number of distinct occurrences of substring in stringToSearch.
+
+
+ If there are overlapping occurrences of substring in stringToSearch, counting starts again after the
+ end of each match.
+
+ CountSubstringOccurences(" aaa", "aa")
+ returns 1, not 2.
+
+
+ String to be searched
+ String to search for
+ number of occurrences
+
+
+
+ Remove all double quotes from str
+
+ the string to strip the quotes from
+ str minus the quotes
+
+
+
+
+
+ String to be padded
+ character used for padding
+ total length the return string should be
+ whether or not to append padding in front of initialString
+
+
+
+
+
+
+ the prefixes to search for
+ string to search
+ true if prefixes exists in value
+
+
+
+
+
+ The hex representation of the byte array
+
+
+
+
+
+
+ A byte array
+
+
+
+
+
+
+ (e.g. 1234 Bytes, 9876 Main St)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Executes a group of tasks with a cap on the number of concurrent threads running.
+
+
+
+
+
+ Group of tasks to execute
+ Number of threads to execute concurrently
+
+
+
+ Internal printer representation of the ZPL format prefix
+
+
+
+
+ Internal printer representation of the ZPL command prefix
+
+
+
+
+ Internal printer representation of the ZPL delimiter
+
+
+
+
+ Internal printer representation of the ZPL format prefix, as a String
+
+
+
+
+ Internal printer representation of the ZPL command prefix, as a String
+
+
+
+
+ Internal printer representation of the ZPL delimiter, as a String
+
+
+
+
+ Printer Status Command ~HI
+
+
+
+
+ Printer Expanded Status Command ~HS
+
+
+
+
+ Config Label ~WC
+
+
+
+
+ Directory label ^XA^WD*:*.*^XZ
+
+
+
+
+ Config Label ~WL
+
+
+
+
+ Printer Calibrate Command ~JC
+
+
+
+
+ Printer Reset Command ~JR
+
+
+
+
+ Printer Network Reset Command ~WR
+
+
+
+
+ Printer restore defaults command ^XA^JUF^XZ
+
+
+
+
+ Printer get super host status command ^XA^HZA^XZ
+
+
+
+
+ Printer get storage info ^XA^HW*:XXXX.QQQ^XZ Use XXXX.QQQ to get drive info without matching a file name
+
+
+
+
+ Printer get file drive info for Linkos 2.5 and higher
+
+
+
+
+ Printer get drive listing for Linkos 2.5 and higher
+
+
+
+
+
+
+ the command to decorate with the internal command prefix
+ the command decorated with the internal ZPL command prefix. If command contains a '~' it
+ will be replace with the internal command prefix, otherwise the internal command prefix will simply be prefixed
+ to the front of command
+
+
+
+
+
+ the format to decorate with the internal format prefix
+ the format decorated with the internal ZPL format prefix. If format contains a '^' it will
+ be replace with the internal format prefix, otherwise the internal format prefix will simply be prefixed to the
+ front of format
+
+
+
+
+
+ the format to decorate with the internal format prefix
+ the format decorated with the internal ZPL format prefix. If format contains a '^' it will
+ be replace with the internal format prefix, otherwise the internal format prefix will simply be prefixed to the
+ front of format
+
+
+
+ Enumeration of a task's status.
+
+
+
+
+ Configuration state indicating the task has not been started.
+
+
+
+
+ Configuration state indicating the task is in process.
+
+
+
+
+ Configuration state indicating the task completed successfully.
+
+
+
+
+ Configuration state indicating the task failed.
+
+
+
+
+ ENumeration to determine how the Weblink address is set.
+
+
+
+
+ Looks at current weblink settings and determine which location to set based on if the URL is set and valid and if
+ the printer is connected to the address.
+
+
+
+
+ Overrides any setting in Weblink location 1.
+
+
+
+
+ Overrides any setting in Weblink location 2.
+
+
+
+
+ Enumeration of the weblink configuration task's state.
+
+
+
+
+ Configuration state indicating the task is creating a connection to the printer.
+
+
+
+
+ Configuration state indicating the task is retrieving the printer's settings.
+
+
+
+
+ Configuration state indicating the task is configuring the weblink setting.
+
+
+
+
+ Configuration state indicating the task is restarting the printer.
+
+
+
+
+ Configuration state indicating the task is waiting for the printer to restart and then reconnect.
+
+
+
+
+ Configuration state indicating the task is validating the printer's profile manager connection.
+
+
+
+
+ Callback for updating the status of a Weblink configuration task.
+
+
+
+
+ Sets the new state of the Weblink Configurator defined by WeblinkConfigurationState.
+
+ The updated WeblinkConfiguration state.
+
+
+
+ Provides a custom message for the current weblink configuration state.
+
+ Custom message.
+
+
+
+ Task to configure a printers Weblink setting.
+
+
+
+
+ Initializes a new instance of the WeblinkConfiguratior class.
+
+ The to configure.
+
+
+
+ Initializes a new instance of the WeblinkConfiguratior class.
+
+ A to a printer
+
+
+
+ Configures a printer to connect to a Zebra Weblink server and attempts to validate a successful connection.
+
+
+ Please note that this function will block while waiting for the printer to reset and while validating the
+ connection. This could take an excess of 60 seconds.
+
+ Weblink address to set.
+ Determines which weblink setting will be configured.
+ Callback object to report task status.
+ Thrown when a configuration error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the current .
+
+
+
+
+ Returns the of the weblink configuration task.
+
+
+
+
+ Returns true if the supplied weblink url is valid for the Zebra weblink server.
+
+ Potential URL to a Zebra Weblink server.
+ true if the URL is a properly formed URL for the Zebra Weblink server.
+
+
+
+ Signals that an error occured while configuring weblink.
+
+
+
+
+ Constructs a ZebraWeblinkException with a base Exception.
+
+ The base exception.
+
+
+
+ Constructs a ZebraWeblinkException with a custom detailed error message.
+
+ The custom error message.
+
+
+
diff --git a/bin/Release/SdkApi.Desktop.Usb.dll b/bin/Release/SdkApi.Desktop.Usb.dll
new file mode 100644
index 0000000..6124fdd
Binary files /dev/null and b/bin/Release/SdkApi.Desktop.Usb.dll differ
diff --git a/bin/Release/SdkApi.Desktop.dll b/bin/Release/SdkApi.Desktop.dll
new file mode 100644
index 0000000..4beb6ab
Binary files /dev/null and b/bin/Release/SdkApi.Desktop.dll differ
diff --git a/bin/Release/SdkApi.Desktop.xml b/bin/Release/SdkApi.Desktop.xml
new file mode 100644
index 0000000..4474204
--- /dev/null
+++ b/bin/Release/SdkApi.Desktop.xml
@@ -0,0 +1,1410 @@
+
+
+
+ SdkApi.Desktop
+
+
+
+
+
+
+
+
+
+
+ Gets the expected bare word arguments.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Max length of optionTitle is 12 characters.
+
+
+
+
+
+
+ Max length of optionTitle is 12 characters.
+
+
+
+
+
+
+
+ Max length of optionTitle is 12 characters.
+
+
+
+
+
+
+
+
+ Hide the option so it does not appear on the help menu.
+ Option object.
+
+
+
+
+
+ Option object.
+
+
+
+
+
+
+
+
+
+ True if the Option is hidden from the help menu.
+
+
+
+
+
+
+
+ Argument name if there is one.
+
+
+
+
+ Whether command has arg.
+
+
+
+
+ Long option.
+
+
+
+
+ Short option.
+
+
+
+
+ Description.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes a Bluetooth® connection to a printer. (Windows 10 only)
+
+
+ In order to connect to a device with Bluetooth®, the device must be discoverable, authentication must be enabled,
+ and the authentication pin must be set (1-16 alphanumeric characters).
+ The encryption type and whether or not it is used is determined by the device initiating the connection and not
+ the device being connected to.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ Printer connection error or unsupported operating system.
+ For internal use of the Zebra Printer API only.
+
+
+
+ Constructs a new Bluetooth® connection with the given macAddress.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 10
+ seconds for any data to be received. If no more data is available after 500 milliseconds the read operation is assumed to be
+ complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The device's MAC address.
+ Unsupported operating system.
+
+
+
+ Constructs a new Bluetooth® connection with the givenmacAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete.
+
+ The device's MAC address.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Unsupported operating system.
+
+
+
+ Exposed this protected constructor for testing. We can pass in a mock Connector rather than the BT specific one.
+ The MAC address is a hexadecimal string with no separators between the octets (e.g. 0011BBDD55FF).
+
+
+
+
+
+ Unsupported operating system.
+
+
+
+ Opens a Bluetooth® connection as specified in the constructor.
+
+
+
+
+
+ Closes the Bluetooth® connection.
+
+
+
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name changes on the
+ device, it will not be refreshed until the connection is closed and reopened.
+
+ Bluetooth:[MAC Address]:[Friendly Name].
+
+
+
+
+ Gets the MAC address and the friendly name as the description.
+
+ [MAC Address]:[Friendly Name]
+
+
+
+
+ Gets the MAC address which was passed into the constructor. The MAC address is a hexadecimal string with
+ separators between the octets (e.g. 00:11:BB:DD:55:FF).
+
+
+
+
+ Gets the friendly name of the Bluetooth® connection. The friendly name is obtained from the device when
+ this connection is opened. If the friendly name changes on the device, it will not be refreshed until the
+ connection is closed and reopened.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes an insecure Bluetooth® connection to a printer. Insecure Bluetooth® connections do not require
+ the device and the printer to be paired. (Windows 10 only)
+
+
+
+
+
+ For Zebra Internal Use Only.
+
+
+ Unsupported operating system.
+
+
+
+ Constructs a new insecure Bluetooth® connection with the given macAddress.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for
+ any data to be received. If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ .
+
+ The device's MAC address.
+ Unsupported operating system.
+
+
+
+ Constructs a new insecure Bluetooth® connection with the given macAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the specified timeouts for . The timeout is a maximum of maxTimeoutForRead
+ milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData milliseconds the read operation
+ is assumed to be complete.
+
+ The device's MAC address.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Unsupported operating system.
+
+
+
+ Establishes a Bluetooth® status only connection to a Link-OS printer. (Windows 10 only)
+
+
+ A must be actively open before this connection can be used.
+ This connection requires Link-OS firmware 2.5 or higher. This channel will not block the printing channel,
+ nor can it print. If you wish to print, see .
+ Note: In order to connect to a device with Bluetooth®, the device must be discoverable, authentication
+ must be enabled, and the authentication pin must be set (1-16 alphanumeric characters).
+ The encryption type and whether or not it is used is determined by the device initiating the connection and not the
+ device being connected to.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ Printer connection error or unsupported soperating system.
+ For internal use of the Zebra Printer API only.
+
+
+
+ Constructs a new Bluetooth® connection with the given macAddress.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5
+ seconds for any data to be received. If no more data is available after 500 milliseconds the read operation is
+ assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The device's MAC address.
+ Unsupported operating system.
+
+
+
+ Constructs a new status only Bluetooth® connection with the given macAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete.
+
+ The device's MAC address.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Unsupported operating system.
+
+
+
+ Exposed this protected constructor for testing. We can pass in a mock Connector rather than the BT specific one.
+ The MAC address is a hexadecimal string with no separators between the octets (e.g. 0011BBDD55FF).
+
+
+
+
+
+ Unsupported operating system.
+
+
+
+ Opens a status only Bluetooth® connection as specified in the constructor.
+
+
+ If the device does not support status connections (that is, if it is not a Link-OS 2.5 or higher device) calling
+ open will throw a ConnectionException.
+
+
+
+
+
+ Closes the Bluetooth® connection.
+
+
+
+
+
+ Returns Bluetooth_STATUS:[MAC Address]:[Friendly Name].
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name changes on the
+ device, it will not be refreshed until the connection is closed and reopened.
+
+
+ Bluetooth_STATUS:[MAC Address]:[Friendly Name].
+
+
+
+ Return the MAC address and friendly name of the status port as the description.
+
+ [MAC Address]:[Friendly Name]
+
+
+
+
+ Returns the MAC address which was passed into the constructor.
+
+
+ The MAC address is a hexadecimal string with separators between the octets (e.g. 00:11:BB:DD:55:FF).
+
+
+
+
+ Returns the friendly name of the Bluetooth® connection.
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name
+ changes on the device, it will not be refreshed until the connection is closed and reopened.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes a status only insecure Bluetooth® connection to a Link-OS printer. (Windows 10 only)
+
+
+ A must be actively open before this connection can be used.
+ This connection requires Link-OS firmware 2.5 or higher. This channel will not block the printing channel, nor can it print.
+ If you wish to print, see . Insecure Bluetooth® connections do not require the device
+ and the printer to be paired.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ Unsupported operating system.
+
+
+
+
+ Constructs a new status only insecure Bluetooth® connection with the given macAddress.
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5
+ seconds for any data to be received. If no more data is available after 500 milliseconds the read operation is
+ assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ Unsupported operating system.
+
+
+
+ Constructs a new status only insecure Bluetooth® connection with the given macAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete.
+
+ The device's MAC address.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Unsupported operating system.
+
+
+
+ Builds a Connection from a description string. The description string is used to specify a connection to a specific
+ device over TCP, USB, or Bluetooth® (Windows 10 only).
+
+
+ The description string may be of the explicit forms:
+ "TCP:192.168.1.4:6101" -- creates a TCP connection to the device with IP address 192.168.1.4 on port 6101.
+ "TCP:192.168.1.4" -- creates a TCP connection to the device with IP address 192.168.1.4 on default port 9100.
+ "TCP:dnsName:6101" -- creates a TCP connection to the device with 'dnsName' on port 6101.
+ "TCP:dnsName" -- creates a TCP connection to the device with 'dnsName' on default port 9100.
+ "TCP_MULTI:192.168.1.4" -- creates a Multichannel TCP connection to the device with '192.168.1.4' using the default ports for both the printing channel(9100) and the status channel(9200).
+ "TCP_MULTI:192.168.1.4:1234" -- creates a Multichannel TCP connection to the device with '192.168.1.4' using the given port for the printing channel(1234) and the default port for the status channel(9200).
+ "TCP_MULTI:192.168.1.4:1234:5678" -- creates a Multichannel TCP connection to the device with '192.168.1.4' using the given ports for the printing channel(1234) and the status channel(5678).
+ "TCP_MULTI:dnsName:1234:5678" -- creates a Multichannel TCP connection to the device with 'dnsName' using the given ports for the printing channel(1234) and the status channel(5678).
+ "TCP_STATUS:192.168.1.4:1234" -- creates a TCP status only connection to the device with IP address 192.168.1.4 on port 1234.
+ "TCP_STATUS:192.168.1.4" -- creates a TCP status only connection to the device with IP address 192.168.1.4 on the default status port 9200.
+ "USB:deviceName" -- creates a USB connection (through the ZebraDesigner driver) to the device with printer name 'deviceName'.
+ "USB_DIRECT:\\?\usb#vid_0a5f&pid_00bd#qln320#..." -- creates a USB connection (direct) to the device using '\\?\usb#vid_0a5f&pid_00bd#qln320#...' as the USB symbolic name.
+ "BT:11:22:33:44:55:66" -- creates a Bluetooth® connection to the device using '11:22:33:44:55:66' as the MAC address. (Windows 10 only)
+ "BT_MULTI:11:22:33:44:55:66" -- creates a multichannel Bluetooth® connection to the device using '11:22:33:44:55:66' as the MAC address. (Link-OS 2.5 or higher for the status channel, Windows 10 only)
+ "BT_STATUS:11:22:33:44:55:66" -- creates a status only Bluetooth® connection to the device using '11:22:33:44:55:66' as the MAC address. (Link-OS 2.5 or higher, Windows 10 only)
+
+ Generic text may also be used to attempt to specify a device. For example a description string of "genericText" will
+ attempt to connect to a device using the following priority:
+
+ -
+ TCP_MULTI
+
+ -
+ TCP
+
+ -
+ TCP_STATUS
+
+ -
+ USB
+
+ -
+ USB_DIRECT
+
+ -
+ BT_MULTI
+
+ -
+ BT
+
+ -
+ BT_STATUS
+
+
+
+ If you supply the string 'MyString'. This could be interpreted to be either a DNS name, or a USB device name.
+ ConnectionBuilder will attempt to connect to this string given the above priority order.
+ If you supply a more specific string, such as '192.168.2.3', ConnectionBuilder will more efficiently interpret this
+ string as being an IP address and, therefore, only attempt the TCP connections.
+ Note: Colon (':') characters are not supported in dnsName, friendlyName, uniqueId, deviceName, or genericText fields.
+ The following is an example of building a connection from a string:
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Add a connection type to the ConnectionBuilder.
+
+ Connection class.
+
+
+
+ Creates a Connection type based on the contents of descriptionString.
+ "TCP:192.168.1.2:9100"
+ The format of the input string is: [prefix:] address [: port_number(s)].
+
+ -
+ Prefix is either TCP_MULTI, TCP, TCP_STATUS, USB (if applicable), USB_DIRECT (if applicable), BT_MULTI (if applicable),
+ BT (if applicable), or BT_STATUS (if applicable).
+
+ -
+ The format of address depends on the prefix
+
+ - USB : address is the printer driver name.
+ - USB_DIRECT : address is the USB symbolic name.
+ - TCP : address is either a DNS name or an IPv4 address.
+ - BT : address is the MAC address. (Windows 10 only)
+
+
+ - port_number(s) is optional, and only applicable for TCP connections.
+ -
+ Examples:
+
+ - TCP:ZBR3054027:9100
+ - TCP_MULTI:ZBR3054027:9100:9200
+ - USB:ZDesigner Qln320
+ - USB_DIRECT:\\?\usb#vid_0a5f&pid_00bd#qln320#...
+ - BT:11:22:33:44:55:66
+ - 10.1.2.3
+
+
+
+ Connection derived from the contents of descriptionString.If a connection could not be established for the given descriptionString.
+
+
+
+ Establishes a USB connection to a printer.
+
+ This class is only supported on Windows PC platforms.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+ Information required to instantiate a DriverPrinterConnection
+
+
+
+
+ Initializes a new instance of the DriverPrinterConnection class.
+
+
+ This constructor will use the default timeouts for .
+ The default timeout is a maximum of 5 seconds for any data to be received. If no more
+ data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ .
+
+ The printer name.
+
+
+
+
+ Initializes a new instance of the DriverPrinterConnection class.
+
+
+ This constructor will use the specified timeouts for .
+ The timeout is a maximum of maxTimeoutForRead milliseconds for any data to be received.
+ If no more data is available after timeToWaitForMoreData milliseconds the read operation
+ is assumed to be complete.
+
+ The printer name.
+ The maximum milliseconds to wait for the initial data to be received.
+ The maximum milliseconds to wait for additional data to be received.
+
+
+
+
+ Returns the name of the printer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns USB:[PrinterName].
+
+ The PrinterName is the parameter which was passed into the constructor.
+
+
+
+ Return the printer name as the description.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Releases all resources used by the
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This does not work at the moment so do not use
+
+
+
+
+
+ This sort of works on desktop but only worked on tablet if the bt devices window was open
+ so do not use
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 35 seconds was chosen for a Max Timeout so that if the pairing request is
+ ignored it will close and deny the pair before we hit the Max Timeout and close.
+
+
+
+
+ Establishes a Bluetooth® label and status connection to a printer. (Windows 10 only)
+
+
+ In order to connect to a device with Bluetooth®, the device must be discoverable,
+ authentication must be enabled, and the authentication pin must be set (1-16 alphanumeric characters).
+ The encryption type and whether or not it is used is determined by the device initiating the connection and not
+ the device being connected to.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ Unsupported operating system.
+
+
+
+ Initializes a new instance of the MultichannelBluetoothConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a
+ maximum of 5 seconds for any data to be received. If no more data is available after 500 milliseconds the read
+ operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ or
+ .
+
+ The MAC Address of the Printer.
+ Unsupported operating system.
+
+
+
+ Initializes a new instance of the MultichannelBluetoothConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels.
+ The timeout is a maximum of maxTimeoutForRead milliseconds for any data to be received. If no more
+ data is available after timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+ If you wish to specify different timeouts for each channel, use
+ }.
+
+ The MAC Address of the Printer.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Unsupported operating system.
+
+
+
+ Initializes a new instance of the MultichannelBluetoothConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels.
+ The timeout is a maximum of printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds
+ for any data to be received on the printing/status channels respectively. If no more data is available after
+ printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData milliseconds on the printing/status
+ channels respectively the read operation is assumed to be complete.
+
+ The MAC Address of the Printer.
+ The maximum time, in milliseconds, to wait for any data to be received on
+ the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the
+ initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on
+ the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the
+ initial read on the status channel.
+ Unsupported operating system.
+
+
+
+ Opens both the printing and status channel of this Multichannel connection.
+
+
+ If neither channel can be opened, then a is thrown. When this Multichannel connection
+ is no longer needed, you must call to free up system resources.
+
+ If the connection cannot be established.
+
+
+
+
+
+
+ Returns Bluetooth_MULTI:[MAC Address]:[Friendly Name].
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name changes on the
+ device, it will not be refreshed until the connection is closed and reopened.
+
+ Bluetooth_MULTI:[MAC Address]:[Friendly Name].
+
+
+
+ Return the MAC address as the description.
+
+
+
+
+
+
+
+
+
+
+ Unsupported operating system.
+
+
+
+ Establishes a direct connection to an attached Zebra USB printer without requiring the presence of a USB driver.
+
+
+
+
+ The symbolic name of the printer.
+
+
+
+
+ Initializes a new instance of the UsbConnection class.
+
+ This constructor will attempt a connection to the printer specified in the symbolic name.
+ The USB symbolic name for the device returned by the UsbDiscoverer.GetZebraUsbPrinters() member function.
+ If the system is not running the Windows operating system or if the device cannot be found.
+
+
+
+ Initializes a new instance of the UsbConnection class.
+
+ This constructor will attempt a connection to the printer specified in the symbolic name.
+ The USB symbolic name for the device returned by the UsbDiscoverer.GetZebraUsbPrinters() member function.
+ Maximum time to wait for read data
+ Maximum time to wait for more data after intial data is sent from printer
+ If the system is not running the Windows operating system or if the device cannot be found.
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the UsbConnection class.
+
+ This constructor will attempt a connection to a printer that meets the connectionInfo criteria
+ Printer serial number or model number
+ Printer connection error
+ Cannot find specified device among attached devices
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads up to maxBytesToRead into byte array
+
+ The maximum number of bytes to read.
+ Performing reads using DriverPrinterConnection and UsbConnection concurrently could cause indeterminate reads.
+
+
+
+ Returns number of bytes currently read from printer.
+
+ Number of bytes currently read from printer.
+ If an I/O error occurs.
+
+
+
+
+
+
+
+
+
+ Gets the printer's serial number.
+
+
+
+
+ Returns the Connection Builder name of the USB device.
+
+
+
+
+
+
+
+
+
+
+ Returns printer's manufacturer.
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ A factory used to acquire an instance of a ZebraImageI.
+
+
+
+
+ Creates an instance of from the image specified in image.
+
+ The image
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If image is null
+
+
+
+ Creates an instance of from the image specified in fullPath.
+
+ The full path of the image.
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If fullPath is null
+
+
+
+ Creates an instance of from the image data specified in imageData
+
+ A stream containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null
+
+
+
+ A class that discovers Bluetooth® devices.
+
+
+
+
+
+ Find Bluetooth® devices that are discoverable.
+
+ This method will return all devices found, not just Zebra printers.
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ For communication or discovery errors.
+
+
+
+ Find Bluetooth® devices that are discoverable.
+
+ This method will return all devices found, not just Zebra printers.
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ For communication or discovery errors.
+
+
+
+ Find Bluetooth® devices that are discoverable.
+
+ This method will return all devices found, not just Zebra printers.
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A custom instance used to determine whether or not a discovered device should be ignored.
+ For communication or discovery errors.
+
+
+
+ Find Bluetooth® devices that are discoverable.
+
+ This method will return all devices found, not just Zebra printers.
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A custom instance used to determine whether or not a discovered device should be ignored.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ For communication or discovery errors.
+
+
+
+ Find services (ConnectionChannels) that are supported by the device at macAddress.
+
+ MAC address of the device.
+ A instance that is used to handle service discovery events.
+ The Bluetooth MAC address is invalid.
+
+
+
+ DeviceFilter is an interface to allow the user to write custom code to determine whether or not the
+ BluetoothDiscoverer should include a particular BluetoothDevice in it's result set.
+
+
+
+
+ Method called by a BluetoothDiscoverer to determine whether or not a Bluetooth® device should be added to
+ it's list of discovered devices.
+
+ BluetoothDevice to potentially be added to the list of of discovered Bluetooth® devices.
+ A bool indicating whether or not a particular BluetoothDevice should be added.
+
+
+
+ Instance of DiscoveredPrinter that is returned when performing a Bluetooth® discovery.
+
+
+
+
+ The friendly name of the Bluetooth® device.
+
+
+
+
+ Returns an instance of a DiscoveredPrinterBluetooth with macAddress.
+
+ MAC address of the printer.
+ Friendly name of the printer.
+
+
+
+
+
+
+ Instance of that is returned when performing a Driver Discovery.
+
+
+
+
+ Local printer name associated with the driver.
+
+
+
+
+ Returns an instance of a with printerName, driverName,
+ and portNames.
+
+ The printer name.
+ The name of the ZebraDesigner driver.
+ The port name.
+
+
+
+ Returns the name of the printer.
+
+ The printer name.
+
+
+
+
+
+
+ Instance of that is returned when performing a search of currently connected Zebra USB printers.
+
+
+
+
+ Returns an instance of a built using built using the provided symbolicName.
+
+ The symbolic name for the printer returned by
+ or .
+ If a connection to the discover USB printer cannot be established.
+
+
+
+ Returns an instance of a built using the provided symbolicName and
+ attributes.
+
+ The symbolic name for the printer returned by
+ or .
+ A map of attributes associated with the discovered USB printer.
+ If a connection to the discover USB printer cannot be established.
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface definition for a callback to be invoked for service discovery events.
+
+
+
+
+ This method is invoked when a service has been discovered. This method will be invoked for each service that is found.
+
+ A discovered channel.
+
+
+
+ This method is invoked when discovery is finished.
+
+
+
+
+ A class used to discover a printer described by a URL. (Windows 10 only)
+
+
+
+
+ This method will search using a combination of discovery methods to find the printer described by the specified URL. (Windows 10 only)
+
+
+ This method will invoke the method for each interface that
+ the specified printer is found. will be invoked when the discovery is
+ finished and will be invoked when any errors are encountered during
+ discovery. When is invoked, the discovery will be canceled and
+ will not be invoked.
+ This method will typically be used when reading an NFC tag attached to a Zebra printer. To launch your app when a
+ Zebra NFC tag is read:
+
+ - Register to listen for Zebra NFC Tag scans in your application
+ - Handle the NFC scan in your application
+
+
+ The URL describing the targeted printer (Typically, this information is encoded on an NFC tag attached
+ to the printer)
+ Example:
+ "http://www.zebra.com/apps/r/nfc?mBL=00225832C75F&mW=000000000000&mE=000000000000&c=QN3-AUBA0E01-00&s=XXQLJ112600422&v=0"
+ A instance that is used to handle discovery events (e.g. found a
+ printer, errors, discovery finished).
+ If an error occurs while starting the discovery (errors during discovery will be sent
+ via ).
+
+
+
+
+ A class used to discover USB connected Zebra printers. Printers can be accessed directly or through a Zebra Designer
+ printer driver if your printer supports the driver.
+
+
+
+
+
+ A class used to discover USB connected Zebra printers. Printers can be accessed either directly or through a USB
+ printer driver.
+
+
+
+
+ Enumerate locally installed Zebra Designer Drivers.
+
+ List of ZebraDesigner drivers installed.
+ If the system is not running the Windows operating system or an error occurs during discovery.
+
+
+
+ Enumerate all currently connected Zebra USB printers.
+
+ List of locally connected Zebra USB printers.
+ If the system is not running the Windows operating system or an error occurs during discovery.
+
+
+
+ Enumerate currently connected Zebra USB printers that meet the specified DiscoveredPrinterFilter criteria.
+
+ A custom instance used to determine whether or not a discovered device should be ignored.
+ >List of locally connected Zebra USB printers.
+ If the system is not running the Windows operating system or an error occurs during discovery.
+
+
+
+ For Zebra Internal Use Only.
+
+
+
+
+
+
+ For Zebra Internal Use Only.
+
+
+
+
+
+
+ DiscoveredPrinterFilter implementation that filters out all unsupported Zebra Printers.
+
+
+
+
+ Determines if the discoveredPrinter is a supported Zebra Printer.
+
+ The discovered printer.
+ True if the discoveredPrinter is a supported Zebra Printer.
+
+
+
+ Handler class used to notify of connection status
+
+
+
+
+ Called when a printer establishes a connection.
+
+ Printer which just established a connection.
+
+
+
+ Called when a printer goes offline.
+
+ Printer which just went offline.
+
+
+
+ Removes the Connection handler from the runtime.
+
+
+
+
diff --git a/bin/Release/SharpSnmpLib.dll b/bin/Release/SharpSnmpLib.dll
new file mode 100644
index 0000000..69d7c98
Binary files /dev/null and b/bin/Release/SharpSnmpLib.dll differ
diff --git a/bin/Release/ZebraPrinterSdk.dll b/bin/Release/ZebraPrinterSdk.dll
new file mode 100644
index 0000000..e7dbffb
Binary files /dev/null and b/bin/Release/ZebraPrinterSdk.dll differ
diff --git a/bin/Release/ZebraPrinterSdk.xml b/bin/Release/ZebraPrinterSdk.xml
new file mode 100644
index 0000000..f5592dc
--- /dev/null
+++ b/bin/Release/ZebraPrinterSdk.xml
@@ -0,0 +1,57 @@
+
+
+
+ ZebraPrinterSdk
+
+
+
+
+ A factory interface used to acquire a cross platform instance of ZebraImageI.
+
+
+
+
+ Creates an instance of from the image specified in fullPath.
+
+ The full path of the image.
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If fullPath is null.
+
+
+
+ Creates an instance of from the image data specified in imageData.
+
+ A byte[] containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null.
+
+
+
+ Creates an instance of from the image data specified in imageData.
+
+ A stream containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null.
+
+
+
+ A factory used to acquire an instance of ZebraImageI.
+
+
+
+
+ Current IZebraPrinterFactory to use
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bin/Release/ZebraPrinterUtilities.exe b/bin/Release/ZebraPrinterUtilities.exe
new file mode 100644
index 0000000..4543322
Binary files /dev/null and b/bin/Release/ZebraPrinterUtilities.exe differ
diff --git a/bin/Release/ZebraPrinterUtilities.exe.config b/bin/Release/ZebraPrinterUtilities.exe.config
new file mode 100644
index 0000000..11d2c36
--- /dev/null
+++ b/bin/Release/ZebraPrinterUtilities.exe.config
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/Release/ZebraPrinterUtilities.pdb b/bin/Release/ZebraPrinterUtilities.pdb
new file mode 100644
index 0000000..6560cc5
Binary files /dev/null and b/bin/Release/ZebraPrinterUtilities.pdb differ
diff --git a/bin/Release/ZebraPrinterUtilities.xml b/bin/Release/ZebraPrinterUtilities.xml
new file mode 100644
index 0000000..812125d
--- /dev/null
+++ b/bin/Release/ZebraPrinterUtilities.xml
@@ -0,0 +1,68 @@
+
+
+
+
+ZebraPrinterUtilities
+
+
+
+
+
+ Modulo utilizzato per definire le proprietà disponibili nello spazio dei nomi My per WPF
+
+
+
+
+
+ Restituisce l'oggetto applicazione per l'applicazione in esecuzione
+
+
+
+
+ Restituisce le informazioni sul computer host.
+
+
+
+
+ Restituisce le informazioni per l'utente corrente. Se si desidera eseguire l'applicazione con le
+ credenziali utente di Windows correnti, chiamare My.User.InitializeWithWindowsUser().
+
+
+
+
+ Restituisce il registro applicazioni. I listener possono essere configurati dal file di configurazione dell'applicazione.
+
+
+
+
+ Restituisce la raccolta di oggetti Window definiti nel progetto.
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+Application
+
+
+
+
+Application Entry Point.
+
+
+
+
diff --git a/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.vb b/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.vb
new file mode 100644
index 0000000..a0e4a61
--- /dev/null
+++ b/obj/Debug/.NETFramework,Version=v4.7.2.AssemblyAttributes.vb
@@ -0,0 +1,7 @@
+'
+ Option Strict Off
+ Option Explicit On
+
+ Imports System
+ Imports System.Reflection
+
diff --git a/obj/Debug/Application.g.i.vb b/obj/Debug/Application.g.i.vb
new file mode 100644
index 0000000..5535a46
--- /dev/null
+++ b/obj/Debug/Application.g.i.vb
@@ -0,0 +1,55 @@
+#ExternalChecksum("..\..\Application.xaml","{8829d00f-11b8-4213-878b-770e8597ac16}","B4EC3D1F99D2BE32F0C95BCA7B6518256E2BB01F0ECE73E3F01F97D7B947C9E6")
+'------------------------------------------------------------------------------
+'
+' Il codice è stato generato da uno strumento.
+' Versione runtime:4.0.30319.42000
+'
+' Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se
+' il codice viene rigenerato.
+'
+'------------------------------------------------------------------------------
+
+Option Strict Off
+Option Explicit On
+
+Imports System
+Imports System.Diagnostics
+Imports System.Windows
+Imports System.Windows.Automation
+Imports System.Windows.Controls
+Imports System.Windows.Controls.Primitives
+Imports System.Windows.Data
+Imports System.Windows.Documents
+Imports System.Windows.Ink
+Imports System.Windows.Input
+Imports System.Windows.Markup
+Imports System.Windows.Media
+Imports System.Windows.Media.Animation
+Imports System.Windows.Media.Effects
+Imports System.Windows.Media.Imaging
+Imports System.Windows.Media.Media3D
+Imports System.Windows.Media.TextFormatting
+Imports System.Windows.Navigation
+Imports System.Windows.Shapes
+Imports System.Windows.Shell
+Imports ZebraPrinterUtilities
+
+
+'''
+'''Application
+'''
+Partial Public Class Application
+ Inherits System.Windows.Application
+
+ '''
+ '''Application Entry Point.
+ '''
+ _
+ Public Shared Sub Main()
+ Dim app As Application = New Application()
+ app.Run
+ End Sub
+End Class
+
diff --git a/obj/Debug/Application.g.vb b/obj/Debug/Application.g.vb
new file mode 100644
index 0000000..5535a46
--- /dev/null
+++ b/obj/Debug/Application.g.vb
@@ -0,0 +1,55 @@
+#ExternalChecksum("..\..\Application.xaml","{8829d00f-11b8-4213-878b-770e8597ac16}","B4EC3D1F99D2BE32F0C95BCA7B6518256E2BB01F0ECE73E3F01F97D7B947C9E6")
+'------------------------------------------------------------------------------
+'
+' Il codice è stato generato da uno strumento.
+' Versione runtime:4.0.30319.42000
+'
+' Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se
+' il codice viene rigenerato.
+'
+'------------------------------------------------------------------------------
+
+Option Strict Off
+Option Explicit On
+
+Imports System
+Imports System.Diagnostics
+Imports System.Windows
+Imports System.Windows.Automation
+Imports System.Windows.Controls
+Imports System.Windows.Controls.Primitives
+Imports System.Windows.Data
+Imports System.Windows.Documents
+Imports System.Windows.Ink
+Imports System.Windows.Input
+Imports System.Windows.Markup
+Imports System.Windows.Media
+Imports System.Windows.Media.Animation
+Imports System.Windows.Media.Effects
+Imports System.Windows.Media.Imaging
+Imports System.Windows.Media.Media3D
+Imports System.Windows.Media.TextFormatting
+Imports System.Windows.Navigation
+Imports System.Windows.Shapes
+Imports System.Windows.Shell
+Imports ZebraPrinterUtilities
+
+
+'''
+'''Application
+'''
+Partial Public Class Application
+ Inherits System.Windows.Application
+
+ '''
+ '''Application Entry Point.
+ '''
+ _
+ Public Shared Sub Main()
+ Dim app As Application = New Application()
+ app.Run
+ End Sub
+End Class
+
diff --git a/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/obj/Debug/DesignTimeResolveAssemblyReferences.cache
new file mode 100644
index 0000000..a7bdf91
Binary files /dev/null and b/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ
diff --git a/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..92cc98a
Binary files /dev/null and b/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/obj/Debug/MainWindow.g.i.vb b/obj/Debug/MainWindow.g.i.vb
new file mode 100644
index 0000000..69f44ab
--- /dev/null
+++ b/obj/Debug/MainWindow.g.i.vb
@@ -0,0 +1,76 @@
+#ExternalChecksum("..\..\MainWindow.xaml","{8829d00f-11b8-4213-878b-770e8597ac16}","A5A5A6C93107BBEF4E7CAD670521E84B7F1CB98C6F3F871C012B73897AF1497C")
+'------------------------------------------------------------------------------
+'
+' Il codice è stato generato da uno strumento.
+' Versione runtime:4.0.30319.42000
+'
+' Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se
+' il codice viene rigenerato.
+'
+'------------------------------------------------------------------------------
+
+Option Strict Off
+Option Explicit On
+
+Imports System
+Imports System.Diagnostics
+Imports System.Windows
+Imports System.Windows.Automation
+Imports System.Windows.Controls
+Imports System.Windows.Controls.Primitives
+Imports System.Windows.Data
+Imports System.Windows.Documents
+Imports System.Windows.Ink
+Imports System.Windows.Input
+Imports System.Windows.Markup
+Imports System.Windows.Media
+Imports System.Windows.Media.Animation
+Imports System.Windows.Media.Effects
+Imports System.Windows.Media.Imaging
+Imports System.Windows.Media.Media3D
+Imports System.Windows.Media.TextFormatting
+Imports System.Windows.Navigation
+Imports System.Windows.Shapes
+Imports System.Windows.Shell
+Imports ZebraPrinterUtilities
+
+
+'''
+'''MainWindow
+'''
+ _
+Partial Public Class MainWindow
+ Inherits System.Windows.Window
+ Implements System.Windows.Markup.IComponentConnector
+
+ Private _contentLoaded As Boolean
+
+ '''
+ '''InitializeComponent
+ '''
+ _
+ Public Sub InitializeComponent() Implements System.Windows.Markup.IComponentConnector.InitializeComponent
+ If _contentLoaded Then
+ Return
+ End If
+ _contentLoaded = true
+ Dim resourceLocater As System.Uri = New System.Uri("/ZebraPrinterUtilities;component/mainwindow.xaml", System.UriKind.Relative)
+
+ #ExternalSource("..\..\MainWindow.xaml",1)
+ System.Windows.Application.LoadComponent(Me, resourceLocater)
+
+ #End ExternalSource
+ End Sub
+
+ _
+ Sub System_Windows_Markup_IComponentConnector_Connect(ByVal connectionId As Integer, ByVal target As Object) Implements System.Windows.Markup.IComponentConnector.Connect
+ Me._contentLoaded = true
+ End Sub
+End Class
+
diff --git a/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll b/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll
new file mode 100644
index 0000000..2837dae
Binary files /dev/null and b/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll differ
diff --git a/obj/Debug/ZebraPrinterUtilities.Resources.resources b/obj/Debug/ZebraPrinterUtilities.Resources.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/obj/Debug/ZebraPrinterUtilities.Resources.resources differ
diff --git a/obj/Debug/ZebraPrinterUtilities.exe b/obj/Debug/ZebraPrinterUtilities.exe
new file mode 100644
index 0000000..416f001
Binary files /dev/null and b/obj/Debug/ZebraPrinterUtilities.exe differ
diff --git a/obj/Debug/ZebraPrinterUtilities.pdb b/obj/Debug/ZebraPrinterUtilities.pdb
new file mode 100644
index 0000000..810da0f
Binary files /dev/null and b/obj/Debug/ZebraPrinterUtilities.pdb differ
diff --git a/obj/Debug/ZebraPrinterUtilities.vbproj.CopyComplete b/obj/Debug/ZebraPrinterUtilities.vbproj.CopyComplete
new file mode 100644
index 0000000..e69de29
diff --git a/obj/Debug/ZebraPrinterUtilities.vbproj.CoreCompileInputs.cache b/obj/Debug/ZebraPrinterUtilities.vbproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..4b12334
--- /dev/null
+++ b/obj/Debug/ZebraPrinterUtilities.vbproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+04ef087c711b07f81dfaa2c1b11153f2950ac0b0
diff --git a/obj/Debug/ZebraPrinterUtilities.vbproj.FileListAbsolute.txt b/obj/Debug/ZebraPrinterUtilities.vbproj.FileListAbsolute.txt
new file mode 100644
index 0000000..b7360bb
--- /dev/null
+++ b/obj/Debug/ZebraPrinterUtilities.vbproj.FileListAbsolute.txt
@@ -0,0 +1,31 @@
+C:\EgtDev\ZebraPrinterUtilities\obj\Debug\Application.g.vb
+C:\EgtDev\ZebraPrinterUtilities\obj\Debug\ZebraPrinterUtilities_MarkupCompile.cache
+C:\EgtDev\ZebraPrinterUtilities\obj\Debug\ZebraPrinterUtilities.Resources.resources
+C:\EgtDev\ZebraPrinterUtilities\obj\Debug\ZebraPrinterUtilities.vbproj.GenerateResource.cache
+C:\EgtDev\ZebraPrinterUtilities\obj\Debug\ZebraPrinterUtilities.vbproj.CoreCompileInputs.cache
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\ZebraPrinterUtilities.exe.config
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\ZebraPrinterUtilities.exe
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\ZebraPrinterUtilities.pdb
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\ZebraPrinterUtilities.xml
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\BouncyCastle.Crypto.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\Csv.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\FluentFTP.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\Microsoft.DotNet.PlatformAbstractions.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\Microsoft.Extensions.DependencyModel.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\Newtonsoft.Json.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\SdkApi.Core.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\SdkApi.Desktop.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\SdkApi.Desktop.Usb.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\SharpSnmpLib.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\ZebraPrinterSdk.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\BouncyCastle.Crypto.xml
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\Csv.xml
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\FluentFTP.xml
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\Newtonsoft.Json.xml
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\SdkApi.Core.xml
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\SdkApi.Desktop.xml
+C:\EgtDev\ZebraPrinterUtilities\bin\Debug\ZebraPrinterSdk.xml
+C:\EgtDev\ZebraPrinterUtilities\obj\Debug\ZebraPrinterUtilities.vbproj.CopyComplete
+C:\EgtDev\ZebraPrinterUtilities\obj\Debug\ZebraPrinterUtilities.exe
+C:\EgtDev\ZebraPrinterUtilities\obj\Debug\ZebraPrinterUtilities.xml
+C:\EgtDev\ZebraPrinterUtilities\obj\Debug\ZebraPrinterUtilities.pdb
diff --git a/obj/Debug/ZebraPrinterUtilities.vbproj.GenerateResource.cache b/obj/Debug/ZebraPrinterUtilities.vbproj.GenerateResource.cache
new file mode 100644
index 0000000..0c5b65d
Binary files /dev/null and b/obj/Debug/ZebraPrinterUtilities.vbproj.GenerateResource.cache differ
diff --git a/obj/Debug/ZebraPrinterUtilities.xml b/obj/Debug/ZebraPrinterUtilities.xml
new file mode 100644
index 0000000..812125d
--- /dev/null
+++ b/obj/Debug/ZebraPrinterUtilities.xml
@@ -0,0 +1,68 @@
+
+
+
+
+ZebraPrinterUtilities
+
+
+
+
+
+ Modulo utilizzato per definire le proprietà disponibili nello spazio dei nomi My per WPF
+
+
+
+
+
+ Restituisce l'oggetto applicazione per l'applicazione in esecuzione
+
+
+
+
+ Restituisce le informazioni sul computer host.
+
+
+
+
+ Restituisce le informazioni per l'utente corrente. Se si desidera eseguire l'applicazione con le
+ credenziali utente di Windows correnti, chiamare My.User.InitializeWithWindowsUser().
+
+
+
+
+ Restituisce il registro applicazioni. I listener possono essere configurati dal file di configurazione dell'applicazione.
+
+
+
+
+ Restituisce la raccolta di oggetti Window definiti nel progetto.
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+Application
+
+
+
+
+Application Entry Point.
+
+
+
+
diff --git a/obj/Debug/ZebraPrinterUtilities_MarkupCompile.cache b/obj/Debug/ZebraPrinterUtilities_MarkupCompile.cache
new file mode 100644
index 0000000..928ab82
--- /dev/null
+++ b/obj/Debug/ZebraPrinterUtilities_MarkupCompile.cache
@@ -0,0 +1,20 @@
+ZebraPrinterUtilities
+
+
+winexe
+VB
+.vb
+C:\EgtDev\ZebraPrinterUtilities\obj\Debug\
+ZebraPrinterUtilities
+none
+false
+
+C:\EgtDev\ZebraPrinterUtilities\Application.xaml
+
+
+633751935
+311830312596
+
+
+False
+
diff --git a/obj/Debug/ZebraPrinterUtilities_MarkupCompile.i.cache b/obj/Debug/ZebraPrinterUtilities_MarkupCompile.i.cache
new file mode 100644
index 0000000..afdbd88
--- /dev/null
+++ b/obj/Debug/ZebraPrinterUtilities_MarkupCompile.i.cache
@@ -0,0 +1,20 @@
+ZebraPrinterUtilities
+
+
+winexe
+VB
+.vb
+C:\EgtDev\ZebraPrinterUtilities\obj\Debug\
+ZebraPrinterUtilities
+none
+false
+
+C:\EgtDev\ZebraPrinterUtilities\Application.xaml
+
+
+7246719457
+311830312596
+
+
+False
+
diff --git a/obj/Release/.NETFramework,Version=v4.7.2.AssemblyAttributes.vb b/obj/Release/.NETFramework,Version=v4.7.2.AssemblyAttributes.vb
new file mode 100644
index 0000000..a0e4a61
--- /dev/null
+++ b/obj/Release/.NETFramework,Version=v4.7.2.AssemblyAttributes.vb
@@ -0,0 +1,7 @@
+'
+ Option Strict Off
+ Option Explicit On
+
+ Imports System
+ Imports System.Reflection
+
diff --git a/obj/Release/Application.g.i.vb b/obj/Release/Application.g.i.vb
new file mode 100644
index 0000000..5535a46
--- /dev/null
+++ b/obj/Release/Application.g.i.vb
@@ -0,0 +1,55 @@
+#ExternalChecksum("..\..\Application.xaml","{8829d00f-11b8-4213-878b-770e8597ac16}","B4EC3D1F99D2BE32F0C95BCA7B6518256E2BB01F0ECE73E3F01F97D7B947C9E6")
+'------------------------------------------------------------------------------
+'
+' Il codice è stato generato da uno strumento.
+' Versione runtime:4.0.30319.42000
+'
+' Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se
+' il codice viene rigenerato.
+'
+'------------------------------------------------------------------------------
+
+Option Strict Off
+Option Explicit On
+
+Imports System
+Imports System.Diagnostics
+Imports System.Windows
+Imports System.Windows.Automation
+Imports System.Windows.Controls
+Imports System.Windows.Controls.Primitives
+Imports System.Windows.Data
+Imports System.Windows.Documents
+Imports System.Windows.Ink
+Imports System.Windows.Input
+Imports System.Windows.Markup
+Imports System.Windows.Media
+Imports System.Windows.Media.Animation
+Imports System.Windows.Media.Effects
+Imports System.Windows.Media.Imaging
+Imports System.Windows.Media.Media3D
+Imports System.Windows.Media.TextFormatting
+Imports System.Windows.Navigation
+Imports System.Windows.Shapes
+Imports System.Windows.Shell
+Imports ZebraPrinterUtilities
+
+
+'''
+'''Application
+'''
+Partial Public Class Application
+ Inherits System.Windows.Application
+
+ '''
+ '''Application Entry Point.
+ '''
+ _
+ Public Shared Sub Main()
+ Dim app As Application = New Application()
+ app.Run
+ End Sub
+End Class
+
diff --git a/obj/Release/Application.g.vb b/obj/Release/Application.g.vb
new file mode 100644
index 0000000..5535a46
--- /dev/null
+++ b/obj/Release/Application.g.vb
@@ -0,0 +1,55 @@
+#ExternalChecksum("..\..\Application.xaml","{8829d00f-11b8-4213-878b-770e8597ac16}","B4EC3D1F99D2BE32F0C95BCA7B6518256E2BB01F0ECE73E3F01F97D7B947C9E6")
+'------------------------------------------------------------------------------
+'
+' Il codice è stato generato da uno strumento.
+' Versione runtime:4.0.30319.42000
+'
+' Le modifiche apportate a questo file possono provocare un comportamento non corretto e andranno perse se
+' il codice viene rigenerato.
+'
+'------------------------------------------------------------------------------
+
+Option Strict Off
+Option Explicit On
+
+Imports System
+Imports System.Diagnostics
+Imports System.Windows
+Imports System.Windows.Automation
+Imports System.Windows.Controls
+Imports System.Windows.Controls.Primitives
+Imports System.Windows.Data
+Imports System.Windows.Documents
+Imports System.Windows.Ink
+Imports System.Windows.Input
+Imports System.Windows.Markup
+Imports System.Windows.Media
+Imports System.Windows.Media.Animation
+Imports System.Windows.Media.Effects
+Imports System.Windows.Media.Imaging
+Imports System.Windows.Media.Media3D
+Imports System.Windows.Media.TextFormatting
+Imports System.Windows.Navigation
+Imports System.Windows.Shapes
+Imports System.Windows.Shell
+Imports ZebraPrinterUtilities
+
+
+'''
+'''Application
+'''
+Partial Public Class Application
+ Inherits System.Windows.Application
+
+ '''
+ '''Application Entry Point.
+ '''
+ _
+ Public Shared Sub Main()
+ Dim app As Application = New Application()
+ app.Run
+ End Sub
+End Class
+
diff --git a/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
new file mode 100644
index 0000000..ddf5328
Binary files /dev/null and b/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache differ
diff --git a/obj/Release/TempPE/My Project.Resources.Designer.vb.dll b/obj/Release/TempPE/My Project.Resources.Designer.vb.dll
new file mode 100644
index 0000000..79c21bc
Binary files /dev/null and b/obj/Release/TempPE/My Project.Resources.Designer.vb.dll differ
diff --git a/obj/Release/ZebraPrinterUtilities.Resources.resources b/obj/Release/ZebraPrinterUtilities.Resources.resources
new file mode 100644
index 0000000..6c05a97
Binary files /dev/null and b/obj/Release/ZebraPrinterUtilities.Resources.resources differ
diff --git a/obj/Release/ZebraPrinterUtilities.exe b/obj/Release/ZebraPrinterUtilities.exe
new file mode 100644
index 0000000..4543322
Binary files /dev/null and b/obj/Release/ZebraPrinterUtilities.exe differ
diff --git a/obj/Release/ZebraPrinterUtilities.pdb b/obj/Release/ZebraPrinterUtilities.pdb
new file mode 100644
index 0000000..6560cc5
Binary files /dev/null and b/obj/Release/ZebraPrinterUtilities.pdb differ
diff --git a/obj/Release/ZebraPrinterUtilities.vbproj.CopyComplete b/obj/Release/ZebraPrinterUtilities.vbproj.CopyComplete
new file mode 100644
index 0000000..e69de29
diff --git a/obj/Release/ZebraPrinterUtilities.vbproj.CoreCompileInputs.cache b/obj/Release/ZebraPrinterUtilities.vbproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..6309139
--- /dev/null
+++ b/obj/Release/ZebraPrinterUtilities.vbproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+39b003d77537d7eedca46cf55517c41b886fd3c4
diff --git a/obj/Release/ZebraPrinterUtilities.vbproj.FileListAbsolute.txt b/obj/Release/ZebraPrinterUtilities.vbproj.FileListAbsolute.txt
new file mode 100644
index 0000000..a0dd393
--- /dev/null
+++ b/obj/Release/ZebraPrinterUtilities.vbproj.FileListAbsolute.txt
@@ -0,0 +1,31 @@
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\ZebraPrinterUtilities.exe.config
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\ZebraPrinterUtilities.exe
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\ZebraPrinterUtilities.pdb
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\ZebraPrinterUtilities.xml
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\BouncyCastle.Crypto.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\Csv.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\FluentFTP.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\Microsoft.DotNet.PlatformAbstractions.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\Microsoft.Extensions.DependencyModel.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\Newtonsoft.Json.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\SdkApi.Core.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\SdkApi.Desktop.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\SdkApi.Desktop.Usb.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\SharpSnmpLib.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\ZebraPrinterSdk.dll
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\BouncyCastle.Crypto.xml
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\Csv.xml
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\FluentFTP.xml
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\Newtonsoft.Json.xml
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\SdkApi.Core.xml
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\SdkApi.Desktop.xml
+C:\EgtDev\ZebraPrinterUtilities\bin\Release\ZebraPrinterSdk.xml
+C:\EgtDev\ZebraPrinterUtilities\obj\Release\Application.g.vb
+C:\EgtDev\ZebraPrinterUtilities\obj\Release\ZebraPrinterUtilities_MarkupCompile.cache
+C:\EgtDev\ZebraPrinterUtilities\obj\Release\ZebraPrinterUtilities.Resources.resources
+C:\EgtDev\ZebraPrinterUtilities\obj\Release\ZebraPrinterUtilities.vbproj.GenerateResource.cache
+C:\EgtDev\ZebraPrinterUtilities\obj\Release\ZebraPrinterUtilities.vbproj.CoreCompileInputs.cache
+C:\EgtDev\ZebraPrinterUtilities\obj\Release\ZebraPrinterUtilities.vbproj.CopyComplete
+C:\EgtDev\ZebraPrinterUtilities\obj\Release\ZebraPrinterUtilities.exe
+C:\EgtDev\ZebraPrinterUtilities\obj\Release\ZebraPrinterUtilities.xml
+C:\EgtDev\ZebraPrinterUtilities\obj\Release\ZebraPrinterUtilities.pdb
diff --git a/obj/Release/ZebraPrinterUtilities.vbproj.GenerateResource.cache b/obj/Release/ZebraPrinterUtilities.vbproj.GenerateResource.cache
new file mode 100644
index 0000000..0c5b65d
Binary files /dev/null and b/obj/Release/ZebraPrinterUtilities.vbproj.GenerateResource.cache differ
diff --git a/obj/Release/ZebraPrinterUtilities.xml b/obj/Release/ZebraPrinterUtilities.xml
new file mode 100644
index 0000000..812125d
--- /dev/null
+++ b/obj/Release/ZebraPrinterUtilities.xml
@@ -0,0 +1,68 @@
+
+
+
+
+ZebraPrinterUtilities
+
+
+
+
+
+ Modulo utilizzato per definire le proprietà disponibili nello spazio dei nomi My per WPF
+
+
+
+
+
+ Restituisce l'oggetto applicazione per l'applicazione in esecuzione
+
+
+
+
+ Restituisce le informazioni sul computer host.
+
+
+
+
+ Restituisce le informazioni per l'utente corrente. Se si desidera eseguire l'applicazione con le
+ credenziali utente di Windows correnti, chiamare My.User.InitializeWithWindowsUser().
+
+
+
+
+ Restituisce il registro applicazioni. I listener possono essere configurati dal file di configurazione dell'applicazione.
+
+
+
+
+ Restituisce la raccolta di oggetti Window definiti nel progetto.
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+Application
+
+
+
+
+Application Entry Point.
+
+
+
+
diff --git a/obj/Release/ZebraPrinterUtilities_MarkupCompile.cache b/obj/Release/ZebraPrinterUtilities_MarkupCompile.cache
new file mode 100644
index 0000000..bec3463
--- /dev/null
+++ b/obj/Release/ZebraPrinterUtilities_MarkupCompile.cache
@@ -0,0 +1,20 @@
+ZebraPrinterUtilities
+
+
+winexe
+VB
+.vb
+C:\EgtDev\ZebraPrinterUtilities\obj\Release\
+ZebraPrinterUtilities
+none
+false
+
+C:\EgtDev\ZebraPrinterUtilities\Application.xaml
+
+
+633751935
+311830312596
+
+
+False
+
diff --git a/obj/Release/ZebraPrinterUtilities_MarkupCompile.i.cache b/obj/Release/ZebraPrinterUtilities_MarkupCompile.i.cache
new file mode 100644
index 0000000..eeddedd
--- /dev/null
+++ b/obj/Release/ZebraPrinterUtilities_MarkupCompile.i.cache
@@ -0,0 +1,20 @@
+ZebraPrinterUtilities
+
+
+winexe
+VB
+.vb
+C:\EgtDev\ZebraPrinterUtilities\obj\Release\
+ZebraPrinterUtilities
+none
+false
+
+C:\EgtDev\ZebraPrinterUtilities\Application.xaml
+
+
+7-1044941030
+311830312596
+
+
+False
+
diff --git a/packages.config b/packages.config
new file mode 100644
index 0000000..dbd2679
--- /dev/null
+++ b/packages.config
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/Csv.1.0.31/.signature.p7s b/packages/Csv.1.0.31/.signature.p7s
new file mode 100644
index 0000000..761c823
Binary files /dev/null and b/packages/Csv.1.0.31/.signature.p7s differ
diff --git a/packages/Csv.1.0.31/Csv.1.0.31.nupkg b/packages/Csv.1.0.31/Csv.1.0.31.nupkg
new file mode 100644
index 0000000..d64a280
Binary files /dev/null and b/packages/Csv.1.0.31/Csv.1.0.31.nupkg differ
diff --git a/packages/Csv.1.0.31/lib/net40/Csv.dll b/packages/Csv.1.0.31/lib/net40/Csv.dll
new file mode 100644
index 0000000..06074ea
Binary files /dev/null and b/packages/Csv.1.0.31/lib/net40/Csv.dll differ
diff --git a/packages/Csv.1.0.31/lib/net40/Csv.xml b/packages/Csv.1.0.31/lib/net40/Csv.xml
new file mode 100644
index 0000000..f657d28
--- /dev/null
+++ b/packages/Csv.1.0.31/lib/net40/Csv.xml
@@ -0,0 +1,148 @@
+
+
+
+ Csv
+
+
+
+
+ Defines the options that can be passed to customize the reading or writing of csv files.
+
+
+
+
+ Gets or sets the number of rows to skip before reading the header row, defaults to 0.
+
+
+
+
+ Gets or sets a function to skip the current row based on its raw string value or 1-based index. Skips empty rows and rows starting with # by default.
+
+
+
+
+ Gets or sets the character to use for separating data, defaults to '\0' which will auto-detect from the header row.
+
+
+
+
+ Gets or sets wether data should be trimmed when accessed.
+
+
+
+
+ Gets or sets the comparer to use when looking up header names.
+
+
+
+
+ Gets or sets an indicator to the parser to expect a header row or not.
+
+
+
+
+ Gets or sets wether a row should be validated immediately that the column count matches the header count.
+
+
+
+
+ Helper class to read csv (comma separated values) data.
+
+
+
+
+ Reads the lines from the reader.
+
+ The text reader to read the data from.
+ The optional options to use when reading.
+
+
+
+ Reads the lines from the stream.
+
+ The stream to read the data from.
+ The optional options to use when reading.
+
+
+
+ Reads the lines from the csv string.
+
+ The csv string to read the data from.
+ The optional options to use when reading.
+
+
+
+ Helper class to write csv (comma separated values) data.
+
+
+
+
+ Writes the lines to the writer.
+
+ The text writer to write the data to.
+ The headers that should be used for the first line, determines the number of columns.
+ The lines with data that should be written.
+ The separator to use between columns (comma, semicolon, tab, ...)
+
+
+
+ Writes the lines and return the result.
+
+ The headers that should be used for the first line, determines the number of columns.
+ The lines with data that should be written.
+ The separator to use between columns (comma, semicolon, tab, ...)
+
+
+
+ Indicates the presence or absence of a header row
+
+
+
+
+ Indicates that the CSV file has a header row
+
+
+
+
+ Indicates that the CSV file does not have a header row
+
+
+
+
+ Represents a single data line inside a csv file.
+
+
+
+
+ Gets the headers from the csv file.
+
+
+
+
+ Gets the original raw content of the line.
+
+
+
+
+ Gets the 1-based index for the line inside the file.
+
+
+
+
+ Gets the number of columns of the line.
+
+
+
+
+ Gets the data for the specified named header.
+
+ The name of the header.
+
+
+
+ Gets the data for the specified indexed header.
+
+ The index of the header.
+
+
+
diff --git a/packages/Csv.1.0.31/lib/netstandard1.0/Csv.dll b/packages/Csv.1.0.31/lib/netstandard1.0/Csv.dll
new file mode 100644
index 0000000..93669d7
Binary files /dev/null and b/packages/Csv.1.0.31/lib/netstandard1.0/Csv.dll differ
diff --git a/packages/Csv.1.0.31/lib/netstandard1.0/Csv.xml b/packages/Csv.1.0.31/lib/netstandard1.0/Csv.xml
new file mode 100644
index 0000000..f657d28
--- /dev/null
+++ b/packages/Csv.1.0.31/lib/netstandard1.0/Csv.xml
@@ -0,0 +1,148 @@
+
+
+
+ Csv
+
+
+
+
+ Defines the options that can be passed to customize the reading or writing of csv files.
+
+
+
+
+ Gets or sets the number of rows to skip before reading the header row, defaults to 0.
+
+
+
+
+ Gets or sets a function to skip the current row based on its raw string value or 1-based index. Skips empty rows and rows starting with # by default.
+
+
+
+
+ Gets or sets the character to use for separating data, defaults to '\0' which will auto-detect from the header row.
+
+
+
+
+ Gets or sets wether data should be trimmed when accessed.
+
+
+
+
+ Gets or sets the comparer to use when looking up header names.
+
+
+
+
+ Gets or sets an indicator to the parser to expect a header row or not.
+
+
+
+
+ Gets or sets wether a row should be validated immediately that the column count matches the header count.
+
+
+
+
+ Helper class to read csv (comma separated values) data.
+
+
+
+
+ Reads the lines from the reader.
+
+ The text reader to read the data from.
+ The optional options to use when reading.
+
+
+
+ Reads the lines from the stream.
+
+ The stream to read the data from.
+ The optional options to use when reading.
+
+
+
+ Reads the lines from the csv string.
+
+ The csv string to read the data from.
+ The optional options to use when reading.
+
+
+
+ Helper class to write csv (comma separated values) data.
+
+
+
+
+ Writes the lines to the writer.
+
+ The text writer to write the data to.
+ The headers that should be used for the first line, determines the number of columns.
+ The lines with data that should be written.
+ The separator to use between columns (comma, semicolon, tab, ...)
+
+
+
+ Writes the lines and return the result.
+
+ The headers that should be used for the first line, determines the number of columns.
+ The lines with data that should be written.
+ The separator to use between columns (comma, semicolon, tab, ...)
+
+
+
+ Indicates the presence or absence of a header row
+
+
+
+
+ Indicates that the CSV file has a header row
+
+
+
+
+ Indicates that the CSV file does not have a header row
+
+
+
+
+ Represents a single data line inside a csv file.
+
+
+
+
+ Gets the headers from the csv file.
+
+
+
+
+ Gets the original raw content of the line.
+
+
+
+
+ Gets the 1-based index for the line inside the file.
+
+
+
+
+ Gets the number of columns of the line.
+
+
+
+
+ Gets the data for the specified named header.
+
+ The name of the header.
+
+
+
+ Gets the data for the specified indexed header.
+
+ The index of the header.
+
+
+
diff --git a/packages/FluentFTP.19.2.2/.signature.p7s b/packages/FluentFTP.19.2.2/.signature.p7s
new file mode 100644
index 0000000..b068c66
Binary files /dev/null and b/packages/FluentFTP.19.2.2/.signature.p7s differ
diff --git a/packages/FluentFTP.19.2.2/FluentFTP.19.2.2.nupkg b/packages/FluentFTP.19.2.2/FluentFTP.19.2.2.nupkg
new file mode 100644
index 0000000..7448283
Binary files /dev/null and b/packages/FluentFTP.19.2.2/FluentFTP.19.2.2.nupkg differ
diff --git a/packages/FluentFTP.19.2.2/lib/net20/FluentFTP.dll b/packages/FluentFTP.19.2.2/lib/net20/FluentFTP.dll
new file mode 100644
index 0000000..98777dc
Binary files /dev/null and b/packages/FluentFTP.19.2.2/lib/net20/FluentFTP.dll differ
diff --git a/packages/FluentFTP.19.2.2/lib/net20/FluentFTP.xml b/packages/FluentFTP.19.2.2/lib/net20/FluentFTP.xml
new file mode 100644
index 0000000..12a6c18
--- /dev/null
+++ b/packages/FluentFTP.19.2.2/lib/net20/FluentFTP.xml
@@ -0,0 +1,5457 @@
+
+
+
+ FluentFTP
+
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+
+
+ Used for internally synchronizing access to this
+ object from multiple threads
+
+
+
+
+ For usage by FTP proxies only
+
+
+
+
+ A list of asynchronous methods that are in progress
+
+
+
+
+ Control connection socket stream
+
+
+
+
+ Gets a value indicating if this object has already been disposed.
+
+
+
+
+ Gets the base stream for talking to the server via
+ the control connection.
+
+
+
+
+ Flags specifying which versions of the internet protocol to
+ support when making a connection. All addresses returned during
+ name resolution are tried until a successful connection is made.
+ You can fine tune which versions of the internet protocol to use
+ by adding or removing flags here. I.e., setting this property
+ to FtpIpVersion.IPv4 will cause the connection process to
+ ignore IPv6 addresses. The default value is ANY version.
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling
+ on the socket to test for connectivity.
+ Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Polling all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets or sets a value indicating whether a test should be performed to
+ see if there is stale (unrequested data) sitting on the socket. In some
+ cases the control connection may time out but before the server closes
+ the connection it might send a 4xx response that was unexpected and
+ can cause synchronization errors with transactions. To avoid this
+ problem the method checks to see if there is any data
+ available on the socket before executing a command. On Azure hosting
+ platforms this check can cause an exception to be thrown. In order
+ to work around the exception you can set this property to false
+ which will skip the test entirely however doing so eliminates the
+ best effort attempt of detecting such scenarios. See this thread
+ for more details about the Azure problem:
+ https://netftp.codeplex.com/discussions/535879
+
+
+
+
+ Gets a value indicating if the connection is alive
+
+
+
+
+ When this value is set to true (default) the control connection
+ is cloned and a new connection the server is established for the
+ data channel operation. This is a thread safe approach to make
+ asynchronous operations on a single control connection transparent
+ to the developer.
+
+
+
+
+ Gets a value indicating if this control connection is a clone. This property
+ is used with data streams to determine if the connection should be closed
+ when the stream is closed. Servers typically only allow 1 data connection
+ per control connection. If you try to open multiple data connections this
+ object will be cloned for 2 or more resulting in N new connections to the
+ server.
+
+
+
+
+ Gets or sets the text encoding being used when talking with the server. The default
+ value is however upon connection, the client checks
+ for UTF8 support and if it's there this property is switched over to
+ . Manually setting this value overrides automatic detection
+ based on the FEAT list; if you change this value it's always used
+ regardless of what the server advertises, if anything.
+
+
+
+
+ The server to connect to
+
+
+
+
+ The port to connect to. If this value is set to 0 (Default) the port used
+ will be determined by the type of SSL used or if no SSL is to be used it
+ will automatically connect to port 21.
+
+
+
+
+ Credentials used for authentication
+
+
+
+
+ Gets or sets a value that controls the maximum depth
+ of recursion that will follow symbolic
+ links before giving up. You can also specify the value
+ to be used as one of the overloaded parameters to the
+ method. The default value is 20. Specifying
+ -1 here means indefinitely try to resolve a link. This is
+ not recommended for obvious reasons (stack overflow).
+
+
+
+
+ Client certificates to be used in SSL authentication process
+
+
+
+
+ Delegate used for resolving local address, used for active data connections
+ This can be used in case you're behind a router, but port forwarding is configured to forward the
+ ports from your router to your internal IP. In that case, we need to send the router's IP instead of our internal IP.
+ See example: FtpClient.GetPublicIP -> This uses Ipify api to find external IP
+
+
+
+
+ Ports used for Active Data Connection
+
+
+
+
+ Data connection type, default is AutoPassive which tries
+ a connection with EPSV first and if it fails then tries
+ PASV before giving up. If you know exactly which kind of
+ connection you need you can slightly increase performance
+ by defining a specific type of passive or active data
+ connection here.
+
+
+
+
+ Disconnect from the server without sending QUIT. This helps
+ work around IOExceptions caused by buggy connection resets
+ when closing the control connection.
+
+
+
+
+ Gets or sets the length of time in milliseconds to wait for a connection
+ attempt to succeed before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time wait in milliseconds for data to be
+ read from the underlying stream. The default value is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds for a data connection
+ to be established before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds the data channel
+ should wait for the server to send data. Default value is
+ 15000 (15 seconds).
+
+
+
+
+ Gets or sets a value indicating if should be set on
+ the underlying stream's socket. If the connection is alive, the option is
+ adjusted in real-time. The value is stored and the KeepAlive option is set
+ accordingly upon any new connections. The value set here is also applied to
+ all future data streams. It has no affect on cloned control connections or
+ data connections already in progress. The default value is false.
+
+
+
+
+ Gets the server capabilities represented by flags
+
+
+
+
+ Get the hash types supported by the server, if any. This
+ is a recent extension to the protocol that is not fully
+ standardized and is not guaranteed to work. See here for
+ more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Type of SSL to use, or none. Default is none. Explicit is TLS, Implicit is SSL.
+
+
+
+
+ Indicates if data channel transfers should be encrypted. Only valid if
+ property is not equal to .
+
+
+
+
+ Indicates if the encryption should be disabled immediately after connecting using a CCC command.
+ This is useful when you have a FTP firewall that requires plaintext FTP, but your server mandates FTPS connections.
+
+
+
+
+ Encryption protocols to use. Only valid if EncryptionMode property is not equal to .
+ Default value is .NET Framework defaults from the class.
+
+
+
+
+ Event is fired to validate SSL certificates. If this event is
+ not handled and there are errors validating the certificate
+ the connection will be aborted.
+
+
+
+
+
+ Gets the type of system/server that we're
+ connected to.
+
+
+
+ Gets the connection type
+
+
+
+ Creates a new instance of an FTP Client.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, username and password.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port, username and password.
+
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+
+ Disconnects from the server, releases resources held by this
+ object.
+
+
+
+
+ Finalizer
+
+
+
+
+ Clones the control connection for opening multiple data streams
+
+ A new control connection with the same property settings as this one
+
+
+
+
+ Executes a command
+
+ The command to execute
+ The servers reply to the command
+
+
+
+
+ Performs execution of the specified command asynchronously
+
+ The command to execute
+ The method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends an asynchronous command
+
+ IAsyncResult returned from BeginExecute
+ FtpReply object (never null).
+
+
+
+
+ Retrieves a reply from the server. Do not execute this method
+ unless you are sure that a reply has been sent, i.e., you
+ executed a command. Doing so will cause the code to hang
+ indefinitely waiting for a server reply that is never coming.
+
+ FtpReply representing the response from the server
+
+
+
+
+ Connect to the server
+
+ Thrown if this object has been disposed.
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+ Called during Connect(). Typically extended by FTP proxies.
+
+
+
+
+ Populates the capabilities flags based on capabilities
+ supported by this server. This method is overridable
+ so that new features can be supported
+
+ The reply object from the FEAT command. The InfoMessages property will
+ contain a list of the features the server supported delimited by a new line '\n' character.
+
+
+
+ Initiates a connection to the server
+
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends an asynchronous connection attempt to the server from
+
+ returned from
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Disconnects from the server
+
+
+
+
+ Initiates a disconnection on the server
+
+ method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+
+
+
+
+ Catches the socket stream ssl validation event and fires the event handlers
+ attached to this object for validating SSL certificates
+
+ The stream that fired the event
+ The event args used to validate the certificate
+
+
+
+ Fires the SSL validation event
+
+ Event Args
+
+
+
+ Performs a bitwise and to check if the specified
+ flag is set on the property.
+
+ The to check for
+ True if the feature was found, false otherwise
+
+
+
+ Retrieves the delegate for the specified IAsyncResult and removes
+ it from the m_asyncmethods collection if the operation is successful
+
+ Type of delegate to retrieve
+ The IAsyncResult to retrieve the delegate for
+ The delegate that generated the specified IAsyncResult
+
+
+
+ Ensure a relative path is absolute by appending the working dir
+
+
+
+
+ Disables UTF8 support and changes the Encoding property
+ back to ASCII. If the server returns an error when trying
+ to turn UTF8 off a FtpCommandException will be thrown.
+
+
+
+
+ Data shouldn't be on the socket, if it is it probably
+ means we've been disconnected. Read and discard
+ whatever is there and close the connection (optional).
+
+ close the connection?
+ even read encrypted data?
+ trace data to logs?
+
+
+
+ Calculate the CHMOD integer value given a set of permissions.
+
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ FtpClient object
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ FtpClient object
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Restart location
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Calculate you public internet IP using the ipify service. Returns null if cannot be calculated.
+
+ Public IP Address
+
+
+
+ Gets the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The flag or if there was a problem.
+
+
+
+
+ Begins an asynchronous operation to get the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The flag or if there was a problem.
+
+
+
+ Sets the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash Algorithm
+ Thrown if the selected algorithm is not available on the server
+
+
+
+
+ Begins an asynchronous operation to set the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash algorithm to use
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+
+
+
+ Gets the hash of an object on the server using the currently selected hash algorithm.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Full or relative path of the object to compute the hash for.
+ The hash of the file.
+
+ Thrown if the property is ,
+ the remote path does not exist, or the command cannot be executed.
+
+ Path argument is null
+ Thrown when an unknown hash algorithm type is returned by the server
+
+
+
+
+ Begins an asynchronous operation to get the hash of an object on the server using the currently selected hash algorithm.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The file you want the server to compute the hash for
+ AsyncCallback
+ State object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+
+
+
+ Retrieves a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path of the file to checksum
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+
+
+ Gets the MD5 hash of the specified file using MD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a MD5 hash. The MD5 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The MD5 hash of the specified file.
+
+
+
+ Get the CRC value of the specified file. This is a non-standard extension of the protocol
+ and may throw a FtpCommandException if the server does not support it.
+
+ The path of the file you'd like the server to compute the CRC value for.
+ The response from the server, typically the XCRC value. FtpCommandException thrown on error
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a CRC hash. The XCRC command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The CRC hash of the specified file.
+
+
+
+ Gets the MD5 hash of the specified file using XMD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a XMD5 hash. The XMD5 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The MD5 hash of the specified file.
+
+
+
+ Gets the SHA-1 hash of the specified file using XSHA1. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-1 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA1 hash. The XSHA1 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-1 hash of the specified file.
+
+
+
+ Gets the SHA-256 hash of the specified file using XSHA256. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-256 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA256 hash. The XSHA256 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-256 hash of the specified file.
+
+
+
+ Gets the SHA-512 hash of the specified file using XSHA512. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-512 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA512 hash. The XSHA512 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-512 hash of the specified file.
+
+
+
+ Gets or sets the number of bytes transferred in a single chunk (a single FTP command).
+ Used by / and /
+ to transfer large files in multiple chunks.
+
+
+
+
+ Gets or sets the retry attempts allowed when a verification failure occurs during download or upload.
+ This value must be set to 1 or more.
+
+
+
+
+ Rate limit for uploads in kbyte/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Rate limit for downloads in kbytes/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Controls if the high-level API uploads files in Binary or ASCII mode.
+
+
+
+
+ Controls if the high-level API downloads files in Binary or ASCII mode.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ Files to be uploaded
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded into.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the specified file directly onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified stream as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Uploads the specified byte array as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Upload the given stream to the server as a new file. Overwrites the file if it exists.
+ Writes data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Downloads the specified file onto the local file system.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file into the specified stream.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file and return the raw byte array.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The variable that will receive the bytes.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Download a file from the server and write the data into the given stream.
+ Reads data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate.
+
+
+
+
+ File listing parser to be used.
+ Automatically calculated based on the type of the server, unless changed.
+
+
+
+
+ Culture used to parse file listings
+
+
+
+
+ Time difference between server and client, in hours.
+ If the server is located in New York and you are in London then the time difference is -5 hours.
+
+
+
+
+ Check if your server supports a recursive LIST command (LIST -R).
+ If you know for sure that this is unsupported, set it to false.
+
+
+
+
+ If true, increases performance of GetListing by reading multiple lines
+ of the file listing at once. If false then GetListing will read file
+ listings line-by-line. If GetListing is having issues with your server,
+ set it to false.
+
+ The number of bytes read is based upon .
+
+
+
+
+ Bytes to read during GetListing. Only honored if is true.
+
+
+
+
+ Returns information about a file system object. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ The path of the file or folder
+ Get the accurate modified date using another MDTM command
+ A FtpListItem object
+
+
+
+ Begins an asynchronous operation to return information about a remote file system object.
+
+
+ You should check the property for the
+ flag before calling this method. Failing to do so will result in an InvalidOperationException
+ being thrown when the server does not support machine listings. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ Path of the file or folder
+ Get the accurate modified date using another MDTM command
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ A if the command succeeded, or null if there was a problem.
+
+
+
+ Gets a file listing from the server from the current working directory. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ Options that dictacte how a list is performed and what information is gathered.
+ An array of FtpListItem objects
+
+
+
+
+ Begins an asynchronous operation to get a file listing from the server.
+ Each object returned contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to get a file listing from the server.
+ Each object returned contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Gets a file listing from the server asynchronously
+
+ The path to list
+ Options that dictate how the list operation is performed
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult return from
+ An array of items retrieved in the listing
+
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ A string array of file and directory names if any were returned.
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ The path of the directory to list
+ A string array of file and directory names if any were returned.
+
+
+
+
+ Begin an asynchronous operation to return a file/directory listing using the NLST command.
+
+ The path of the directory to list
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begin an asynchronous operation to return a file/directory listing using the NLST command.
+
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult object returned from
+ An array of file and directory names if any were returned.
+
+
+
+
+ Opens the specified type of passive data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Returns the ip address to be sent to the server for the active connection
+
+
+
+
+
+
+ Opens the specified type of active data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens a data stream.
+
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ The data stream.
+
+
+
+ Disconnects a data stream
+
+ The data stream to close
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A readable stream of the remote file
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for writing
+
+ Full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for writing
+
+ Full or relative path of the file
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A writable stream
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for appending
+
+ Full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for appending
+
+ Full or relative path of the file
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A writable stream
+
+
+
+
+ Sets the data type of information sent over the data stream
+
+ ASCII/Binary
+
+
+ Internal method that handles actually setting the data type.
+ Thrown when a FTP Command error condition occurs.
+ Thrown when a FTP error condition occurs.
+ ASCII/Binary.
+ This method doesn't do any locking to prevent recursive lock scenarios. Callers must do their own locking.
+
+
+
+ Begins an asynchronous operation to set the data type of information sent over the data stream
+
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Deletes a file on the server
+
+ The full or relative path to the file
+
+
+
+
+ Begins an asynchronous operation to delete the specified file on the server
+
+ The full or relative path to the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDeleteFile
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ If the directory is not empty, remove its contents
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Checks whether will be called recursively or not.
+
+
+
+
+
+
+ Begins an asynchronous operation to delete the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to delete the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDeleteDirectory
+
+
+
+
+ Tests if the specified directory exists on the server. This
+ method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ The path of the directory
+ True if it exists, false otherwise.
+
+
+
+
+ Begins an asynchronous operation to test if the specified directory exists on the server.
+ This method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ IAsyncResult
+ The full or relative path of the directory to check for
+ Async callback
+ State object
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDirectoryExists
+ True if the directory exists. False otherwise.
+
+
+
+
+ Checks if a file exists on the server.
+
+ The full or relative path to the file
+ True if the file exists
+
+
+
+
+ Begins an asynchronous operation to check if a file exists on the
+ server by taking a file listing of the parent directory in the path
+ and comparing the results the path supplied.
+
+ The full or relative path to the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ True if the file exists, false otherwise
+
+
+
+
+ Creates a directory on the server. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+
+
+
+
+ Creates a directory on the server
+
+ The full or relative path to the new remote directory
+ Try to force all non-existent pieces of the path to be created
+
+
+
+
+ Begins an asynchronous operation to create a remote directory. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to create a remote directory
+
+ The full or relative path to the new remote directory
+ Try to create the whole path if the preceding directories do not exist
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Renames an object on the remote file system.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+
+
+
+
+ Begins an asynchronous operation to rename an object on the remote file system.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Moves a file on the remote file system from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Whether the file was moved
+
+
+
+ Begins an asynchronous operation to move a file on the remote file system, from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Moves a directory on the remote file system from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Whether the directory was moved
+
+
+
+ Begins an asynchronous operation to move a directory on the remote file system, from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set.
+ Throws FtpCommandException if there is an issue.
+ Returns null if the server did not specify a permission value.
+ Use `GetChmod` if you required the integer value instead.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an integer in the CHMOD format.
+ Throws FtpCommandException if there is an issue.
+ Returns 0 if the server did not specify a permission value.
+ Use `GetFilePermissions` if you required the permissions in the FtpPermission format.
+
+ The full or relative path to the item
+
+
+
+ Recursively dereferences a symbolic link. See the
+ MaximumDereferenceCount property for controlling
+ how deep this method will recurse before giving up.
+
+ The symbolic link
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Recursively dereferences a symbolic link
+
+ The symbolic link
+ The maximum depth of recursion that can be performed before giving up.
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Derefence a FtpListItem object
+
+ The item to derefence
+ Maximum recursive calls
+ Counter
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Begins an asynchronous operation to dereference a object
+
+ The item to dereference
+ Maximum recursive calls
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to dereference a object. See the
+ property for controlling
+ how deep this method will recurse before giving up.
+
+ The item to dereference
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult
+ A , or null if the link can't be dereferenced
+
+
+
+
+ Sets the work directory on the server
+
+ The path of the directory to change to
+
+
+
+
+ Begins an asynchronous operation to set the working directory on the server
+
+ The directory to change to
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Gets the current working directory
+
+ The current working directory, ./ if the response couldn't be parsed.
+
+
+
+
+ Begins an asynchronous operation to get the working directory
+
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The current working directory
+
+
+
+
+ Gets the size of a remote file
+
+ The full or relative path of the file
+ -1 if the command fails, otherwise the file size
+
+
+
+
+ Begins an asynchronous operation to retrieve the size of a remote file
+
+ The full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The size of the file, -1 if there was a problem.
+
+
+
+
+ Gets the modified time of a remote file
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ The modified time, or if there was a problem
+
+
+
+
+ Begins an asynchronous operation to get the modified time of a remote file
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The modified time, or if there was a problem
+
+
+
+
+ Changes the modified time of a remote file
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+
+
+
+ Begins an asynchronous operation to get the modified time of a remote file
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The modified time, or if there was a problem
+
+
+
+ Interface for the FtpClient class. For detailed documentation of the methods, please see the FtpClient class.
+
+
+
+
+ Defines the type of encryption to use
+
+
+
+
+ Plain text.
+
+
+
+
+ FTPS encryption is used from the start of the connection, port 990.
+
+
+
+
+ Connection starts in plain text and FTPS encryption is enabled
+ with the AUTH command immediately after the server greeting.
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ No response
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Temporary failure
+
+
+
+
+ Permanent failure
+
+
+
+
+ Server features
+
+
+
+
+ This server said it doesn't support anything!
+
+
+
+
+ Supports the MLST command
+
+
+
+
+ Supports the SIZE command
+
+
+
+
+ Supports the MDTM command
+
+
+
+
+ Supports download/upload stream resumes
+
+
+
+
+ Supports UTF8
+
+
+
+
+ PRET Command used in distributed ftp server software DrFTPD
+
+
+
+
+ Server supports the MFMT command for setting the
+ modified date of an object on the server
+
+
+
+
+ Server supports the MFCT command for setting the
+ created date of an object on the server
+
+
+
+
+ Server supports the MFF command for setting certain facts
+ about file system objects. If you need this command, it would
+ probably be handy to query FEAT your self and have a look at
+ the FtpReply.InfoMessages property to see which facts the server
+ allows you to modify.
+
+
+
+
+ Server supports the STAT command
+
+
+
+
+ Support for the HASH command
+
+
+
+
+ Support for the non-standard MD5 command
+
+
+
+
+ Support for the non-standard XMD5 command
+
+
+
+
+ Support for the non-standard XCRC command
+
+
+
+
+ Support for the non-standard XSHA1 command
+
+
+
+
+ Support for the non-standard XSHA256 command
+
+
+
+
+ Support for the non-standard XSHA512 command
+
+
+
+
+ Different types of hashing algorithms for computing checksums.
+
+
+
+
+ HASH command is not supported
+
+
+
+
+ SHA-1
+
+
+
+
+ SHA-256
+
+
+
+
+ SHA-512
+
+
+
+
+ MD5
+
+
+
+
+ CRC
+
+
+
+
+ IP Versions to allow when connecting
+ to a server.
+
+
+
+
+ Internet Protocol Version 4
+
+
+
+
+ Internet Protocol Version 6
+
+
+
+
+ Allow any supported version
+
+
+
+
+ Data connection type
+
+
+
+
+ This type of data connection attempts to use the EPSV command
+ and if the server does not support EPSV it falls back to the
+ PASV command before giving up unless you are connected via IPv6
+ in which case the PASV command is not supported.
+
+
+
+
+ Passive data connection. EPSV is a better
+ option if it's supported. Passive connections
+ connect to the IP address dictated by the server
+ which may or may not be accessible by the client
+ for example a server behind a NAT device may
+ give an IP address on its local network that
+ is inaccessible to the client. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Same as PASV except the host supplied by the server is ignored
+ and the data connection is made to the same address that the control
+ connection is connected to. This is useful in scenarios where the
+ server supplies a private/non-routable network address in the
+ PASV response. It's functionally identical to EPSV except some
+ servers may not implement the EPSV command. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Extended passive data connection, recommended. Works
+ the same as a PASV connection except the server
+ does not dictate an IP address to connect to, instead
+ the passive connection goes to the same address used
+ in the control connection. This type of data connection
+ supports IPv4 and IPv6.
+
+
+
+
+ This type of data connection attempts to use the EPRT command
+ and if the server does not support EPRT it falls back to the
+ PORT command before giving up unless you are connected via IPv6
+ in which case the PORT command is not supported.
+
+
+
+
+ Active data connection, not recommended unless
+ you have a specific reason for using this type.
+ Creates a listening socket on the client which
+ requires firewall exceptions on the client system
+ as well as client network when connecting to a
+ server outside of the client's network. In addition
+ the IP address of the interface used to connect to the
+ server is the address the server is told to connect to
+ which, if behind a NAT device, may be inaccessible to
+ the server. This type of data connection is not supported
+ by IPv6. If you specify PORT and are connected via IPv6
+ EPRT will automatically be used instead.
+
+
+
+
+ Extended active data connection, not recommended
+ unless you have a specific reason for using this
+ type. Creates a listening socket on the client
+ which requires firewall exceptions on the client
+ as well as client network when connecting to a
+ server outside of the client's network. The server
+ connects to the IP address it sees the client coming
+ from. This type of data connection supports IPv4 and IPv6.
+
+
+
+
+ Type of data transfer to do
+
+
+
+
+ ASCII transfer
+
+
+
+
+ Binary transfer
+
+
+
+
+ Type of file system of object
+
+
+
+
+ A file
+
+
+
+
+ A directory
+
+
+
+
+ A symbolic link
+
+
+
+
+ Types of file permissions
+
+
+
+
+ No access
+
+
+
+
+ Executable
+
+
+
+
+ Writable
+
+
+
+
+ Readable
+
+
+
+
+ Types of special UNIX permissions
+
+
+
+
+ No special permissions are set
+
+
+
+
+ Sticky bit is set
+
+
+
+
+ SGID bit is set
+
+
+
+
+ SUID bit is set
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ Use the legacy parser (for older projects that depend on the pre-2017 parser routines).
+
+
+
+
+ Automatically detect the file listing parser to use based on the FTP server (SYST command).
+
+
+
+
+ Machine listing parser, works on any FTP server supporting the MLST/MLSD commands.
+
+
+
+
+ File listing parser for Windows/IIS.
+
+
+
+
+ File listing parser for Unix.
+
+
+
+
+ Alternate parser for Unix. Use this if the default one does not work.
+
+
+
+
+ File listing parser for Vax/VMS/OpenVMS.
+
+
+
+
+ File listing parser for IBM OS400.
+
+
+
+
+ File listing parser for Tandem/Nonstop Guardian OS.
+
+
+
+
+ Flags that can dictate how a file listing is performed
+
+
+
+
+ Tries machine listings (MDTM command) if supported,
+ and if not then falls back to OS-specific listings (LIST command)
+
+
+
+
+ Load the modify date using MDTM when it could not
+ be parsed from the server listing. This only pertains
+ to servers that do not implement the MLSD command.
+
+
+
+
+ Load the file size using the SIZE command when it
+ could not be parsed from the server listing. This
+ only pertains to servers that do not support the
+ MLSD command.
+
+
+
+
+ Combines the Modify and Size flags
+
+
+
+
+ Show hidden/dot files. This only pertains to servers
+ that do not support the MLSD command. This option
+ makes use the non standard -a parameter to LIST to
+ tell the server to show hidden files. Since it's a
+ non-standard option it may not always work. MLSD listings
+ have no such option and whether or not a hidden file is
+ shown is at the discretion of the server.
+
+
+
+
+ Force the use of OS-specific listings (LIST command) even if
+ machine listings (MLSD command) are supported by the server
+
+
+
+
+ Use the NLST command instead of LIST for a reliable file listing
+
+
+
+
+ Force the use of the NLST command (the slowest mode) even if machine listings
+ and OS-specific listings are supported by the server
+
+
+
+
+ Try to dereference symbolic links, and stored the linked file/directory in FtpListItem.LinkObject
+
+
+
+
+ Sets the ForceList flag and uses `LS' instead of `LIST' as the
+ command for getting a directory listing. This option overrides
+ ForceNameList and ignores the AllFiles flag.
+
+
+
+
+ Gets files within subdirectories as well. Adds the -r option to the LIST command.
+ Some servers may not support this feature.
+
+
+
+
+ Do not retrieve path when no path is supplied to GetListing(),
+ instead just execute LIST with no path argument.
+
+
+
+
+ Include two extra items into the listing, for the current directory (".")
+ and the parent directory (".."). Meaningless unless you want these two
+ items for some reason.
+
+
+
+
+ Defines the behavior for uploading/downloading files that already exist
+
+
+
+
+ Do not check if the file exists. A bit faster than the other options. Only use this if you are SURE that the file does not exist on the server.
+ Otherwise it can cause the UploadFile method to hang due to filesize mismatch.
+
+
+
+
+ Skip the file if it exists, without any more checks.
+
+
+
+
+ Overwrite the file if it exists.
+
+
+
+
+ Append to the file if it exists, by checking the length and adding the missing data.
+
+
+
+
+ Defines the level of the tracing message. Depending on the framework version this is translated
+ to an equivalent logging level in System.Diagnostices (if available)
+
+
+
+
+ Used for logging Debug or Verbose level messages
+
+
+
+
+ Used for logging Informational messages
+
+
+
+
+ Used for logging non-fatal or ignorable error messages
+
+
+
+
+ Used for logging Error messages that may need investigation
+
+
+
+
+ Defines how multi-file processes should handle a processing error.
+
+ & Cannot Be Combined
+
+
+
+ No action is taken upon errors. The method absorbs the error and continues.
+
+
+
+
+ If any files have completed successfully (or failed after a partial download/upload) then should be deleted.
+ This will simulate an all-or-nothing transaction downloading or uploading multiple files. If this option is not
+ combined with or then the method will
+ continue to process all items whether if they are successful or not and then delete everything if a failure was
+ encountered at any point.
+
+
+
+
+ The method should stop processing any additional files and immediately return upon encountering an error.
+ Cannot be combined with
+
+
+
+
+ The method should stop processing any additional files and immediately throw the current error.
+ Cannot be combined with
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ No verification of the file is performed
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then we retry the download/upload
+ a specified amount of times before giving up. (See )
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the failed file will be deleted.
+ If combined with , then
+ the deletion will occur if it fails upon the final retry.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then an exception will be thrown.
+ If combined with , then the throw will
+ occur upon the failure of the final retry, and/or if combined with
+ the method will throw after the deletion is processed.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the method returns false and no other action is taken.
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ The date is whatever the server returns, with no conversion performed.
+
+
+
+
+ The date is converted to the local timezone, based on the TimeOffset property in FtpClient.
+
+
+
+
+ The date is converted to UTC, based on the TimeOffset property in FtpClient.
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+ The control connection that triggered the event
+ Event args
+
+
+
+ Event fired if a bad SSL certificate is encountered. This even is used internally; if you
+ don't have a specific reason for using it you are probably looking for FtpSslValidation.
+
+
+
+
+
+
+ Event args for the FtpSslValidationError delegate
+
+
+
+
+ The certificate to be validated
+
+
+
+
+ The certificate chain
+
+
+
+
+ Validation errors, if any.
+
+
+
+
+ Gets or sets a value indicating if this certificate should be accepted. The default
+ value is false. If the certificate is not accepted, an AuthenticationException will
+ be thrown.
+
+
+
+
+ FTP related error
+
+
+
+
+ Initializes a new instance of the class.
+
+ The error message
+
+
+
+ Initializes a new instance of the class with an inner exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Exception triggered on command failures
+
+
+
+
+ Gets the completion code associated with the response
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ Status code
+ Associated message
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ The FtpReply to build the exception from
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Exception is thrown when encryption could not be negotiated by the server
+
+
+
+
+ Default constructor
+
+
+
+
+ Custom error message
+
+ Error message
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Represents a computed hash of an object
+ on the FTP server. See the following link
+ for more information:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Gets the algorithm that was used to compute the hash
+
+
+
+
+ Gets the computed hash returned by the server
+
+
+
+
+ Gets a value indicating if this object represents a
+ valid hash response from the server.
+
+
+
+
+ Computes the hash for the specified file and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The file to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Computes the hash for the specified stream and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The stream to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Creates an empty instance.
+
+
+
+
+ Represents a file system object on the server
+
+
+
+
+
+ Blank constructor; Fill args manually.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Constructor with mandatory args filled.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Gets the type of file system object.
+
+
+
+
+ Gets the full path name to the object.
+
+
+
+
+ Gets the name of the object.
+
+
+
+
+ Gets the target a symbolic link points to.
+
+
+
+
+ Gets the number of links pointing to this file. Only supplied by Unix servers.
+
+
+
+
+ Gets the object that the LinkTarget points to. This property is null unless you pass the
+ flag in which case GetListing() will try to resolve
+ the target itself.
+
+
+
+
+ Gets the last write time of the object.
+
+
+
+
+ Gets the created date of the object.
+
+
+
+
+ Gets the size of the object.
+
+
+
+
+ Gets special UNIX permissions such as Sticky, SUID and SGID.
+
+
+
+
+ Gets the owner permissions.
+
+
+
+
+ Gets the group permissions.
+
+
+
+
+ Gets the others permissions.
+
+
+
+
+ Gets the raw string received for the file permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the file permissions in the CHMOD format.
+
+
+
+
+ Gets the raw string received for the file's GROUP permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the raw string received for the file's OWNER permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the input string that was parsed to generate the
+ values in this object.
+
+
+
+
+ Returns a string representation of this object and its properties
+
+ A string representing this object
+
+
+
+ Parses a line from a file listing using the first successful parser, or the specified parser.
+ Returns an FtpListItem object representing the parsed line, or null if the line was unable to be parsed.
+
+
+
+
+ the FTP connection that owns this parser
+
+
+
+
+ which server type? (SYST)
+
+
+
+
+ current parser, or parser set by user
+
+
+
+
+ parser calculated based on system type (SYST command)
+
+
+
+
+ if we have detected that the current parser is valid
+
+
+
+
+ which culture to read filenames with?
+
+
+
+
+ what is the time offset between server/client?
+
+
+
+
+ any time offset between server/client?
+
+
+
+
+ VMS ONLY : the blocksize used to calculate the file
+
+
+
+
+ Is the version number returned as part of the filename?
+
+ Some VMS FTP servers do not permit a file to be deleted unless
+ the filename includes the version number. Note that directories are
+ never returned with the version number.
+
+
+
+
+ Initializes a new instance of the class.
+
+ An existing object
+
+
+
+ Try to auto-detect which parser is suitable given a system string.
+
+ result of SYST command
+
+
+
+ Parse raw file list from server into file objects, using the currently active parser.
+
+
+
+
+ Parse raw file from server into a file object, using the currently active parser.
+
+
+
+
+ Validate if the current parser is correct, or if another parser seems more appropriate.
+
+
+
+
+ Validate if the current parser is correct
+
+
+
+
+ Parses a line from a file listing using the first successful match in the Parsers collection.
+
+ The source path of the file listing
+ A line from the file listing
+ Server capabilities
+ A FtpListItem object representing the parsed line, null if the line was
+ unable to be parsed. If you have encountered an unsupported list type add a parser
+ to the public static Parsers collection of FtpListItem.
+
+
+
+ Used for synchronizing access to the Parsers collection
+
+
+
+
+ Initializes the default list of parsers
+
+
+
+
+ Collection of parsers. Each parser object contains
+ a regex string that uses named groups, i.e., (?<group_name>foobar).
+ The support group names are modify for last write time, size for the
+ size and name for the name of the file system object. Each group name is
+ optional, if they are present then those values are retrieved from a
+ successful match. In addition, each parser contains a Type property
+ which gets set in the FtpListItem object to distinguish between different
+ types of objects.
+
+
+
+
+ Adds a custom parser
+
+ The parser delegate to add
+
+
+
+
+ Removes all parser delegates
+
+
+
+
+ Removes the specified parser
+
+ The parser delegate to remove
+
+
+
+ Parses LIST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS DOS format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Ftp listing line parser
+
+ The line from the listing
+ The server capabilities
+ FtpListItem if the line can be parsed, null otherwise
+
+
+
+ Parses MLSD/MLST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings with alternate parser
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS/DOS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Vax/VMS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses NonStop format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IBM OS/400 format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Split into fields by splitting on strings
+
+
+
+ Fix the date string to make the month camel case
+ array of fields
+
+
+
+ Represents a reply to an event on the server
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ The status code of the response
+
+
+
+
+ The message, if any, that the server sent with the response
+
+
+
+
+ Informational messages sent from the server
+
+
+
+
+ General success or failure of the last command executed
+
+
+
+
+ Gets the error message including any informational output
+ that was sent by the server. Sometimes the final response
+ line doesn't contain anything informative as to what was going
+ on with the server. Instead it may send information messages so
+ in an effort to give as meaningful as a response as possible
+ the informational messages will be included in the error.
+
+
+
+
+ Used for transaction logging and debug information.
+
+
+
+
+ Should the trace listeners be flushed immediately after writing to them?
+
+
+
+
+ Should the log entries be written with a prefix of "FluentFTP"?
+ Useful if you have a single TraceListener shared across multiple libraries.
+
+
+
+
+ Add a TraceListner to the collection. You can use one of the predefined
+ TraceListeners in the System.Diagnostics namespace, such as ConsoleTraceListener
+ for logging to the console, or you can write your own deriving from
+ System.Diagnostics.TraceListener.
+
+ The TraceListener to add to the collection
+
+
+
+ Remove the specified TraceListener from the collection
+
+ The TraceListener to remove from the collection.
+
+
+
+ Should the function calls be logged in Verbose mode?
+
+
+
+
+ Should the FTP server IP addresses be included in the logs?
+
+
+
+
+ Should the FTP usernames be included in the logs?
+
+
+
+
+ Should the FTP passwords be included in the logs?
+
+
+
+
+ Should we trace at all?
+
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, adding an automatic prefix to the message based on the `eventType`
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, for the purpose of logging a API function call
+
+ The name of the API function
+ The args passed to the function
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ A formattable string to write
+
+
+ A FTP client with a HTTP 1.1 proxy implementation.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+ Host name
+ Port number
+ IP version to use
+
+
+
+ Abstraction of an FtpClient with a proxy
+
+
+
+ The proxy connection info.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine connect for FtpClient : authentication on the Proxy
+ The socket stream.
+
+
+ A FTP client with a user@host proxy identification.
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+
+ A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers.
+
+ The 'blue coat variant' forces the client to wait for a 220 FTP response code in
+ the handshake phase.
+
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+ POCO holding proxy information
+
+
+ Proxy host name
+
+
+ Proxy port
+
+
+ Proxy login credentials
+
+
+
+ Base class for data stream connections
+
+
+
+
+ Gets the status of the command that was used to open
+ this data channel
+
+
+
+
+ Gets or sets the control connection for this data stream. Setting
+ the control connection causes the object to be cloned and a new
+ connection is made to the server to carry out the task. This ensures
+ that multiple streams can be opened simultaneously.
+
+
+
+
+ Gets or sets the length of the stream. Only valid for file transfers
+ and only valid on servers that support the Size command.
+
+
+
+
+ Gets or sets the position of the stream
+
+
+
+
+ Reads data off the stream
+
+ The buffer to read into
+ Where to start in the buffer
+ Number of bytes to read
+ The number of bytes read
+
+
+
+ Writes data to the stream
+
+ The buffer to write to the stream
+ Where to start in the buffer
+ The number of bytes to write to the buffer
+
+
+
+ Sets the length of this stream
+
+ Value to apply to the Length property
+
+
+
+ Sets the position of the stream. Intended to be used
+ internally by FtpControlConnection.
+
+ The position
+
+
+
+ Closes the connection and reads the server's reply
+
+
+
+
+ Creates a new data stream object
+
+ The control connection to be used for carrying out this operation
+
+
+
+ Finalizer
+
+
+
+
+ Stream class used for talking. Used by FtpClient, extended by FtpDataStream
+
+
+
+
+ Used for tacking read/write activity on the socket
+ to determine if Poll() should be used to test for
+ socket connectivity. The socket in this class will
+ not know it has been disconnected if the remote host
+ closes the connection first. Using Poll() avoids
+ the exception that would be thrown when trying to
+ read or write to the disconnected socket.
+
+
+
+
+ The socket used for talking
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling Poll() on the socket to test for
+ connectivity. Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Poll()'ing all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets the number of available bytes on the socket, 0 if the
+ socket has not been initialized. This property is used internally
+ by FtpClient in an effort to detect disconnections and gracefully
+ reconnect the control connection.
+
+
+
+
+ Gets a value indicating if this socket stream is connected
+
+
+
+
+ Gets a value indicating if encryption is being used
+
+
+
+
+ The non-encrypted stream
+
+
+
+
+ The encrypted stream
+
+
+
+
+ Gets the underlying stream, could be a NetworkStream or SslStream
+
+
+
+
+ Gets a value indicating if this stream can be read
+
+
+
+
+ Gets a value indicating if this stream if seekable
+
+
+
+
+ Gets a value indicating if this stream can be written to
+
+
+
+
+ Gets the length of the stream
+
+
+
+
+ Gets the current position of the stream. Trying to
+ set this property throws an InvalidOperationException()
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+
+
+
+ Gets or sets the amount of time to wait for a read operation to complete. Default
+ value is Timeout.Infinite.
+
+
+
+
+ Gets or sets the length of time milliseconds to wait
+ for a connection succeed before giving up. The default
+ is 30000 (30 seconds).
+
+
+
+
+ Gets the local end point of the socket
+
+
+
+
+ Gets the remote end point of the socket
+
+
+
+
+ Fires the SSL certificate validation event
+
+ Certificate being validated
+ Certificate chain
+ Policy errors if any
+ True if it was accepted, false otherwise
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+ Ignored
+
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+
+
+
+ Flushes the stream
+
+
+
+
+ Bypass the stream and read directly off the socket.
+
+ The buffer to read into
+ The number of bytes read
+
+
+
+ Reads data from the stream
+
+ Buffer to read into
+ Where in the buffer to start
+ Number of bytes to be read
+ The amount of bytes read from the stream
+
+
+
+ Reads a line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads all line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ The size of the buffer
+ A list of lines from the stream
+
+
+
+ Writes data to the stream
+
+ Buffer to write to stream
+ Where in the buffer to start
+ Number of bytes to be read
+
+
+
+ Writes a line to the stream using the specified encoding
+
+ Encoding used for writing the line
+ The data to write
+
+
+
+ Disconnects from server
+
+
+
+
+ Sets socket options on the underlying socket
+
+ SocketOptionLevel
+ SocketOptionName
+ SocketOptionValue
+
+
+
+ Connect to the specified host
+
+ The host to connect to
+ The port to connect to
+ Internet Protocol versions to support during the connection phase
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+
+
+
+ Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+ A bitwise parameter for supported encryption protocols.
+ Thrown when authentication fails
+
+
+
+ Deactivates SSL on this stream using the specified protocols and reverts back to plain-text FTP.
+
+
+
+
+ Instructs this stream to listen for connections on the specified address and port
+
+ The address to listen on
+ The port to listen on
+
+
+
+ Accepts a connection from a listening socket
+
+
+
+
+ Asynchronously accepts a connection from a listening socket
+
+
+
+
+
+
+
+ Completes a BeginAccept() operation
+
+ IAsyncResult returned from BeginAccept
+
+
+
+ .NET SslStream doesn't close TLS connection properly.
+ It does not send the close_notify alert before closing the connection.
+ FtpSslStream uses unsafe code to do that.
+ This is required when we want to downgrade the connection to plaintext using CCC command.
+ Thanks to Neco @ https://stackoverflow.com/questions/237807/net-sslstream-doesnt-close-tls-connection-properly/22626756#22626756
+
+
+
+
+ Send an SSL close_notify alert.
+
+
+
+
+
+ Extension methods related to FTP tasks
+
+
+
+
+ Converts the specified path into a valid FTP file system path
+
+ The file system path
+ A path formatted for FTP
+
+
+
+ Creates a valid FTP path by appending the specified segments to this string
+
+ This string
+ The path segments to append
+ A valid FTP path
+
+
+
+ Gets the parent directory path (formatted for a FTP server)
+
+ The path
+ The parent directory path
+
+
+
+ Gets the file name and extension from the path
+
+ The full path to the file
+ The file name
+
+
+
+ Tries to convert the string FTP date representation into a object
+
+ The date
+ UTC/Local Time
+ A object representing the date, or if there was a problem
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Validates that the FtpError flags set are not in an invalid combination.
+
+ The error handling options set
+ True if a valid combination, otherwise false
+
+
+
+ Checks if every character in the string is whitespace, or the string is null.
+
+
+
+
+ Checks if the string is null or 0 length.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Provides a set of static (Shared in Visual Basic) methods for
+ querying objects that implement .
+
+
+
+
+ Returns the input typed as .
+
+
+
+
+ Returns an empty that has the
+ specified type argument.
+
+
+
+
+ Converts the elements of an to the
+ specified type.
+
+
+
+
+ Filters the elements of an based on a specified type.
+
+
+
+
+ Generates a sequence of integral numbers within a specified range.
+
+ The value of the first integer in the sequence.
+ The number of sequential integers to generate.
+
+
+
+ Generates a sequence that contains one repeated value.
+
+
+
+
+ Filters a sequence of values based on a predicate.
+
+
+
+
+ Filters a sequence of values based on a predicate.
+ Each element's index is used in the logic of the predicate function.
+
+
+
+
+ Projects each element of a sequence into a new form.
+
+
+
+
+ Projects each element of a sequence into a new form by
+ incorporating the element's index.
+
+
+
+
+ Projects each element of a sequence to an
+ and flattens the resulting sequences into one sequence.
+
+
+
+
+ Projects each element of a sequence to an ,
+ and flattens the resulting sequences into one sequence. The
+ index of each source element is used in the projected form of
+ that element.
+
+
+
+
+ Projects each element of a sequence to an ,
+ flattens the resulting sequences into one sequence, and invokes
+ a result selector function on each element therein.
+
+
+
+
+ Projects each element of a sequence to an ,
+ flattens the resulting sequences into one sequence, and invokes
+ a result selector function on each element therein. The index of
+ each source element is used in the intermediate projected form
+ of that element.
+
+
+
+
+ Returns elements from a sequence as long as a specified condition is true.
+
+
+
+
+ Returns elements from a sequence as long as a specified condition is true.
+ The element's index is used in the logic of the predicate function.
+
+
+
+
+ Returns a specified number of contiguous elements from the start
+ of a sequence.
+
+
+
+
+ Base implementation of First operator.
+
+
+
+
+ Returns the first element of a sequence.
+
+
+
+
+ Returns the first element in a sequence that satisfies a specified condition.
+
+
+
+
+ Returns the first element of a sequence, or a default value if
+ the sequence contains no elements.
+
+
+
+
+ Returns the first element of the sequence that satisfies a
+ condition or a default value if no such element is found.
+
+
+
+
+ Base implementation of Last operator.
+
+
+
+
+ Returns the last element of a sequence.
+
+
+
+
+ Returns the last element of a sequence that satisfies a
+ specified condition.
+
+
+
+
+ Returns the last element of a sequence, or a default value if
+ the sequence contains no elements.
+
+
+
+
+ Returns the last element of a sequence that satisfies a
+ condition or a default value if no such element is found.
+
+
+
+
+ Base implementation of Single operator.
+
+
+
+
+ Returns the only element of a sequence, and throws an exception
+ if there is not exactly one element in the sequence.
+
+
+
+
+ Returns the only element of a sequence that satisfies a
+ specified condition, and throws an exception if more than one
+ such element exists.
+
+
+
+
+ Returns the only element of a sequence, or a default value if
+ the sequence is empty; this method throws an exception if there
+ is more than one element in the sequence.
+
+
+
+
+ Returns the only element of a sequence that satisfies a
+ specified condition or a default value if no such element
+ exists; this method throws an exception if more than one element
+ satisfies the condition.
+
+
+
+
+ Returns the element at a specified index in a sequence.
+
+
+
+
+ Returns the element at a specified index in a sequence or a
+ default value if the index is out of range.
+
+
+
+
+ Inverts the order of the elements in a sequence.
+
+
+
+
+ Bypasses elements in a sequence as long as a specified condition
+ is true and then returns the remaining elements.
+
+
+
+
+ Bypasses elements in a sequence as long as a specified condition
+ is true and then returns the remaining elements. The element's
+ index is used in the logic of the predicate function.
+
+
+
+
+ Bypasses a specified number of elements in a sequence and then
+ returns the remaining elements.
+
+
+
+
+ Returns the number of elements in a sequence.
+
+
+
+
+ Returns a number that represents how many elements in the
+ specified sequence satisfy a condition.
+
+
+
+
+ Returns an that represents the total number
+ of elements in a sequence.
+
+
+
+
+ Returns an that represents how many elements
+ in a sequence satisfy a condition.
+
+
+
+
+ Concatenates two sequences.
+
+
+
+
+ Creates a from an .
+
+
+
+
+ Creates an array from an .
+
+
+
+
+ Returns distinct elements from a sequence by using the default
+ equality comparer to compare values.
+
+
+
+
+ Returns distinct elements from a sequence by using a specified
+ to compare values.
+
+
+
+
+ Creates a from an
+ according to a specified key
+ selector function.
+
+
+
+
+ Creates a from an
+ according to a specified key
+ selector function and a key comparer.
+
+
+
+
+ Creates a from an
+ according to specified key
+ and element selector functions.
+
+
+
+
+ Creates a from an
+ according to a specified key
+ selector function, a comparer and an element selector function.
+
+
+
+
+ Groups the elements of a sequence according to a specified key
+ selector function.
+
+
+
+
+ Groups the elements of a sequence according to a specified key
+ selector function and compares the keys by using a specified
+ comparer.
+
+
+
+
+ Groups the elements of a sequence according to a specified key
+ selector function and projects the elements for each group by
+ using a specified function.
+
+
+
+
+ Groups the elements of a sequence according to a specified key
+ selector function and creates a result value from each group and
+ its key.
+
+
+
+
+ Groups the elements of a sequence according to a key selector
+ function. The keys are compared by using a comparer and each
+ group's elements are projected by using a specified function.
+
+
+
+
+ Groups the elements of a sequence according to a specified key
+ selector function and creates a result value from each group and
+ its key. The elements of each group are projected by using a
+ specified function.
+
+
+
+
+ Groups the elements of a sequence according to a specified key
+ selector function and creates a result value from each group and
+ its key. The keys are compared by using a specified comparer.
+
+
+
+
+ Groups the elements of a sequence according to a specified key
+ selector function and creates a result value from each group and
+ its key. Key values are compared by using a specified comparer,
+ and the elements of each group are projected by using a
+ specified function.
+
+
+
+
+ Applies an accumulator function over a sequence.
+
+
+
+
+ Applies an accumulator function over a sequence. The specified
+ seed value is used as the initial accumulator value.
+
+
+
+
+ Applies an accumulator function over a sequence. The specified
+ seed value is used as the initial accumulator value, and the
+ specified function is used to select the result value.
+
+
+
+
+ Produces the set union of two sequences by using the default
+ equality comparer.
+
+
+
+
+ Produces the set union of two sequences by using a specified
+ .
+
+
+
+
+ Returns the elements of the specified sequence or the type
+ parameter's default value in a singleton collection if the
+ sequence is empty.
+
+
+
+
+ Returns the elements of the specified sequence or the specified
+ value in a singleton collection if the sequence is empty.
+
+
+
+
+ Determines whether all elements of a sequence satisfy a condition.
+
+
+
+
+ Determines whether a sequence contains any elements.
+
+
+
+
+ Determines whether any element of a sequence satisfies a
+ condition.
+
+
+
+
+ Determines whether a sequence contains a specified element by
+ using the default equality comparer.
+
+
+
+
+ Determines whether a sequence contains a specified element by
+ using a specified .
+
+
+
+
+ Determines whether two sequences are equal by comparing the
+ elements by using the default equality comparer for their type.
+
+
+
+
+ Determines whether two sequences are equal by comparing their
+ elements by using a specified .
+
+
+
+
+ Base implementation for Min/Max operator.
+
+
+
+
+ Base implementation for Min/Max operator for nullable types.
+
+
+
+
+ Returns the minimum value in a generic sequence.
+
+
+
+
+ Invokes a transform function on each element of a generic
+ sequence and returns the minimum resulting value.
+
+
+
+
+ Returns the maximum value in a generic sequence.
+
+
+
+
+ Invokes a transform function on each element of a generic
+ sequence and returns the maximum resulting value.
+
+
+
+
+ Makes an enumerator seen as enumerable once more.
+
+
+ The supplied enumerator must have been started. The first element
+ returned is the element the enumerator was on when passed in.
+ DO NOT use this method if the caller must be a generator. It is
+ mostly safe among aggregate operations.
+
+
+
+
+ Sorts the elements of a sequence in ascending order according to a key.
+
+
+
+
+ Sorts the elements of a sequence in ascending order by using a
+ specified comparer.
+
+
+
+
+ Sorts the elements of a sequence in descending order according to a key.
+
+
+
+
+ Sorts the elements of a sequence in descending order by using a
+ specified comparer.
+
+
+
+
+ Performs a subsequent ordering of the elements in a sequence in
+ ascending order according to a key.
+
+
+
+
+ Performs a subsequent ordering of the elements in a sequence in
+ ascending order by using a specified comparer.
+
+
+
+
+ Performs a subsequent ordering of the elements in a sequence in
+ descending order, according to a key.
+
+
+
+
+ Performs a subsequent ordering of the elements in a sequence in
+ descending order by using a specified comparer.
+
+
+
+
+ Base implementation for Intersect and Except operators.
+
+
+
+
+ Produces the set intersection of two sequences by using the
+ default equality comparer to compare values.
+
+
+
+
+ Produces the set intersection of two sequences by using the
+ specified to compare values.
+
+
+
+
+ Produces the set difference of two sequences by using the
+ default equality comparer to compare values.
+
+
+
+
+ Produces the set difference of two sequences by using the
+ specified to compare values.
+
+
+
+
+ Creates a from an
+ according to a specified key
+ selector function.
+
+
+
+
+ Creates a from an
+ according to a specified key
+ selector function and key comparer.
+
+
+
+
+ Creates a from an
+ according to specified key
+ selector and element selector functions.
+
+
+
+
+ Creates a from an
+ according to a specified key
+ selector function, a comparer, and an element selector function.
+
+
+
+
+ Correlates the elements of two sequences based on matching keys.
+ The default equality comparer is used to compare keys.
+
+
+
+
+ Correlates the elements of two sequences based on matching keys.
+ The default equality comparer is used to compare keys. A
+ specified is used to compare keys.
+
+
+
+
+ Correlates the elements of two sequences based on equality of
+ keys and groups the results. The default equality comparer is
+ used to compare keys.
+
+
+
+
+ Correlates the elements of two sequences based on equality of
+ keys and groups the results. The default equality comparer is
+ used to compare keys. A specified
+ is used to compare keys.
+
+
+
+
+ Computes the sum of a sequence of nullable values.
+
+
+
+
+ Computes the sum of a sequence of nullable
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of nullable values.
+
+
+
+
+ Computes the average of a sequence of nullable values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Computes the sum of a sequence of values.
+
+
+
+
+ Computes the sum of a sequence of
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of values.
+
+
+
+
+ Computes the average of a sequence of values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Returns the minimum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the minimum nullable value.
+
+
+
+
+ Returns the maximum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the maximum nullable value.
+
+
+
+
+ Computes the sum of a sequence of nullable values.
+
+
+
+
+ Computes the sum of a sequence of nullable
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of nullable values.
+
+
+
+
+ Computes the average of a sequence of nullable values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Computes the sum of a sequence of values.
+
+
+
+
+ Computes the sum of a sequence of
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of values.
+
+
+
+
+ Computes the average of a sequence of values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Returns the minimum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the minimum nullable value.
+
+
+
+
+ Returns the maximum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the maximum nullable value.
+
+
+
+
+ Computes the sum of a sequence of nullable values.
+
+
+
+
+ Computes the sum of a sequence of nullable
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of nullable values.
+
+
+
+
+ Computes the average of a sequence of nullable values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Computes the sum of a sequence of values.
+
+
+
+
+ Computes the sum of a sequence of
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of values.
+
+
+
+
+ Computes the average of a sequence of values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Returns the minimum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the minimum nullable value.
+
+
+
+
+ Returns the maximum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the maximum nullable value.
+
+
+
+
+ Computes the sum of a sequence of nullable values.
+
+
+
+
+ Computes the sum of a sequence of nullable
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of nullable values.
+
+
+
+
+ Computes the average of a sequence of nullable values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Computes the sum of a sequence of values.
+
+
+
+
+ Computes the sum of a sequence of
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of values.
+
+
+
+
+ Computes the average of a sequence of values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Returns the minimum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the minimum nullable value.
+
+
+
+
+ Returns the maximum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the maximum nullable value.
+
+
+
+
+ Computes the sum of a sequence of nullable values.
+
+
+
+
+ Computes the sum of a sequence of nullable
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of nullable values.
+
+
+
+
+ Computes the average of a sequence of nullable values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Computes the sum of a sequence of values.
+
+
+
+
+ Computes the sum of a sequence of
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of values.
+
+
+
+
+ Computes the average of a sequence of values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Returns the minimum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the minimum nullable value.
+
+
+
+
+ Returns the maximum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the maximum nullable value.
+
+
+
+
+ Represents a collection of objects that have a common key.
+
+
+
+
+ Gets the key of the .
+
+
+
+
+ Defines an indexer, size property, and Boolean search method for
+ data structures that map keys to
+ sequences of values.
+
+
+
+
+ Represents a sorted sequence.
+
+
+
+
+ Performs a subsequent ordering on the elements of an
+ according to a key.
+
+
+
+
+ Represents a collection of keys each mapped to one or more values.
+
+
+
+
+ Gets the number of key/value collection pairs in the .
+
+
+
+
+ Gets the collection of values indexed by the specified key.
+
+
+
+
+ Determines whether a specified key is in the .
+
+
+
+
+ Applies a transform function to each key and its associated
+ values and returns the results.
+
+
+
+
+ Returns a generic enumerator that iterates through the .
+
+
+
+
+ To support progress reporting in .NET 3.5 and .NET 4.0
+
+
+
+
+ To support progress reporting in .NET 3.5 and .NET 4.0
+
+
+
+
+ This type is not intended to be used directly from user code.
+ It may be removed or changed in a future version without notice.
+
+
+
+
+ This type is not intended to be used directly from user code.
+ It may be removed or changed in a future version without notice.
+
+
+
+
+ This type is not intended to be used directly from user code.
+ It may be removed or changed in a future version without notice.
+
+
+
+
diff --git a/packages/FluentFTP.19.2.2/lib/net35/FluentFTP.dll b/packages/FluentFTP.19.2.2/lib/net35/FluentFTP.dll
new file mode 100644
index 0000000..d49de58
Binary files /dev/null and b/packages/FluentFTP.19.2.2/lib/net35/FluentFTP.dll differ
diff --git a/packages/FluentFTP.19.2.2/lib/net35/FluentFTP.xml b/packages/FluentFTP.19.2.2/lib/net35/FluentFTP.xml
new file mode 100644
index 0000000..9fe7a8e
--- /dev/null
+++ b/packages/FluentFTP.19.2.2/lib/net35/FluentFTP.xml
@@ -0,0 +1,4395 @@
+
+
+
+ FluentFTP
+
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+
+
+ Used for internally synchronizing access to this
+ object from multiple threads
+
+
+
+
+ For usage by FTP proxies only
+
+
+
+
+ A list of asynchronous methods that are in progress
+
+
+
+
+ Control connection socket stream
+
+
+
+
+ Gets a value indicating if this object has already been disposed.
+
+
+
+
+ Gets the base stream for talking to the server via
+ the control connection.
+
+
+
+
+ Flags specifying which versions of the internet protocol to
+ support when making a connection. All addresses returned during
+ name resolution are tried until a successful connection is made.
+ You can fine tune which versions of the internet protocol to use
+ by adding or removing flags here. I.e., setting this property
+ to FtpIpVersion.IPv4 will cause the connection process to
+ ignore IPv6 addresses. The default value is ANY version.
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling
+ on the socket to test for connectivity.
+ Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Polling all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets or sets a value indicating whether a test should be performed to
+ see if there is stale (unrequested data) sitting on the socket. In some
+ cases the control connection may time out but before the server closes
+ the connection it might send a 4xx response that was unexpected and
+ can cause synchronization errors with transactions. To avoid this
+ problem the method checks to see if there is any data
+ available on the socket before executing a command. On Azure hosting
+ platforms this check can cause an exception to be thrown. In order
+ to work around the exception you can set this property to false
+ which will skip the test entirely however doing so eliminates the
+ best effort attempt of detecting such scenarios. See this thread
+ for more details about the Azure problem:
+ https://netftp.codeplex.com/discussions/535879
+
+
+
+
+ Gets a value indicating if the connection is alive
+
+
+
+
+ When this value is set to true (default) the control connection
+ is cloned and a new connection the server is established for the
+ data channel operation. This is a thread safe approach to make
+ asynchronous operations on a single control connection transparent
+ to the developer.
+
+
+
+
+ Gets a value indicating if this control connection is a clone. This property
+ is used with data streams to determine if the connection should be closed
+ when the stream is closed. Servers typically only allow 1 data connection
+ per control connection. If you try to open multiple data connections this
+ object will be cloned for 2 or more resulting in N new connections to the
+ server.
+
+
+
+
+ Gets or sets the text encoding being used when talking with the server. The default
+ value is however upon connection, the client checks
+ for UTF8 support and if it's there this property is switched over to
+ . Manually setting this value overrides automatic detection
+ based on the FEAT list; if you change this value it's always used
+ regardless of what the server advertises, if anything.
+
+
+
+
+ The server to connect to
+
+
+
+
+ The port to connect to. If this value is set to 0 (Default) the port used
+ will be determined by the type of SSL used or if no SSL is to be used it
+ will automatically connect to port 21.
+
+
+
+
+ Credentials used for authentication
+
+
+
+
+ Gets or sets a value that controls the maximum depth
+ of recursion that will follow symbolic
+ links before giving up. You can also specify the value
+ to be used as one of the overloaded parameters to the
+ method. The default value is 20. Specifying
+ -1 here means indefinitely try to resolve a link. This is
+ not recommended for obvious reasons (stack overflow).
+
+
+
+
+ Client certificates to be used in SSL authentication process
+
+
+
+
+ Delegate used for resolving local address, used for active data connections
+ This can be used in case you're behind a router, but port forwarding is configured to forward the
+ ports from your router to your internal IP. In that case, we need to send the router's IP instead of our internal IP.
+ See example: FtpClient.GetPublicIP -> This uses Ipify api to find external IP
+
+
+
+
+ Ports used for Active Data Connection
+
+
+
+
+ Data connection type, default is AutoPassive which tries
+ a connection with EPSV first and if it fails then tries
+ PASV before giving up. If you know exactly which kind of
+ connection you need you can slightly increase performance
+ by defining a specific type of passive or active data
+ connection here.
+
+
+
+
+ Disconnect from the server without sending QUIT. This helps
+ work around IOExceptions caused by buggy connection resets
+ when closing the control connection.
+
+
+
+
+ Gets or sets the length of time in milliseconds to wait for a connection
+ attempt to succeed before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time wait in milliseconds for data to be
+ read from the underlying stream. The default value is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds for a data connection
+ to be established before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds the data channel
+ should wait for the server to send data. Default value is
+ 15000 (15 seconds).
+
+
+
+
+ Gets or sets a value indicating if should be set on
+ the underlying stream's socket. If the connection is alive, the option is
+ adjusted in real-time. The value is stored and the KeepAlive option is set
+ accordingly upon any new connections. The value set here is also applied to
+ all future data streams. It has no affect on cloned control connections or
+ data connections already in progress. The default value is false.
+
+
+
+
+ Gets the server capabilities represented by flags
+
+
+
+
+ Get the hash types supported by the server, if any. This
+ is a recent extension to the protocol that is not fully
+ standardized and is not guaranteed to work. See here for
+ more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Type of SSL to use, or none. Default is none. Explicit is TLS, Implicit is SSL.
+
+
+
+
+ Indicates if data channel transfers should be encrypted. Only valid if
+ property is not equal to .
+
+
+
+
+ Indicates if the encryption should be disabled immediately after connecting using a CCC command.
+ This is useful when you have a FTP firewall that requires plaintext FTP, but your server mandates FTPS connections.
+
+
+
+
+ Encryption protocols to use. Only valid if EncryptionMode property is not equal to .
+ Default value is .NET Framework defaults from the class.
+
+
+
+
+ Event is fired to validate SSL certificates. If this event is
+ not handled and there are errors validating the certificate
+ the connection will be aborted.
+
+
+
+
+
+ Gets the type of system/server that we're
+ connected to.
+
+
+
+ Gets the connection type
+
+
+
+ Creates a new instance of an FTP Client.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, username and password.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port, username and password.
+
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+
+ Disconnects from the server, releases resources held by this
+ object.
+
+
+
+
+ Finalizer
+
+
+
+
+ Clones the control connection for opening multiple data streams
+
+ A new control connection with the same property settings as this one
+
+
+
+
+ Executes a command
+
+ The command to execute
+ The servers reply to the command
+
+
+
+
+ Performs execution of the specified command asynchronously
+
+ The command to execute
+ The method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends an asynchronous command
+
+ IAsyncResult returned from BeginExecute
+ FtpReply object (never null).
+
+
+
+
+ Retrieves a reply from the server. Do not execute this method
+ unless you are sure that a reply has been sent, i.e., you
+ executed a command. Doing so will cause the code to hang
+ indefinitely waiting for a server reply that is never coming.
+
+ FtpReply representing the response from the server
+
+
+
+
+ Connect to the server
+
+ Thrown if this object has been disposed.
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+ Called during Connect(). Typically extended by FTP proxies.
+
+
+
+
+ Populates the capabilities flags based on capabilities
+ supported by this server. This method is overridable
+ so that new features can be supported
+
+ The reply object from the FEAT command. The InfoMessages property will
+ contain a list of the features the server supported delimited by a new line '\n' character.
+
+
+
+ Initiates a connection to the server
+
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends an asynchronous connection attempt to the server from
+
+ returned from
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Disconnects from the server
+
+
+
+
+ Initiates a disconnection on the server
+
+ method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+
+
+
+
+ Catches the socket stream ssl validation event and fires the event handlers
+ attached to this object for validating SSL certificates
+
+ The stream that fired the event
+ The event args used to validate the certificate
+
+
+
+ Fires the SSL validation event
+
+ Event Args
+
+
+
+ Performs a bitwise and to check if the specified
+ flag is set on the property.
+
+ The to check for
+ True if the feature was found, false otherwise
+
+
+
+ Retrieves the delegate for the specified IAsyncResult and removes
+ it from the m_asyncmethods collection if the operation is successful
+
+ Type of delegate to retrieve
+ The IAsyncResult to retrieve the delegate for
+ The delegate that generated the specified IAsyncResult
+
+
+
+ Ensure a relative path is absolute by appending the working dir
+
+
+
+
+ Disables UTF8 support and changes the Encoding property
+ back to ASCII. If the server returns an error when trying
+ to turn UTF8 off a FtpCommandException will be thrown.
+
+
+
+
+ Data shouldn't be on the socket, if it is it probably
+ means we've been disconnected. Read and discard
+ whatever is there and close the connection (optional).
+
+ close the connection?
+ even read encrypted data?
+ trace data to logs?
+
+
+
+ Calculate the CHMOD integer value given a set of permissions.
+
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ FtpClient object
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ FtpClient object
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Restart location
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Calculate you public internet IP using the ipify service. Returns null if cannot be calculated.
+
+ Public IP Address
+
+
+
+ Gets the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The flag or if there was a problem.
+
+
+
+
+ Begins an asynchronous operation to get the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The flag or if there was a problem.
+
+
+
+ Sets the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash Algorithm
+ Thrown if the selected algorithm is not available on the server
+
+
+
+
+ Begins an asynchronous operation to set the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash algorithm to use
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+
+
+
+ Gets the hash of an object on the server using the currently selected hash algorithm.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Full or relative path of the object to compute the hash for.
+ The hash of the file.
+
+ Thrown if the property is ,
+ the remote path does not exist, or the command cannot be executed.
+
+ Path argument is null
+ Thrown when an unknown hash algorithm type is returned by the server
+
+
+
+
+ Begins an asynchronous operation to get the hash of an object on the server using the currently selected hash algorithm.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The file you want the server to compute the hash for
+ AsyncCallback
+ State object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+
+
+
+ Retrieves a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path of the file to checksum
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+
+
+ Gets the MD5 hash of the specified file using MD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a MD5 hash. The MD5 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The MD5 hash of the specified file.
+
+
+
+ Get the CRC value of the specified file. This is a non-standard extension of the protocol
+ and may throw a FtpCommandException if the server does not support it.
+
+ The path of the file you'd like the server to compute the CRC value for.
+ The response from the server, typically the XCRC value. FtpCommandException thrown on error
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a CRC hash. The XCRC command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The CRC hash of the specified file.
+
+
+
+ Gets the MD5 hash of the specified file using XMD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a XMD5 hash. The XMD5 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The MD5 hash of the specified file.
+
+
+
+ Gets the SHA-1 hash of the specified file using XSHA1. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-1 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA1 hash. The XSHA1 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-1 hash of the specified file.
+
+
+
+ Gets the SHA-256 hash of the specified file using XSHA256. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-256 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA256 hash. The XSHA256 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-256 hash of the specified file.
+
+
+
+ Gets the SHA-512 hash of the specified file using XSHA512. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-512 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA512 hash. The XSHA512 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-512 hash of the specified file.
+
+
+
+ Gets or sets the number of bytes transferred in a single chunk (a single FTP command).
+ Used by / and /
+ to transfer large files in multiple chunks.
+
+
+
+
+ Gets or sets the retry attempts allowed when a verification failure occurs during download or upload.
+ This value must be set to 1 or more.
+
+
+
+
+ Rate limit for uploads in kbyte/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Rate limit for downloads in kbytes/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Controls if the high-level API uploads files in Binary or ASCII mode.
+
+
+
+
+ Controls if the high-level API downloads files in Binary or ASCII mode.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ Files to be uploaded
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded into.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the specified file directly onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified stream as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Uploads the specified byte array as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Upload the given stream to the server as a new file. Overwrites the file if it exists.
+ Writes data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Downloads the specified file onto the local file system.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file into the specified stream.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file and return the raw byte array.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The variable that will receive the bytes.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Download a file from the server and write the data into the given stream.
+ Reads data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate.
+
+
+
+
+ File listing parser to be used.
+ Automatically calculated based on the type of the server, unless changed.
+
+
+
+
+ Culture used to parse file listings
+
+
+
+
+ Time difference between server and client, in hours.
+ If the server is located in New York and you are in London then the time difference is -5 hours.
+
+
+
+
+ Check if your server supports a recursive LIST command (LIST -R).
+ If you know for sure that this is unsupported, set it to false.
+
+
+
+
+ If true, increases performance of GetListing by reading multiple lines
+ of the file listing at once. If false then GetListing will read file
+ listings line-by-line. If GetListing is having issues with your server,
+ set it to false.
+
+ The number of bytes read is based upon .
+
+
+
+
+ Bytes to read during GetListing. Only honored if is true.
+
+
+
+
+ Returns information about a file system object. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ The path of the file or folder
+ Get the accurate modified date using another MDTM command
+ A FtpListItem object
+
+
+
+ Begins an asynchronous operation to return information about a remote file system object.
+
+
+ You should check the property for the
+ flag before calling this method. Failing to do so will result in an InvalidOperationException
+ being thrown when the server does not support machine listings. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ Path of the file or folder
+ Get the accurate modified date using another MDTM command
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ A if the command succeeded, or null if there was a problem.
+
+
+
+ Gets a file listing from the server from the current working directory. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ Options that dictacte how a list is performed and what information is gathered.
+ An array of FtpListItem objects
+
+
+
+
+ Begins an asynchronous operation to get a file listing from the server.
+ Each object returned contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to get a file listing from the server.
+ Each object returned contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Gets a file listing from the server asynchronously
+
+ The path to list
+ Options that dictate how the list operation is performed
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult return from
+ An array of items retrieved in the listing
+
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ A string array of file and directory names if any were returned.
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ The path of the directory to list
+ A string array of file and directory names if any were returned.
+
+
+
+
+ Begin an asynchronous operation to return a file/directory listing using the NLST command.
+
+ The path of the directory to list
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begin an asynchronous operation to return a file/directory listing using the NLST command.
+
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult object returned from
+ An array of file and directory names if any were returned.
+
+
+
+
+ Opens the specified type of passive data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Returns the ip address to be sent to the server for the active connection
+
+
+
+
+
+
+ Opens the specified type of active data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens a data stream.
+
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ The data stream.
+
+
+
+ Disconnects a data stream
+
+ The data stream to close
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A readable stream of the remote file
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for writing
+
+ Full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for writing
+
+ Full or relative path of the file
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A writable stream
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for appending
+
+ Full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for appending
+
+ Full or relative path of the file
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A writable stream
+
+
+
+
+ Sets the data type of information sent over the data stream
+
+ ASCII/Binary
+
+
+ Internal method that handles actually setting the data type.
+ Thrown when a FTP Command error condition occurs.
+ Thrown when a FTP error condition occurs.
+ ASCII/Binary.
+ This method doesn't do any locking to prevent recursive lock scenarios. Callers must do their own locking.
+
+
+
+ Begins an asynchronous operation to set the data type of information sent over the data stream
+
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Deletes a file on the server
+
+ The full or relative path to the file
+
+
+
+
+ Begins an asynchronous operation to delete the specified file on the server
+
+ The full or relative path to the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDeleteFile
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ If the directory is not empty, remove its contents
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Checks whether will be called recursively or not.
+
+
+
+
+
+
+ Begins an asynchronous operation to delete the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to delete the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDeleteDirectory
+
+
+
+
+ Tests if the specified directory exists on the server. This
+ method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ The path of the directory
+ True if it exists, false otherwise.
+
+
+
+
+ Begins an asynchronous operation to test if the specified directory exists on the server.
+ This method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ IAsyncResult
+ The full or relative path of the directory to check for
+ Async callback
+ State object
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDirectoryExists
+ True if the directory exists. False otherwise.
+
+
+
+
+ Checks if a file exists on the server.
+
+ The full or relative path to the file
+ True if the file exists
+
+
+
+
+ Begins an asynchronous operation to check if a file exists on the
+ server by taking a file listing of the parent directory in the path
+ and comparing the results the path supplied.
+
+ The full or relative path to the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ True if the file exists, false otherwise
+
+
+
+
+ Creates a directory on the server. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+
+
+
+
+ Creates a directory on the server
+
+ The full or relative path to the new remote directory
+ Try to force all non-existent pieces of the path to be created
+
+
+
+
+ Begins an asynchronous operation to create a remote directory. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to create a remote directory
+
+ The full or relative path to the new remote directory
+ Try to create the whole path if the preceding directories do not exist
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Renames an object on the remote file system.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+
+
+
+
+ Begins an asynchronous operation to rename an object on the remote file system.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Moves a file on the remote file system from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Whether the file was moved
+
+
+
+ Begins an asynchronous operation to move a file on the remote file system, from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Moves a directory on the remote file system from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Whether the directory was moved
+
+
+
+ Begins an asynchronous operation to move a directory on the remote file system, from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set.
+ Throws FtpCommandException if there is an issue.
+ Returns null if the server did not specify a permission value.
+ Use `GetChmod` if you required the integer value instead.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an integer in the CHMOD format.
+ Throws FtpCommandException if there is an issue.
+ Returns 0 if the server did not specify a permission value.
+ Use `GetFilePermissions` if you required the permissions in the FtpPermission format.
+
+ The full or relative path to the item
+
+
+
+ Recursively dereferences a symbolic link. See the
+ MaximumDereferenceCount property for controlling
+ how deep this method will recurse before giving up.
+
+ The symbolic link
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Recursively dereferences a symbolic link
+
+ The symbolic link
+ The maximum depth of recursion that can be performed before giving up.
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Derefence a FtpListItem object
+
+ The item to derefence
+ Maximum recursive calls
+ Counter
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Begins an asynchronous operation to dereference a object
+
+ The item to dereference
+ Maximum recursive calls
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to dereference a object. See the
+ property for controlling
+ how deep this method will recurse before giving up.
+
+ The item to dereference
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult
+ A , or null if the link can't be dereferenced
+
+
+
+
+ Sets the work directory on the server
+
+ The path of the directory to change to
+
+
+
+
+ Begins an asynchronous operation to set the working directory on the server
+
+ The directory to change to
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Gets the current working directory
+
+ The current working directory, ./ if the response couldn't be parsed.
+
+
+
+
+ Begins an asynchronous operation to get the working directory
+
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The current working directory
+
+
+
+
+ Gets the size of a remote file
+
+ The full or relative path of the file
+ -1 if the command fails, otherwise the file size
+
+
+
+
+ Begins an asynchronous operation to retrieve the size of a remote file
+
+ The full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The size of the file, -1 if there was a problem.
+
+
+
+
+ Gets the modified time of a remote file
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ The modified time, or if there was a problem
+
+
+
+
+ Begins an asynchronous operation to get the modified time of a remote file
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The modified time, or if there was a problem
+
+
+
+
+ Changes the modified time of a remote file
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+
+
+
+ Begins an asynchronous operation to get the modified time of a remote file
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The modified time, or if there was a problem
+
+
+
+ Interface for the FtpClient class. For detailed documentation of the methods, please see the FtpClient class.
+
+
+
+
+ Defines the type of encryption to use
+
+
+
+
+ Plain text.
+
+
+
+
+ FTPS encryption is used from the start of the connection, port 990.
+
+
+
+
+ Connection starts in plain text and FTPS encryption is enabled
+ with the AUTH command immediately after the server greeting.
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ No response
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Temporary failure
+
+
+
+
+ Permanent failure
+
+
+
+
+ Server features
+
+
+
+
+ This server said it doesn't support anything!
+
+
+
+
+ Supports the MLST command
+
+
+
+
+ Supports the SIZE command
+
+
+
+
+ Supports the MDTM command
+
+
+
+
+ Supports download/upload stream resumes
+
+
+
+
+ Supports UTF8
+
+
+
+
+ PRET Command used in distributed ftp server software DrFTPD
+
+
+
+
+ Server supports the MFMT command for setting the
+ modified date of an object on the server
+
+
+
+
+ Server supports the MFCT command for setting the
+ created date of an object on the server
+
+
+
+
+ Server supports the MFF command for setting certain facts
+ about file system objects. If you need this command, it would
+ probably be handy to query FEAT your self and have a look at
+ the FtpReply.InfoMessages property to see which facts the server
+ allows you to modify.
+
+
+
+
+ Server supports the STAT command
+
+
+
+
+ Support for the HASH command
+
+
+
+
+ Support for the non-standard MD5 command
+
+
+
+
+ Support for the non-standard XMD5 command
+
+
+
+
+ Support for the non-standard XCRC command
+
+
+
+
+ Support for the non-standard XSHA1 command
+
+
+
+
+ Support for the non-standard XSHA256 command
+
+
+
+
+ Support for the non-standard XSHA512 command
+
+
+
+
+ Different types of hashing algorithms for computing checksums.
+
+
+
+
+ HASH command is not supported
+
+
+
+
+ SHA-1
+
+
+
+
+ SHA-256
+
+
+
+
+ SHA-512
+
+
+
+
+ MD5
+
+
+
+
+ CRC
+
+
+
+
+ IP Versions to allow when connecting
+ to a server.
+
+
+
+
+ Internet Protocol Version 4
+
+
+
+
+ Internet Protocol Version 6
+
+
+
+
+ Allow any supported version
+
+
+
+
+ Data connection type
+
+
+
+
+ This type of data connection attempts to use the EPSV command
+ and if the server does not support EPSV it falls back to the
+ PASV command before giving up unless you are connected via IPv6
+ in which case the PASV command is not supported.
+
+
+
+
+ Passive data connection. EPSV is a better
+ option if it's supported. Passive connections
+ connect to the IP address dictated by the server
+ which may or may not be accessible by the client
+ for example a server behind a NAT device may
+ give an IP address on its local network that
+ is inaccessible to the client. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Same as PASV except the host supplied by the server is ignored
+ and the data connection is made to the same address that the control
+ connection is connected to. This is useful in scenarios where the
+ server supplies a private/non-routable network address in the
+ PASV response. It's functionally identical to EPSV except some
+ servers may not implement the EPSV command. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Extended passive data connection, recommended. Works
+ the same as a PASV connection except the server
+ does not dictate an IP address to connect to, instead
+ the passive connection goes to the same address used
+ in the control connection. This type of data connection
+ supports IPv4 and IPv6.
+
+
+
+
+ This type of data connection attempts to use the EPRT command
+ and if the server does not support EPRT it falls back to the
+ PORT command before giving up unless you are connected via IPv6
+ in which case the PORT command is not supported.
+
+
+
+
+ Active data connection, not recommended unless
+ you have a specific reason for using this type.
+ Creates a listening socket on the client which
+ requires firewall exceptions on the client system
+ as well as client network when connecting to a
+ server outside of the client's network. In addition
+ the IP address of the interface used to connect to the
+ server is the address the server is told to connect to
+ which, if behind a NAT device, may be inaccessible to
+ the server. This type of data connection is not supported
+ by IPv6. If you specify PORT and are connected via IPv6
+ EPRT will automatically be used instead.
+
+
+
+
+ Extended active data connection, not recommended
+ unless you have a specific reason for using this
+ type. Creates a listening socket on the client
+ which requires firewall exceptions on the client
+ as well as client network when connecting to a
+ server outside of the client's network. The server
+ connects to the IP address it sees the client coming
+ from. This type of data connection supports IPv4 and IPv6.
+
+
+
+
+ Type of data transfer to do
+
+
+
+
+ ASCII transfer
+
+
+
+
+ Binary transfer
+
+
+
+
+ Type of file system of object
+
+
+
+
+ A file
+
+
+
+
+ A directory
+
+
+
+
+ A symbolic link
+
+
+
+
+ Types of file permissions
+
+
+
+
+ No access
+
+
+
+
+ Executable
+
+
+
+
+ Writable
+
+
+
+
+ Readable
+
+
+
+
+ Types of special UNIX permissions
+
+
+
+
+ No special permissions are set
+
+
+
+
+ Sticky bit is set
+
+
+
+
+ SGID bit is set
+
+
+
+
+ SUID bit is set
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ Use the legacy parser (for older projects that depend on the pre-2017 parser routines).
+
+
+
+
+ Automatically detect the file listing parser to use based on the FTP server (SYST command).
+
+
+
+
+ Machine listing parser, works on any FTP server supporting the MLST/MLSD commands.
+
+
+
+
+ File listing parser for Windows/IIS.
+
+
+
+
+ File listing parser for Unix.
+
+
+
+
+ Alternate parser for Unix. Use this if the default one does not work.
+
+
+
+
+ File listing parser for Vax/VMS/OpenVMS.
+
+
+
+
+ File listing parser for IBM OS400.
+
+
+
+
+ File listing parser for Tandem/Nonstop Guardian OS.
+
+
+
+
+ Flags that can dictate how a file listing is performed
+
+
+
+
+ Tries machine listings (MDTM command) if supported,
+ and if not then falls back to OS-specific listings (LIST command)
+
+
+
+
+ Load the modify date using MDTM when it could not
+ be parsed from the server listing. This only pertains
+ to servers that do not implement the MLSD command.
+
+
+
+
+ Load the file size using the SIZE command when it
+ could not be parsed from the server listing. This
+ only pertains to servers that do not support the
+ MLSD command.
+
+
+
+
+ Combines the Modify and Size flags
+
+
+
+
+ Show hidden/dot files. This only pertains to servers
+ that do not support the MLSD command. This option
+ makes use the non standard -a parameter to LIST to
+ tell the server to show hidden files. Since it's a
+ non-standard option it may not always work. MLSD listings
+ have no such option and whether or not a hidden file is
+ shown is at the discretion of the server.
+
+
+
+
+ Force the use of OS-specific listings (LIST command) even if
+ machine listings (MLSD command) are supported by the server
+
+
+
+
+ Use the NLST command instead of LIST for a reliable file listing
+
+
+
+
+ Force the use of the NLST command (the slowest mode) even if machine listings
+ and OS-specific listings are supported by the server
+
+
+
+
+ Try to dereference symbolic links, and stored the linked file/directory in FtpListItem.LinkObject
+
+
+
+
+ Sets the ForceList flag and uses `LS' instead of `LIST' as the
+ command for getting a directory listing. This option overrides
+ ForceNameList and ignores the AllFiles flag.
+
+
+
+
+ Gets files within subdirectories as well. Adds the -r option to the LIST command.
+ Some servers may not support this feature.
+
+
+
+
+ Do not retrieve path when no path is supplied to GetListing(),
+ instead just execute LIST with no path argument.
+
+
+
+
+ Include two extra items into the listing, for the current directory (".")
+ and the parent directory (".."). Meaningless unless you want these two
+ items for some reason.
+
+
+
+
+ Defines the behavior for uploading/downloading files that already exist
+
+
+
+
+ Do not check if the file exists. A bit faster than the other options. Only use this if you are SURE that the file does not exist on the server.
+ Otherwise it can cause the UploadFile method to hang due to filesize mismatch.
+
+
+
+
+ Skip the file if it exists, without any more checks.
+
+
+
+
+ Overwrite the file if it exists.
+
+
+
+
+ Append to the file if it exists, by checking the length and adding the missing data.
+
+
+
+
+ Defines the level of the tracing message. Depending on the framework version this is translated
+ to an equivalent logging level in System.Diagnostices (if available)
+
+
+
+
+ Used for logging Debug or Verbose level messages
+
+
+
+
+ Used for logging Informational messages
+
+
+
+
+ Used for logging non-fatal or ignorable error messages
+
+
+
+
+ Used for logging Error messages that may need investigation
+
+
+
+
+ Defines how multi-file processes should handle a processing error.
+
+ & Cannot Be Combined
+
+
+
+ No action is taken upon errors. The method absorbs the error and continues.
+
+
+
+
+ If any files have completed successfully (or failed after a partial download/upload) then should be deleted.
+ This will simulate an all-or-nothing transaction downloading or uploading multiple files. If this option is not
+ combined with or then the method will
+ continue to process all items whether if they are successful or not and then delete everything if a failure was
+ encountered at any point.
+
+
+
+
+ The method should stop processing any additional files and immediately return upon encountering an error.
+ Cannot be combined with
+
+
+
+
+ The method should stop processing any additional files and immediately throw the current error.
+ Cannot be combined with
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ No verification of the file is performed
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then we retry the download/upload
+ a specified amount of times before giving up. (See )
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the failed file will be deleted.
+ If combined with , then
+ the deletion will occur if it fails upon the final retry.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then an exception will be thrown.
+ If combined with , then the throw will
+ occur upon the failure of the final retry, and/or if combined with
+ the method will throw after the deletion is processed.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the method returns false and no other action is taken.
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ The date is whatever the server returns, with no conversion performed.
+
+
+
+
+ The date is converted to the local timezone, based on the TimeOffset property in FtpClient.
+
+
+
+
+ The date is converted to UTC, based on the TimeOffset property in FtpClient.
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+ The control connection that triggered the event
+ Event args
+
+
+
+ Event fired if a bad SSL certificate is encountered. This even is used internally; if you
+ don't have a specific reason for using it you are probably looking for FtpSslValidation.
+
+
+
+
+
+
+ Event args for the FtpSslValidationError delegate
+
+
+
+
+ The certificate to be validated
+
+
+
+
+ The certificate chain
+
+
+
+
+ Validation errors, if any.
+
+
+
+
+ Gets or sets a value indicating if this certificate should be accepted. The default
+ value is false. If the certificate is not accepted, an AuthenticationException will
+ be thrown.
+
+
+
+
+ FTP related error
+
+
+
+
+ Initializes a new instance of the class.
+
+ The error message
+
+
+
+ Initializes a new instance of the class with an inner exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Exception triggered on command failures
+
+
+
+
+ Gets the completion code associated with the response
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ Status code
+ Associated message
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ The FtpReply to build the exception from
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Exception is thrown when encryption could not be negotiated by the server
+
+
+
+
+ Default constructor
+
+
+
+
+ Custom error message
+
+ Error message
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Represents a computed hash of an object
+ on the FTP server. See the following link
+ for more information:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Gets the algorithm that was used to compute the hash
+
+
+
+
+ Gets the computed hash returned by the server
+
+
+
+
+ Gets a value indicating if this object represents a
+ valid hash response from the server.
+
+
+
+
+ Computes the hash for the specified file and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The file to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Computes the hash for the specified stream and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The stream to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Creates an empty instance.
+
+
+
+
+ Represents a file system object on the server
+
+
+
+
+
+ Blank constructor; Fill args manually.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Constructor with mandatory args filled.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Gets the type of file system object.
+
+
+
+
+ Gets the full path name to the object.
+
+
+
+
+ Gets the name of the object.
+
+
+
+
+ Gets the target a symbolic link points to.
+
+
+
+
+ Gets the number of links pointing to this file. Only supplied by Unix servers.
+
+
+
+
+ Gets the object that the LinkTarget points to. This property is null unless you pass the
+ flag in which case GetListing() will try to resolve
+ the target itself.
+
+
+
+
+ Gets the last write time of the object.
+
+
+
+
+ Gets the created date of the object.
+
+
+
+
+ Gets the size of the object.
+
+
+
+
+ Gets special UNIX permissions such as Sticky, SUID and SGID.
+
+
+
+
+ Gets the owner permissions.
+
+
+
+
+ Gets the group permissions.
+
+
+
+
+ Gets the others permissions.
+
+
+
+
+ Gets the raw string received for the file permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the file permissions in the CHMOD format.
+
+
+
+
+ Gets the raw string received for the file's GROUP permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the raw string received for the file's OWNER permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the input string that was parsed to generate the
+ values in this object.
+
+
+
+
+ Returns a string representation of this object and its properties
+
+ A string representing this object
+
+
+
+ Parses a line from a file listing using the first successful parser, or the specified parser.
+ Returns an FtpListItem object representing the parsed line, or null if the line was unable to be parsed.
+
+
+
+
+ the FTP connection that owns this parser
+
+
+
+
+ which server type? (SYST)
+
+
+
+
+ current parser, or parser set by user
+
+
+
+
+ parser calculated based on system type (SYST command)
+
+
+
+
+ if we have detected that the current parser is valid
+
+
+
+
+ which culture to read filenames with?
+
+
+
+
+ what is the time offset between server/client?
+
+
+
+
+ any time offset between server/client?
+
+
+
+
+ VMS ONLY : the blocksize used to calculate the file
+
+
+
+
+ Is the version number returned as part of the filename?
+
+ Some VMS FTP servers do not permit a file to be deleted unless
+ the filename includes the version number. Note that directories are
+ never returned with the version number.
+
+
+
+
+ Initializes a new instance of the class.
+
+ An existing object
+
+
+
+ Try to auto-detect which parser is suitable given a system string.
+
+ result of SYST command
+
+
+
+ Parse raw file list from server into file objects, using the currently active parser.
+
+
+
+
+ Parse raw file from server into a file object, using the currently active parser.
+
+
+
+
+ Validate if the current parser is correct, or if another parser seems more appropriate.
+
+
+
+
+ Validate if the current parser is correct
+
+
+
+
+ Parses a line from a file listing using the first successful match in the Parsers collection.
+
+ The source path of the file listing
+ A line from the file listing
+ Server capabilities
+ A FtpListItem object representing the parsed line, null if the line was
+ unable to be parsed. If you have encountered an unsupported list type add a parser
+ to the public static Parsers collection of FtpListItem.
+
+
+
+ Used for synchronizing access to the Parsers collection
+
+
+
+
+ Initializes the default list of parsers
+
+
+
+
+ Collection of parsers. Each parser object contains
+ a regex string that uses named groups, i.e., (?<group_name>foobar).
+ The support group names are modify for last write time, size for the
+ size and name for the name of the file system object. Each group name is
+ optional, if they are present then those values are retrieved from a
+ successful match. In addition, each parser contains a Type property
+ which gets set in the FtpListItem object to distinguish between different
+ types of objects.
+
+
+
+
+ Adds a custom parser
+
+ The parser delegate to add
+
+
+
+
+ Removes all parser delegates
+
+
+
+
+ Removes the specified parser
+
+ The parser delegate to remove
+
+
+
+ Parses LIST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS DOS format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Ftp listing line parser
+
+ The line from the listing
+ The server capabilities
+ FtpListItem if the line can be parsed, null otherwise
+
+
+
+ Parses MLSD/MLST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings with alternate parser
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS/DOS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Vax/VMS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses NonStop format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IBM OS/400 format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Split into fields by splitting on strings
+
+
+
+ Fix the date string to make the month camel case
+ array of fields
+
+
+
+ Represents a reply to an event on the server
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ The status code of the response
+
+
+
+
+ The message, if any, that the server sent with the response
+
+
+
+
+ Informational messages sent from the server
+
+
+
+
+ General success or failure of the last command executed
+
+
+
+
+ Gets the error message including any informational output
+ that was sent by the server. Sometimes the final response
+ line doesn't contain anything informative as to what was going
+ on with the server. Instead it may send information messages so
+ in an effort to give as meaningful as a response as possible
+ the informational messages will be included in the error.
+
+
+
+
+ Used for transaction logging and debug information.
+
+
+
+
+ Should the trace listeners be flushed immediately after writing to them?
+
+
+
+
+ Should the log entries be written with a prefix of "FluentFTP"?
+ Useful if you have a single TraceListener shared across multiple libraries.
+
+
+
+
+ Add a TraceListner to the collection. You can use one of the predefined
+ TraceListeners in the System.Diagnostics namespace, such as ConsoleTraceListener
+ for logging to the console, or you can write your own deriving from
+ System.Diagnostics.TraceListener.
+
+ The TraceListener to add to the collection
+
+
+
+ Remove the specified TraceListener from the collection
+
+ The TraceListener to remove from the collection.
+
+
+
+ Should the function calls be logged in Verbose mode?
+
+
+
+
+ Should the FTP server IP addresses be included in the logs?
+
+
+
+
+ Should the FTP usernames be included in the logs?
+
+
+
+
+ Should the FTP passwords be included in the logs?
+
+
+
+
+ Should we trace at all?
+
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, adding an automatic prefix to the message based on the `eventType`
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, for the purpose of logging a API function call
+
+ The name of the API function
+ The args passed to the function
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ A formattable string to write
+
+
+ A FTP client with a HTTP 1.1 proxy implementation.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+ Host name
+ Port number
+ IP version to use
+
+
+
+ Abstraction of an FtpClient with a proxy
+
+
+
+ The proxy connection info.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine connect for FtpClient : authentication on the Proxy
+ The socket stream.
+
+
+ A FTP client with a user@host proxy identification.
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+
+ A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers.
+
+ The 'blue coat variant' forces the client to wait for a 220 FTP response code in
+ the handshake phase.
+
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+ POCO holding proxy information
+
+
+ Proxy host name
+
+
+ Proxy port
+
+
+ Proxy login credentials
+
+
+
+ Base class for data stream connections
+
+
+
+
+ Gets the status of the command that was used to open
+ this data channel
+
+
+
+
+ Gets or sets the control connection for this data stream. Setting
+ the control connection causes the object to be cloned and a new
+ connection is made to the server to carry out the task. This ensures
+ that multiple streams can be opened simultaneously.
+
+
+
+
+ Gets or sets the length of the stream. Only valid for file transfers
+ and only valid on servers that support the Size command.
+
+
+
+
+ Gets or sets the position of the stream
+
+
+
+
+ Reads data off the stream
+
+ The buffer to read into
+ Where to start in the buffer
+ Number of bytes to read
+ The number of bytes read
+
+
+
+ Writes data to the stream
+
+ The buffer to write to the stream
+ Where to start in the buffer
+ The number of bytes to write to the buffer
+
+
+
+ Sets the length of this stream
+
+ Value to apply to the Length property
+
+
+
+ Sets the position of the stream. Intended to be used
+ internally by FtpControlConnection.
+
+ The position
+
+
+
+ Closes the connection and reads the server's reply
+
+
+
+
+ Creates a new data stream object
+
+ The control connection to be used for carrying out this operation
+
+
+
+ Finalizer
+
+
+
+
+ Stream class used for talking. Used by FtpClient, extended by FtpDataStream
+
+
+
+
+ Used for tacking read/write activity on the socket
+ to determine if Poll() should be used to test for
+ socket connectivity. The socket in this class will
+ not know it has been disconnected if the remote host
+ closes the connection first. Using Poll() avoids
+ the exception that would be thrown when trying to
+ read or write to the disconnected socket.
+
+
+
+
+ The socket used for talking
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling Poll() on the socket to test for
+ connectivity. Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Poll()'ing all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets the number of available bytes on the socket, 0 if the
+ socket has not been initialized. This property is used internally
+ by FtpClient in an effort to detect disconnections and gracefully
+ reconnect the control connection.
+
+
+
+
+ Gets a value indicating if this socket stream is connected
+
+
+
+
+ Gets a value indicating if encryption is being used
+
+
+
+
+ The non-encrypted stream
+
+
+
+
+ The encrypted stream
+
+
+
+
+ Gets the underlying stream, could be a NetworkStream or SslStream
+
+
+
+
+ Gets a value indicating if this stream can be read
+
+
+
+
+ Gets a value indicating if this stream if seekable
+
+
+
+
+ Gets a value indicating if this stream can be written to
+
+
+
+
+ Gets the length of the stream
+
+
+
+
+ Gets the current position of the stream. Trying to
+ set this property throws an InvalidOperationException()
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+
+
+
+ Gets or sets the amount of time to wait for a read operation to complete. Default
+ value is Timeout.Infinite.
+
+
+
+
+ Gets or sets the length of time milliseconds to wait
+ for a connection succeed before giving up. The default
+ is 30000 (30 seconds).
+
+
+
+
+ Gets the local end point of the socket
+
+
+
+
+ Gets the remote end point of the socket
+
+
+
+
+ Fires the SSL certificate validation event
+
+ Certificate being validated
+ Certificate chain
+ Policy errors if any
+ True if it was accepted, false otherwise
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+ Ignored
+
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+
+
+
+ Flushes the stream
+
+
+
+
+ Bypass the stream and read directly off the socket.
+
+ The buffer to read into
+ The number of bytes read
+
+
+
+ Reads data from the stream
+
+ Buffer to read into
+ Where in the buffer to start
+ Number of bytes to be read
+ The amount of bytes read from the stream
+
+
+
+ Reads a line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads all line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ The size of the buffer
+ A list of lines from the stream
+
+
+
+ Writes data to the stream
+
+ Buffer to write to stream
+ Where in the buffer to start
+ Number of bytes to be read
+
+
+
+ Writes a line to the stream using the specified encoding
+
+ Encoding used for writing the line
+ The data to write
+
+
+
+ Disconnects from server
+
+
+
+
+ Sets socket options on the underlying socket
+
+ SocketOptionLevel
+ SocketOptionName
+ SocketOptionValue
+
+
+
+ Connect to the specified host
+
+ The host to connect to
+ The port to connect to
+ Internet Protocol versions to support during the connection phase
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+
+
+
+ Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+ A bitwise parameter for supported encryption protocols.
+ Thrown when authentication fails
+
+
+
+ Deactivates SSL on this stream using the specified protocols and reverts back to plain-text FTP.
+
+
+
+
+ Instructs this stream to listen for connections on the specified address and port
+
+ The address to listen on
+ The port to listen on
+
+
+
+ Accepts a connection from a listening socket
+
+
+
+
+ Asynchronously accepts a connection from a listening socket
+
+
+
+
+
+
+
+ Completes a BeginAccept() operation
+
+ IAsyncResult returned from BeginAccept
+
+
+
+ .NET SslStream doesn't close TLS connection properly.
+ It does not send the close_notify alert before closing the connection.
+ FtpSslStream uses unsafe code to do that.
+ This is required when we want to downgrade the connection to plaintext using CCC command.
+ Thanks to Neco @ https://stackoverflow.com/questions/237807/net-sslstream-doesnt-close-tls-connection-properly/22626756#22626756
+
+
+
+
+ Send an SSL close_notify alert.
+
+
+
+
+
+ Extension methods related to FTP tasks
+
+
+
+
+ Converts the specified path into a valid FTP file system path
+
+ The file system path
+ A path formatted for FTP
+
+
+
+ Creates a valid FTP path by appending the specified segments to this string
+
+ This string
+ The path segments to append
+ A valid FTP path
+
+
+
+ Gets the parent directory path (formatted for a FTP server)
+
+ The path
+ The parent directory path
+
+
+
+ Gets the file name and extension from the path
+
+ The full path to the file
+ The file name
+
+
+
+ Tries to convert the string FTP date representation into a object
+
+ The date
+ UTC/Local Time
+ A object representing the date, or if there was a problem
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Validates that the FtpError flags set are not in an invalid combination.
+
+ The error handling options set
+ True if a valid combination, otherwise false
+
+
+
+ Checks if every character in the string is whitespace, or the string is null.
+
+
+
+
+ Checks if the string is null or 0 length.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ To support progress reporting in .NET 3.5 and .NET 4.0
+
+
+
+
+ To support progress reporting in .NET 3.5 and .NET 4.0
+
+
+
+
diff --git a/packages/FluentFTP.19.2.2/lib/net40/FluentFTP.dll b/packages/FluentFTP.19.2.2/lib/net40/FluentFTP.dll
new file mode 100644
index 0000000..b7e8247
Binary files /dev/null and b/packages/FluentFTP.19.2.2/lib/net40/FluentFTP.dll differ
diff --git a/packages/FluentFTP.19.2.2/lib/net40/FluentFTP.xml b/packages/FluentFTP.19.2.2/lib/net40/FluentFTP.xml
new file mode 100644
index 0000000..9fe7a8e
--- /dev/null
+++ b/packages/FluentFTP.19.2.2/lib/net40/FluentFTP.xml
@@ -0,0 +1,4395 @@
+
+
+
+ FluentFTP
+
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+
+
+ Used for internally synchronizing access to this
+ object from multiple threads
+
+
+
+
+ For usage by FTP proxies only
+
+
+
+
+ A list of asynchronous methods that are in progress
+
+
+
+
+ Control connection socket stream
+
+
+
+
+ Gets a value indicating if this object has already been disposed.
+
+
+
+
+ Gets the base stream for talking to the server via
+ the control connection.
+
+
+
+
+ Flags specifying which versions of the internet protocol to
+ support when making a connection. All addresses returned during
+ name resolution are tried until a successful connection is made.
+ You can fine tune which versions of the internet protocol to use
+ by adding or removing flags here. I.e., setting this property
+ to FtpIpVersion.IPv4 will cause the connection process to
+ ignore IPv6 addresses. The default value is ANY version.
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling
+ on the socket to test for connectivity.
+ Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Polling all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets or sets a value indicating whether a test should be performed to
+ see if there is stale (unrequested data) sitting on the socket. In some
+ cases the control connection may time out but before the server closes
+ the connection it might send a 4xx response that was unexpected and
+ can cause synchronization errors with transactions. To avoid this
+ problem the method checks to see if there is any data
+ available on the socket before executing a command. On Azure hosting
+ platforms this check can cause an exception to be thrown. In order
+ to work around the exception you can set this property to false
+ which will skip the test entirely however doing so eliminates the
+ best effort attempt of detecting such scenarios. See this thread
+ for more details about the Azure problem:
+ https://netftp.codeplex.com/discussions/535879
+
+
+
+
+ Gets a value indicating if the connection is alive
+
+
+
+
+ When this value is set to true (default) the control connection
+ is cloned and a new connection the server is established for the
+ data channel operation. This is a thread safe approach to make
+ asynchronous operations on a single control connection transparent
+ to the developer.
+
+
+
+
+ Gets a value indicating if this control connection is a clone. This property
+ is used with data streams to determine if the connection should be closed
+ when the stream is closed. Servers typically only allow 1 data connection
+ per control connection. If you try to open multiple data connections this
+ object will be cloned for 2 or more resulting in N new connections to the
+ server.
+
+
+
+
+ Gets or sets the text encoding being used when talking with the server. The default
+ value is however upon connection, the client checks
+ for UTF8 support and if it's there this property is switched over to
+ . Manually setting this value overrides automatic detection
+ based on the FEAT list; if you change this value it's always used
+ regardless of what the server advertises, if anything.
+
+
+
+
+ The server to connect to
+
+
+
+
+ The port to connect to. If this value is set to 0 (Default) the port used
+ will be determined by the type of SSL used or if no SSL is to be used it
+ will automatically connect to port 21.
+
+
+
+
+ Credentials used for authentication
+
+
+
+
+ Gets or sets a value that controls the maximum depth
+ of recursion that will follow symbolic
+ links before giving up. You can also specify the value
+ to be used as one of the overloaded parameters to the
+ method. The default value is 20. Specifying
+ -1 here means indefinitely try to resolve a link. This is
+ not recommended for obvious reasons (stack overflow).
+
+
+
+
+ Client certificates to be used in SSL authentication process
+
+
+
+
+ Delegate used for resolving local address, used for active data connections
+ This can be used in case you're behind a router, but port forwarding is configured to forward the
+ ports from your router to your internal IP. In that case, we need to send the router's IP instead of our internal IP.
+ See example: FtpClient.GetPublicIP -> This uses Ipify api to find external IP
+
+
+
+
+ Ports used for Active Data Connection
+
+
+
+
+ Data connection type, default is AutoPassive which tries
+ a connection with EPSV first and if it fails then tries
+ PASV before giving up. If you know exactly which kind of
+ connection you need you can slightly increase performance
+ by defining a specific type of passive or active data
+ connection here.
+
+
+
+
+ Disconnect from the server without sending QUIT. This helps
+ work around IOExceptions caused by buggy connection resets
+ when closing the control connection.
+
+
+
+
+ Gets or sets the length of time in milliseconds to wait for a connection
+ attempt to succeed before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time wait in milliseconds for data to be
+ read from the underlying stream. The default value is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds for a data connection
+ to be established before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds the data channel
+ should wait for the server to send data. Default value is
+ 15000 (15 seconds).
+
+
+
+
+ Gets or sets a value indicating if should be set on
+ the underlying stream's socket. If the connection is alive, the option is
+ adjusted in real-time. The value is stored and the KeepAlive option is set
+ accordingly upon any new connections. The value set here is also applied to
+ all future data streams. It has no affect on cloned control connections or
+ data connections already in progress. The default value is false.
+
+
+
+
+ Gets the server capabilities represented by flags
+
+
+
+
+ Get the hash types supported by the server, if any. This
+ is a recent extension to the protocol that is not fully
+ standardized and is not guaranteed to work. See here for
+ more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Type of SSL to use, or none. Default is none. Explicit is TLS, Implicit is SSL.
+
+
+
+
+ Indicates if data channel transfers should be encrypted. Only valid if
+ property is not equal to .
+
+
+
+
+ Indicates if the encryption should be disabled immediately after connecting using a CCC command.
+ This is useful when you have a FTP firewall that requires plaintext FTP, but your server mandates FTPS connections.
+
+
+
+
+ Encryption protocols to use. Only valid if EncryptionMode property is not equal to .
+ Default value is .NET Framework defaults from the class.
+
+
+
+
+ Event is fired to validate SSL certificates. If this event is
+ not handled and there are errors validating the certificate
+ the connection will be aborted.
+
+
+
+
+
+ Gets the type of system/server that we're
+ connected to.
+
+
+
+ Gets the connection type
+
+
+
+ Creates a new instance of an FTP Client.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, username and password.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port, username and password.
+
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+
+ Disconnects from the server, releases resources held by this
+ object.
+
+
+
+
+ Finalizer
+
+
+
+
+ Clones the control connection for opening multiple data streams
+
+ A new control connection with the same property settings as this one
+
+
+
+
+ Executes a command
+
+ The command to execute
+ The servers reply to the command
+
+
+
+
+ Performs execution of the specified command asynchronously
+
+ The command to execute
+ The method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends an asynchronous command
+
+ IAsyncResult returned from BeginExecute
+ FtpReply object (never null).
+
+
+
+
+ Retrieves a reply from the server. Do not execute this method
+ unless you are sure that a reply has been sent, i.e., you
+ executed a command. Doing so will cause the code to hang
+ indefinitely waiting for a server reply that is never coming.
+
+ FtpReply representing the response from the server
+
+
+
+
+ Connect to the server
+
+ Thrown if this object has been disposed.
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+ Called during Connect(). Typically extended by FTP proxies.
+
+
+
+
+ Populates the capabilities flags based on capabilities
+ supported by this server. This method is overridable
+ so that new features can be supported
+
+ The reply object from the FEAT command. The InfoMessages property will
+ contain a list of the features the server supported delimited by a new line '\n' character.
+
+
+
+ Initiates a connection to the server
+
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends an asynchronous connection attempt to the server from
+
+ returned from
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Disconnects from the server
+
+
+
+
+ Initiates a disconnection on the server
+
+ method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+
+
+
+
+ Catches the socket stream ssl validation event and fires the event handlers
+ attached to this object for validating SSL certificates
+
+ The stream that fired the event
+ The event args used to validate the certificate
+
+
+
+ Fires the SSL validation event
+
+ Event Args
+
+
+
+ Performs a bitwise and to check if the specified
+ flag is set on the property.
+
+ The to check for
+ True if the feature was found, false otherwise
+
+
+
+ Retrieves the delegate for the specified IAsyncResult and removes
+ it from the m_asyncmethods collection if the operation is successful
+
+ Type of delegate to retrieve
+ The IAsyncResult to retrieve the delegate for
+ The delegate that generated the specified IAsyncResult
+
+
+
+ Ensure a relative path is absolute by appending the working dir
+
+
+
+
+ Disables UTF8 support and changes the Encoding property
+ back to ASCII. If the server returns an error when trying
+ to turn UTF8 off a FtpCommandException will be thrown.
+
+
+
+
+ Data shouldn't be on the socket, if it is it probably
+ means we've been disconnected. Read and discard
+ whatever is there and close the connection (optional).
+
+ close the connection?
+ even read encrypted data?
+ trace data to logs?
+
+
+
+ Calculate the CHMOD integer value given a set of permissions.
+
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ FtpClient object
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ FtpClient object
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Restart location
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Calculate you public internet IP using the ipify service. Returns null if cannot be calculated.
+
+ Public IP Address
+
+
+
+ Gets the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The flag or if there was a problem.
+
+
+
+
+ Begins an asynchronous operation to get the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The flag or if there was a problem.
+
+
+
+ Sets the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash Algorithm
+ Thrown if the selected algorithm is not available on the server
+
+
+
+
+ Begins an asynchronous operation to set the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash algorithm to use
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+
+
+
+ Gets the hash of an object on the server using the currently selected hash algorithm.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Full or relative path of the object to compute the hash for.
+ The hash of the file.
+
+ Thrown if the property is ,
+ the remote path does not exist, or the command cannot be executed.
+
+ Path argument is null
+ Thrown when an unknown hash algorithm type is returned by the server
+
+
+
+
+ Begins an asynchronous operation to get the hash of an object on the server using the currently selected hash algorithm.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The file you want the server to compute the hash for
+ AsyncCallback
+ State object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+
+
+
+ Retrieves a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path of the file to checksum
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+
+
+ Gets the MD5 hash of the specified file using MD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a MD5 hash. The MD5 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The MD5 hash of the specified file.
+
+
+
+ Get the CRC value of the specified file. This is a non-standard extension of the protocol
+ and may throw a FtpCommandException if the server does not support it.
+
+ The path of the file you'd like the server to compute the CRC value for.
+ The response from the server, typically the XCRC value. FtpCommandException thrown on error
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a CRC hash. The XCRC command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The CRC hash of the specified file.
+
+
+
+ Gets the MD5 hash of the specified file using XMD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a XMD5 hash. The XMD5 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The MD5 hash of the specified file.
+
+
+
+ Gets the SHA-1 hash of the specified file using XSHA1. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-1 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA1 hash. The XSHA1 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-1 hash of the specified file.
+
+
+
+ Gets the SHA-256 hash of the specified file using XSHA256. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-256 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA256 hash. The XSHA256 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-256 hash of the specified file.
+
+
+
+ Gets the SHA-512 hash of the specified file using XSHA512. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-512 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA512 hash. The XSHA512 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-512 hash of the specified file.
+
+
+
+ Gets or sets the number of bytes transferred in a single chunk (a single FTP command).
+ Used by / and /
+ to transfer large files in multiple chunks.
+
+
+
+
+ Gets or sets the retry attempts allowed when a verification failure occurs during download or upload.
+ This value must be set to 1 or more.
+
+
+
+
+ Rate limit for uploads in kbyte/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Rate limit for downloads in kbytes/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Controls if the high-level API uploads files in Binary or ASCII mode.
+
+
+
+
+ Controls if the high-level API downloads files in Binary or ASCII mode.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ Files to be uploaded
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded into.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the specified file directly onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified stream as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Uploads the specified byte array as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Upload the given stream to the server as a new file. Overwrites the file if it exists.
+ Writes data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Downloads the specified file onto the local file system.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file into the specified stream.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file and return the raw byte array.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The variable that will receive the bytes.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Download a file from the server and write the data into the given stream.
+ Reads data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate.
+
+
+
+
+ File listing parser to be used.
+ Automatically calculated based on the type of the server, unless changed.
+
+
+
+
+ Culture used to parse file listings
+
+
+
+
+ Time difference between server and client, in hours.
+ If the server is located in New York and you are in London then the time difference is -5 hours.
+
+
+
+
+ Check if your server supports a recursive LIST command (LIST -R).
+ If you know for sure that this is unsupported, set it to false.
+
+
+
+
+ If true, increases performance of GetListing by reading multiple lines
+ of the file listing at once. If false then GetListing will read file
+ listings line-by-line. If GetListing is having issues with your server,
+ set it to false.
+
+ The number of bytes read is based upon .
+
+
+
+
+ Bytes to read during GetListing. Only honored if is true.
+
+
+
+
+ Returns information about a file system object. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ The path of the file or folder
+ Get the accurate modified date using another MDTM command
+ A FtpListItem object
+
+
+
+ Begins an asynchronous operation to return information about a remote file system object.
+
+
+ You should check the property for the
+ flag before calling this method. Failing to do so will result in an InvalidOperationException
+ being thrown when the server does not support machine listings. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ Path of the file or folder
+ Get the accurate modified date using another MDTM command
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ A if the command succeeded, or null if there was a problem.
+
+
+
+ Gets a file listing from the server from the current working directory. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ Options that dictacte how a list is performed and what information is gathered.
+ An array of FtpListItem objects
+
+
+
+
+ Begins an asynchronous operation to get a file listing from the server.
+ Each object returned contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to get a file listing from the server.
+ Each object returned contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Gets a file listing from the server asynchronously
+
+ The path to list
+ Options that dictate how the list operation is performed
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult return from
+ An array of items retrieved in the listing
+
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ A string array of file and directory names if any were returned.
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ The path of the directory to list
+ A string array of file and directory names if any were returned.
+
+
+
+
+ Begin an asynchronous operation to return a file/directory listing using the NLST command.
+
+ The path of the directory to list
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begin an asynchronous operation to return a file/directory listing using the NLST command.
+
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult object returned from
+ An array of file and directory names if any were returned.
+
+
+
+
+ Opens the specified type of passive data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Returns the ip address to be sent to the server for the active connection
+
+
+
+
+
+
+ Opens the specified type of active data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens a data stream.
+
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ The data stream.
+
+
+
+ Disconnects a data stream
+
+ The data stream to close
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A readable stream of the remote file
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for writing
+
+ Full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for writing
+
+ Full or relative path of the file
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A writable stream
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for appending
+
+ Full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for appending
+
+ Full or relative path of the file
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A writable stream
+
+
+
+
+ Sets the data type of information sent over the data stream
+
+ ASCII/Binary
+
+
+ Internal method that handles actually setting the data type.
+ Thrown when a FTP Command error condition occurs.
+ Thrown when a FTP error condition occurs.
+ ASCII/Binary.
+ This method doesn't do any locking to prevent recursive lock scenarios. Callers must do their own locking.
+
+
+
+ Begins an asynchronous operation to set the data type of information sent over the data stream
+
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Deletes a file on the server
+
+ The full or relative path to the file
+
+
+
+
+ Begins an asynchronous operation to delete the specified file on the server
+
+ The full or relative path to the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDeleteFile
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ If the directory is not empty, remove its contents
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Checks whether will be called recursively or not.
+
+
+
+
+
+
+ Begins an asynchronous operation to delete the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to delete the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDeleteDirectory
+
+
+
+
+ Tests if the specified directory exists on the server. This
+ method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ The path of the directory
+ True if it exists, false otherwise.
+
+
+
+
+ Begins an asynchronous operation to test if the specified directory exists on the server.
+ This method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ IAsyncResult
+ The full or relative path of the directory to check for
+ Async callback
+ State object
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDirectoryExists
+ True if the directory exists. False otherwise.
+
+
+
+
+ Checks if a file exists on the server.
+
+ The full or relative path to the file
+ True if the file exists
+
+
+
+
+ Begins an asynchronous operation to check if a file exists on the
+ server by taking a file listing of the parent directory in the path
+ and comparing the results the path supplied.
+
+ The full or relative path to the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ True if the file exists, false otherwise
+
+
+
+
+ Creates a directory on the server. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+
+
+
+
+ Creates a directory on the server
+
+ The full or relative path to the new remote directory
+ Try to force all non-existent pieces of the path to be created
+
+
+
+
+ Begins an asynchronous operation to create a remote directory. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to create a remote directory
+
+ The full or relative path to the new remote directory
+ Try to create the whole path if the preceding directories do not exist
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Renames an object on the remote file system.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+
+
+
+
+ Begins an asynchronous operation to rename an object on the remote file system.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Moves a file on the remote file system from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Whether the file was moved
+
+
+
+ Begins an asynchronous operation to move a file on the remote file system, from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Moves a directory on the remote file system from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Whether the directory was moved
+
+
+
+ Begins an asynchronous operation to move a directory on the remote file system, from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set.
+ Throws FtpCommandException if there is an issue.
+ Returns null if the server did not specify a permission value.
+ Use `GetChmod` if you required the integer value instead.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an integer in the CHMOD format.
+ Throws FtpCommandException if there is an issue.
+ Returns 0 if the server did not specify a permission value.
+ Use `GetFilePermissions` if you required the permissions in the FtpPermission format.
+
+ The full or relative path to the item
+
+
+
+ Recursively dereferences a symbolic link. See the
+ MaximumDereferenceCount property for controlling
+ how deep this method will recurse before giving up.
+
+ The symbolic link
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Recursively dereferences a symbolic link
+
+ The symbolic link
+ The maximum depth of recursion that can be performed before giving up.
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Derefence a FtpListItem object
+
+ The item to derefence
+ Maximum recursive calls
+ Counter
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Begins an asynchronous operation to dereference a object
+
+ The item to dereference
+ Maximum recursive calls
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to dereference a object. See the
+ property for controlling
+ how deep this method will recurse before giving up.
+
+ The item to dereference
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult
+ A , or null if the link can't be dereferenced
+
+
+
+
+ Sets the work directory on the server
+
+ The path of the directory to change to
+
+
+
+
+ Begins an asynchronous operation to set the working directory on the server
+
+ The directory to change to
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Gets the current working directory
+
+ The current working directory, ./ if the response couldn't be parsed.
+
+
+
+
+ Begins an asynchronous operation to get the working directory
+
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The current working directory
+
+
+
+
+ Gets the size of a remote file
+
+ The full or relative path of the file
+ -1 if the command fails, otherwise the file size
+
+
+
+
+ Begins an asynchronous operation to retrieve the size of a remote file
+
+ The full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The size of the file, -1 if there was a problem.
+
+
+
+
+ Gets the modified time of a remote file
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ The modified time, or if there was a problem
+
+
+
+
+ Begins an asynchronous operation to get the modified time of a remote file
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The modified time, or if there was a problem
+
+
+
+
+ Changes the modified time of a remote file
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+
+
+
+ Begins an asynchronous operation to get the modified time of a remote file
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The modified time, or if there was a problem
+
+
+
+ Interface for the FtpClient class. For detailed documentation of the methods, please see the FtpClient class.
+
+
+
+
+ Defines the type of encryption to use
+
+
+
+
+ Plain text.
+
+
+
+
+ FTPS encryption is used from the start of the connection, port 990.
+
+
+
+
+ Connection starts in plain text and FTPS encryption is enabled
+ with the AUTH command immediately after the server greeting.
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ No response
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Temporary failure
+
+
+
+
+ Permanent failure
+
+
+
+
+ Server features
+
+
+
+
+ This server said it doesn't support anything!
+
+
+
+
+ Supports the MLST command
+
+
+
+
+ Supports the SIZE command
+
+
+
+
+ Supports the MDTM command
+
+
+
+
+ Supports download/upload stream resumes
+
+
+
+
+ Supports UTF8
+
+
+
+
+ PRET Command used in distributed ftp server software DrFTPD
+
+
+
+
+ Server supports the MFMT command for setting the
+ modified date of an object on the server
+
+
+
+
+ Server supports the MFCT command for setting the
+ created date of an object on the server
+
+
+
+
+ Server supports the MFF command for setting certain facts
+ about file system objects. If you need this command, it would
+ probably be handy to query FEAT your self and have a look at
+ the FtpReply.InfoMessages property to see which facts the server
+ allows you to modify.
+
+
+
+
+ Server supports the STAT command
+
+
+
+
+ Support for the HASH command
+
+
+
+
+ Support for the non-standard MD5 command
+
+
+
+
+ Support for the non-standard XMD5 command
+
+
+
+
+ Support for the non-standard XCRC command
+
+
+
+
+ Support for the non-standard XSHA1 command
+
+
+
+
+ Support for the non-standard XSHA256 command
+
+
+
+
+ Support for the non-standard XSHA512 command
+
+
+
+
+ Different types of hashing algorithms for computing checksums.
+
+
+
+
+ HASH command is not supported
+
+
+
+
+ SHA-1
+
+
+
+
+ SHA-256
+
+
+
+
+ SHA-512
+
+
+
+
+ MD5
+
+
+
+
+ CRC
+
+
+
+
+ IP Versions to allow when connecting
+ to a server.
+
+
+
+
+ Internet Protocol Version 4
+
+
+
+
+ Internet Protocol Version 6
+
+
+
+
+ Allow any supported version
+
+
+
+
+ Data connection type
+
+
+
+
+ This type of data connection attempts to use the EPSV command
+ and if the server does not support EPSV it falls back to the
+ PASV command before giving up unless you are connected via IPv6
+ in which case the PASV command is not supported.
+
+
+
+
+ Passive data connection. EPSV is a better
+ option if it's supported. Passive connections
+ connect to the IP address dictated by the server
+ which may or may not be accessible by the client
+ for example a server behind a NAT device may
+ give an IP address on its local network that
+ is inaccessible to the client. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Same as PASV except the host supplied by the server is ignored
+ and the data connection is made to the same address that the control
+ connection is connected to. This is useful in scenarios where the
+ server supplies a private/non-routable network address in the
+ PASV response. It's functionally identical to EPSV except some
+ servers may not implement the EPSV command. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Extended passive data connection, recommended. Works
+ the same as a PASV connection except the server
+ does not dictate an IP address to connect to, instead
+ the passive connection goes to the same address used
+ in the control connection. This type of data connection
+ supports IPv4 and IPv6.
+
+
+
+
+ This type of data connection attempts to use the EPRT command
+ and if the server does not support EPRT it falls back to the
+ PORT command before giving up unless you are connected via IPv6
+ in which case the PORT command is not supported.
+
+
+
+
+ Active data connection, not recommended unless
+ you have a specific reason for using this type.
+ Creates a listening socket on the client which
+ requires firewall exceptions on the client system
+ as well as client network when connecting to a
+ server outside of the client's network. In addition
+ the IP address of the interface used to connect to the
+ server is the address the server is told to connect to
+ which, if behind a NAT device, may be inaccessible to
+ the server. This type of data connection is not supported
+ by IPv6. If you specify PORT and are connected via IPv6
+ EPRT will automatically be used instead.
+
+
+
+
+ Extended active data connection, not recommended
+ unless you have a specific reason for using this
+ type. Creates a listening socket on the client
+ which requires firewall exceptions on the client
+ as well as client network when connecting to a
+ server outside of the client's network. The server
+ connects to the IP address it sees the client coming
+ from. This type of data connection supports IPv4 and IPv6.
+
+
+
+
+ Type of data transfer to do
+
+
+
+
+ ASCII transfer
+
+
+
+
+ Binary transfer
+
+
+
+
+ Type of file system of object
+
+
+
+
+ A file
+
+
+
+
+ A directory
+
+
+
+
+ A symbolic link
+
+
+
+
+ Types of file permissions
+
+
+
+
+ No access
+
+
+
+
+ Executable
+
+
+
+
+ Writable
+
+
+
+
+ Readable
+
+
+
+
+ Types of special UNIX permissions
+
+
+
+
+ No special permissions are set
+
+
+
+
+ Sticky bit is set
+
+
+
+
+ SGID bit is set
+
+
+
+
+ SUID bit is set
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ Use the legacy parser (for older projects that depend on the pre-2017 parser routines).
+
+
+
+
+ Automatically detect the file listing parser to use based on the FTP server (SYST command).
+
+
+
+
+ Machine listing parser, works on any FTP server supporting the MLST/MLSD commands.
+
+
+
+
+ File listing parser for Windows/IIS.
+
+
+
+
+ File listing parser for Unix.
+
+
+
+
+ Alternate parser for Unix. Use this if the default one does not work.
+
+
+
+
+ File listing parser for Vax/VMS/OpenVMS.
+
+
+
+
+ File listing parser for IBM OS400.
+
+
+
+
+ File listing parser for Tandem/Nonstop Guardian OS.
+
+
+
+
+ Flags that can dictate how a file listing is performed
+
+
+
+
+ Tries machine listings (MDTM command) if supported,
+ and if not then falls back to OS-specific listings (LIST command)
+
+
+
+
+ Load the modify date using MDTM when it could not
+ be parsed from the server listing. This only pertains
+ to servers that do not implement the MLSD command.
+
+
+
+
+ Load the file size using the SIZE command when it
+ could not be parsed from the server listing. This
+ only pertains to servers that do not support the
+ MLSD command.
+
+
+
+
+ Combines the Modify and Size flags
+
+
+
+
+ Show hidden/dot files. This only pertains to servers
+ that do not support the MLSD command. This option
+ makes use the non standard -a parameter to LIST to
+ tell the server to show hidden files. Since it's a
+ non-standard option it may not always work. MLSD listings
+ have no such option and whether or not a hidden file is
+ shown is at the discretion of the server.
+
+
+
+
+ Force the use of OS-specific listings (LIST command) even if
+ machine listings (MLSD command) are supported by the server
+
+
+
+
+ Use the NLST command instead of LIST for a reliable file listing
+
+
+
+
+ Force the use of the NLST command (the slowest mode) even if machine listings
+ and OS-specific listings are supported by the server
+
+
+
+
+ Try to dereference symbolic links, and stored the linked file/directory in FtpListItem.LinkObject
+
+
+
+
+ Sets the ForceList flag and uses `LS' instead of `LIST' as the
+ command for getting a directory listing. This option overrides
+ ForceNameList and ignores the AllFiles flag.
+
+
+
+
+ Gets files within subdirectories as well. Adds the -r option to the LIST command.
+ Some servers may not support this feature.
+
+
+
+
+ Do not retrieve path when no path is supplied to GetListing(),
+ instead just execute LIST with no path argument.
+
+
+
+
+ Include two extra items into the listing, for the current directory (".")
+ and the parent directory (".."). Meaningless unless you want these two
+ items for some reason.
+
+
+
+
+ Defines the behavior for uploading/downloading files that already exist
+
+
+
+
+ Do not check if the file exists. A bit faster than the other options. Only use this if you are SURE that the file does not exist on the server.
+ Otherwise it can cause the UploadFile method to hang due to filesize mismatch.
+
+
+
+
+ Skip the file if it exists, without any more checks.
+
+
+
+
+ Overwrite the file if it exists.
+
+
+
+
+ Append to the file if it exists, by checking the length and adding the missing data.
+
+
+
+
+ Defines the level of the tracing message. Depending on the framework version this is translated
+ to an equivalent logging level in System.Diagnostices (if available)
+
+
+
+
+ Used for logging Debug or Verbose level messages
+
+
+
+
+ Used for logging Informational messages
+
+
+
+
+ Used for logging non-fatal or ignorable error messages
+
+
+
+
+ Used for logging Error messages that may need investigation
+
+
+
+
+ Defines how multi-file processes should handle a processing error.
+
+ & Cannot Be Combined
+
+
+
+ No action is taken upon errors. The method absorbs the error and continues.
+
+
+
+
+ If any files have completed successfully (or failed after a partial download/upload) then should be deleted.
+ This will simulate an all-or-nothing transaction downloading or uploading multiple files. If this option is not
+ combined with or then the method will
+ continue to process all items whether if they are successful or not and then delete everything if a failure was
+ encountered at any point.
+
+
+
+
+ The method should stop processing any additional files and immediately return upon encountering an error.
+ Cannot be combined with
+
+
+
+
+ The method should stop processing any additional files and immediately throw the current error.
+ Cannot be combined with
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ No verification of the file is performed
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then we retry the download/upload
+ a specified amount of times before giving up. (See )
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the failed file will be deleted.
+ If combined with , then
+ the deletion will occur if it fails upon the final retry.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then an exception will be thrown.
+ If combined with , then the throw will
+ occur upon the failure of the final retry, and/or if combined with
+ the method will throw after the deletion is processed.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the method returns false and no other action is taken.
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ The date is whatever the server returns, with no conversion performed.
+
+
+
+
+ The date is converted to the local timezone, based on the TimeOffset property in FtpClient.
+
+
+
+
+ The date is converted to UTC, based on the TimeOffset property in FtpClient.
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+ The control connection that triggered the event
+ Event args
+
+
+
+ Event fired if a bad SSL certificate is encountered. This even is used internally; if you
+ don't have a specific reason for using it you are probably looking for FtpSslValidation.
+
+
+
+
+
+
+ Event args for the FtpSslValidationError delegate
+
+
+
+
+ The certificate to be validated
+
+
+
+
+ The certificate chain
+
+
+
+
+ Validation errors, if any.
+
+
+
+
+ Gets or sets a value indicating if this certificate should be accepted. The default
+ value is false. If the certificate is not accepted, an AuthenticationException will
+ be thrown.
+
+
+
+
+ FTP related error
+
+
+
+
+ Initializes a new instance of the class.
+
+ The error message
+
+
+
+ Initializes a new instance of the class with an inner exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Exception triggered on command failures
+
+
+
+
+ Gets the completion code associated with the response
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ Status code
+ Associated message
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ The FtpReply to build the exception from
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Exception is thrown when encryption could not be negotiated by the server
+
+
+
+
+ Default constructor
+
+
+
+
+ Custom error message
+
+ Error message
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Represents a computed hash of an object
+ on the FTP server. See the following link
+ for more information:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Gets the algorithm that was used to compute the hash
+
+
+
+
+ Gets the computed hash returned by the server
+
+
+
+
+ Gets a value indicating if this object represents a
+ valid hash response from the server.
+
+
+
+
+ Computes the hash for the specified file and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The file to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Computes the hash for the specified stream and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The stream to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Creates an empty instance.
+
+
+
+
+ Represents a file system object on the server
+
+
+
+
+
+ Blank constructor; Fill args manually.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Constructor with mandatory args filled.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Gets the type of file system object.
+
+
+
+
+ Gets the full path name to the object.
+
+
+
+
+ Gets the name of the object.
+
+
+
+
+ Gets the target a symbolic link points to.
+
+
+
+
+ Gets the number of links pointing to this file. Only supplied by Unix servers.
+
+
+
+
+ Gets the object that the LinkTarget points to. This property is null unless you pass the
+ flag in which case GetListing() will try to resolve
+ the target itself.
+
+
+
+
+ Gets the last write time of the object.
+
+
+
+
+ Gets the created date of the object.
+
+
+
+
+ Gets the size of the object.
+
+
+
+
+ Gets special UNIX permissions such as Sticky, SUID and SGID.
+
+
+
+
+ Gets the owner permissions.
+
+
+
+
+ Gets the group permissions.
+
+
+
+
+ Gets the others permissions.
+
+
+
+
+ Gets the raw string received for the file permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the file permissions in the CHMOD format.
+
+
+
+
+ Gets the raw string received for the file's GROUP permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the raw string received for the file's OWNER permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the input string that was parsed to generate the
+ values in this object.
+
+
+
+
+ Returns a string representation of this object and its properties
+
+ A string representing this object
+
+
+
+ Parses a line from a file listing using the first successful parser, or the specified parser.
+ Returns an FtpListItem object representing the parsed line, or null if the line was unable to be parsed.
+
+
+
+
+ the FTP connection that owns this parser
+
+
+
+
+ which server type? (SYST)
+
+
+
+
+ current parser, or parser set by user
+
+
+
+
+ parser calculated based on system type (SYST command)
+
+
+
+
+ if we have detected that the current parser is valid
+
+
+
+
+ which culture to read filenames with?
+
+
+
+
+ what is the time offset between server/client?
+
+
+
+
+ any time offset between server/client?
+
+
+
+
+ VMS ONLY : the blocksize used to calculate the file
+
+
+
+
+ Is the version number returned as part of the filename?
+
+ Some VMS FTP servers do not permit a file to be deleted unless
+ the filename includes the version number. Note that directories are
+ never returned with the version number.
+
+
+
+
+ Initializes a new instance of the class.
+
+ An existing object
+
+
+
+ Try to auto-detect which parser is suitable given a system string.
+
+ result of SYST command
+
+
+
+ Parse raw file list from server into file objects, using the currently active parser.
+
+
+
+
+ Parse raw file from server into a file object, using the currently active parser.
+
+
+
+
+ Validate if the current parser is correct, or if another parser seems more appropriate.
+
+
+
+
+ Validate if the current parser is correct
+
+
+
+
+ Parses a line from a file listing using the first successful match in the Parsers collection.
+
+ The source path of the file listing
+ A line from the file listing
+ Server capabilities
+ A FtpListItem object representing the parsed line, null if the line was
+ unable to be parsed. If you have encountered an unsupported list type add a parser
+ to the public static Parsers collection of FtpListItem.
+
+
+
+ Used for synchronizing access to the Parsers collection
+
+
+
+
+ Initializes the default list of parsers
+
+
+
+
+ Collection of parsers. Each parser object contains
+ a regex string that uses named groups, i.e., (?<group_name>foobar).
+ The support group names are modify for last write time, size for the
+ size and name for the name of the file system object. Each group name is
+ optional, if they are present then those values are retrieved from a
+ successful match. In addition, each parser contains a Type property
+ which gets set in the FtpListItem object to distinguish between different
+ types of objects.
+
+
+
+
+ Adds a custom parser
+
+ The parser delegate to add
+
+
+
+
+ Removes all parser delegates
+
+
+
+
+ Removes the specified parser
+
+ The parser delegate to remove
+
+
+
+ Parses LIST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS DOS format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Ftp listing line parser
+
+ The line from the listing
+ The server capabilities
+ FtpListItem if the line can be parsed, null otherwise
+
+
+
+ Parses MLSD/MLST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings with alternate parser
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS/DOS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Vax/VMS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses NonStop format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IBM OS/400 format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Split into fields by splitting on strings
+
+
+
+ Fix the date string to make the month camel case
+ array of fields
+
+
+
+ Represents a reply to an event on the server
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ The status code of the response
+
+
+
+
+ The message, if any, that the server sent with the response
+
+
+
+
+ Informational messages sent from the server
+
+
+
+
+ General success or failure of the last command executed
+
+
+
+
+ Gets the error message including any informational output
+ that was sent by the server. Sometimes the final response
+ line doesn't contain anything informative as to what was going
+ on with the server. Instead it may send information messages so
+ in an effort to give as meaningful as a response as possible
+ the informational messages will be included in the error.
+
+
+
+
+ Used for transaction logging and debug information.
+
+
+
+
+ Should the trace listeners be flushed immediately after writing to them?
+
+
+
+
+ Should the log entries be written with a prefix of "FluentFTP"?
+ Useful if you have a single TraceListener shared across multiple libraries.
+
+
+
+
+ Add a TraceListner to the collection. You can use one of the predefined
+ TraceListeners in the System.Diagnostics namespace, such as ConsoleTraceListener
+ for logging to the console, or you can write your own deriving from
+ System.Diagnostics.TraceListener.
+
+ The TraceListener to add to the collection
+
+
+
+ Remove the specified TraceListener from the collection
+
+ The TraceListener to remove from the collection.
+
+
+
+ Should the function calls be logged in Verbose mode?
+
+
+
+
+ Should the FTP server IP addresses be included in the logs?
+
+
+
+
+ Should the FTP usernames be included in the logs?
+
+
+
+
+ Should the FTP passwords be included in the logs?
+
+
+
+
+ Should we trace at all?
+
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, adding an automatic prefix to the message based on the `eventType`
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, for the purpose of logging a API function call
+
+ The name of the API function
+ The args passed to the function
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ A formattable string to write
+
+
+ A FTP client with a HTTP 1.1 proxy implementation.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+ Host name
+ Port number
+ IP version to use
+
+
+
+ Abstraction of an FtpClient with a proxy
+
+
+
+ The proxy connection info.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine connect for FtpClient : authentication on the Proxy
+ The socket stream.
+
+
+ A FTP client with a user@host proxy identification.
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+
+ A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers.
+
+ The 'blue coat variant' forces the client to wait for a 220 FTP response code in
+ the handshake phase.
+
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+ POCO holding proxy information
+
+
+ Proxy host name
+
+
+ Proxy port
+
+
+ Proxy login credentials
+
+
+
+ Base class for data stream connections
+
+
+
+
+ Gets the status of the command that was used to open
+ this data channel
+
+
+
+
+ Gets or sets the control connection for this data stream. Setting
+ the control connection causes the object to be cloned and a new
+ connection is made to the server to carry out the task. This ensures
+ that multiple streams can be opened simultaneously.
+
+
+
+
+ Gets or sets the length of the stream. Only valid for file transfers
+ and only valid on servers that support the Size command.
+
+
+
+
+ Gets or sets the position of the stream
+
+
+
+
+ Reads data off the stream
+
+ The buffer to read into
+ Where to start in the buffer
+ Number of bytes to read
+ The number of bytes read
+
+
+
+ Writes data to the stream
+
+ The buffer to write to the stream
+ Where to start in the buffer
+ The number of bytes to write to the buffer
+
+
+
+ Sets the length of this stream
+
+ Value to apply to the Length property
+
+
+
+ Sets the position of the stream. Intended to be used
+ internally by FtpControlConnection.
+
+ The position
+
+
+
+ Closes the connection and reads the server's reply
+
+
+
+
+ Creates a new data stream object
+
+ The control connection to be used for carrying out this operation
+
+
+
+ Finalizer
+
+
+
+
+ Stream class used for talking. Used by FtpClient, extended by FtpDataStream
+
+
+
+
+ Used for tacking read/write activity on the socket
+ to determine if Poll() should be used to test for
+ socket connectivity. The socket in this class will
+ not know it has been disconnected if the remote host
+ closes the connection first. Using Poll() avoids
+ the exception that would be thrown when trying to
+ read or write to the disconnected socket.
+
+
+
+
+ The socket used for talking
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling Poll() on the socket to test for
+ connectivity. Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Poll()'ing all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets the number of available bytes on the socket, 0 if the
+ socket has not been initialized. This property is used internally
+ by FtpClient in an effort to detect disconnections and gracefully
+ reconnect the control connection.
+
+
+
+
+ Gets a value indicating if this socket stream is connected
+
+
+
+
+ Gets a value indicating if encryption is being used
+
+
+
+
+ The non-encrypted stream
+
+
+
+
+ The encrypted stream
+
+
+
+
+ Gets the underlying stream, could be a NetworkStream or SslStream
+
+
+
+
+ Gets a value indicating if this stream can be read
+
+
+
+
+ Gets a value indicating if this stream if seekable
+
+
+
+
+ Gets a value indicating if this stream can be written to
+
+
+
+
+ Gets the length of the stream
+
+
+
+
+ Gets the current position of the stream. Trying to
+ set this property throws an InvalidOperationException()
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+
+
+
+ Gets or sets the amount of time to wait for a read operation to complete. Default
+ value is Timeout.Infinite.
+
+
+
+
+ Gets or sets the length of time milliseconds to wait
+ for a connection succeed before giving up. The default
+ is 30000 (30 seconds).
+
+
+
+
+ Gets the local end point of the socket
+
+
+
+
+ Gets the remote end point of the socket
+
+
+
+
+ Fires the SSL certificate validation event
+
+ Certificate being validated
+ Certificate chain
+ Policy errors if any
+ True if it was accepted, false otherwise
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+ Ignored
+
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+
+
+
+ Flushes the stream
+
+
+
+
+ Bypass the stream and read directly off the socket.
+
+ The buffer to read into
+ The number of bytes read
+
+
+
+ Reads data from the stream
+
+ Buffer to read into
+ Where in the buffer to start
+ Number of bytes to be read
+ The amount of bytes read from the stream
+
+
+
+ Reads a line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads all line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ The size of the buffer
+ A list of lines from the stream
+
+
+
+ Writes data to the stream
+
+ Buffer to write to stream
+ Where in the buffer to start
+ Number of bytes to be read
+
+
+
+ Writes a line to the stream using the specified encoding
+
+ Encoding used for writing the line
+ The data to write
+
+
+
+ Disconnects from server
+
+
+
+
+ Sets socket options on the underlying socket
+
+ SocketOptionLevel
+ SocketOptionName
+ SocketOptionValue
+
+
+
+ Connect to the specified host
+
+ The host to connect to
+ The port to connect to
+ Internet Protocol versions to support during the connection phase
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+
+
+
+ Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+ A bitwise parameter for supported encryption protocols.
+ Thrown when authentication fails
+
+
+
+ Deactivates SSL on this stream using the specified protocols and reverts back to plain-text FTP.
+
+
+
+
+ Instructs this stream to listen for connections on the specified address and port
+
+ The address to listen on
+ The port to listen on
+
+
+
+ Accepts a connection from a listening socket
+
+
+
+
+ Asynchronously accepts a connection from a listening socket
+
+
+
+
+
+
+
+ Completes a BeginAccept() operation
+
+ IAsyncResult returned from BeginAccept
+
+
+
+ .NET SslStream doesn't close TLS connection properly.
+ It does not send the close_notify alert before closing the connection.
+ FtpSslStream uses unsafe code to do that.
+ This is required when we want to downgrade the connection to plaintext using CCC command.
+ Thanks to Neco @ https://stackoverflow.com/questions/237807/net-sslstream-doesnt-close-tls-connection-properly/22626756#22626756
+
+
+
+
+ Send an SSL close_notify alert.
+
+
+
+
+
+ Extension methods related to FTP tasks
+
+
+
+
+ Converts the specified path into a valid FTP file system path
+
+ The file system path
+ A path formatted for FTP
+
+
+
+ Creates a valid FTP path by appending the specified segments to this string
+
+ This string
+ The path segments to append
+ A valid FTP path
+
+
+
+ Gets the parent directory path (formatted for a FTP server)
+
+ The path
+ The parent directory path
+
+
+
+ Gets the file name and extension from the path
+
+ The full path to the file
+ The file name
+
+
+
+ Tries to convert the string FTP date representation into a object
+
+ The date
+ UTC/Local Time
+ A object representing the date, or if there was a problem
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Validates that the FtpError flags set are not in an invalid combination.
+
+ The error handling options set
+ True if a valid combination, otherwise false
+
+
+
+ Checks if every character in the string is whitespace, or the string is null.
+
+
+
+
+ Checks if the string is null or 0 length.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ To support progress reporting in .NET 3.5 and .NET 4.0
+
+
+
+
+ To support progress reporting in .NET 3.5 and .NET 4.0
+
+
+
+
diff --git a/packages/FluentFTP.19.2.2/lib/net45/FluentFTP.dll b/packages/FluentFTP.19.2.2/lib/net45/FluentFTP.dll
new file mode 100644
index 0000000..15ae4f6
Binary files /dev/null and b/packages/FluentFTP.19.2.2/lib/net45/FluentFTP.dll differ
diff --git a/packages/FluentFTP.19.2.2/lib/net45/FluentFTP.xml b/packages/FluentFTP.19.2.2/lib/net45/FluentFTP.xml
new file mode 100644
index 0000000..83e3985
--- /dev/null
+++ b/packages/FluentFTP.19.2.2/lib/net45/FluentFTP.xml
@@ -0,0 +1,5436 @@
+
+
+
+ FluentFTP
+
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+
+
+ Used for internally synchronizing access to this
+ object from multiple threads
+
+
+
+
+ For usage by FTP proxies only
+
+
+
+
+ A list of asynchronous methods that are in progress
+
+
+
+
+ Control connection socket stream
+
+
+
+
+ Gets a value indicating if this object has already been disposed.
+
+
+
+
+ Gets the base stream for talking to the server via
+ the control connection.
+
+
+
+
+ Flags specifying which versions of the internet protocol to
+ support when making a connection. All addresses returned during
+ name resolution are tried until a successful connection is made.
+ You can fine tune which versions of the internet protocol to use
+ by adding or removing flags here. I.e., setting this property
+ to FtpIpVersion.IPv4 will cause the connection process to
+ ignore IPv6 addresses. The default value is ANY version.
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling
+ on the socket to test for connectivity.
+ Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Polling all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets or sets a value indicating whether a test should be performed to
+ see if there is stale (unrequested data) sitting on the socket. In some
+ cases the control connection may time out but before the server closes
+ the connection it might send a 4xx response that was unexpected and
+ can cause synchronization errors with transactions. To avoid this
+ problem the method checks to see if there is any data
+ available on the socket before executing a command. On Azure hosting
+ platforms this check can cause an exception to be thrown. In order
+ to work around the exception you can set this property to false
+ which will skip the test entirely however doing so eliminates the
+ best effort attempt of detecting such scenarios. See this thread
+ for more details about the Azure problem:
+ https://netftp.codeplex.com/discussions/535879
+
+
+
+
+ Gets a value indicating if the connection is alive
+
+
+
+
+ When this value is set to true (default) the control connection
+ is cloned and a new connection the server is established for the
+ data channel operation. This is a thread safe approach to make
+ asynchronous operations on a single control connection transparent
+ to the developer.
+
+
+
+
+ Gets a value indicating if this control connection is a clone. This property
+ is used with data streams to determine if the connection should be closed
+ when the stream is closed. Servers typically only allow 1 data connection
+ per control connection. If you try to open multiple data connections this
+ object will be cloned for 2 or more resulting in N new connections to the
+ server.
+
+
+
+
+ Gets or sets the text encoding being used when talking with the server. The default
+ value is however upon connection, the client checks
+ for UTF8 support and if it's there this property is switched over to
+ . Manually setting this value overrides automatic detection
+ based on the FEAT list; if you change this value it's always used
+ regardless of what the server advertises, if anything.
+
+
+
+
+ The server to connect to
+
+
+
+
+ The port to connect to. If this value is set to 0 (Default) the port used
+ will be determined by the type of SSL used or if no SSL is to be used it
+ will automatically connect to port 21.
+
+
+
+
+ Credentials used for authentication
+
+
+
+
+ Gets or sets a value that controls the maximum depth
+ of recursion that will follow symbolic
+ links before giving up. You can also specify the value
+ to be used as one of the overloaded parameters to the
+ method. The default value is 20. Specifying
+ -1 here means indefinitely try to resolve a link. This is
+ not recommended for obvious reasons (stack overflow).
+
+
+
+
+ Client certificates to be used in SSL authentication process
+
+
+
+
+ Delegate used for resolving local address, used for active data connections
+ This can be used in case you're behind a router, but port forwarding is configured to forward the
+ ports from your router to your internal IP. In that case, we need to send the router's IP instead of our internal IP.
+ See example: FtpClient.GetPublicIP -> This uses Ipify api to find external IP
+
+
+
+
+ Ports used for Active Data Connection
+
+
+
+
+ Data connection type, default is AutoPassive which tries
+ a connection with EPSV first and if it fails then tries
+ PASV before giving up. If you know exactly which kind of
+ connection you need you can slightly increase performance
+ by defining a specific type of passive or active data
+ connection here.
+
+
+
+
+ Disconnect from the server without sending QUIT. This helps
+ work around IOExceptions caused by buggy connection resets
+ when closing the control connection.
+
+
+
+
+ Gets or sets the length of time in milliseconds to wait for a connection
+ attempt to succeed before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time wait in milliseconds for data to be
+ read from the underlying stream. The default value is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds for a data connection
+ to be established before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds the data channel
+ should wait for the server to send data. Default value is
+ 15000 (15 seconds).
+
+
+
+
+ Gets or sets a value indicating if should be set on
+ the underlying stream's socket. If the connection is alive, the option is
+ adjusted in real-time. The value is stored and the KeepAlive option is set
+ accordingly upon any new connections. The value set here is also applied to
+ all future data streams. It has no affect on cloned control connections or
+ data connections already in progress. The default value is false.
+
+
+
+
+ Gets the server capabilities represented by flags
+
+
+
+
+ Get the hash types supported by the server, if any. This
+ is a recent extension to the protocol that is not fully
+ standardized and is not guaranteed to work. See here for
+ more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Type of SSL to use, or none. Default is none. Explicit is TLS, Implicit is SSL.
+
+
+
+
+ Indicates if data channel transfers should be encrypted. Only valid if
+ property is not equal to .
+
+
+
+
+ Indicates if the encryption should be disabled immediately after connecting using a CCC command.
+ This is useful when you have a FTP firewall that requires plaintext FTP, but your server mandates FTPS connections.
+
+
+
+
+ Encryption protocols to use. Only valid if EncryptionMode property is not equal to .
+ Default value is .NET Framework defaults from the class.
+
+
+
+
+ Event is fired to validate SSL certificates. If this event is
+ not handled and there are errors validating the certificate
+ the connection will be aborted.
+
+
+
+
+
+ Gets the type of system/server that we're
+ connected to.
+
+
+
+ Gets the connection type
+
+
+
+ Creates a new instance of an FTP Client.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, username and password.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port, username and password.
+
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+
+ Disconnects from the server, releases resources held by this
+ object.
+
+
+
+
+ Finalizer
+
+
+
+
+ Clones the control connection for opening multiple data streams
+
+ A new control connection with the same property settings as this one
+
+
+
+
+ Executes a command
+
+ The command to execute
+ The servers reply to the command
+
+
+
+
+ Performs execution of the specified command asynchronously
+
+ The command to execute
+ The method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends an asynchronous command
+
+ IAsyncResult returned from BeginExecute
+ FtpReply object (never null).
+
+
+
+
+ Performs an asynchronous execution of the specified command
+
+ The command to execute
+ The servers reply to the command
+
+
+
+ Retrieves a reply from the server. Do not execute this method
+ unless you are sure that a reply has been sent, i.e., you
+ executed a command. Doing so will cause the code to hang
+ indefinitely waiting for a server reply that is never coming.
+
+ FtpReply representing the response from the server
+
+
+
+
+ Retrieves a reply from the server. Do not execute this method
+ unless you are sure that a reply has been sent, i.e., you
+ executed a command. Doing so will cause the code to hang
+ indefinitely waiting for a server reply that is never coming.
+
+ FtpReply representing the response from the server
+
+
+
+
+ Connect to the server
+
+ Thrown if this object has been disposed.
+
+
+
+
+ Connect to the server
+
+ Thrown if this object has been disposed.
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+ Called during Connect(). Typically extended by FTP proxies.
+
+
+
+
+ Called during . Typically extended by FTP proxies.
+
+
+
+
+ Populates the capabilities flags based on capabilities
+ supported by this server. This method is overridable
+ so that new features can be supported
+
+ The reply object from the FEAT command. The InfoMessages property will
+ contain a list of the features the server supported delimited by a new line '\n' character.
+
+
+
+ Initiates a connection to the server
+
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends an asynchronous connection attempt to the server from
+
+ returned from
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Disconnects from the server
+
+
+
+
+ Initiates a disconnection on the server
+
+ method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+
+
+
+
+ Disconnects from the server asynchronously
+
+
+
+
+ Catches the socket stream ssl validation event and fires the event handlers
+ attached to this object for validating SSL certificates
+
+ The stream that fired the event
+ The event args used to validate the certificate
+
+
+
+ Fires the SSL validation event
+
+ Event Args
+
+
+
+ Performs a bitwise and to check if the specified
+ flag is set on the property.
+
+ The to check for
+ True if the feature was found, false otherwise
+
+
+
+ Retrieves the delegate for the specified IAsyncResult and removes
+ it from the m_asyncmethods collection if the operation is successful
+
+ Type of delegate to retrieve
+ The IAsyncResult to retrieve the delegate for
+ The delegate that generated the specified IAsyncResult
+
+
+
+ Ensure a relative path is absolute by appending the working dir
+
+
+
+
+ Ensure a relative path is absolute by appending the working dir
+
+
+
+
+ Disables UTF8 support and changes the Encoding property
+ back to ASCII. If the server returns an error when trying
+ to turn UTF8 off a FtpCommandException will be thrown.
+
+
+
+
+ Data shouldn't be on the socket, if it is it probably
+ means we've been disconnected. Read and discard
+ whatever is there and close the connection (optional).
+
+ close the connection?
+ even read encrypted data?
+ trace data to logs?
+
+
+
+ Data shouldn't be on the socket, if it is it probably
+ means we've been disconnected. Read and discard
+ whatever is there and close the connection (optional).
+
+ close the connection?
+ even read encrypted data?
+ trace data to logs?
+
+
+
+ Calculate the CHMOD integer value given a set of permissions.
+
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ FtpClient object
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ FtpClient object
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Restart location
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Calculate you public internet IP using the ipify service. Returns null if cannot be calculated.
+
+ Public IP Address
+
+
+
+ Gets the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The flag or if there was a problem.
+
+
+
+
+ Begins an asynchronous operation to get the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The flag or if there was a problem.
+
+
+
+ Gets the currently selected hash algorithm for the HASH command asynchronously.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The flag or if there was a problem.
+
+
+
+ Sets the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash Algorithm
+ Thrown if the selected algorithm is not available on the server
+
+
+
+
+ Begins an asynchronous operation to set the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash algorithm to use
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+
+
+
+ Sets the hash algorithm on the server to be used with the HASH command asynchronously.
+
+ Hash algorithm to use
+ Thrown if the selected algorithm is not available on the server
+
+
+
+ Gets the hash of an object on the server using the currently selected hash algorithm.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Full or relative path of the object to compute the hash for.
+ The hash of the file.
+
+ Thrown if the property is ,
+ the remote path does not exist, or the command cannot be executed.
+
+ Path argument is null
+ Thrown when an unknown hash algorithm type is returned by the server
+
+
+
+
+ Begins an asynchronous operation to get the hash of an object on the server using the currently selected hash algorithm.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The file you want the server to compute the hash for
+ AsyncCallback
+ State object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+
+
+
+ Gets the hash of an object on the server using the currently selected hash algorithm asynchronously.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The file you want the server to compute the hash for
+
+ Thrown if the property is ,
+ the remote path does not exist, or the command cannot be executed.
+
+ Path argument is null
+ Thrown when an unknown hash algorithm type is returned by the server
+ The hash of the file.
+
+
+
+ Retrieves a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path of the file to checksum
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+
+
+ Retrieves a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path of the file to checksum
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+ The command fails
+
+
+
+ Gets the MD5 hash of the specified file using MD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a MD5 hash. The MD5 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The MD5 hash of the specified file.
+
+
+
+ Gets the MD5 hash of the specified file using MD5 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Get the CRC value of the specified file. This is a non-standard extension of the protocol
+ and may throw a FtpCommandException if the server does not support it.
+
+ The path of the file you'd like the server to compute the CRC value for.
+ The response from the server, typically the XCRC value. FtpCommandException thrown on error
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a CRC hash. The XCRC command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The CRC hash of the specified file.
+
+
+
+ Gets the CRC hash of the specified file using XCRC asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the CRC hash.
+ The command fails
+
+
+
+ Gets the MD5 hash of the specified file using XMD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a XMD5 hash. The XMD5 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The MD5 hash of the specified file.
+
+
+
+ Gets the MD5 hash of the specified file using XMD5 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Gets the SHA-1 hash of the specified file using XSHA1. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-1 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA1 hash. The XSHA1 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-1 hash of the specified file.
+
+
+
+ Gets the SHA-1 hash of the specified file using XSHA1 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-1 hash.
+ The command fails
+
+
+
+ Gets the SHA-256 hash of the specified file using XSHA256. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-256 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA256 hash. The XSHA256 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-256 hash of the specified file.
+
+
+
+ Gets the SHA-256 hash of the specified file using XSHA256 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-256 hash.
+ The command fails
+
+
+
+ Gets the SHA-512 hash of the specified file using XSHA512. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-512 hash.
+ The command fails
+
+
+
+ Begins an asynchronous operation to retrieve a SHA512 hash. The XSHA512 command is non-standard
+ and not guaranteed to work.
+
+ Full or relative path to remote file
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+ The SHA-512 hash of the specified file.
+
+
+
+ Gets the SHA-512 hash of the specified file using XSHA512 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-512 hash.
+ The command fails
+
+
+
+ Gets or sets the number of bytes transferred in a single chunk (a single FTP command).
+ Used by / and /
+ to transfer large files in multiple chunks.
+
+
+
+
+ Gets or sets the retry attempts allowed when a verification failure occurs during download or upload.
+ This value must be set to 1 or more.
+
+
+
+
+ Rate limit for uploads in kbyte/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Rate limit for downloads in kbytes/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Controls if the high-level API uploads files in Binary or ASCII mode.
+
+
+
+
+ Controls if the high-level API downloads files in Binary or ASCII mode.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ Files to be uploaded
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server asynchronously.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The token to monitor for cancellation requests
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server asynchronously.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded into.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The token to monitor for cancellation requests
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded into.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the specified file directly onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified file directly onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ The token to monitor for cancellation requests.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified file directly onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified stream as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Uploads the specified byte array as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Uploads the specified stream as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ The token to monitor for cancellation requests.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Uploads the specified byte array as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ The token to monitor for cancellation requests.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Uploads the specified stream as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Uploads the specified byte array as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Upload the given stream to the server as a new file. Overwrites the file if it exists.
+ Writes data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Upload the given stream to the server as a new file asynchronously. Overwrites the file if it exists.
+ Writes data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Downloads the specified file onto the local file system.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file onto the local file system asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ The token to monitor for cancellation requests
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file onto the local file system asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file into the specified stream.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file and return the raw byte array.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The variable that will receive the bytes.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file into the specified stream asynchronously .
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ The token to monitor cancellation requests
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file into the specified stream asynchronously .
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file and return the raw byte array.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the server
+ The token to monitor cancellation requests
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ A byte array containing the contents of the downloaded file if successful, otherwise null.
+
+
+
+ Downloads the specified file into the specified stream asynchronously .
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the server
+ A byte array containing the contents of the downloaded file if successful, otherwise null.
+
+
+
+ Download a file from the server and write the data into the given stream.
+ Reads data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Download a file from the server and write the data into the given stream asynchronously.
+ Reads data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate.
+
+
+
+
+ File listing parser to be used.
+ Automatically calculated based on the type of the server, unless changed.
+
+
+
+
+ Culture used to parse file listings
+
+
+
+
+ Time difference between server and client, in hours.
+ If the server is located in New York and you are in London then the time difference is -5 hours.
+
+
+
+
+ Check if your server supports a recursive LIST command (LIST -R).
+ If you know for sure that this is unsupported, set it to false.
+
+
+
+
+ If true, increases performance of GetListing by reading multiple lines
+ of the file listing at once. If false then GetListing will read file
+ listings line-by-line. If GetListing is having issues with your server,
+ set it to false.
+
+ The number of bytes read is based upon .
+
+
+
+
+ Bytes to read during GetListing. Only honored if is true.
+
+
+
+
+ Returns information about a file system object. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ The path of the file or folder
+ Get the accurate modified date using another MDTM command
+ A FtpListItem object
+
+
+
+ Begins an asynchronous operation to return information about a remote file system object.
+
+
+ You should check the property for the
+ flag before calling this method. Failing to do so will result in an InvalidOperationException
+ being thrown when the server does not support machine listings. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ Path of the file or folder
+ Get the accurate modified date using another MDTM command
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ A if the command succeeded, or null if there was a problem.
+
+
+
+ Return information about a remote file system object asynchronously.
+
+
+ You should check the property for the
+ flag before calling this method. Failing to do so will result in an InvalidOperationException
+ being thrown when the server does not support machine listings. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+ Path of the item to retrieve information about
+ Get the accurate modified date using another MDTM command
+ Thrown if the server does not support this Capability
+ A if the command succeeded, or null if there was a problem.
+
+
+
+ Gets a file listing from the server from the current working directory. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ Options that dictacte how a list is performed and what information is gathered.
+ An array of FtpListItem objects
+
+
+
+
+ Begins an asynchronous operation to get a file listing from the server.
+ Each object returned contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to get a file listing from the server.
+ Each object returned contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Gets a file listing from the server asynchronously
+
+ The path to list
+ Options that dictate how the list operation is performed
+ AsyncCallback method
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult return from
+ An array of items retrieved in the listing
+
+
+
+
+ Gets a file listing from the server asynchronously. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ Options that dictate how the list operation is performed
+ An array of items retrieved in the listing
+
+
+
+ Gets a file listing from the server asynchronously. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ An array of items retrieved in the listing
+
+
+
+ Gets a file listing from the server asynchronously. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ An array of items retrieved in the listing
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ A string array of file and directory names if any were returned.
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ The path of the directory to list
+ A string array of file and directory names if any were returned.
+
+
+
+
+ Begin an asynchronous operation to return a file/directory listing using the NLST command.
+
+ The path of the directory to list
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begin an asynchronous operation to return a file/directory listing using the NLST command.
+
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult object returned from
+ An array of file and directory names if any were returned.
+
+
+
+
+ Returns a file/directory listing using the NLST command asynchronously
+
+ The path of the directory to list
+ An array of file and directory names if any were returned.
+
+
+
+ Returns a file/directory listing using the NLST command asynchronously
+
+ An array of file and directory names if any were returned.
+
+
+
+ Opens the specified type of passive data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens the specified type of passive data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Returns the ip address to be sent to the server for the active connection
+
+
+
+
+
+
+ Opens the specified type of active data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens the specified type of active data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens a data stream.
+
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ The data stream.
+
+
+
+ Opens a data stream.
+
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ The data stream.
+
+
+
+ Disconnects a data stream
+
+ The data stream to close
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A readable stream of the remote file
+
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ ASCII/Binary
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ Resume location
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for writing
+
+ Full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for writing
+
+ Full or relative path of the file
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A writable stream
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket. asynchronously
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket. asynchronously
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Begins an asynchronous operation to open the specified file for appending
+
+ Full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to open the specified file for appending
+
+ Full or relative path of the file
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ returned from
+ A writable stream
+
+
+
+
+ Opens the specified file to be appended asynchronously
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file to be appended asynchronously
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file to be appended asynchronously
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+ Sets the data type of information sent over the data stream
+
+ ASCII/Binary
+
+
+ Internal method that handles actually setting the data type.
+ Thrown when a FTP Command error condition occurs.
+ Thrown when a FTP error condition occurs.
+ ASCII/Binary.
+ This method doesn't do any locking to prevent recursive lock scenarios. Callers must do their own locking.
+
+
+
+ Begins an asynchronous operation to set the data type of information sent over the data stream
+
+ ASCII/Binary
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Sets the data type of information sent over the data stream asynchronously
+
+ ASCII/Binary
+
+
+
+ Deletes a file on the server
+
+ The full or relative path to the file
+
+
+
+
+ Begins an asynchronous operation to delete the specified file on the server
+
+ The full or relative path to the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDeleteFile
+
+
+
+
+ Deletes a file from the server asynchronously
+
+ The full or relative path to the file
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ If the directory is not empty, remove its contents
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Checks whether will be called recursively or not.
+
+
+
+
+
+
+ Begins an asynchronous operation to delete the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to delete the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDeleteDirectory
+
+
+
+
+ Asynchronously removes a directory and all its contents.
+
+ The full or relative path of the directory to delete
+
+
+
+ Asynchronously removes a directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+
+
+
+ Asynchronously removes a directory. Used by and
+ .
+
+ The full or relative path of the directory to delete
+ Delete the contents before deleting the folder
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Tests if the specified directory exists on the server. This
+ method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ The path of the directory
+ True if it exists, false otherwise.
+
+
+
+
+ Begins an asynchronous operation to test if the specified directory exists on the server.
+ This method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ IAsyncResult
+ The full or relative path of the directory to check for
+ Async callback
+ State object
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from BeginDirectoryExists
+ True if the directory exists. False otherwise.
+
+
+
+
+ Tests if the specified directory exists on the server asynchronously. This
+ method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ The full or relative path of the directory to check for
+ True if the directory exists. False otherwise.
+
+
+
+ Checks if a file exists on the server.
+
+ The full or relative path to the file
+ True if the file exists
+
+
+
+
+ Begins an asynchronous operation to check if a file exists on the
+ server by taking a file listing of the parent directory in the path
+ and comparing the results the path supplied.
+
+ The full or relative path to the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ True if the file exists, false otherwise
+
+
+
+
+ Checks if a file exists on the server asynchronously.
+
+ The full or relative path to the file
+ True if the file exists, false otherwise
+
+
+
+ Creates a directory on the server. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+
+
+
+
+ Creates a directory on the server
+
+ The full or relative path to the new remote directory
+ Try to force all non-existent pieces of the path to be created
+
+
+
+
+ Begins an asynchronous operation to create a remote directory. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to create a remote directory
+
+ The full or relative path to the new remote directory
+ Try to create the whole path if the preceding directories do not exist
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Creates a remote directory asynchronously
+
+ The full or relative path to the new remote directory
+ Try to create the whole path if the preceding directories do not exist
+
+
+
+ Creates a remote directory asynchronously. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+
+
+
+ Renames an object on the remote file system.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+
+
+
+
+ Begins an asynchronous operation to rename an object on the remote file system.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Renames an object on the remote file system asynchronously.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+
+
+
+ Moves a file on the remote file system from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Whether the file was moved
+
+
+
+ Begins an asynchronous operation to move a file on the remote file system, from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Moves a file asynchronously on the remote file system from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Whether the file was moved
+
+
+
+ Moves a directory on the remote file system from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Whether the directory was moved
+
+
+
+ Begins an asynchronous operation to move a directory on the remote file system, from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+ Moves a directory asynchronously on the remote file system from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Whether the directory was moved
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set.
+ Throws FtpCommandException if there is an issue.
+ Returns null if the server did not specify a permission value.
+ Use `GetChmod` if you required the integer value instead.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set.
+ Throws FtpCommandException if there is an issue.
+ Returns null if the server did not specify a permission value.
+ Use `GetChmod` if you required the integer value instead.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an integer in the CHMOD format.
+ Throws FtpCommandException if there is an issue.
+ Returns 0 if the server did not specify a permission value.
+ Use `GetFilePermissions` if you required the permissions in the FtpPermission format.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an integer in the CHMOD format.
+ Throws FtpCommandException if there is an issue.
+ Returns 0 if the server did not specify a permission value.
+ Use `GetFilePermissions` if you required the permissions in the FtpPermission format.
+
+ The full or relative path to the item
+
+
+
+ Recursively dereferences a symbolic link. See the
+ MaximumDereferenceCount property for controlling
+ how deep this method will recurse before giving up.
+
+ The symbolic link
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Recursively dereferences a symbolic link
+
+ The symbolic link
+ The maximum depth of recursion that can be performed before giving up.
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Derefence a FtpListItem object
+
+ The item to derefence
+ Maximum recursive calls
+ Counter
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Begins an asynchronous operation to dereference a object
+
+ The item to dereference
+ Maximum recursive calls
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+
+ Begins an asynchronous operation to dereference a object. See the
+ property for controlling
+ how deep this method will recurse before giving up.
+
+ The item to dereference
+ AsyncCallback
+ State Object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult
+ A , or null if the link can't be dereferenced
+
+
+
+
+ Derefence a FtpListItem object
+
+ The item to derefence
+ Maximum recursive calls
+ Counter
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+ Dereference a object asynchronously
+
+ The item to dereference
+ Maximum recursive calls
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+ Dereference a object asynchronously
+
+ The item to dereference
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+ Sets the work directory on the server
+
+ The path of the directory to change to
+
+
+
+
+ Begins an asynchronous operation to set the working directory on the server
+
+ The directory to change to
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+
+
+
+
+ Sets the working directory on the server asynchronously
+
+ The directory to change to
+
+
+
+ Gets the current working directory
+
+ The current working directory, ./ if the response couldn't be parsed.
+
+
+
+
+ Begins an asynchronous operation to get the working directory
+
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The current working directory
+
+
+
+
+ Gets the current working directory asynchronously
+
+ The current working directory, ./ if the response couldn't be parsed.
+
+
+
+ Gets the size of a remote file
+
+ The full or relative path of the file
+ -1 if the command fails, otherwise the file size
+
+
+
+
+ Begins an asynchronous operation to retrieve the size of a remote file
+
+ The full or relative path of the file
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The size of the file, -1 if there was a problem.
+
+
+
+
+ Retrieve the size of a remote file asynchronously
+
+ The full or relative path of the file
+ The size of the file, -1 if there was a problem.
+
+
+
+ Gets the modified time of a remote file
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ The modified time, or if there was a problem
+
+
+
+
+ Begins an asynchronous operation to get the modified time of a remote file
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The modified time, or if there was a problem
+
+
+
+
+ Gets the modified time of a remote file asynchronously
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ The modified time, or if there was a problem
+
+
+
+ Changes the modified time of a remote file
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+
+
+
+ Begins an asynchronous operation to get the modified time of a remote file
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The modified time, or if there was a problem
+
+
+
+ Gets the modified time of a remote file asynchronously
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+
+
+
+ Interface for the FtpClient class. For detailed documentation of the methods, please see the FtpClient class.
+
+
+
+
+ Defines the type of encryption to use
+
+
+
+
+ Plain text.
+
+
+
+
+ FTPS encryption is used from the start of the connection, port 990.
+
+
+
+
+ Connection starts in plain text and FTPS encryption is enabled
+ with the AUTH command immediately after the server greeting.
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ No response
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Temporary failure
+
+
+
+
+ Permanent failure
+
+
+
+
+ Server features
+
+
+
+
+ This server said it doesn't support anything!
+
+
+
+
+ Supports the MLST command
+
+
+
+
+ Supports the SIZE command
+
+
+
+
+ Supports the MDTM command
+
+
+
+
+ Supports download/upload stream resumes
+
+
+
+
+ Supports UTF8
+
+
+
+
+ PRET Command used in distributed ftp server software DrFTPD
+
+
+
+
+ Server supports the MFMT command for setting the
+ modified date of an object on the server
+
+
+
+
+ Server supports the MFCT command for setting the
+ created date of an object on the server
+
+
+
+
+ Server supports the MFF command for setting certain facts
+ about file system objects. If you need this command, it would
+ probably be handy to query FEAT your self and have a look at
+ the FtpReply.InfoMessages property to see which facts the server
+ allows you to modify.
+
+
+
+
+ Server supports the STAT command
+
+
+
+
+ Support for the HASH command
+
+
+
+
+ Support for the non-standard MD5 command
+
+
+
+
+ Support for the non-standard XMD5 command
+
+
+
+
+ Support for the non-standard XCRC command
+
+
+
+
+ Support for the non-standard XSHA1 command
+
+
+
+
+ Support for the non-standard XSHA256 command
+
+
+
+
+ Support for the non-standard XSHA512 command
+
+
+
+
+ Different types of hashing algorithms for computing checksums.
+
+
+
+
+ HASH command is not supported
+
+
+
+
+ SHA-1
+
+
+
+
+ SHA-256
+
+
+
+
+ SHA-512
+
+
+
+
+ MD5
+
+
+
+
+ CRC
+
+
+
+
+ IP Versions to allow when connecting
+ to a server.
+
+
+
+
+ Internet Protocol Version 4
+
+
+
+
+ Internet Protocol Version 6
+
+
+
+
+ Allow any supported version
+
+
+
+
+ Data connection type
+
+
+
+
+ This type of data connection attempts to use the EPSV command
+ and if the server does not support EPSV it falls back to the
+ PASV command before giving up unless you are connected via IPv6
+ in which case the PASV command is not supported.
+
+
+
+
+ Passive data connection. EPSV is a better
+ option if it's supported. Passive connections
+ connect to the IP address dictated by the server
+ which may or may not be accessible by the client
+ for example a server behind a NAT device may
+ give an IP address on its local network that
+ is inaccessible to the client. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Same as PASV except the host supplied by the server is ignored
+ and the data connection is made to the same address that the control
+ connection is connected to. This is useful in scenarios where the
+ server supplies a private/non-routable network address in the
+ PASV response. It's functionally identical to EPSV except some
+ servers may not implement the EPSV command. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Extended passive data connection, recommended. Works
+ the same as a PASV connection except the server
+ does not dictate an IP address to connect to, instead
+ the passive connection goes to the same address used
+ in the control connection. This type of data connection
+ supports IPv4 and IPv6.
+
+
+
+
+ This type of data connection attempts to use the EPRT command
+ and if the server does not support EPRT it falls back to the
+ PORT command before giving up unless you are connected via IPv6
+ in which case the PORT command is not supported.
+
+
+
+
+ Active data connection, not recommended unless
+ you have a specific reason for using this type.
+ Creates a listening socket on the client which
+ requires firewall exceptions on the client system
+ as well as client network when connecting to a
+ server outside of the client's network. In addition
+ the IP address of the interface used to connect to the
+ server is the address the server is told to connect to
+ which, if behind a NAT device, may be inaccessible to
+ the server. This type of data connection is not supported
+ by IPv6. If you specify PORT and are connected via IPv6
+ EPRT will automatically be used instead.
+
+
+
+
+ Extended active data connection, not recommended
+ unless you have a specific reason for using this
+ type. Creates a listening socket on the client
+ which requires firewall exceptions on the client
+ as well as client network when connecting to a
+ server outside of the client's network. The server
+ connects to the IP address it sees the client coming
+ from. This type of data connection supports IPv4 and IPv6.
+
+
+
+
+ Type of data transfer to do
+
+
+
+
+ ASCII transfer
+
+
+
+
+ Binary transfer
+
+
+
+
+ Type of file system of object
+
+
+
+
+ A file
+
+
+
+
+ A directory
+
+
+
+
+ A symbolic link
+
+
+
+
+ Types of file permissions
+
+
+
+
+ No access
+
+
+
+
+ Executable
+
+
+
+
+ Writable
+
+
+
+
+ Readable
+
+
+
+
+ Types of special UNIX permissions
+
+
+
+
+ No special permissions are set
+
+
+
+
+ Sticky bit is set
+
+
+
+
+ SGID bit is set
+
+
+
+
+ SUID bit is set
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ Use the legacy parser (for older projects that depend on the pre-2017 parser routines).
+
+
+
+
+ Automatically detect the file listing parser to use based on the FTP server (SYST command).
+
+
+
+
+ Machine listing parser, works on any FTP server supporting the MLST/MLSD commands.
+
+
+
+
+ File listing parser for Windows/IIS.
+
+
+
+
+ File listing parser for Unix.
+
+
+
+
+ Alternate parser for Unix. Use this if the default one does not work.
+
+
+
+
+ File listing parser for Vax/VMS/OpenVMS.
+
+
+
+
+ File listing parser for IBM OS400.
+
+
+
+
+ File listing parser for Tandem/Nonstop Guardian OS.
+
+
+
+
+ Flags that can dictate how a file listing is performed
+
+
+
+
+ Tries machine listings (MDTM command) if supported,
+ and if not then falls back to OS-specific listings (LIST command)
+
+
+
+
+ Load the modify date using MDTM when it could not
+ be parsed from the server listing. This only pertains
+ to servers that do not implement the MLSD command.
+
+
+
+
+ Load the file size using the SIZE command when it
+ could not be parsed from the server listing. This
+ only pertains to servers that do not support the
+ MLSD command.
+
+
+
+
+ Combines the Modify and Size flags
+
+
+
+
+ Show hidden/dot files. This only pertains to servers
+ that do not support the MLSD command. This option
+ makes use the non standard -a parameter to LIST to
+ tell the server to show hidden files. Since it's a
+ non-standard option it may not always work. MLSD listings
+ have no such option and whether or not a hidden file is
+ shown is at the discretion of the server.
+
+
+
+
+ Force the use of OS-specific listings (LIST command) even if
+ machine listings (MLSD command) are supported by the server
+
+
+
+
+ Use the NLST command instead of LIST for a reliable file listing
+
+
+
+
+ Force the use of the NLST command (the slowest mode) even if machine listings
+ and OS-specific listings are supported by the server
+
+
+
+
+ Try to dereference symbolic links, and stored the linked file/directory in FtpListItem.LinkObject
+
+
+
+
+ Sets the ForceList flag and uses `LS' instead of `LIST' as the
+ command for getting a directory listing. This option overrides
+ ForceNameList and ignores the AllFiles flag.
+
+
+
+
+ Gets files within subdirectories as well. Adds the -r option to the LIST command.
+ Some servers may not support this feature.
+
+
+
+
+ Do not retrieve path when no path is supplied to GetListing(),
+ instead just execute LIST with no path argument.
+
+
+
+
+ Include two extra items into the listing, for the current directory (".")
+ and the parent directory (".."). Meaningless unless you want these two
+ items for some reason.
+
+
+
+
+ Defines the behavior for uploading/downloading files that already exist
+
+
+
+
+ Do not check if the file exists. A bit faster than the other options. Only use this if you are SURE that the file does not exist on the server.
+ Otherwise it can cause the UploadFile method to hang due to filesize mismatch.
+
+
+
+
+ Skip the file if it exists, without any more checks.
+
+
+
+
+ Overwrite the file if it exists.
+
+
+
+
+ Append to the file if it exists, by checking the length and adding the missing data.
+
+
+
+
+ Defines the level of the tracing message. Depending on the framework version this is translated
+ to an equivalent logging level in System.Diagnostices (if available)
+
+
+
+
+ Used for logging Debug or Verbose level messages
+
+
+
+
+ Used for logging Informational messages
+
+
+
+
+ Used for logging non-fatal or ignorable error messages
+
+
+
+
+ Used for logging Error messages that may need investigation
+
+
+
+
+ Defines how multi-file processes should handle a processing error.
+
+ & Cannot Be Combined
+
+
+
+ No action is taken upon errors. The method absorbs the error and continues.
+
+
+
+
+ If any files have completed successfully (or failed after a partial download/upload) then should be deleted.
+ This will simulate an all-or-nothing transaction downloading or uploading multiple files. If this option is not
+ combined with or then the method will
+ continue to process all items whether if they are successful or not and then delete everything if a failure was
+ encountered at any point.
+
+
+
+
+ The method should stop processing any additional files and immediately return upon encountering an error.
+ Cannot be combined with
+
+
+
+
+ The method should stop processing any additional files and immediately throw the current error.
+ Cannot be combined with
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ No verification of the file is performed
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then we retry the download/upload
+ a specified amount of times before giving up. (See )
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the failed file will be deleted.
+ If combined with , then
+ the deletion will occur if it fails upon the final retry.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then an exception will be thrown.
+ If combined with , then the throw will
+ occur upon the failure of the final retry, and/or if combined with
+ the method will throw after the deletion is processed.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the method returns false and no other action is taken.
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ The date is whatever the server returns, with no conversion performed.
+
+
+
+
+ The date is converted to the local timezone, based on the TimeOffset property in FtpClient.
+
+
+
+
+ The date is converted to UTC, based on the TimeOffset property in FtpClient.
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+ The control connection that triggered the event
+ Event args
+
+
+
+ Event fired if a bad SSL certificate is encountered. This even is used internally; if you
+ don't have a specific reason for using it you are probably looking for FtpSslValidation.
+
+
+
+
+
+
+ Event args for the FtpSslValidationError delegate
+
+
+
+
+ The certificate to be validated
+
+
+
+
+ The certificate chain
+
+
+
+
+ Validation errors, if any.
+
+
+
+
+ Gets or sets a value indicating if this certificate should be accepted. The default
+ value is false. If the certificate is not accepted, an AuthenticationException will
+ be thrown.
+
+
+
+
+ FTP related error
+
+
+
+
+ Initializes a new instance of the class.
+
+ The error message
+
+
+
+ Initializes a new instance of the class with an inner exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Exception triggered on command failures
+
+
+
+
+ Gets the completion code associated with the response
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ Status code
+ Associated message
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ The FtpReply to build the exception from
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Exception is thrown when encryption could not be negotiated by the server
+
+
+
+
+ Default constructor
+
+
+
+
+ Custom error message
+
+ Error message
+
+
+
+ Must be implemented so every Serializer can Deserialize the Exception
+
+
+
+
+ Represents a computed hash of an object
+ on the FTP server. See the following link
+ for more information:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Gets the algorithm that was used to compute the hash
+
+
+
+
+ Gets the computed hash returned by the server
+
+
+
+
+ Gets a value indicating if this object represents a
+ valid hash response from the server.
+
+
+
+
+ Computes the hash for the specified file and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The file to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Computes the hash for the specified stream and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The stream to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Creates an empty instance.
+
+
+
+
+ Represents a file system object on the server
+
+
+
+
+
+ Blank constructor; Fill args manually.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Constructor with mandatory args filled.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Gets the type of file system object.
+
+
+
+
+ Gets the full path name to the object.
+
+
+
+
+ Gets the name of the object.
+
+
+
+
+ Gets the target a symbolic link points to.
+
+
+
+
+ Gets the number of links pointing to this file. Only supplied by Unix servers.
+
+
+
+
+ Gets the object that the LinkTarget points to. This property is null unless you pass the
+ flag in which case GetListing() will try to resolve
+ the target itself.
+
+
+
+
+ Gets the last write time of the object.
+
+
+
+
+ Gets the created date of the object.
+
+
+
+
+ Gets the size of the object.
+
+
+
+
+ Gets special UNIX permissions such as Sticky, SUID and SGID.
+
+
+
+
+ Gets the owner permissions.
+
+
+
+
+ Gets the group permissions.
+
+
+
+
+ Gets the others permissions.
+
+
+
+
+ Gets the raw string received for the file permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the file permissions in the CHMOD format.
+
+
+
+
+ Gets the raw string received for the file's GROUP permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the raw string received for the file's OWNER permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the input string that was parsed to generate the
+ values in this object.
+
+
+
+
+ Returns a string representation of this object and its properties
+
+ A string representing this object
+
+
+
+ Parses a line from a file listing using the first successful parser, or the specified parser.
+ Returns an FtpListItem object representing the parsed line, or null if the line was unable to be parsed.
+
+
+
+
+ the FTP connection that owns this parser
+
+
+
+
+ which server type? (SYST)
+
+
+
+
+ current parser, or parser set by user
+
+
+
+
+ parser calculated based on system type (SYST command)
+
+
+
+
+ if we have detected that the current parser is valid
+
+
+
+
+ which culture to read filenames with?
+
+
+
+
+ what is the time offset between server/client?
+
+
+
+
+ any time offset between server/client?
+
+
+
+
+ VMS ONLY : the blocksize used to calculate the file
+
+
+
+
+ Is the version number returned as part of the filename?
+
+ Some VMS FTP servers do not permit a file to be deleted unless
+ the filename includes the version number. Note that directories are
+ never returned with the version number.
+
+
+
+
+ Initializes a new instance of the class.
+
+ An existing object
+
+
+
+ Try to auto-detect which parser is suitable given a system string.
+
+ result of SYST command
+
+
+
+ Parse raw file list from server into file objects, using the currently active parser.
+
+
+
+
+ Parse raw file from server into a file object, using the currently active parser.
+
+
+
+
+ Validate if the current parser is correct, or if another parser seems more appropriate.
+
+
+
+
+ Validate if the current parser is correct
+
+
+
+
+ Parses a line from a file listing using the first successful match in the Parsers collection.
+
+ The source path of the file listing
+ A line from the file listing
+ Server capabilities
+ A FtpListItem object representing the parsed line, null if the line was
+ unable to be parsed. If you have encountered an unsupported list type add a parser
+ to the public static Parsers collection of FtpListItem.
+
+
+
+ Used for synchronizing access to the Parsers collection
+
+
+
+
+ Initializes the default list of parsers
+
+
+
+
+ Collection of parsers. Each parser object contains
+ a regex string that uses named groups, i.e., (?<group_name>foobar).
+ The support group names are modify for last write time, size for the
+ size and name for the name of the file system object. Each group name is
+ optional, if they are present then those values are retrieved from a
+ successful match. In addition, each parser contains a Type property
+ which gets set in the FtpListItem object to distinguish between different
+ types of objects.
+
+
+
+
+ Adds a custom parser
+
+ The parser delegate to add
+
+
+
+
+ Removes all parser delegates
+
+
+
+
+ Removes the specified parser
+
+ The parser delegate to remove
+
+
+
+ Parses LIST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS DOS format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Ftp listing line parser
+
+ The line from the listing
+ The server capabilities
+ FtpListItem if the line can be parsed, null otherwise
+
+
+
+ Parses MLSD/MLST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings with alternate parser
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS/DOS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Vax/VMS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses NonStop format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IBM OS/400 format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Split into fields by splitting on strings
+
+
+
+ Fix the date string to make the month camel case
+ array of fields
+
+
+
+ Represents a reply to an event on the server
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ The status code of the response
+
+
+
+
+ The message, if any, that the server sent with the response
+
+
+
+
+ Informational messages sent from the server
+
+
+
+
+ General success or failure of the last command executed
+
+
+
+
+ Gets the error message including any informational output
+ that was sent by the server. Sometimes the final response
+ line doesn't contain anything informative as to what was going
+ on with the server. Instead it may send information messages so
+ in an effort to give as meaningful as a response as possible
+ the informational messages will be included in the error.
+
+
+
+
+ Used for transaction logging and debug information.
+
+
+
+
+ Should the trace listeners be flushed immediately after writing to them?
+
+
+
+
+ Should the log entries be written with a prefix of "FluentFTP"?
+ Useful if you have a single TraceListener shared across multiple libraries.
+
+
+
+
+ Add a TraceListner to the collection. You can use one of the predefined
+ TraceListeners in the System.Diagnostics namespace, such as ConsoleTraceListener
+ for logging to the console, or you can write your own deriving from
+ System.Diagnostics.TraceListener.
+
+ The TraceListener to add to the collection
+
+
+
+ Remove the specified TraceListener from the collection
+
+ The TraceListener to remove from the collection.
+
+
+
+ Should the function calls be logged in Verbose mode?
+
+
+
+
+ Should the FTP server IP addresses be included in the logs?
+
+
+
+
+ Should the FTP usernames be included in the logs?
+
+
+
+
+ Should the FTP passwords be included in the logs?
+
+
+
+
+ Should we trace at all?
+
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, adding an automatic prefix to the message based on the `eventType`
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, for the purpose of logging a API function call
+
+ The name of the API function
+ The args passed to the function
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ A formattable string to write
+
+
+ A FTP client with a HTTP 1.1 proxy implementation.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+ Host name
+ Port number
+ IP version to use
+
+
+
+ Abstraction of an FtpClient with a proxy
+
+
+
+ The proxy connection info.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine connect for FtpClient : authentication on the Proxy
+ The socket stream.
+
+
+ A FTP client with a user@host proxy identification.
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+
+ A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers.
+
+ The 'blue coat variant' forces the client to wait for a 220 FTP response code in
+ the handshake phase.
+
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+ POCO holding proxy information
+
+
+ Proxy host name
+
+
+ Proxy port
+
+
+ Proxy login credentials
+
+
+
+ Base class for data stream connections
+
+
+
+
+ Gets the status of the command that was used to open
+ this data channel
+
+
+
+
+ Gets or sets the control connection for this data stream. Setting
+ the control connection causes the object to be cloned and a new
+ connection is made to the server to carry out the task. This ensures
+ that multiple streams can be opened simultaneously.
+
+
+
+
+ Gets or sets the length of the stream. Only valid for file transfers
+ and only valid on servers that support the Size command.
+
+
+
+
+ Gets or sets the position of the stream
+
+
+
+
+ Reads data off the stream
+
+ The buffer to read into
+ Where to start in the buffer
+ Number of bytes to read
+ The number of bytes read
+
+
+
+ Reads data off the stream asynchronously
+
+ The buffer to read into
+ Where to start in the buffer
+ Number of bytes to read
+ The cancellation token for this task
+ The number of bytes read
+
+
+
+ Writes data to the stream
+
+ The buffer to write to the stream
+ Where to start in the buffer
+ The number of bytes to write to the buffer
+
+
+
+ Writes data to the stream asynchronously
+
+ The buffer to write to the stream
+ Where to start in the buffer
+ The number of bytes to write to the buffer
+ The for this task
+
+
+
+ Sets the length of this stream
+
+ Value to apply to the Length property
+
+
+
+ Sets the position of the stream. Intended to be used
+ internally by FtpControlConnection.
+
+ The position
+
+
+
+ Closes the connection and reads the server's reply
+
+
+
+
+ Creates a new data stream object
+
+ The control connection to be used for carrying out this operation
+
+
+
+ Finalizer
+
+
+
+
+ Stream class used for talking. Used by FtpClient, extended by FtpDataStream
+
+
+
+
+ Used for tacking read/write activity on the socket
+ to determine if Poll() should be used to test for
+ socket connectivity. The socket in this class will
+ not know it has been disconnected if the remote host
+ closes the connection first. Using Poll() avoids
+ the exception that would be thrown when trying to
+ read or write to the disconnected socket.
+
+
+
+
+ The socket used for talking
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling Poll() on the socket to test for
+ connectivity. Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Poll()'ing all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets the number of available bytes on the socket, 0 if the
+ socket has not been initialized. This property is used internally
+ by FtpClient in an effort to detect disconnections and gracefully
+ reconnect the control connection.
+
+
+
+
+ Gets a value indicating if this socket stream is connected
+
+
+
+
+ Gets a value indicating if encryption is being used
+
+
+
+
+ The non-encrypted stream
+
+
+
+
+ The encrypted stream
+
+
+
+
+ Gets the underlying stream, could be a NetworkStream or SslStream
+
+
+
+
+ Gets a value indicating if this stream can be read
+
+
+
+
+ Gets a value indicating if this stream if seekable
+
+
+
+
+ Gets a value indicating if this stream can be written to
+
+
+
+
+ Gets the length of the stream
+
+
+
+
+ Gets the current position of the stream. Trying to
+ set this property throws an InvalidOperationException()
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+
+
+
+ Gets or sets the amount of time to wait for a read operation to complete. Default
+ value is Timeout.Infinite.
+
+
+
+
+ Gets or sets the length of time milliseconds to wait
+ for a connection succeed before giving up. The default
+ is 30000 (30 seconds).
+
+
+
+
+ Gets the local end point of the socket
+
+
+
+
+ Gets the remote end point of the socket
+
+
+
+
+ Fires the SSL certificate validation event
+
+ Certificate being validated
+ Certificate chain
+ Policy errors if any
+ True if it was accepted, false otherwise
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+ Ignored
+
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+
+
+
+ Flushes the stream
+
+
+
+
+ Flushes the stream asynchronously
+
+ The for this task
+
+
+
+ Bypass the stream and read directly off the socket.
+
+ The buffer to read into
+ The number of bytes read
+
+
+
+ Bypass the stream and read directly off the socket.
+
+ The buffer to read into
+ The number of bytes read
+
+
+
+ Reads data from the stream
+
+ Buffer to read into
+ Where in the buffer to start
+ Number of bytes to be read
+ The amount of bytes read from the stream
+
+
+
+ Reads data from the stream
+
+ Buffer to read into
+ Where in the buffer to start
+ Number of bytes to be read
+ The for this task
+ The amount of bytes read from the stream
+
+
+
+ Reads a line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads all line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ The size of the buffer
+ A list of lines from the stream
+
+
+
+ Reads a line from the socket asynchronously
+
+ The type of encoding used to convert from byte[] to string
+ The for this task
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads a line from the socket asynchronously
+
+ The type of encoding used to convert from byte[] to string
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads all line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ The size of the buffer
+ A list of lines from the stream
+
+
+
+ Writes data to the stream
+
+ Buffer to write to stream
+ Where in the buffer to start
+ Number of bytes to be read
+
+
+
+ Writes data to the stream asynchronously
+
+ Buffer to write to stream
+ Where in the buffer to start
+ Number of bytes to be read
+ The for this task
+
+
+
+ Writes a line to the stream using the specified encoding
+
+ Encoding used for writing the line
+ The data to write
+
+
+
+ Writes a line to the stream using the specified encoding asynchronously
+
+ Encoding used for writing the line
+ The data to write
+ The for this task
+
+
+
+ Writes a line to the stream using the specified encoding asynchronously
+
+ Encoding used for writing the line
+ The data to write
+
+
+
+ Disconnects from server
+
+
+
+
+ Sets socket options on the underlying socket
+
+ SocketOptionLevel
+ SocketOptionName
+ SocketOptionValue
+
+
+
+ Connect to the specified host
+
+ The host to connect to
+ The port to connect to
+ Internet Protocol versions to support during the connection phase
+
+
+
+ Connect to the specified host
+
+ The host to connect to
+ The port to connect to
+ Internet Protocol versions to support during the connection phase
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+
+
+
+ Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+ A bitwise parameter for supported encryption protocols.
+ Thrown when authentication fails
+
+
+
+ Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+ A bitwise parameter for supported encryption protocols.
+ Thrown when authentication fails
+
+
+
+ Deactivates SSL on this stream using the specified protocols and reverts back to plain-text FTP.
+
+
+
+
+ Instructs this stream to listen for connections on the specified address and port
+
+ The address to listen on
+ The port to listen on
+
+
+
+ Accepts a connection from a listening socket
+
+
+
+
+ Accepts a connection from a listening socket
+
+
+
+
+ Asynchronously accepts a connection from a listening socket
+
+
+
+
+
+
+
+ Completes a BeginAccept() operation
+
+ IAsyncResult returned from BeginAccept
+
+
+
+ .NET SslStream doesn't close TLS connection properly.
+ It does not send the close_notify alert before closing the connection.
+ FtpSslStream uses unsafe code to do that.
+ This is required when we want to downgrade the connection to plaintext using CCC command.
+ Thanks to Neco @ https://stackoverflow.com/questions/237807/net-sslstream-doesnt-close-tls-connection-properly/22626756#22626756
+
+
+
+
+ Send an SSL close_notify alert.
+
+
+
+
+
+ Extension methods related to FTP tasks
+
+
+
+
+ Converts the specified path into a valid FTP file system path
+
+ The file system path
+ A path formatted for FTP
+
+
+
+ Creates a valid FTP path by appending the specified segments to this string
+
+ This string
+ The path segments to append
+ A valid FTP path
+
+
+
+ Gets the parent directory path (formatted for a FTP server)
+
+ The path
+ The parent directory path
+
+
+
+ Gets the file name and extension from the path
+
+ The full path to the file
+ The file name
+
+
+
+ Tries to convert the string FTP date representation into a object
+
+ The date
+ UTC/Local Time
+ A object representing the date, or if there was a problem
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ This creates a that represents a pair of begin and end methods
+ that conform to the Asynchronous Programming Model pattern. This extends the maximum amount of arguments from
+ to 4 from a 3.
+
+ The type of the first argument passed to the delegate
+ The type of the second argument passed to the delegate
+ The type of the third argument passed to the delegate
+ The type of the forth argument passed to the delegate
+ The type of the result.
+ The used
+ The delegate that begins the asynchronous operation
+ The delegate that ends the asynchronous operation
+ The first argument passed to the delegate
+ The second argument passed to the delegate
+ The third argument passed to the delegate
+ The forth argument passed to the delegate
+ An object containing data to be used by the delegate
+ The created that represents the asynchronous operation
+
+ beginMethod is null
+ or
+ endMethod is null
+
+
+
+
+ Validates that the FtpError flags set are not in an invalid combination.
+
+ The error handling options set
+ True if a valid combination, otherwise false
+
+
+
+ Checks if every character in the string is whitespace, or the string is null.
+
+
+
+
+ Checks if the string is null or 0 length.
+
+
+
+
+ Checks if the array is null or 0 length.
+
+
+
+
+ Checks if the array is null or 0 length.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
diff --git a/packages/FluentFTP.19.2.2/lib/netstandard1.4/FluentFTP.dll b/packages/FluentFTP.19.2.2/lib/netstandard1.4/FluentFTP.dll
new file mode 100644
index 0000000..ed2fa37
Binary files /dev/null and b/packages/FluentFTP.19.2.2/lib/netstandard1.4/FluentFTP.dll differ
diff --git a/packages/FluentFTP.19.2.2/lib/netstandard1.4/FluentFTP.xml b/packages/FluentFTP.19.2.2/lib/netstandard1.4/FluentFTP.xml
new file mode 100644
index 0000000..65badd0
--- /dev/null
+++ b/packages/FluentFTP.19.2.2/lib/netstandard1.4/FluentFTP.xml
@@ -0,0 +1,4551 @@
+
+
+
+ FluentFTP
+
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+
+
+ A list of asynchronous methods that are in progress
+
+
+
+
+ Control connection socket stream
+
+
+
+
+ Gets a value indicating if this object has already been disposed.
+
+
+
+
+ Gets the base stream for talking to the server via
+ the control connection.
+
+
+
+
+ Flags specifying which versions of the internet protocol to
+ support when making a connection. All addresses returned during
+ name resolution are tried until a successful connection is made.
+ You can fine tune which versions of the internet protocol to use
+ by adding or removing flags here. I.e., setting this property
+ to FtpIpVersion.IPv4 will cause the connection process to
+ ignore IPv6 addresses. The default value is ANY version.
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling
+ on the socket to test for connectivity.
+ Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Polling all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets or sets a value indicating whether a test should be performed to
+ see if there is stale (unrequested data) sitting on the socket. In some
+ cases the control connection may time out but before the server closes
+ the connection it might send a 4xx response that was unexpected and
+ can cause synchronization errors with transactions. To avoid this
+ problem the method checks to see if there is any data
+ available on the socket before executing a command. On Azure hosting
+ platforms this check can cause an exception to be thrown. In order
+ to work around the exception you can set this property to false
+ which will skip the test entirely however doing so eliminates the
+ best effort attempt of detecting such scenarios. See this thread
+ for more details about the Azure problem:
+ https://netftp.codeplex.com/discussions/535879
+
+
+
+
+ Gets a value indicating if the connection is alive
+
+
+
+
+ When this value is set to true (default) the control connection
+ is cloned and a new connection the server is established for the
+ data channel operation. This is a thread safe approach to make
+ asynchronous operations on a single control connection transparent
+ to the developer.
+
+
+
+
+ Gets a value indicating if this control connection is a clone. This property
+ is used with data streams to determine if the connection should be closed
+ when the stream is closed. Servers typically only allow 1 data connection
+ per control connection. If you try to open multiple data connections this
+ object will be cloned for 2 or more resulting in N new connections to the
+ server.
+
+
+
+
+ Gets or sets the text encoding being used when talking with the server. The default
+ value is however upon connection, the client checks
+ for UTF8 support and if it's there this property is switched over to
+ . Manually setting this value overrides automatic detection
+ based on the FEAT list; if you change this value it's always used
+ regardless of what the server advertises, if anything.
+
+
+
+
+ The server to connect to
+
+
+
+
+ The port to connect to. If this value is set to 0 (Default) the port used
+ will be determined by the type of SSL used or if no SSL is to be used it
+ will automatically connect to port 21.
+
+
+
+
+ Credentials used for authentication
+
+
+
+
+ Gets or sets a value that controls the maximum depth
+ of recursion that will follow symbolic
+ links before giving up. You can also specify the value
+ to be used as one of the overloaded parameters to the
+ method. The default value is 20. Specifying
+ -1 here means indefinitely try to resolve a link. This is
+ not recommended for obvious reasons (stack overflow).
+
+
+
+
+ Client certificates to be used in SSL authentication process
+
+
+
+
+ Delegate used for resolving local address, used for active data connections
+ This can be used in case you're behind a router, but port forwarding is configured to forward the
+ ports from your router to your internal IP. In that case, we need to send the router's IP instead of our internal IP.
+ See example: FtpClient.GetPublicIP -> This uses Ipify api to find external IP
+
+
+
+
+ Ports used for Active Data Connection
+
+
+
+
+ Data connection type, default is AutoPassive which tries
+ a connection with EPSV first and if it fails then tries
+ PASV before giving up. If you know exactly which kind of
+ connection you need you can slightly increase performance
+ by defining a specific type of passive or active data
+ connection here.
+
+
+
+
+ Disconnect from the server without sending QUIT. This helps
+ work around IOExceptions caused by buggy connection resets
+ when closing the control connection.
+
+
+
+
+ Gets or sets the length of time in milliseconds to wait for a connection
+ attempt to succeed before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time wait in milliseconds for data to be
+ read from the underlying stream. The default value is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds for a data connection
+ to be established before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds the data channel
+ should wait for the server to send data. Default value is
+ 15000 (15 seconds).
+
+
+
+
+ Gets or sets a value indicating if should be set on
+ the underlying stream's socket. If the connection is alive, the option is
+ adjusted in real-time. The value is stored and the KeepAlive option is set
+ accordingly upon any new connections. The value set here is also applied to
+ all future data streams. It has no affect on cloned control connections or
+ data connections already in progress. The default value is false.
+
+
+
+
+ Gets the server capabilities represented by flags
+
+
+
+
+ Get the hash types supported by the server, if any. This
+ is a recent extension to the protocol that is not fully
+ standardized and is not guaranteed to work. See here for
+ more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Type of SSL to use, or none. Default is none. Explicit is TLS, Implicit is SSL.
+
+
+
+
+ Indicates if data channel transfers should be encrypted. Only valid if
+ property is not equal to .
+
+
+
+
+ Encryption protocols to use. Only valid if EncryptionMode property is not equal to .
+ Default value is .NET Framework defaults from the class.
+
+
+
+
+ Event is fired to validate SSL certificates. If this event is
+ not handled and there are errors validating the certificate
+ the connection will be aborted.
+
+
+
+
+
+ Gets the type of system/server that we're
+ connected to.
+
+
+
+ Gets the connection type
+
+
+
+ Creates a new instance of an FTP Client.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, username and password.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port, username and password.
+
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+
+ Disconnects from the server, releases resources held by this
+ object.
+
+
+
+
+ Finalizer
+
+
+
+
+ Clones the control connection for opening multiple data streams
+
+ A new control connection with the same property settings as this one
+
+
+
+
+ Executes a command
+
+ The command to execute
+ The servers reply to the command
+
+
+
+
+ Performs an asynchronous execution of the specified command
+
+ The command to execute
+ The servers reply to the command
+
+
+
+ Retrieves a reply from the server. Do not execute this method
+ unless you are sure that a reply has been sent, i.e., you
+ executed a command. Doing so will cause the code to hang
+ indefinitely waiting for a server reply that is never coming.
+
+ FtpReply representing the response from the server
+
+
+
+
+ Retrieves a reply from the server. Do not execute this method
+ unless you are sure that a reply has been sent, i.e., you
+ executed a command. Doing so will cause the code to hang
+ indefinitely waiting for a server reply that is never coming.
+
+ FtpReply representing the response from the server
+
+
+
+
+ Connect to the server
+
+ Thrown if this object has been disposed.
+
+
+
+
+ Connect to the server
+
+ Thrown if this object has been disposed.
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+ Called during Connect(). Typically extended by FTP proxies.
+
+
+
+
+ Called during . Typically extended by FTP proxies.
+
+
+
+
+ Populates the capabilities flags based on capabilities
+ supported by this server. This method is overridable
+ so that new features can be supported
+
+ The reply object from the FEAT command. The InfoMessages property will
+ contain a list of the features the server supported delimited by a new line '\n' character.
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Disconnects from the server
+
+
+
+
+ Disconnects from the server asynchronously
+
+
+
+
+ Catches the socket stream ssl validation event and fires the event handlers
+ attached to this object for validating SSL certificates
+
+ The stream that fired the event
+ The event args used to validate the certificate
+
+
+
+ Fires the SSL validation event
+
+ Event Args
+
+
+
+ Performs a bitwise and to check if the specified
+ flag is set on the property.
+
+ The to check for
+ True if the feature was found, false otherwise
+
+
+
+ Retrieves the delegate for the specified IAsyncResult and removes
+ it from the m_asyncmethods collection if the operation is successful
+
+ Type of delegate to retrieve
+ The IAsyncResult to retrieve the delegate for
+ The delegate that generated the specified IAsyncResult
+
+
+
+ Ensure a relative path is absolute by appending the working dir
+
+
+
+
+ Ensure a relative path is absolute by appending the working dir
+
+
+
+
+ Disables UTF8 support and changes the Encoding property
+ back to ASCII. If the server returns an error when trying
+ to turn UTF8 off a FtpCommandException will be thrown.
+
+
+
+
+ Data shouldn't be on the socket, if it is it probably
+ means we've been disconnected. Read and discard
+ whatever is there and close the connection (optional).
+
+ close the connection?
+ even read encrypted data?
+ trace data to logs?
+
+
+
+ Data shouldn't be on the socket, if it is it probably
+ means we've been disconnected. Read and discard
+ whatever is there and close the connection (optional).
+
+ close the connection?
+ even read encrypted data?
+ trace data to logs?
+
+
+
+ Calculate the CHMOD integer value given a set of permissions.
+
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ FtpClient object
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ FtpClient object
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Restart location
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Calculate you public internet IP using the ipify service. Returns null if cannot be calculated.
+
+ Public IP Address
+
+
+
+ Gets the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The flag or if there was a problem.
+
+
+
+
+ Begins an asynchronous operation to get the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The flag or if there was a problem.
+
+
+
+ Gets the currently selected hash algorithm for the HASH command asynchronously.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The flag or if there was a problem.
+
+
+
+ Sets the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash Algorithm
+ Thrown if the selected algorithm is not available on the server
+
+
+
+
+ Begins an asynchronous operation to set the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash algorithm to use
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+
+
+
+ Sets the hash algorithm on the server to be used with the HASH command asynchronously.
+
+ Hash algorithm to use
+ Thrown if the selected algorithm is not available on the server
+
+
+
+ Gets the hash of an object on the server using the currently selected hash algorithm.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Full or relative path of the object to compute the hash for.
+ The hash of the file.
+
+ Thrown if the property is ,
+ the remote path does not exist, or the command cannot be executed.
+
+ Path argument is null
+ Thrown when an unknown hash algorithm type is returned by the server
+
+
+
+
+ Gets the hash of an object on the server using the currently selected hash algorithm asynchronously.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The file you want the server to compute the hash for
+
+ Thrown if the property is ,
+ the remote path does not exist, or the command cannot be executed.
+
+ Path argument is null
+ Thrown when an unknown hash algorithm type is returned by the server
+ The hash of the file.
+
+
+
+ Retrieves a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path of the file to checksum
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+ The command fails
+
+
+
+ Retrieves a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path of the file to checksum
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+ The command fails
+
+
+
+ Gets the MD5 hash of the specified file using MD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Gets the MD5 hash of the specified file using MD5 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Get the CRC value of the specified file. This is a non-standard extension of the protocol
+ and may throw a FtpCommandException if the server does not support it.
+
+ The path of the file you'd like the server to compute the CRC value for.
+ The response from the server, typically the XCRC value. FtpCommandException thrown on error
+ The command fails
+
+
+
+ Gets the CRC hash of the specified file using XCRC asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the CRC hash.
+ The command fails
+
+
+
+ Gets the MD5 hash of the specified file using XMD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Gets the MD5 hash of the specified file using XMD5 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Gets the SHA-1 hash of the specified file using XSHA1. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-1 hash.
+ The command fails
+
+
+
+ Gets the SHA-1 hash of the specified file using XSHA1 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-1 hash.
+ The command fails
+
+
+
+ Gets the SHA-256 hash of the specified file using XSHA256. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-256 hash.
+ The command fails
+
+
+
+ Gets the SHA-256 hash of the specified file using XSHA256 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-256 hash.
+ The command fails
+
+
+
+ Gets the SHA-512 hash of the specified file using XSHA512. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-512 hash.
+ The command fails
+
+
+
+ Gets the SHA-512 hash of the specified file using XSHA512 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-512 hash.
+ The command fails
+
+
+
+ Gets or sets the number of bytes transferred in a single chunk (a single FTP command).
+ Used by / and /
+ to transfer large files in multiple chunks.
+
+
+
+
+ Gets or sets the retry attempts allowed when a verification failure occurs during download or upload.
+ This value must be set to 1 or more.
+
+
+
+
+ Rate limit for uploads in kbyte/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Rate limit for downloads in kbytes/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Controls if the high-level API uploads files in Binary or ASCII mode.
+
+
+
+
+ Controls if the high-level API downloads files in Binary or ASCII mode.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ Files to be uploaded
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server asynchronously.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The token to monitor for cancellation requests
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server asynchronously.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded into.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The token to monitor for cancellation requests
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded into.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the specified file directly onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified file directly onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ The token to monitor for cancellation requests.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified file directly onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified stream as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Uploads the specified byte array as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Uploads the specified stream as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ The token to monitor for cancellation requests.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Uploads the specified byte array as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ The token to monitor for cancellation requests.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Uploads the specified stream as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Uploads the specified byte array as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Upload the given stream to the server as a new file. Overwrites the file if it exists.
+ Writes data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Upload the given stream to the server as a new file asynchronously. Overwrites the file if it exists.
+ Writes data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Downloads the specified file onto the local file system.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file onto the local file system asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ The token to monitor for cancellation requests
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file onto the local file system asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file into the specified stream.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file and return the raw byte array.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The variable that will receive the bytes.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file into the specified stream asynchronously .
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ The token to monitor cancellation requests
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file into the specified stream asynchronously .
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file and return the raw byte array.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the server
+ The token to monitor cancellation requests
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ A byte array containing the contents of the downloaded file if successful, otherwise null.
+
+
+
+ Downloads the specified file into the specified stream asynchronously .
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the server
+ A byte array containing the contents of the downloaded file if successful, otherwise null.
+
+
+
+ Download a file from the server and write the data into the given stream.
+ Reads data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Download a file from the server and write the data into the given stream asynchronously.
+ Reads data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate.
+
+
+
+
+ File listing parser to be used.
+ Automatically calculated based on the type of the server, unless changed.
+
+
+
+
+ Culture used to parse file listings
+
+
+
+
+ Time difference between server and client, in hours.
+ If the server is located in New York and you are in London then the time difference is -5 hours.
+
+
+
+
+ Check if your server supports a recursive LIST command (LIST -R).
+ If you know for sure that this is unsupported, set it to false.
+
+
+
+
+ If true, increases performance of GetListing by reading multiple lines
+ of the file listing at once. If false then GetListing will read file
+ listings line-by-line. If GetListing is having issues with your server,
+ set it to false.
+
+ The number of bytes read is based upon .
+
+
+
+
+ Bytes to read during GetListing. Only honored if is true.
+
+
+
+
+ Returns information about a file system object. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ The path of the file or folder
+ Get the accurate modified date using another MDTM command
+ A FtpListItem object
+
+
+
+ Begins an asynchronous operation to return information about a remote file system object.
+
+
+ You should check the property for the
+ flag before calling this method. Failing to do so will result in an InvalidOperationException
+ being thrown when the server does not support machine listings. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ Path of the file or folder
+ Get the accurate modified date using another MDTM command
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ A if the command succeeded, or null if there was a problem.
+
+
+
+ Return information about a remote file system object asynchronously.
+
+
+ You should check the property for the
+ flag before calling this method. Failing to do so will result in an InvalidOperationException
+ being thrown when the server does not support machine listings. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+ Path of the item to retrieve information about
+ Get the accurate modified date using another MDTM command
+ Thrown if the server does not support this Capability
+ A if the command succeeded, or null if there was a problem.
+
+
+
+ Gets a file listing from the server from the current working directory. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ Options that dictacte how a list is performed and what information is gathered.
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server asynchronously. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ Options that dictate how the list operation is performed
+ An array of items retrieved in the listing
+
+
+
+ Gets a file listing from the server asynchronously. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ An array of items retrieved in the listing
+
+
+
+ Gets a file listing from the server asynchronously. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ An array of items retrieved in the listing
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ A string array of file and directory names if any were returned.
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ The path of the directory to list
+ A string array of file and directory names if any were returned.
+
+
+
+
+ Returns a file/directory listing using the NLST command asynchronously
+
+ The path of the directory to list
+ An array of file and directory names if any were returned.
+
+
+
+ Returns a file/directory listing using the NLST command asynchronously
+
+ An array of file and directory names if any were returned.
+
+
+
+ Opens the specified type of passive data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens the specified type of passive data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Returns the ip address to be sent to the server for the active connection
+
+
+
+
+
+
+ Opens the specified type of active data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens the specified type of active data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens a data stream.
+
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ The data stream.
+
+
+
+ Opens a data stream.
+
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ The data stream.
+
+
+
+ Disconnects a data stream
+
+ The data stream to close
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ ASCII/Binary
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ Resume location
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket. asynchronously
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket. asynchronously
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file to be appended asynchronously
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file to be appended asynchronously
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file to be appended asynchronously
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+ Sets the data type of information sent over the data stream
+
+ ASCII/Binary
+
+
+ Internal method that handles actually setting the data type.
+ Thrown when a FTP Command error condition occurs.
+ Thrown when a FTP error condition occurs.
+ ASCII/Binary.
+ This method doesn't do any locking to prevent recursive lock scenarios. Callers must do their own locking.
+
+
+
+ Sets the data type of information sent over the data stream asynchronously
+
+ ASCII/Binary
+
+
+
+ Deletes a file on the server
+
+ The full or relative path to the file
+
+
+
+
+ Deletes a file from the server asynchronously
+
+ The full or relative path to the file
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ If the directory is not empty, remove its contents
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Checks whether will be called recursively or not.
+
+
+
+
+
+
+ Asynchronously removes a directory and all its contents.
+
+ The full or relative path of the directory to delete
+
+
+
+ Asynchronously removes a directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+
+
+
+ Asynchronously removes a directory. Used by and
+ .
+
+ The full or relative path of the directory to delete
+ Delete the contents before deleting the folder
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Tests if the specified directory exists on the server. This
+ method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ The path of the directory
+ True if it exists, false otherwise.
+
+
+
+
+ Tests if the specified directory exists on the server asynchronously. This
+ method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ The full or relative path of the directory to check for
+ True if the directory exists. False otherwise.
+
+
+
+ Checks if a file exists on the server.
+
+ The full or relative path to the file
+ True if the file exists
+
+
+
+
+ Checks if a file exists on the server asynchronously.
+
+ The full or relative path to the file
+ True if the file exists, false otherwise
+
+
+
+ Creates a directory on the server. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+
+
+
+
+ Creates a directory on the server
+
+ The full or relative path to the new remote directory
+ Try to force all non-existent pieces of the path to be created
+
+
+
+
+ Creates a remote directory asynchronously
+
+ The full or relative path to the new remote directory
+ Try to create the whole path if the preceding directories do not exist
+
+
+
+ Creates a remote directory asynchronously. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+
+
+
+ Renames an object on the remote file system.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+
+
+
+
+ Renames an object on the remote file system asynchronously.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+
+
+
+ Moves a file on the remote file system from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Whether the file was moved
+
+
+
+ Moves a file asynchronously on the remote file system from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Whether the file was moved
+
+
+
+ Moves a directory on the remote file system from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Whether the directory was moved
+
+
+
+ Moves a directory asynchronously on the remote file system from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Whether the directory was moved
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set.
+ Throws FtpCommandException if there is an issue.
+ Returns null if the server did not specify a permission value.
+ Use `GetChmod` if you required the integer value instead.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set.
+ Throws FtpCommandException if there is an issue.
+ Returns null if the server did not specify a permission value.
+ Use `GetChmod` if you required the integer value instead.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an integer in the CHMOD format.
+ Throws FtpCommandException if there is an issue.
+ Returns 0 if the server did not specify a permission value.
+ Use `GetFilePermissions` if you required the permissions in the FtpPermission format.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an integer in the CHMOD format.
+ Throws FtpCommandException if there is an issue.
+ Returns 0 if the server did not specify a permission value.
+ Use `GetFilePermissions` if you required the permissions in the FtpPermission format.
+
+ The full or relative path to the item
+
+
+
+ Recursively dereferences a symbolic link. See the
+ MaximumDereferenceCount property for controlling
+ how deep this method will recurse before giving up.
+
+ The symbolic link
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Recursively dereferences a symbolic link
+
+ The symbolic link
+ The maximum depth of recursion that can be performed before giving up.
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Derefence a FtpListItem object
+
+ The item to derefence
+ Maximum recursive calls
+ Counter
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Derefence a FtpListItem object
+
+ The item to derefence
+ Maximum recursive calls
+ Counter
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+ Dereference a object asynchronously
+
+ The item to dereference
+ Maximum recursive calls
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+ Dereference a object asynchronously
+
+ The item to dereference
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+ Sets the work directory on the server
+
+ The path of the directory to change to
+
+
+
+
+ Sets the working directory on the server asynchronously
+
+ The directory to change to
+
+
+
+ Gets the current working directory
+
+ The current working directory, ./ if the response couldn't be parsed.
+
+
+
+
+ Gets the current working directory asynchronously
+
+ The current working directory, ./ if the response couldn't be parsed.
+
+
+
+ Gets the size of a remote file
+
+ The full or relative path of the file
+ -1 if the command fails, otherwise the file size
+
+
+
+
+ Retrieve the size of a remote file asynchronously
+
+ The full or relative path of the file
+ The size of the file, -1 if there was a problem.
+
+
+
+ Gets the modified time of a remote file
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ The modified time, or if there was a problem
+
+
+
+
+ Gets the modified time of a remote file asynchronously
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ The modified time, or if there was a problem
+
+
+
+ Changes the modified time of a remote file
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+
+
+
+ Gets the modified time of a remote file asynchronously
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+
+
+
+ Interface for the FtpClient class. For detailed documentation of the methods, please see the FtpClient class.
+
+
+
+
+ Defines the type of encryption to use
+
+
+
+
+ Plain text.
+
+
+
+
+ FTPS encryption is used from the start of the connection, port 990.
+
+
+
+
+ Connection starts in plain text and FTPS encryption is enabled
+ with the AUTH command immediately after the server greeting.
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ No response
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Temporary failure
+
+
+
+
+ Permanent failure
+
+
+
+
+ Server features
+
+
+
+
+ This server said it doesn't support anything!
+
+
+
+
+ Supports the MLST command
+
+
+
+
+ Supports the SIZE command
+
+
+
+
+ Supports the MDTM command
+
+
+
+
+ Supports download/upload stream resumes
+
+
+
+
+ Supports UTF8
+
+
+
+
+ PRET Command used in distributed ftp server software DrFTPD
+
+
+
+
+ Server supports the MFMT command for setting the
+ modified date of an object on the server
+
+
+
+
+ Server supports the MFCT command for setting the
+ created date of an object on the server
+
+
+
+
+ Server supports the MFF command for setting certain facts
+ about file system objects. If you need this command, it would
+ probably be handy to query FEAT your self and have a look at
+ the FtpReply.InfoMessages property to see which facts the server
+ allows you to modify.
+
+
+
+
+ Server supports the STAT command
+
+
+
+
+ Support for the HASH command
+
+
+
+
+ Support for the non-standard MD5 command
+
+
+
+
+ Support for the non-standard XMD5 command
+
+
+
+
+ Support for the non-standard XCRC command
+
+
+
+
+ Support for the non-standard XSHA1 command
+
+
+
+
+ Support for the non-standard XSHA256 command
+
+
+
+
+ Support for the non-standard XSHA512 command
+
+
+
+
+ Different types of hashing algorithms for computing checksums.
+
+
+
+
+ HASH command is not supported
+
+
+
+
+ SHA-1
+
+
+
+
+ SHA-256
+
+
+
+
+ SHA-512
+
+
+
+
+ MD5
+
+
+
+
+ CRC
+
+
+
+
+ IP Versions to allow when connecting
+ to a server.
+
+
+
+
+ Internet Protocol Version 4
+
+
+
+
+ Internet Protocol Version 6
+
+
+
+
+ Allow any supported version
+
+
+
+
+ Data connection type
+
+
+
+
+ This type of data connection attempts to use the EPSV command
+ and if the server does not support EPSV it falls back to the
+ PASV command before giving up unless you are connected via IPv6
+ in which case the PASV command is not supported.
+
+
+
+
+ Passive data connection. EPSV is a better
+ option if it's supported. Passive connections
+ connect to the IP address dictated by the server
+ which may or may not be accessible by the client
+ for example a server behind a NAT device may
+ give an IP address on its local network that
+ is inaccessible to the client. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Same as PASV except the host supplied by the server is ignored
+ and the data connection is made to the same address that the control
+ connection is connected to. This is useful in scenarios where the
+ server supplies a private/non-routable network address in the
+ PASV response. It's functionally identical to EPSV except some
+ servers may not implement the EPSV command. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Extended passive data connection, recommended. Works
+ the same as a PASV connection except the server
+ does not dictate an IP address to connect to, instead
+ the passive connection goes to the same address used
+ in the control connection. This type of data connection
+ supports IPv4 and IPv6.
+
+
+
+
+ This type of data connection attempts to use the EPRT command
+ and if the server does not support EPRT it falls back to the
+ PORT command before giving up unless you are connected via IPv6
+ in which case the PORT command is not supported.
+
+
+
+
+ Active data connection, not recommended unless
+ you have a specific reason for using this type.
+ Creates a listening socket on the client which
+ requires firewall exceptions on the client system
+ as well as client network when connecting to a
+ server outside of the client's network. In addition
+ the IP address of the interface used to connect to the
+ server is the address the server is told to connect to
+ which, if behind a NAT device, may be inaccessible to
+ the server. This type of data connection is not supported
+ by IPv6. If you specify PORT and are connected via IPv6
+ EPRT will automatically be used instead.
+
+
+
+
+ Extended active data connection, not recommended
+ unless you have a specific reason for using this
+ type. Creates a listening socket on the client
+ which requires firewall exceptions on the client
+ as well as client network when connecting to a
+ server outside of the client's network. The server
+ connects to the IP address it sees the client coming
+ from. This type of data connection supports IPv4 and IPv6.
+
+
+
+
+ Type of data transfer to do
+
+
+
+
+ ASCII transfer
+
+
+
+
+ Binary transfer
+
+
+
+
+ Type of file system of object
+
+
+
+
+ A file
+
+
+
+
+ A directory
+
+
+
+
+ A symbolic link
+
+
+
+
+ Types of file permissions
+
+
+
+
+ No access
+
+
+
+
+ Executable
+
+
+
+
+ Writable
+
+
+
+
+ Readable
+
+
+
+
+ Types of special UNIX permissions
+
+
+
+
+ No special permissions are set
+
+
+
+
+ Sticky bit is set
+
+
+
+
+ SGID bit is set
+
+
+
+
+ SUID bit is set
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ Use the legacy parser (for older projects that depend on the pre-2017 parser routines).
+
+
+
+
+ Automatically detect the file listing parser to use based on the FTP server (SYST command).
+
+
+
+
+ Machine listing parser, works on any FTP server supporting the MLST/MLSD commands.
+
+
+
+
+ File listing parser for Windows/IIS.
+
+
+
+
+ File listing parser for Unix.
+
+
+
+
+ Alternate parser for Unix. Use this if the default one does not work.
+
+
+
+
+ File listing parser for Vax/VMS/OpenVMS.
+
+
+
+
+ File listing parser for IBM OS400.
+
+
+
+
+ File listing parser for Tandem/Nonstop Guardian OS.
+
+
+
+
+ Flags that can dictate how a file listing is performed
+
+
+
+
+ Tries machine listings (MDTM command) if supported,
+ and if not then falls back to OS-specific listings (LIST command)
+
+
+
+
+ Load the modify date using MDTM when it could not
+ be parsed from the server listing. This only pertains
+ to servers that do not implement the MLSD command.
+
+
+
+
+ Load the file size using the SIZE command when it
+ could not be parsed from the server listing. This
+ only pertains to servers that do not support the
+ MLSD command.
+
+
+
+
+ Combines the Modify and Size flags
+
+
+
+
+ Show hidden/dot files. This only pertains to servers
+ that do not support the MLSD command. This option
+ makes use the non standard -a parameter to LIST to
+ tell the server to show hidden files. Since it's a
+ non-standard option it may not always work. MLSD listings
+ have no such option and whether or not a hidden file is
+ shown is at the discretion of the server.
+
+
+
+
+ Force the use of OS-specific listings (LIST command) even if
+ machine listings (MLSD command) are supported by the server
+
+
+
+
+ Use the NLST command instead of LIST for a reliable file listing
+
+
+
+
+ Force the use of the NLST command (the slowest mode) even if machine listings
+ and OS-specific listings are supported by the server
+
+
+
+
+ Try to dereference symbolic links, and stored the linked file/directory in FtpListItem.LinkObject
+
+
+
+
+ Sets the ForceList flag and uses `LS' instead of `LIST' as the
+ command for getting a directory listing. This option overrides
+ ForceNameList and ignores the AllFiles flag.
+
+
+
+
+ Gets files within subdirectories as well. Adds the -r option to the LIST command.
+ Some servers may not support this feature.
+
+
+
+
+ Do not retrieve path when no path is supplied to GetListing(),
+ instead just execute LIST with no path argument.
+
+
+
+
+ Include two extra items into the listing, for the current directory (".")
+ and the parent directory (".."). Meaningless unless you want these two
+ items for some reason.
+
+
+
+
+ Defines the behavior for uploading/downloading files that already exist
+
+
+
+
+ Do not check if the file exists. A bit faster than the other options. Only use this if you are SURE that the file does not exist on the server.
+ Otherwise it can cause the UploadFile method to hang due to filesize mismatch.
+
+
+
+
+ Skip the file if it exists, without any more checks.
+
+
+
+
+ Overwrite the file if it exists.
+
+
+
+
+ Append to the file if it exists, by checking the length and adding the missing data.
+
+
+
+
+ Defines the level of the tracing message. Depending on the framework version this is translated
+ to an equivalent logging level in System.Diagnostices (if available)
+
+
+
+
+ Used for logging Debug or Verbose level messages
+
+
+
+
+ Used for logging Informational messages
+
+
+
+
+ Used for logging non-fatal or ignorable error messages
+
+
+
+
+ Used for logging Error messages that may need investigation
+
+
+
+
+ Defines how multi-file processes should handle a processing error.
+
+ & Cannot Be Combined
+
+
+
+ No action is taken upon errors. The method absorbs the error and continues.
+
+
+
+
+ If any files have completed successfully (or failed after a partial download/upload) then should be deleted.
+ This will simulate an all-or-nothing transaction downloading or uploading multiple files. If this option is not
+ combined with or then the method will
+ continue to process all items whether if they are successful or not and then delete everything if a failure was
+ encountered at any point.
+
+
+
+
+ The method should stop processing any additional files and immediately return upon encountering an error.
+ Cannot be combined with
+
+
+
+
+ The method should stop processing any additional files and immediately throw the current error.
+ Cannot be combined with
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ No verification of the file is performed
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then we retry the download/upload
+ a specified amount of times before giving up. (See )
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the failed file will be deleted.
+ If combined with , then
+ the deletion will occur if it fails upon the final retry.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then an exception will be thrown.
+ If combined with , then the throw will
+ occur upon the failure of the final retry, and/or if combined with
+ the method will throw after the deletion is processed.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the method returns false and no other action is taken.
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ The date is whatever the server returns, with no conversion performed.
+
+
+
+
+ The date is converted to UTC, based on the TimeOffset property in FtpClient.
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+ The control connection that triggered the event
+ Event args
+
+
+
+ Event fired if a bad SSL certificate is encountered. This even is used internally; if you
+ don't have a specific reason for using it you are probably looking for FtpSslValidation.
+
+
+
+
+
+
+ Event args for the FtpSslValidationError delegate
+
+
+
+
+ The certificate to be validated
+
+
+
+
+ The certificate chain
+
+
+
+
+ Validation errors, if any.
+
+
+
+
+ Gets or sets a value indicating if this certificate should be accepted. The default
+ value is false. If the certificate is not accepted, an AuthenticationException will
+ be thrown.
+
+
+
+
+ FTP related error
+
+
+
+
+ Initializes a new instance of the class.
+
+ The error message
+
+
+
+ Initializes a new instance of the class with an inner exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Exception triggered on command failures
+
+
+
+
+ Gets the completion code associated with the response
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ Status code
+ Associated message
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ The FtpReply to build the exception from
+
+
+
+ Exception is thrown when encryption could not be negotiated by the server
+
+
+
+
+ Default constructor
+
+
+
+
+ Custom error message
+
+ Error message
+
+
+
+ Represents a computed hash of an object
+ on the FTP server. See the following link
+ for more information:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Gets the algorithm that was used to compute the hash
+
+
+
+
+ Gets the computed hash returned by the server
+
+
+
+
+ Gets a value indicating if this object represents a
+ valid hash response from the server.
+
+
+
+
+ Computes the hash for the specified file and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The file to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Computes the hash for the specified stream and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The stream to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Creates an empty instance.
+
+
+
+
+ Represents a file system object on the server
+
+
+
+
+
+ Blank constructor; Fill args manually.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Constructor with mandatory args filled.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Gets the type of file system object.
+
+
+
+
+ Gets the full path name to the object.
+
+
+
+
+ Gets the name of the object.
+
+
+
+
+ Gets the target a symbolic link points to.
+
+
+
+
+ Gets the number of links pointing to this file. Only supplied by Unix servers.
+
+
+
+
+ Gets the object that the LinkTarget points to. This property is null unless you pass the
+ flag in which case GetListing() will try to resolve
+ the target itself.
+
+
+
+
+ Gets the last write time of the object.
+
+
+
+
+ Gets the created date of the object.
+
+
+
+
+ Gets the size of the object.
+
+
+
+
+ Gets special UNIX permissions such as Sticky, SUID and SGID.
+
+
+
+
+ Gets the owner permissions.
+
+
+
+
+ Gets the group permissions.
+
+
+
+
+ Gets the others permissions.
+
+
+
+
+ Gets the raw string received for the file permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the file permissions in the CHMOD format.
+
+
+
+
+ Gets the raw string received for the file's GROUP permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the raw string received for the file's OWNER permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the input string that was parsed to generate the
+ values in this object.
+
+
+
+
+ Returns a string representation of this object and its properties
+
+ A string representing this object
+
+
+
+ Parses a line from a file listing using the first successful parser, or the specified parser.
+ Returns an FtpListItem object representing the parsed line, or null if the line was unable to be parsed.
+
+
+
+
+ the FTP connection that owns this parser
+
+
+
+
+ which server type? (SYST)
+
+
+
+
+ current parser, or parser set by user
+
+
+
+
+ parser calculated based on system type (SYST command)
+
+
+
+
+ if we have detected that the current parser is valid
+
+
+
+
+ which culture to read filenames with?
+
+
+
+
+ what is the time offset between server/client?
+
+
+
+
+ any time offset between server/client?
+
+
+
+
+ VMS ONLY : the blocksize used to calculate the file
+
+
+
+
+ Is the version number returned as part of the filename?
+
+ Some VMS FTP servers do not permit a file to be deleted unless
+ the filename includes the version number. Note that directories are
+ never returned with the version number.
+
+
+
+
+ Initializes a new instance of the class.
+
+ An existing object
+
+
+
+ Try to auto-detect which parser is suitable given a system string.
+
+ result of SYST command
+
+
+
+ Parse raw file list from server into file objects, using the currently active parser.
+
+
+
+
+ Parse raw file from server into a file object, using the currently active parser.
+
+
+
+
+ Validate if the current parser is correct, or if another parser seems more appropriate.
+
+
+
+
+ Validate if the current parser is correct
+
+
+
+
+ Parses a line from a file listing using the first successful match in the Parsers collection.
+
+ The source path of the file listing
+ A line from the file listing
+ Server capabilities
+ A FtpListItem object representing the parsed line, null if the line was
+ unable to be parsed. If you have encountered an unsupported list type add a parser
+ to the public static Parsers collection of FtpListItem.
+
+
+
+ Used for synchronizing access to the Parsers collection
+
+
+
+
+ Initializes the default list of parsers
+
+
+
+
+ Collection of parsers. Each parser object contains
+ a regex string that uses named groups, i.e., (?<group_name>foobar).
+ The support group names are modify for last write time, size for the
+ size and name for the name of the file system object. Each group name is
+ optional, if they are present then those values are retrieved from a
+ successful match. In addition, each parser contains a Type property
+ which gets set in the FtpListItem object to distinguish between different
+ types of objects.
+
+
+
+
+ Adds a custom parser
+
+ The parser delegate to add
+
+
+
+
+ Removes all parser delegates
+
+
+
+
+ Removes the specified parser
+
+ The parser delegate to remove
+
+
+
+ Parses LIST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS DOS format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Ftp listing line parser
+
+ The line from the listing
+ The server capabilities
+ FtpListItem if the line can be parsed, null otherwise
+
+
+
+ Parses MLSD/MLST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings with alternate parser
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS/DOS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Vax/VMS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses NonStop format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IBM OS/400 format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Split into fields by splitting on strings
+
+
+
+ Fix the date string to make the month camel case
+ array of fields
+
+
+
+ Represents a reply to an event on the server
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ The status code of the response
+
+
+
+
+ The message, if any, that the server sent with the response
+
+
+
+
+ Informational messages sent from the server
+
+
+
+
+ General success or failure of the last command executed
+
+
+
+
+ Gets the error message including any informational output
+ that was sent by the server. Sometimes the final response
+ line doesn't contain anything informative as to what was going
+ on with the server. Instead it may send information messages so
+ in an effort to give as meaningful as a response as possible
+ the informational messages will be included in the error.
+
+
+
+
+ Used for transaction logging and debug information.
+
+
+
+
+ Should FTP communication be be logged to console?
+
+
+
+
+ Set this to a file path to append all FTP communication to it.
+
+
+
+
+ Should the function calls be logged in Verbose mode?
+
+
+
+
+ Should the FTP server IP addresses be included in the logs?
+
+
+
+
+ Should the FTP usernames be included in the logs?
+
+
+
+
+ Should the FTP passwords be included in the logs?
+
+
+
+
+ Should we trace at all?
+
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, adding an automatic prefix to the message based on the `eventType`
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, for the purpose of logging a API function call
+
+ The name of the API function
+ The args passed to the function
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ A formattable string to write
+
+
+ A FTP client with a HTTP 1.1 proxy implementation.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+ Host name
+ Port number
+ IP version to use
+
+
+
+ Abstraction of an FtpClient with a proxy
+
+
+
+ The proxy connection info.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine connect for FtpClient : authentication on the Proxy
+ The socket stream.
+
+
+ A FTP client with a user@host proxy identification.
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+
+ A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers.
+
+ The 'blue coat variant' forces the client to wait for a 220 FTP response code in
+ the handshake phase.
+
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+ POCO holding proxy information
+
+
+ Proxy host name
+
+
+ Proxy port
+
+
+ Proxy login credentials
+
+
+
+ Base class for data stream connections
+
+
+
+
+ Gets the status of the command that was used to open
+ this data channel
+
+
+
+
+ Gets or sets the control connection for this data stream. Setting
+ the control connection causes the object to be cloned and a new
+ connection is made to the server to carry out the task. This ensures
+ that multiple streams can be opened simultaneously.
+
+
+
+
+ Gets or sets the length of the stream. Only valid for file transfers
+ and only valid on servers that support the Size command.
+
+
+
+
+ Gets or sets the position of the stream
+
+
+
+
+ Reads data off the stream
+
+ The buffer to read into
+ Where to start in the buffer
+ Number of bytes to read
+ The number of bytes read
+
+
+
+ Reads data off the stream asynchronously
+
+ The buffer to read into
+ Where to start in the buffer
+ Number of bytes to read
+ The cancellation token for this task
+ The number of bytes read
+
+
+
+ Writes data to the stream
+
+ The buffer to write to the stream
+ Where to start in the buffer
+ The number of bytes to write to the buffer
+
+
+
+ Writes data to the stream asynchronously
+
+ The buffer to write to the stream
+ Where to start in the buffer
+ The number of bytes to write to the buffer
+ The for this task
+
+
+
+ Sets the length of this stream
+
+ Value to apply to the Length property
+
+
+
+ Sets the position of the stream. Intended to be used
+ internally by FtpControlConnection.
+
+ The position
+
+
+
+ Closes the connection and reads the server's reply
+
+
+
+
+ Creates a new data stream object
+
+ The control connection to be used for carrying out this operation
+
+
+
+ Finalizer
+
+
+
+
+ Stream class used for talking. Used by FtpClient, extended by FtpDataStream
+
+
+
+
+ Used for tacking read/write activity on the socket
+ to determine if Poll() should be used to test for
+ socket connectivity. The socket in this class will
+ not know it has been disconnected if the remote host
+ closes the connection first. Using Poll() avoids
+ the exception that would be thrown when trying to
+ read or write to the disconnected socket.
+
+
+
+
+ The socket used for talking
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling Poll() on the socket to test for
+ connectivity. Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Poll()'ing all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets the number of available bytes on the socket, 0 if the
+ socket has not been initialized. This property is used internally
+ by FtpClient in an effort to detect disconnections and gracefully
+ reconnect the control connection.
+
+
+
+
+ Gets a value indicating if this socket stream is connected
+
+
+
+
+ Gets a value indicating if encryption is being used
+
+
+
+
+ The non-encrypted stream
+
+
+
+
+ Gets the underlying stream, could be a NetworkStream or SslStream
+
+
+
+
+ Gets a value indicating if this stream can be read
+
+
+
+
+ Gets a value indicating if this stream if seekable
+
+
+
+
+ Gets a value indicating if this stream can be written to
+
+
+
+
+ Gets the length of the stream
+
+
+
+
+ Gets the current position of the stream. Trying to
+ set this property throws an InvalidOperationException()
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+
+
+
+ Gets or sets the amount of time to wait for a read operation to complete. Default
+ value is Timeout.Infinite.
+
+
+
+
+ Gets or sets the length of time milliseconds to wait
+ for a connection succeed before giving up. The default
+ is 30000 (30 seconds).
+
+
+
+
+ Gets the local end point of the socket
+
+
+
+
+ Gets the remote end point of the socket
+
+
+
+
+ Fires the SSL certificate validation event
+
+ Certificate being validated
+ Certificate chain
+ Policy errors if any
+ True if it was accepted, false otherwise
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+ Ignored
+
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+
+
+
+ Flushes the stream
+
+
+
+
+ Flushes the stream asynchronously
+
+ The for this task
+
+
+
+ Bypass the stream and read directly off the socket.
+
+ The buffer to read into
+ The number of bytes read
+
+
+
+ Bypass the stream and read directly off the socket.
+
+ The buffer to read into
+ The number of bytes read
+
+
+
+ Reads data from the stream
+
+ Buffer to read into
+ Where in the buffer to start
+ Number of bytes to be read
+ The amount of bytes read from the stream
+
+
+
+ Reads data from the stream
+
+ Buffer to read into
+ Where in the buffer to start
+ Number of bytes to be read
+ The for this task
+ The amount of bytes read from the stream
+
+
+
+ Reads a line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads all line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ The size of the buffer
+ A list of lines from the stream
+
+
+
+ Reads a line from the socket asynchronously
+
+ The type of encoding used to convert from byte[] to string
+ The for this task
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads a line from the socket asynchronously
+
+ The type of encoding used to convert from byte[] to string
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads all line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ The size of the buffer
+ A list of lines from the stream
+
+
+
+ Writes data to the stream
+
+ Buffer to write to stream
+ Where in the buffer to start
+ Number of bytes to be read
+
+
+
+ Writes data to the stream asynchronously
+
+ Buffer to write to stream
+ Where in the buffer to start
+ Number of bytes to be read
+ The for this task
+
+
+
+ Writes a line to the stream using the specified encoding
+
+ Encoding used for writing the line
+ The data to write
+
+
+
+ Writes a line to the stream using the specified encoding asynchronously
+
+ Encoding used for writing the line
+ The data to write
+ The for this task
+
+
+
+ Writes a line to the stream using the specified encoding asynchronously
+
+ Encoding used for writing the line
+ The data to write
+
+
+
+ Disconnects from server
+
+
+
+
+ Disconnects from server
+
+
+
+
+ Sets socket options on the underlying socket
+
+ SocketOptionLevel
+ SocketOptionName
+ SocketOptionValue
+
+
+
+ Connect to the specified host
+
+ The host to connect to
+ The port to connect to
+ Internet Protocol versions to support during the connection phase
+
+
+
+ Connect to the specified host
+
+ The host to connect to
+ The port to connect to
+ Internet Protocol versions to support during the connection phase
+
+
+
+ Instructs this stream to listen for connections on the specified address and port
+
+ The address to listen on
+ The port to listen on
+
+
+
+ Accepts a connection from a listening socket
+
+
+
+
+ Accepts a connection from a listening socket
+
+
+
+
+ Extension methods related to FTP tasks
+
+
+
+
+ Converts the specified path into a valid FTP file system path
+
+ The file system path
+ A path formatted for FTP
+
+
+
+ Creates a valid FTP path by appending the specified segments to this string
+
+ This string
+ The path segments to append
+ A valid FTP path
+
+
+
+ Gets the parent directory path (formatted for a FTP server)
+
+ The path
+ The parent directory path
+
+
+
+ Gets the file name and extension from the path
+
+ The full path to the file
+ The file name
+
+
+
+ Tries to convert the string FTP date representation into a object
+
+ The date
+ UTC/Local Time
+ A object representing the date, or if there was a problem
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Validates that the FtpError flags set are not in an invalid combination.
+
+ The error handling options set
+ True if a valid combination, otherwise false
+
+
+
+ Checks if every character in the string is whitespace, or the string is null.
+
+
+
+
+ Checks if the string is null or 0 length.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
diff --git a/packages/FluentFTP.19.2.2/lib/netstandard1.6/FluentFTP.dll b/packages/FluentFTP.19.2.2/lib/netstandard1.6/FluentFTP.dll
new file mode 100644
index 0000000..6816e8a
Binary files /dev/null and b/packages/FluentFTP.19.2.2/lib/netstandard1.6/FluentFTP.dll differ
diff --git a/packages/FluentFTP.19.2.2/lib/netstandard1.6/FluentFTP.xml b/packages/FluentFTP.19.2.2/lib/netstandard1.6/FluentFTP.xml
new file mode 100644
index 0000000..0b31063
--- /dev/null
+++ b/packages/FluentFTP.19.2.2/lib/netstandard1.6/FluentFTP.xml
@@ -0,0 +1,4623 @@
+
+
+
+ FluentFTP
+
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+ FTP Control Connection. Speaks the FTP protocol with the server and
+ provides facilities for performing transactions.
+
+ Debugging problems with FTP transactions is much easier to do when
+ you can see exactly what is sent to the server and the reply
+ FluentFTP gets in return. Please review the Debug example
+ below for information on how to add s for capturing
+ the conversation between FluentFTP and the server.
+
+ The following example illustrates how to assist in debugging
+ FluentFTP by getting a transaction log from the server.
+
+
+ The following example demonstrates adding a custom file
+ listing parser in the event that you encounter a list format
+ not already supported.
+
+
+ The following example demonstrates how to validate
+ a SSL certificate when using SSL/TLS.
+
+
+ The following example demonstrates how to download a file.
+
+
+ The following example demonstrates how to download a file
+ using a URI object.
+
+
+ The following example demonstrates how to upload a file.
+
+
+ The following example demonstrates how to upload a file
+ using a URI object.
+
+
+ The following example demonstrates how to append to a file.
+
+
+ The following example demonstrates how to append to a file
+ using a URI object.
+
+
+ The following example demonstrates how to get a file
+ listing from the server.
+
+
+
+
+
+ Used for internally synchronizing access to this
+ object from multiple threads
+
+
+
+
+ For usage by FTP proxies only
+
+
+
+
+ A list of asynchronous methods that are in progress
+
+
+
+
+ Control connection socket stream
+
+
+
+
+ Gets a value indicating if this object has already been disposed.
+
+
+
+
+ Gets the base stream for talking to the server via
+ the control connection.
+
+
+
+
+ Flags specifying which versions of the internet protocol to
+ support when making a connection. All addresses returned during
+ name resolution are tried until a successful connection is made.
+ You can fine tune which versions of the internet protocol to use
+ by adding or removing flags here. I.e., setting this property
+ to FtpIpVersion.IPv4 will cause the connection process to
+ ignore IPv6 addresses. The default value is ANY version.
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling
+ on the socket to test for connectivity.
+ Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Polling all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets or sets a value indicating whether a test should be performed to
+ see if there is stale (unrequested data) sitting on the socket. In some
+ cases the control connection may time out but before the server closes
+ the connection it might send a 4xx response that was unexpected and
+ can cause synchronization errors with transactions. To avoid this
+ problem the method checks to see if there is any data
+ available on the socket before executing a command. On Azure hosting
+ platforms this check can cause an exception to be thrown. In order
+ to work around the exception you can set this property to false
+ which will skip the test entirely however doing so eliminates the
+ best effort attempt of detecting such scenarios. See this thread
+ for more details about the Azure problem:
+ https://netftp.codeplex.com/discussions/535879
+
+
+
+
+ Gets a value indicating if the connection is alive
+
+
+
+
+ When this value is set to true (default) the control connection
+ is cloned and a new connection the server is established for the
+ data channel operation. This is a thread safe approach to make
+ asynchronous operations on a single control connection transparent
+ to the developer.
+
+
+
+
+ Gets a value indicating if this control connection is a clone. This property
+ is used with data streams to determine if the connection should be closed
+ when the stream is closed. Servers typically only allow 1 data connection
+ per control connection. If you try to open multiple data connections this
+ object will be cloned for 2 or more resulting in N new connections to the
+ server.
+
+
+
+
+ Gets or sets the text encoding being used when talking with the server. The default
+ value is however upon connection, the client checks
+ for UTF8 support and if it's there this property is switched over to
+ . Manually setting this value overrides automatic detection
+ based on the FEAT list; if you change this value it's always used
+ regardless of what the server advertises, if anything.
+
+
+
+
+ The server to connect to
+
+
+
+
+ The port to connect to. If this value is set to 0 (Default) the port used
+ will be determined by the type of SSL used or if no SSL is to be used it
+ will automatically connect to port 21.
+
+
+
+
+ Credentials used for authentication
+
+
+
+
+ Gets or sets a value that controls the maximum depth
+ of recursion that will follow symbolic
+ links before giving up. You can also specify the value
+ to be used as one of the overloaded parameters to the
+ method. The default value is 20. Specifying
+ -1 here means indefinitely try to resolve a link. This is
+ not recommended for obvious reasons (stack overflow).
+
+
+
+
+ Client certificates to be used in SSL authentication process
+
+
+
+
+ Delegate used for resolving local address, used for active data connections
+ This can be used in case you're behind a router, but port forwarding is configured to forward the
+ ports from your router to your internal IP. In that case, we need to send the router's IP instead of our internal IP.
+ See example: FtpClient.GetPublicIP -> This uses Ipify api to find external IP
+
+
+
+
+ Ports used for Active Data Connection
+
+
+
+
+ Data connection type, default is AutoPassive which tries
+ a connection with EPSV first and if it fails then tries
+ PASV before giving up. If you know exactly which kind of
+ connection you need you can slightly increase performance
+ by defining a specific type of passive or active data
+ connection here.
+
+
+
+
+ Disconnect from the server without sending QUIT. This helps
+ work around IOExceptions caused by buggy connection resets
+ when closing the control connection.
+
+
+
+
+ Gets or sets the length of time in milliseconds to wait for a connection
+ attempt to succeed before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time wait in milliseconds for data to be
+ read from the underlying stream. The default value is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds for a data connection
+ to be established before giving up. Default is 15000 (15 seconds).
+
+
+
+
+ Gets or sets the length of time in milliseconds the data channel
+ should wait for the server to send data. Default value is
+ 15000 (15 seconds).
+
+
+
+
+ Gets or sets a value indicating if should be set on
+ the underlying stream's socket. If the connection is alive, the option is
+ adjusted in real-time. The value is stored and the KeepAlive option is set
+ accordingly upon any new connections. The value set here is also applied to
+ all future data streams. It has no affect on cloned control connections or
+ data connections already in progress. The default value is false.
+
+
+
+
+ Gets the server capabilities represented by flags
+
+
+
+
+ Get the hash types supported by the server, if any. This
+ is a recent extension to the protocol that is not fully
+ standardized and is not guaranteed to work. See here for
+ more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Type of SSL to use, or none. Default is none. Explicit is TLS, Implicit is SSL.
+
+
+
+
+ Indicates if data channel transfers should be encrypted. Only valid if
+ property is not equal to .
+
+
+
+
+ Encryption protocols to use. Only valid if EncryptionMode property is not equal to .
+ Default value is .NET Framework defaults from the class.
+
+
+
+
+ Event is fired to validate SSL certificates. If this event is
+ not handled and there are errors validating the certificate
+ the connection will be aborted.
+
+
+
+
+
+ Gets the type of system/server that we're
+ connected to.
+
+
+
+ Gets the connection type
+
+
+
+ Creates a new instance of an FTP Client.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port and credentials.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, username and password.
+
+
+
+
+ Creates a new instance of an FTP Client, with the given host, port, username and password.
+
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+
+ Disconnects from the server, releases resources held by this
+ object.
+
+
+
+
+ Finalizer
+
+
+
+
+ Clones the control connection for opening multiple data streams
+
+ A new control connection with the same property settings as this one
+
+
+
+
+ Executes a command
+
+ The command to execute
+ The servers reply to the command
+
+
+
+
+ Performs an asynchronous execution of the specified command
+
+ The command to execute
+ The servers reply to the command
+
+
+
+ Retrieves a reply from the server. Do not execute this method
+ unless you are sure that a reply has been sent, i.e., you
+ executed a command. Doing so will cause the code to hang
+ indefinitely waiting for a server reply that is never coming.
+
+ FtpReply representing the response from the server
+
+
+
+
+ Retrieves a reply from the server. Do not execute this method
+ unless you are sure that a reply has been sent, i.e., you
+ executed a command. Doing so will cause the code to hang
+ indefinitely waiting for a server reply that is never coming.
+
+ FtpReply representing the response from the server
+
+
+
+
+ Connect to the server
+
+ Thrown if this object has been disposed.
+
+
+
+
+ Connect to the server
+
+ Thrown if this object has been disposed.
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+ Connect to the FTP server. Overwritten in proxy classes.
+
+
+
+
+ Called during Connect(). Typically extended by FTP proxies.
+
+
+
+
+ Called during . Typically extended by FTP proxies.
+
+
+
+
+ Populates the capabilities flags based on capabilities
+ supported by this server. This method is overridable
+ so that new features can be supported
+
+ The reply object from the FEAT command. The InfoMessages property will
+ contain a list of the features the server supported delimited by a new line '\n' character.
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Performs a login on the server. This method is overridable so
+ that the login procedure can be changed to support, for example,
+ a FTP proxy.
+
+
+
+
+ Disconnects from the server
+
+
+
+
+ Disconnects from the server asynchronously
+
+
+
+
+ Catches the socket stream ssl validation event and fires the event handlers
+ attached to this object for validating SSL certificates
+
+ The stream that fired the event
+ The event args used to validate the certificate
+
+
+
+ Fires the SSL validation event
+
+ Event Args
+
+
+
+ Performs a bitwise and to check if the specified
+ flag is set on the property.
+
+ The to check for
+ True if the feature was found, false otherwise
+
+
+
+ Retrieves the delegate for the specified IAsyncResult and removes
+ it from the m_asyncmethods collection if the operation is successful
+
+ Type of delegate to retrieve
+ The IAsyncResult to retrieve the delegate for
+ The delegate that generated the specified IAsyncResult
+
+
+
+ Ensure a relative path is absolute by appending the working dir
+
+
+
+
+ Ensure a relative path is absolute by appending the working dir
+
+
+
+
+ Disables UTF8 support and changes the Encoding property
+ back to ASCII. If the server returns an error when trying
+ to turn UTF8 off a FtpCommandException will be thrown.
+
+
+
+
+ Data shouldn't be on the socket, if it is it probably
+ means we've been disconnected. Read and discard
+ whatever is there and close the connection (optional).
+
+ close the connection?
+ even read encrypted data?
+ trace data to logs?
+
+
+
+ Data shouldn't be on the socket, if it is it probably
+ means we've been disconnected. Read and discard
+ whatever is there and close the connection (optional).
+
+ close the connection?
+ even read encrypted data?
+ trace data to logs?
+
+
+
+ Calculate the CHMOD integer value given a set of permissions.
+
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ FtpClient object
+
+
+
+ Connects to the specified URI. If the path specified by the URI ends with a
+ / then the working directory is changed to the path specified.
+
+ The URI to parse
+ FtpClient object
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Restart location
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ ASCII/Binary mode
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Indicates if a ssl certificate should be validated when using FTPS schemes
+ Stream object
+
+
+
+
+ Opens a stream to the file specified by the URI
+
+ FTP/FTPS URI pointing at a file
+ Stream object
+
+
+
+
+ Calculate you public internet IP using the ipify service. Returns null if cannot be calculated.
+
+ Public IP Address
+
+
+
+ Gets the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The flag or if there was a problem.
+
+
+
+
+ Begins an asynchronous operation to get the currently selected hash algorithm for the HASH command.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Async callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ The flag or if there was a problem.
+
+
+
+ Gets the currently selected hash algorithm for the HASH command asynchronously.
+
+
+ This feature is experimental. See this link for details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The flag or if there was a problem.
+
+
+
+ Sets the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash Algorithm
+ Thrown if the selected algorithm is not available on the server
+
+
+
+
+ Begins an asynchronous operation to set the hash algorithm on the server to use for the HASH command.
+
+
+ If you specify an algorithm not listed in
+ a will be thrown
+ so be sure to query that list of Flags before
+ selecting a hash algorithm. Support for the
+ HASH command is experimental. Please see
+ the following link for more details:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Hash algorithm to use
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends an asynchronous call to
+
+ IAsyncResult returned from
+
+
+
+ Sets the hash algorithm on the server to be used with the HASH command asynchronously.
+
+ Hash algorithm to use
+ Thrown if the selected algorithm is not available on the server
+
+
+
+ Gets the hash of an object on the server using the currently selected hash algorithm.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ Full or relative path of the object to compute the hash for.
+ The hash of the file.
+
+ Thrown if the property is ,
+ the remote path does not exist, or the command cannot be executed.
+
+ Path argument is null
+ Thrown when an unknown hash algorithm type is returned by the server
+
+
+
+
+ Gets the hash of an object on the server using the currently selected hash algorithm asynchronously.
+
+
+ Supported algorithms, if any, are available in the
+ property. You should confirm that it's not equal
+ to before calling this method
+ otherwise the server trigger a
+ due to a lack of support for the HASH command. You can
+ set the algorithm using the method and
+ you can query the server for the current hash algorithm
+ using the method.
+
+ This feature is experimental and based on the following draft:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+ The file you want the server to compute the hash for
+
+ Thrown if the property is ,
+ the remote path does not exist, or the command cannot be executed.
+
+ Path argument is null
+ Thrown when an unknown hash algorithm type is returned by the server
+ The hash of the file.
+
+
+
+ Retrieves a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path of the file to checksum
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+ The command fails
+
+
+
+ Retrieves a checksum of the given file using a checksum method that the server supports, if any.
+
+
+ The algorithm used goes in this order:
+ 1. HASH command; server preferred algorithm. See
+ 2. MD5 / XMD5 commands
+ 3. XSHA1 command
+ 4. XSHA256 command
+ 5. XSHA512 command
+ 6. XCRC command
+
+ Full or relative path of the file to checksum
+ object containing the value and algorithm. Use the property to
+ determine if this command was successful. s can be thrown from
+ the underlying calls.
+
+ The command fails
+
+
+
+ Gets the MD5 hash of the specified file using MD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Gets the MD5 hash of the specified file using MD5 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Get the CRC value of the specified file. This is a non-standard extension of the protocol
+ and may throw a FtpCommandException if the server does not support it.
+
+ The path of the file you'd like the server to compute the CRC value for.
+ The response from the server, typically the XCRC value. FtpCommandException thrown on error
+ The command fails
+
+
+
+ Gets the CRC hash of the specified file using XCRC asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the CRC hash.
+ The command fails
+
+
+
+ Gets the MD5 hash of the specified file using XMD5. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Gets the MD5 hash of the specified file using XMD5 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the MD5 hash.
+ The command fails
+
+
+
+ Gets the SHA-1 hash of the specified file using XSHA1. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-1 hash.
+ The command fails
+
+
+
+ Gets the SHA-1 hash of the specified file using XSHA1 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-1 hash.
+ The command fails
+
+
+
+ Gets the SHA-256 hash of the specified file using XSHA256. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-256 hash.
+ The command fails
+
+
+
+ Gets the SHA-256 hash of the specified file using XSHA256 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-256 hash.
+ The command fails
+
+
+
+ Gets the SHA-512 hash of the specified file using XSHA512. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-512 hash.
+ The command fails
+
+
+
+ Gets the SHA-512 hash of the specified file using XSHA512 asynchronously. This is a non-standard extension
+ to the protocol and may or may not work. A FtpCommandException will be
+ thrown if the command fails.
+
+ Full or relative path to remote file
+ Server response, presumably the SHA-512 hash.
+ The command fails
+
+
+
+ Gets or sets the number of bytes transferred in a single chunk (a single FTP command).
+ Used by / and /
+ to transfer large files in multiple chunks.
+
+
+
+
+ Gets or sets the retry attempts allowed when a verification failure occurs during download or upload.
+ This value must be set to 1 or more.
+
+
+
+
+ Rate limit for uploads in kbyte/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Rate limit for downloads in kbytes/s. Set this to 0 for unlimited speed.
+ Honored by high-level API such as Upload(), Download(), UploadFile(), DownloadFile()..
+
+
+
+
+ Controls if the high-level API uploads files in Binary or ASCII mode.
+
+
+
+
+ Controls if the high-level API downloads files in Binary or ASCII mode.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ Files to be uploaded
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server asynchronously.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The token to monitor for cancellation requests
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the given file paths to a single folder on the server asynchronously.
+ All files are placed directly into the given folder regardless of their path on the local filesystem.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+ Faster than uploading single files with since it performs a single "file exists" check rather than one check per file.
+
+ The full or relative paths to the files on the local file system. Files can be from multiple folders.
+ The full or relative path to the directory that files will be uploaded on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to FtpExists.None for fastest performance but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were uploaded successfully. Affected when files are skipped when they already exist.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded into.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically switch to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The token to monitor for cancellation requests
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Downloads the specified files into a local single directory.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+ Same speed as .
+
+ The full or relative path to the directory that files will be downloaded into.
+ The full or relative paths to the files on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Used to determine how errors are handled
+ The count of how many files were downloaded successfully. When existing files are skipped, they are not counted.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+ If is set and is not set, then individual verification errors will not cause an exception
+ to propagate from this method.
+
+
+
+
+ Uploads the specified file directly onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified file directly onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ The token to monitor for cancellation requests.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified file directly onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Sets if checksum verification is required for a successful upload and what to do if it fails verification (See Remarks)
+ If true then the file was uploaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted the existsMode will automatically be set to .
+
+
+
+
+ Uploads the specified stream as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Uploads the specified byte array as a file onto the server.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+
+
+
+ Uploads the specified stream as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ The token to monitor for cancellation requests.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Uploads the specified byte array as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ The token to monitor for cancellation requests.
+ Provide an implementation of IProgress to track upload progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Uploads the specified stream as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a stream
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Uploads the specified byte array as a file onto the server asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it uploads data in chunks.
+
+ The full data of the file, as a byte array
+ The full or relative path to the file on the server
+ What to do if the file already exists? Skip, overwrite or append? Set this to for fastest performance,
+ but only if you are SURE that the files do not exist on the server.
+ Create the remote directory if it does not exist. Slows down upload due to additional checks required.
+ If true then the file was uploaded, false otherwise.
+
+
+
+ Upload the given stream to the server as a new file. Overwrites the file if it exists.
+ Writes data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Upload the given stream to the server as a new file asynchronously. Overwrites the file if it exists.
+ Writes data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Downloads the specified file onto the local file system.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file onto the local file system asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ The token to monitor for cancellation requests
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file onto the local file system asynchronously.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the local file system
+ The full or relative path to the file on the server
+ True if you want the local file to be overwritten if it already exists. (Default value is true)
+ Sets if checksum verification is required for a successful download and what to do if it fails verification (See Remarks)
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+ If verification is enabled (All options other than ) the hash will be checked against the server. If the server does not support
+ any hash algorithm, then verification is ignored. If only is set then the return of this method depends on both a successful
+ upload & verification. Additionally, if any verify option is set and a retry is attempted then overwrite will automatically be set to true for subsequent attempts.
+
+
+
+
+ Downloads the specified file into the specified stream.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file and return the raw byte array.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The variable that will receive the bytes.
+ The full or relative path to the file on the server
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file into the specified stream asynchronously .
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ The token to monitor cancellation requests
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file into the specified stream asynchronously .
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The stream that the file will be written to. Provide a new MemoryStream if you only want to read the file into memory.
+ The full or relative path to the file on the server
+ If true then the file was downloaded, false otherwise.
+
+
+
+ Downloads the specified file and return the raw byte array.
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the server
+ The token to monitor cancellation requests
+ Provide an implementation of IProgress to track download progress. The value provided is in the range 0 to 100, indicating the percentage of the file transferred. If the progress is indeterminate, -1 is sent.
+ A byte array containing the contents of the downloaded file if successful, otherwise null.
+
+
+
+ Downloads the specified file into the specified stream asynchronously .
+ High-level API that takes care of various edge cases internally.
+ Supports very large files since it downloads data in chunks.
+
+ The full or relative path to the file on the server
+ A byte array containing the contents of the downloaded file if successful, otherwise null.
+
+
+
+ Download a file from the server and write the data into the given stream.
+ Reads data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Download a file from the server and write the data into the given stream asynchronously.
+ Reads data in chunks. Retries if server disconnects midway.
+
+
+
+
+ Sends progress to the user, either a value between 0-100 indicating percentage complete, or -1 for indeterminate.
+
+
+
+
+ File listing parser to be used.
+ Automatically calculated based on the type of the server, unless changed.
+
+
+
+
+ Culture used to parse file listings
+
+
+
+
+ Time difference between server and client, in hours.
+ If the server is located in New York and you are in London then the time difference is -5 hours.
+
+
+
+
+ Check if your server supports a recursive LIST command (LIST -R).
+ If you know for sure that this is unsupported, set it to false.
+
+
+
+
+ If true, increases performance of GetListing by reading multiple lines
+ of the file listing at once. If false then GetListing will read file
+ listings line-by-line. If GetListing is having issues with your server,
+ set it to false.
+
+ The number of bytes read is based upon .
+
+
+
+
+ Bytes to read during GetListing. Only honored if is true.
+
+
+
+
+ Returns information about a file system object. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ The path of the file or folder
+ Get the accurate modified date using another MDTM command
+ A FtpListItem object
+
+
+
+ Begins an asynchronous operation to return information about a remote file system object.
+
+
+ You should check the property for the
+ flag before calling this method. Failing to do so will result in an InvalidOperationException
+ being thrown when the server does not support machine listings. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+
+ Path of the file or folder
+ Get the accurate modified date using another MDTM command
+ Async Callback
+ State object
+ IAsyncResult
+
+
+
+ Ends a call to
+
+ IAsyncResult returned from
+ A if the command succeeded, or null if there was a problem.
+
+
+
+ Return information about a remote file system object asynchronously.
+
+
+ You should check the property for the
+ flag before calling this method. Failing to do so will result in an InvalidOperationException
+ being thrown when the server does not support machine listings. Returns null if the server response can't
+ be parsed or the server returns a failure completion code. The error for a failure
+ is logged with FtpTrace. No exception is thrown on error because that would negate
+ the usefulness of this method for checking for the existence of an object.
+ Path of the item to retrieve information about
+ Get the accurate modified date using another MDTM command
+ Thrown if the server does not support this Capability
+ A if the command succeeded, or null if there was a problem.
+
+
+
+ Gets a file listing from the server from the current working directory. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path of the directory to list
+ Options that dictacte how a list is performed and what information is gathered.
+ An array of FtpListItem objects
+
+
+
+
+ Gets a file listing from the server asynchronously. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ Options that dictate how the list operation is performed
+ An array of items retrieved in the listing
+
+
+
+ Gets a file listing from the server asynchronously. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ The path to list
+ An array of items retrieved in the listing
+
+
+
+ Gets a file listing from the server asynchronously. Each object returned
+ contains information about the file that was able to be retrieved.
+
+
+ If a property is equal to then it means the
+ date in question was not able to be retrieved. If the property
+ is equal to 0, then it means the size of the object could also not
+ be retrieved.
+
+ An array of items retrieved in the listing
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ A string array of file and directory names if any were returned.
+
+
+
+ Returns a file/directory listing using the NLST command.
+
+ The path of the directory to list
+ A string array of file and directory names if any were returned.
+
+
+
+
+ Returns a file/directory listing using the NLST command asynchronously
+
+ The path of the directory to list
+ An array of file and directory names if any were returned.
+
+
+
+ Returns a file/directory listing using the NLST command asynchronously
+
+ An array of file and directory names if any were returned.
+
+
+
+ Opens the specified type of passive data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens the specified type of passive data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Returns the ip address to be sent to the server for the active connection
+
+
+
+
+
+
+ Opens the specified type of active data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens the specified type of active data stream
+
+ Type of passive data stream to open
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ A data stream ready to be used
+
+
+
+ Opens a data stream.
+
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ The data stream.
+
+
+
+ Opens a data stream.
+
+ The command to execute that requires a data stream
+ Restart location in bytes for file transfer
+ The data stream.
+
+
+
+ Disconnects a data stream
+
+ The data stream to close
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for reading the file on the server
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ ASCII/Binary
+ Resume location
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ ASCII/Binary
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ Resume location
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for reading asynchronously
+
+ The full or relative path of the file
+ A readable stream of the remote file
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket. asynchronously
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file for writing. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket. asynchronously
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file for appending. Please call GetReply() after you have successfully transfered the file to read the "OK" command sent by the server and prevent stale data on the socket.
+
+ The full or relative path to the file to be opened
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+
+ Opens the specified file to be appended asynchronously
+
+ Full or relative path of the file
+ ASCII/Binary
+ Only set this to false if you are SURE that the file does not exist. If true, it reads the file size and saves it into the stream length.
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file to be appended asynchronously
+
+ Full or relative path of the file
+ ASCII/Binary
+ A stream for writing to the file on the server
+
+
+
+ Opens the specified file to be appended asynchronously
+
+ Full or relative path of the file
+ A stream for writing to the file on the server
+
+
+
+ Sets the data type of information sent over the data stream
+
+ ASCII/Binary
+
+
+ Internal method that handles actually setting the data type.
+ Thrown when a FTP Command error condition occurs.
+ Thrown when a FTP error condition occurs.
+ ASCII/Binary.
+ This method doesn't do any locking to prevent recursive lock scenarios. Callers must do their own locking.
+
+
+
+ Sets the data type of information sent over the data stream asynchronously
+
+ ASCII/Binary
+
+
+
+ Deletes a file on the server
+
+ The full or relative path to the file
+
+
+
+
+ Deletes a file from the server asynchronously
+
+ The full or relative path to the file
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Deletes the specified directory and all its contents.
+
+ The full or relative path of the directory to delete
+ If the directory is not empty, remove its contents
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Checks whether will be called recursively or not.
+
+
+
+
+
+
+ Asynchronously removes a directory and all its contents.
+
+ The full or relative path of the directory to delete
+
+
+
+ Asynchronously removes a directory and all its contents.
+
+ The full or relative path of the directory to delete
+ Useful to delete hidden files or dot-files.
+
+
+
+ Asynchronously removes a directory. Used by and
+ .
+
+ The full or relative path of the directory to delete
+ Delete the contents before deleting the folder
+ Useful to delete hidden files or dot-files.
+
+
+
+
+ Tests if the specified directory exists on the server. This
+ method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ The path of the directory
+ True if it exists, false otherwise.
+
+
+
+
+ Tests if the specified directory exists on the server asynchronously. This
+ method works by trying to change the working directory to
+ the path specified. If it succeeds, the directory is changed
+ back to the old working directory and true is returned. False
+ is returned otherwise and since the CWD failed it is assumed
+ the working directory is still the same.
+
+ The full or relative path of the directory to check for
+ True if the directory exists. False otherwise.
+
+
+
+ Checks if a file exists on the server.
+
+ The full or relative path to the file
+ True if the file exists
+
+
+
+
+ Checks if a file exists on the server asynchronously.
+
+ The full or relative path to the file
+ True if the file exists, false otherwise
+
+
+
+ Creates a directory on the server. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+
+
+
+
+ Creates a directory on the server
+
+ The full or relative path to the new remote directory
+ Try to force all non-existent pieces of the path to be created
+
+
+
+
+ Creates a remote directory asynchronously
+
+ The full or relative path to the new remote directory
+ Try to create the whole path if the preceding directories do not exist
+
+
+
+ Creates a remote directory asynchronously. If the preceding
+ directories do not exist, then they are created.
+
+ The full or relative path to the new remote directory
+
+
+
+ Renames an object on the remote file system.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+
+
+
+
+ Renames an object on the remote file system asynchronously.
+ Low level method that should NOT be used in most cases. Prefer MoveFile() and MoveDirectory().
+ Throws exceptions if the file does not exist, or if the destination file already exists.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+
+
+
+ Moves a file on the remote file system from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Whether the file was moved
+
+
+
+ Moves a file asynchronously on the remote file system from one directory to another.
+ Always checks if the source file exists. Checks if the dest file exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest file exists? And if it does should we overwrite/skip the operation?
+ Whether the file was moved
+
+
+
+ Moves a directory on the remote file system from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Whether the directory was moved
+
+
+
+ Moves a directory asynchronously on the remote file system from one directory to another.
+ Always checks if the source directory exists. Checks if the dest directory exists based on the `existsMode` parameter.
+ Only throws exceptions for critical errors.
+
+ The full or relative path to the object
+ The new full or relative path including the new name of the object
+ Should we check if the dest directory exists? And if it does should we overwrite/skip the operation?
+ Whether the directory was moved
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The permissions in CHMOD format
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Modify the permissions of the given file/folder.
+ Only works on *NIX systems, and not on Windows/IIS servers.
+ Only works if the FTP server supports the SITE CHMOD command
+ (requires the CHMOD extension to be installed and enabled).
+ Throws FtpCommandException if there is an issue.
+
+ The full or relative path to the item
+ The owner permissions
+ The group permissions
+ The other permissions
+
+
+
+ Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set.
+ Throws FtpCommandException if there is an issue.
+ Returns null if the server did not specify a permission value.
+ Use `GetChmod` if you required the integer value instead.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an FtpListItem object with all "Permission" properties set.
+ Throws FtpCommandException if there is an issue.
+ Returns null if the server did not specify a permission value.
+ Use `GetChmod` if you required the integer value instead.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an integer in the CHMOD format.
+ Throws FtpCommandException if there is an issue.
+ Returns 0 if the server did not specify a permission value.
+ Use `GetFilePermissions` if you required the permissions in the FtpPermission format.
+
+ The full or relative path to the item
+
+
+
+ Retrieve the permissions of the given file/folder as an integer in the CHMOD format.
+ Throws FtpCommandException if there is an issue.
+ Returns 0 if the server did not specify a permission value.
+ Use `GetFilePermissions` if you required the permissions in the FtpPermission format.
+
+ The full or relative path to the item
+
+
+
+ Recursively dereferences a symbolic link. See the
+ MaximumDereferenceCount property for controlling
+ how deep this method will recurse before giving up.
+
+ The symbolic link
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Recursively dereferences a symbolic link
+
+ The symbolic link
+ The maximum depth of recursion that can be performed before giving up.
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Derefence a FtpListItem object
+
+ The item to derefence
+ Maximum recursive calls
+ Counter
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+
+ Derefence a FtpListItem object
+
+ The item to derefence
+ Maximum recursive calls
+ Counter
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+ Dereference a object asynchronously
+
+ The item to dereference
+ Maximum recursive calls
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+ Dereference a object asynchronously
+
+ The item to dereference
+ FtpListItem, null if the link can't be dereferenced
+
+
+
+ Sets the work directory on the server
+
+ The path of the directory to change to
+
+
+
+
+ Sets the working directory on the server asynchronously
+
+ The directory to change to
+
+
+
+ Gets the current working directory
+
+ The current working directory, ./ if the response couldn't be parsed.
+
+
+
+
+ Gets the current working directory asynchronously
+
+ The current working directory, ./ if the response couldn't be parsed.
+
+
+
+ Gets the size of a remote file
+
+ The full or relative path of the file
+ -1 if the command fails, otherwise the file size
+
+
+
+
+ Retrieve the size of a remote file asynchronously
+
+ The full or relative path of the file
+ The size of the file, -1 if there was a problem.
+
+
+
+ Gets the modified time of a remote file
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ The modified time, or if there was a problem
+
+
+
+
+ Gets the modified time of a remote file asynchronously
+
+ The full path to the file
+ Return the date in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+ The modified time, or if there was a problem
+
+
+
+ Changes the modified time of a remote file
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+
+
+
+ Gets the modified time of a remote file asynchronously
+
+ The full path to the file
+ The new modified date/time value
+ Is the date provided in local timezone or UTC? Use FtpDate.Original to disable timezone conversion.
+
+
+
+ Interface for the FtpClient class. For detailed documentation of the methods, please see the FtpClient class.
+
+
+
+
+ Defines the type of encryption to use
+
+
+
+
+ Plain text.
+
+
+
+
+ FTPS encryption is used from the start of the connection, port 990.
+
+
+
+
+ Connection starts in plain text and FTPS encryption is enabled
+ with the AUTH command immediately after the server greeting.
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ No response
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Success
+
+
+
+
+ Temporary failure
+
+
+
+
+ Permanent failure
+
+
+
+
+ Server features
+
+
+
+
+ This server said it doesn't support anything!
+
+
+
+
+ Supports the MLST command
+
+
+
+
+ Supports the SIZE command
+
+
+
+
+ Supports the MDTM command
+
+
+
+
+ Supports download/upload stream resumes
+
+
+
+
+ Supports UTF8
+
+
+
+
+ PRET Command used in distributed ftp server software DrFTPD
+
+
+
+
+ Server supports the MFMT command for setting the
+ modified date of an object on the server
+
+
+
+
+ Server supports the MFCT command for setting the
+ created date of an object on the server
+
+
+
+
+ Server supports the MFF command for setting certain facts
+ about file system objects. If you need this command, it would
+ probably be handy to query FEAT your self and have a look at
+ the FtpReply.InfoMessages property to see which facts the server
+ allows you to modify.
+
+
+
+
+ Server supports the STAT command
+
+
+
+
+ Support for the HASH command
+
+
+
+
+ Support for the non-standard MD5 command
+
+
+
+
+ Support for the non-standard XMD5 command
+
+
+
+
+ Support for the non-standard XCRC command
+
+
+
+
+ Support for the non-standard XSHA1 command
+
+
+
+
+ Support for the non-standard XSHA256 command
+
+
+
+
+ Support for the non-standard XSHA512 command
+
+
+
+
+ Different types of hashing algorithms for computing checksums.
+
+
+
+
+ HASH command is not supported
+
+
+
+
+ SHA-1
+
+
+
+
+ SHA-256
+
+
+
+
+ SHA-512
+
+
+
+
+ MD5
+
+
+
+
+ CRC
+
+
+
+
+ IP Versions to allow when connecting
+ to a server.
+
+
+
+
+ Internet Protocol Version 4
+
+
+
+
+ Internet Protocol Version 6
+
+
+
+
+ Allow any supported version
+
+
+
+
+ Data connection type
+
+
+
+
+ This type of data connection attempts to use the EPSV command
+ and if the server does not support EPSV it falls back to the
+ PASV command before giving up unless you are connected via IPv6
+ in which case the PASV command is not supported.
+
+
+
+
+ Passive data connection. EPSV is a better
+ option if it's supported. Passive connections
+ connect to the IP address dictated by the server
+ which may or may not be accessible by the client
+ for example a server behind a NAT device may
+ give an IP address on its local network that
+ is inaccessible to the client. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Same as PASV except the host supplied by the server is ignored
+ and the data connection is made to the same address that the control
+ connection is connected to. This is useful in scenarios where the
+ server supplies a private/non-routable network address in the
+ PASV response. It's functionally identical to EPSV except some
+ servers may not implement the EPSV command. Please note that IPv6
+ does not support this type data connection. If you
+ ask for PASV and are connected via IPv6 EPSV will
+ automatically be used in its place.
+
+
+
+
+ Extended passive data connection, recommended. Works
+ the same as a PASV connection except the server
+ does not dictate an IP address to connect to, instead
+ the passive connection goes to the same address used
+ in the control connection. This type of data connection
+ supports IPv4 and IPv6.
+
+
+
+
+ This type of data connection attempts to use the EPRT command
+ and if the server does not support EPRT it falls back to the
+ PORT command before giving up unless you are connected via IPv6
+ in which case the PORT command is not supported.
+
+
+
+
+ Active data connection, not recommended unless
+ you have a specific reason for using this type.
+ Creates a listening socket on the client which
+ requires firewall exceptions on the client system
+ as well as client network when connecting to a
+ server outside of the client's network. In addition
+ the IP address of the interface used to connect to the
+ server is the address the server is told to connect to
+ which, if behind a NAT device, may be inaccessible to
+ the server. This type of data connection is not supported
+ by IPv6. If you specify PORT and are connected via IPv6
+ EPRT will automatically be used instead.
+
+
+
+
+ Extended active data connection, not recommended
+ unless you have a specific reason for using this
+ type. Creates a listening socket on the client
+ which requires firewall exceptions on the client
+ as well as client network when connecting to a
+ server outside of the client's network. The server
+ connects to the IP address it sees the client coming
+ from. This type of data connection supports IPv4 and IPv6.
+
+
+
+
+ Type of data transfer to do
+
+
+
+
+ ASCII transfer
+
+
+
+
+ Binary transfer
+
+
+
+
+ Type of file system of object
+
+
+
+
+ A file
+
+
+
+
+ A directory
+
+
+
+
+ A symbolic link
+
+
+
+
+ Types of file permissions
+
+
+
+
+ No access
+
+
+
+
+ Executable
+
+
+
+
+ Writable
+
+
+
+
+ Readable
+
+
+
+
+ Types of special UNIX permissions
+
+
+
+
+ No special permissions are set
+
+
+
+
+ Sticky bit is set
+
+
+
+
+ SGID bit is set
+
+
+
+
+ SUID bit is set
+
+
+
+
+ The type of response the server responded with
+
+
+
+
+ Use the legacy parser (for older projects that depend on the pre-2017 parser routines).
+
+
+
+
+ Automatically detect the file listing parser to use based on the FTP server (SYST command).
+
+
+
+
+ Machine listing parser, works on any FTP server supporting the MLST/MLSD commands.
+
+
+
+
+ File listing parser for Windows/IIS.
+
+
+
+
+ File listing parser for Unix.
+
+
+
+
+ Alternate parser for Unix. Use this if the default one does not work.
+
+
+
+
+ File listing parser for Vax/VMS/OpenVMS.
+
+
+
+
+ File listing parser for IBM OS400.
+
+
+
+
+ File listing parser for Tandem/Nonstop Guardian OS.
+
+
+
+
+ Flags that can dictate how a file listing is performed
+
+
+
+
+ Tries machine listings (MDTM command) if supported,
+ and if not then falls back to OS-specific listings (LIST command)
+
+
+
+
+ Load the modify date using MDTM when it could not
+ be parsed from the server listing. This only pertains
+ to servers that do not implement the MLSD command.
+
+
+
+
+ Load the file size using the SIZE command when it
+ could not be parsed from the server listing. This
+ only pertains to servers that do not support the
+ MLSD command.
+
+
+
+
+ Combines the Modify and Size flags
+
+
+
+
+ Show hidden/dot files. This only pertains to servers
+ that do not support the MLSD command. This option
+ makes use the non standard -a parameter to LIST to
+ tell the server to show hidden files. Since it's a
+ non-standard option it may not always work. MLSD listings
+ have no such option and whether or not a hidden file is
+ shown is at the discretion of the server.
+
+
+
+
+ Force the use of OS-specific listings (LIST command) even if
+ machine listings (MLSD command) are supported by the server
+
+
+
+
+ Use the NLST command instead of LIST for a reliable file listing
+
+
+
+
+ Force the use of the NLST command (the slowest mode) even if machine listings
+ and OS-specific listings are supported by the server
+
+
+
+
+ Try to dereference symbolic links, and stored the linked file/directory in FtpListItem.LinkObject
+
+
+
+
+ Sets the ForceList flag and uses `LS' instead of `LIST' as the
+ command for getting a directory listing. This option overrides
+ ForceNameList and ignores the AllFiles flag.
+
+
+
+
+ Gets files within subdirectories as well. Adds the -r option to the LIST command.
+ Some servers may not support this feature.
+
+
+
+
+ Do not retrieve path when no path is supplied to GetListing(),
+ instead just execute LIST with no path argument.
+
+
+
+
+ Include two extra items into the listing, for the current directory (".")
+ and the parent directory (".."). Meaningless unless you want these two
+ items for some reason.
+
+
+
+
+ Defines the behavior for uploading/downloading files that already exist
+
+
+
+
+ Do not check if the file exists. A bit faster than the other options. Only use this if you are SURE that the file does not exist on the server.
+ Otherwise it can cause the UploadFile method to hang due to filesize mismatch.
+
+
+
+
+ Skip the file if it exists, without any more checks.
+
+
+
+
+ Overwrite the file if it exists.
+
+
+
+
+ Append to the file if it exists, by checking the length and adding the missing data.
+
+
+
+
+ Defines the level of the tracing message. Depending on the framework version this is translated
+ to an equivalent logging level in System.Diagnostices (if available)
+
+
+
+
+ Used for logging Debug or Verbose level messages
+
+
+
+
+ Used for logging Informational messages
+
+
+
+
+ Used for logging non-fatal or ignorable error messages
+
+
+
+
+ Used for logging Error messages that may need investigation
+
+
+
+
+ Defines how multi-file processes should handle a processing error.
+
+ & Cannot Be Combined
+
+
+
+ No action is taken upon errors. The method absorbs the error and continues.
+
+
+
+
+ If any files have completed successfully (or failed after a partial download/upload) then should be deleted.
+ This will simulate an all-or-nothing transaction downloading or uploading multiple files. If this option is not
+ combined with or then the method will
+ continue to process all items whether if they are successful or not and then delete everything if a failure was
+ encountered at any point.
+
+
+
+
+ The method should stop processing any additional files and immediately return upon encountering an error.
+ Cannot be combined with
+
+
+
+
+ The method should stop processing any additional files and immediately throw the current error.
+ Cannot be combined with
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ No verification of the file is performed
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then we retry the download/upload
+ a specified amount of times before giving up. (See )
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the failed file will be deleted.
+ If combined with , then
+ the deletion will occur if it fails upon the final retry.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then an exception will be thrown.
+ If combined with , then the throw will
+ occur upon the failure of the final retry, and/or if combined with
+ the method will throw after the deletion is processed.
+
+
+
+
+ The checksum of the file is verified, if supported by the server.
+ If the checksum comparison fails then the method returns false and no other action is taken.
+
+
+
+
+ Defines if additional verification and actions upon failure that
+ should be performed when uploading/downloading files using the high-level APIs. Ignored if the
+ FTP server does not support any hashing algorithms.
+
+
+
+
+ The date is whatever the server returns, with no conversion performed.
+
+
+
+
+ The date is converted to UTC, based on the TimeOffset property in FtpClient.
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+ The control connection that triggered the event
+ Event args
+
+
+
+ Event fired if a bad SSL certificate is encountered. This even is used internally; if you
+ don't have a specific reason for using it you are probably looking for FtpSslValidation.
+
+
+
+
+
+
+ Event args for the FtpSslValidationError delegate
+
+
+
+
+ The certificate to be validated
+
+
+
+
+ The certificate chain
+
+
+
+
+ Validation errors, if any.
+
+
+
+
+ Gets or sets a value indicating if this certificate should be accepted. The default
+ value is false. If the certificate is not accepted, an AuthenticationException will
+ be thrown.
+
+
+
+
+ FTP related error
+
+
+
+
+ Initializes a new instance of the class.
+
+ The error message
+
+
+
+ Initializes a new instance of the class with an inner exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified.
+
+
+
+ Exception triggered on command failures
+
+
+
+
+ Gets the completion code associated with the response
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ Status code
+ Associated message
+
+
+
+ Initializes a new instance of a FtpResponseException
+
+ The FtpReply to build the exception from
+
+
+
+ Exception is thrown when encryption could not be negotiated by the server
+
+
+
+
+ Default constructor
+
+
+
+
+ Custom error message
+
+ Error message
+
+
+
+ Represents a computed hash of an object
+ on the FTP server. See the following link
+ for more information:
+ http://tools.ietf.org/html/draft-bryan-ftpext-hash-02
+
+
+
+
+ Gets the algorithm that was used to compute the hash
+
+
+
+
+ Gets the computed hash returned by the server
+
+
+
+
+ Gets a value indicating if this object represents a
+ valid hash response from the server.
+
+
+
+
+ Computes the hash for the specified file and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The file to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Computes the hash for the specified stream and compares
+ it to the value in this object. CRC hashes are not supported
+ because there is no built-in support in the .net framework and
+ a CRC implementation exceeds the scope of this project. If you
+ attempt to call this on a CRC hash a will
+ be thrown.
+
+ The stream to compute the hash for
+ True if the computed hash matches what's stored in this object.
+ Thrown if called on a CRC Hash
+
+
+
+ Creates an empty instance.
+
+
+
+
+ Represents a file system object on the server
+
+
+
+
+
+ Blank constructor; Fill args manually.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Constructor with mandatory args filled.
+
+ NOTE TO USER : You should not need to construct this class manually except in advanced cases. Typically constructed by GetListing().
+
+
+
+
+ Gets the type of file system object.
+
+
+
+
+ Gets the full path name to the object.
+
+
+
+
+ Gets the name of the object.
+
+
+
+
+ Gets the target a symbolic link points to.
+
+
+
+
+ Gets the number of links pointing to this file. Only supplied by Unix servers.
+
+
+
+
+ Gets the object that the LinkTarget points to. This property is null unless you pass the
+ flag in which case GetListing() will try to resolve
+ the target itself.
+
+
+
+
+ Gets the last write time of the object.
+
+
+
+
+ Gets the created date of the object.
+
+
+
+
+ Gets the size of the object.
+
+
+
+
+ Gets special UNIX permissions such as Sticky, SUID and SGID.
+
+
+
+
+ Gets the owner permissions.
+
+
+
+
+ Gets the group permissions.
+
+
+
+
+ Gets the others permissions.
+
+
+
+
+ Gets the raw string received for the file permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the file permissions in the CHMOD format.
+
+
+
+
+ Gets the raw string received for the file's GROUP permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the raw string received for the file's OWNER permissions.
+ Use this if the other properties are blank/invalid.
+
+
+
+
+ Gets the input string that was parsed to generate the
+ values in this object.
+
+
+
+
+ Returns a string representation of this object and its properties
+
+ A string representing this object
+
+
+
+ Parses a line from a file listing using the first successful parser, or the specified parser.
+ Returns an FtpListItem object representing the parsed line, or null if the line was unable to be parsed.
+
+
+
+
+ the FTP connection that owns this parser
+
+
+
+
+ which server type? (SYST)
+
+
+
+
+ current parser, or parser set by user
+
+
+
+
+ parser calculated based on system type (SYST command)
+
+
+
+
+ if we have detected that the current parser is valid
+
+
+
+
+ which culture to read filenames with?
+
+
+
+
+ what is the time offset between server/client?
+
+
+
+
+ any time offset between server/client?
+
+
+
+
+ VMS ONLY : the blocksize used to calculate the file
+
+
+
+
+ Is the version number returned as part of the filename?
+
+ Some VMS FTP servers do not permit a file to be deleted unless
+ the filename includes the version number. Note that directories are
+ never returned with the version number.
+
+
+
+
+ Initializes a new instance of the class.
+
+ An existing object
+
+
+
+ Try to auto-detect which parser is suitable given a system string.
+
+ result of SYST command
+
+
+
+ Parse raw file list from server into file objects, using the currently active parser.
+
+
+
+
+ Parse raw file from server into a file object, using the currently active parser.
+
+
+
+
+ Validate if the current parser is correct, or if another parser seems more appropriate.
+
+
+
+
+ Validate if the current parser is correct
+
+
+
+
+ Parses a line from a file listing using the first successful match in the Parsers collection.
+
+ The source path of the file listing
+ A line from the file listing
+ Server capabilities
+ A FtpListItem object representing the parsed line, null if the line was
+ unable to be parsed. If you have encountered an unsupported list type add a parser
+ to the public static Parsers collection of FtpListItem.
+
+
+
+ Used for synchronizing access to the Parsers collection
+
+
+
+
+ Initializes the default list of parsers
+
+
+
+
+ Collection of parsers. Each parser object contains
+ a regex string that uses named groups, i.e., (?<group_name>foobar).
+ The support group names are modify for last write time, size for the
+ size and name for the name of the file system object. Each group name is
+ optional, if they are present then those values are retrieved from a
+ successful match. In addition, each parser contains a Type property
+ which gets set in the FtpListItem object to distinguish between different
+ types of objects.
+
+
+
+
+ Adds a custom parser
+
+ The parser delegate to add
+
+
+
+
+ Removes all parser delegates
+
+
+
+
+ Removes the specified parser
+
+ The parser delegate to remove
+
+
+
+ Parses LIST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS DOS format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Ftp listing line parser
+
+ The line from the listing
+ The server capabilities
+ FtpListItem if the line can be parsed, null otherwise
+
+
+
+ Parses MLSD/MLST format listings
+
+ A line from the listing
+ Server capabilities
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Unix format listings with alternate parser
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IIS/DOS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses Vax/VMS format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses NonStop format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Parses IBM OS/400 format listings
+
+ A line from the listing
+ FtpListItem if the item is able to be parsed
+
+
+
+ Split into fields by splitting on strings
+
+
+
+ Fix the date string to make the month camel case
+ array of fields
+
+
+
+ Represents a reply to an event on the server
+
+
+
+
+ The type of response received from the last command executed
+
+
+
+
+ The status code of the response
+
+
+
+
+ The message, if any, that the server sent with the response
+
+
+
+
+ Informational messages sent from the server
+
+
+
+
+ General success or failure of the last command executed
+
+
+
+
+ Gets the error message including any informational output
+ that was sent by the server. Sometimes the final response
+ line doesn't contain anything informative as to what was going
+ on with the server. Instead it may send information messages so
+ in an effort to give as meaningful as a response as possible
+ the informational messages will be included in the error.
+
+
+
+
+ Used for transaction logging and debug information.
+
+
+
+
+ Should FTP communication be be logged to console?
+
+
+
+
+ Set this to a file path to append all FTP communication to it.
+
+
+
+
+ Should the function calls be logged in Verbose mode?
+
+
+
+
+ Should the FTP server IP addresses be included in the logs?
+
+
+
+
+ Should the FTP usernames be included in the logs?
+
+
+
+
+ Should the FTP passwords be included in the logs?
+
+
+
+
+ Should we trace at all?
+
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The message to write
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, adding an automatic prefix to the message based on the `eventType`
+
+ The type of tracing event
+ The message to write
+
+
+
+ Write to the TraceListeners, for the purpose of logging a API function call
+
+ The name of the API function
+ The args passed to the function
+
+
+
+ Write to the TraceListeners
+
+ The type of tracing event
+ A formattable string to write
+
+
+ A FTP client with a HTTP 1.1 proxy implementation.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine the first dialog: HTTP Frame for the HTTP 1.1 Proxy
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+
+
+
+ Connects to the server using an existing
+
+ The existing socket stream
+ Host name
+ Port number
+ IP version to use
+
+
+
+ Abstraction of an FtpClient with a proxy
+
+
+
+ The proxy connection info.
+
+
+ A FTP client with a HTTP 1.1 proxy implementation
+ Proxy information
+
+
+ Redefine connect for FtpClient : authentication on the Proxy
+ The socket stream.
+
+
+ A FTP client with a user@host proxy identification.
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+
+ A FTP client with a user@host proxy identification, that works with Blue Coat FTP Service servers.
+
+ The 'blue coat variant' forces the client to wait for a 220 FTP response code in
+ the handshake phase.
+
+
+
+ A FTP client with a user@host proxy identification.
+ Proxy information
+
+
+
+ Creates a new instance of this class. Useful in FTP proxy classes.
+
+
+
+ Redefine the first dialog: auth with proxy information
+
+
+ POCO holding proxy information
+
+
+ Proxy host name
+
+
+ Proxy port
+
+
+ Proxy login credentials
+
+
+
+ Base class for data stream connections
+
+
+
+
+ Gets the status of the command that was used to open
+ this data channel
+
+
+
+
+ Gets or sets the control connection for this data stream. Setting
+ the control connection causes the object to be cloned and a new
+ connection is made to the server to carry out the task. This ensures
+ that multiple streams can be opened simultaneously.
+
+
+
+
+ Gets or sets the length of the stream. Only valid for file transfers
+ and only valid on servers that support the Size command.
+
+
+
+
+ Gets or sets the position of the stream
+
+
+
+
+ Reads data off the stream
+
+ The buffer to read into
+ Where to start in the buffer
+ Number of bytes to read
+ The number of bytes read
+
+
+
+ Reads data off the stream asynchronously
+
+ The buffer to read into
+ Where to start in the buffer
+ Number of bytes to read
+ The cancellation token for this task
+ The number of bytes read
+
+
+
+ Writes data to the stream
+
+ The buffer to write to the stream
+ Where to start in the buffer
+ The number of bytes to write to the buffer
+
+
+
+ Writes data to the stream asynchronously
+
+ The buffer to write to the stream
+ Where to start in the buffer
+ The number of bytes to write to the buffer
+ The for this task
+
+
+
+ Sets the length of this stream
+
+ Value to apply to the Length property
+
+
+
+ Sets the position of the stream. Intended to be used
+ internally by FtpControlConnection.
+
+ The position
+
+
+
+ Closes the connection and reads the server's reply
+
+
+
+
+ Creates a new data stream object
+
+ The control connection to be used for carrying out this operation
+
+
+
+ Finalizer
+
+
+
+
+ Stream class used for talking. Used by FtpClient, extended by FtpDataStream
+
+
+
+
+ Used for tacking read/write activity on the socket
+ to determine if Poll() should be used to test for
+ socket connectivity. The socket in this class will
+ not know it has been disconnected if the remote host
+ closes the connection first. Using Poll() avoids
+ the exception that would be thrown when trying to
+ read or write to the disconnected socket.
+
+
+
+
+ The socket used for talking
+
+
+
+
+ Gets or sets the length of time in milliseconds
+ that must pass since the last socket activity
+ before calling Poll() on the socket to test for
+ connectivity. Setting this interval too low will
+ have a negative impact on performance. Setting this
+ interval to 0 disables Poll()'ing all together.
+ The default value is 15 seconds.
+
+
+
+
+ Gets the number of available bytes on the socket, 0 if the
+ socket has not been initialized. This property is used internally
+ by FtpClient in an effort to detect disconnections and gracefully
+ reconnect the control connection.
+
+
+
+
+ Gets a value indicating if this socket stream is connected
+
+
+
+
+ Gets a value indicating if encryption is being used
+
+
+
+
+ The non-encrypted stream
+
+
+
+
+ The encrypted stream
+
+
+
+
+ Gets the underlying stream, could be a NetworkStream or SslStream
+
+
+
+
+ Gets a value indicating if this stream can be read
+
+
+
+
+ Gets a value indicating if this stream if seekable
+
+
+
+
+ Gets a value indicating if this stream can be written to
+
+
+
+
+ Gets the length of the stream
+
+
+
+
+ Gets the current position of the stream. Trying to
+ set this property throws an InvalidOperationException()
+
+
+
+
+ Event is fired when a SSL certificate needs to be validated
+
+
+
+
+ Gets or sets the amount of time to wait for a read operation to complete. Default
+ value is Timeout.Infinite.
+
+
+
+
+ Gets or sets the length of time milliseconds to wait
+ for a connection succeed before giving up. The default
+ is 30000 (30 seconds).
+
+
+
+
+ Gets the local end point of the socket
+
+
+
+
+ Gets the remote end point of the socket
+
+
+
+
+ Fires the SSL certificate validation event
+
+ Certificate being validated
+ Certificate chain
+ Policy errors if any
+ True if it was accepted, false otherwise
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+ Ignored
+
+
+
+
+ Throws an InvalidOperationException
+
+ Ignored
+
+
+
+ Flushes the stream
+
+
+
+
+ Flushes the stream asynchronously
+
+ The for this task
+
+
+
+ Bypass the stream and read directly off the socket.
+
+ The buffer to read into
+ The number of bytes read
+
+
+
+ Bypass the stream and read directly off the socket.
+
+ The buffer to read into
+ The number of bytes read
+
+
+
+ Reads data from the stream
+
+ Buffer to read into
+ Where in the buffer to start
+ Number of bytes to be read
+ The amount of bytes read from the stream
+
+
+
+ Reads data from the stream
+
+ Buffer to read into
+ Where in the buffer to start
+ Number of bytes to be read
+ The for this task
+ The amount of bytes read from the stream
+
+
+
+ Reads a line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads all line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ The size of the buffer
+ A list of lines from the stream
+
+
+
+ Reads a line from the socket asynchronously
+
+ The type of encoding used to convert from byte[] to string
+ The for this task
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads a line from the socket asynchronously
+
+ The type of encoding used to convert from byte[] to string
+ A line from the stream, null if there is nothing to read
+
+
+
+ Reads all line from the socket
+
+ The type of encoding used to convert from byte[] to string
+ The size of the buffer
+ A list of lines from the stream
+
+
+
+ Writes data to the stream
+
+ Buffer to write to stream
+ Where in the buffer to start
+ Number of bytes to be read
+
+
+
+ Writes data to the stream asynchronously
+
+ Buffer to write to stream
+ Where in the buffer to start
+ Number of bytes to be read
+ The for this task
+
+
+
+ Writes a line to the stream using the specified encoding
+
+ Encoding used for writing the line
+ The data to write
+
+
+
+ Writes a line to the stream using the specified encoding asynchronously
+
+ Encoding used for writing the line
+ The data to write
+ The for this task
+
+
+
+ Writes a line to the stream using the specified encoding asynchronously
+
+ Encoding used for writing the line
+ The data to write
+
+
+
+ Disconnects from server
+
+
+
+
+ Disconnects from server
+
+
+
+
+ Sets socket options on the underlying socket
+
+ SocketOptionLevel
+ SocketOptionName
+ SocketOptionValue
+
+
+
+ Connect to the specified host
+
+ The host to connect to
+ The port to connect to
+ Internet Protocol versions to support during the connection phase
+
+
+
+ Connect to the specified host
+
+ The host to connect to
+ The port to connect to
+ Internet Protocol versions to support during the connection phase
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+
+
+
+ Activates SSL on this stream using default protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+
+
+
+ Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+ A bitwise parameter for supported encryption protocols.
+ Thrown when authentication fails
+
+
+
+ Activates SSL on this stream using the specified protocols. Fires the ValidateCertificate event.
+ If this event is not handled and there are SslPolicyErrors present, the certificate will
+ not be accepted.
+
+ The host to authenticate the certificate against
+ A collection of client certificates to use when authenticating the SSL stream
+ A bitwise parameter for supported encryption protocols.
+ Thrown when authentication fails
+
+
+
+ Instructs this stream to listen for connections on the specified address and port
+
+ The address to listen on
+ The port to listen on
+
+
+
+ Accepts a connection from a listening socket
+
+
+
+
+ Accepts a connection from a listening socket
+
+
+
+
+ Extension methods related to FTP tasks
+
+
+
+
+ Converts the specified path into a valid FTP file system path
+
+ The file system path
+ A path formatted for FTP
+
+
+
+ Creates a valid FTP path by appending the specified segments to this string
+
+ This string
+ The path segments to append
+ A valid FTP path
+
+
+
+ Gets the parent directory path (formatted for a FTP server)
+
+ The path
+ The parent directory path
+
+
+
+ Gets the file name and extension from the path
+
+ The full path to the file
+ The file name
+
+
+
+ Tries to convert the string FTP date representation into a object
+
+ The date
+ UTC/Local Time
+ A object representing the date, or if there was a problem
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Converts a file size in bytes to a string representation (eg. 12345 becomes 12.3 KB)
+
+
+
+
+ Validates that the FtpError flags set are not in an invalid combination.
+
+ The error handling options set
+ True if a valid combination, otherwise false
+
+
+
+ Checks if every character in the string is whitespace, or the string is null.
+
+
+
+
+ Checks if the string is null or 0 length.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Join the given strings by a delimiter.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
+ Adds a prefix to the given strings, returns a new array.
+
+
+
+
diff --git a/packages/Lextm.SharpSnmpLib.10.0.9/.signature.p7s b/packages/Lextm.SharpSnmpLib.10.0.9/.signature.p7s
new file mode 100644
index 0000000..98908fd
Binary files /dev/null and b/packages/Lextm.SharpSnmpLib.10.0.9/.signature.p7s differ
diff --git a/packages/Lextm.SharpSnmpLib.10.0.9/Lextm.SharpSnmpLib.10.0.9.nupkg b/packages/Lextm.SharpSnmpLib.10.0.9/Lextm.SharpSnmpLib.10.0.9.nupkg
new file mode 100644
index 0000000..d5e6327
Binary files /dev/null and b/packages/Lextm.SharpSnmpLib.10.0.9/Lextm.SharpSnmpLib.10.0.9.nupkg differ
diff --git a/packages/Lextm.SharpSnmpLib.10.0.9/lib/monoandroid44/SharpSnmpLib.dll b/packages/Lextm.SharpSnmpLib.10.0.9/lib/monoandroid44/SharpSnmpLib.dll
new file mode 100644
index 0000000..16d57da
Binary files /dev/null and b/packages/Lextm.SharpSnmpLib.10.0.9/lib/monoandroid44/SharpSnmpLib.dll differ
diff --git a/packages/Lextm.SharpSnmpLib.10.0.9/lib/net452/SharpSnmpLib.dll b/packages/Lextm.SharpSnmpLib.10.0.9/lib/net452/SharpSnmpLib.dll
new file mode 100644
index 0000000..69d7c98
Binary files /dev/null and b/packages/Lextm.SharpSnmpLib.10.0.9/lib/net452/SharpSnmpLib.dll differ
diff --git a/packages/Lextm.SharpSnmpLib.10.0.9/lib/netcoreapp2.0/SharpSnmpLib.dll b/packages/Lextm.SharpSnmpLib.10.0.9/lib/netcoreapp2.0/SharpSnmpLib.dll
new file mode 100644
index 0000000..c818062
Binary files /dev/null and b/packages/Lextm.SharpSnmpLib.10.0.9/lib/netcoreapp2.0/SharpSnmpLib.dll differ
diff --git a/packages/Lextm.SharpSnmpLib.10.0.9/lib/netstandard1.3/SharpSnmpLib.dll b/packages/Lextm.SharpSnmpLib.10.0.9/lib/netstandard1.3/SharpSnmpLib.dll
new file mode 100644
index 0000000..8752286
Binary files /dev/null and b/packages/Lextm.SharpSnmpLib.10.0.9/lib/netstandard1.3/SharpSnmpLib.dll differ
diff --git a/packages/Lextm.SharpSnmpLib.10.0.9/lib/xamarinios10/SharpSnmpLib.dll b/packages/Lextm.SharpSnmpLib.10.0.9/lib/xamarinios10/SharpSnmpLib.dll
new file mode 100644
index 0000000..83b86a4
Binary files /dev/null and b/packages/Lextm.SharpSnmpLib.10.0.9/lib/xamarinios10/SharpSnmpLib.dll differ
diff --git a/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/.signature.p7s b/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/.signature.p7s
new file mode 100644
index 0000000..b0634aa
Binary files /dev/null and b/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/.signature.p7s differ
diff --git a/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/LICENSE.TXT b/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/LICENSE.TXT
new file mode 100644
index 0000000..cd10d69
--- /dev/null
+++ b/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/LICENSE.TXT
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 .NET Foundation
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/Microsoft.DotNet.PlatformAbstractions.2.1.0.nupkg b/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/Microsoft.DotNet.PlatformAbstractions.2.1.0.nupkg
new file mode 100644
index 0000000..cf2d0d4
Binary files /dev/null and b/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/Microsoft.DotNet.PlatformAbstractions.2.1.0.nupkg differ
diff --git a/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/THIRD-PARTY-NOTICES.TXT b/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/THIRD-PARTY-NOTICES.TXT
new file mode 100644
index 0000000..edf8b3a
--- /dev/null
+++ b/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/THIRD-PARTY-NOTICES.TXT
@@ -0,0 +1,562 @@
+.NET Core uses third-party libraries or other resources that may be
+distributed under licenses different than the .NET Core software.
+
+Attributions and licence notices for test cases originally authored by
+third parties can be found in the respective test directories.
+
+In the event that we accidentally failed to list a required notice, please
+bring it to our attention. Post an issue or email us:
+
+ dotnet@microsoft.com
+
+The attached notices are provided for information only.
+
+License notice for RFC 3492
+---------------------------
+
+Copyright (C) The Internet Society (2003). All Rights Reserved.
+
+This document and translations of it may be copied and furnished to
+others, and derivative works that comment on or otherwise explain it
+or assist in its implementation may be prepared, copied, published
+and distributed, in whole or in part, without restriction of any
+kind, provided that the above copyright notice and this paragraph are
+included on all such copies and derivative works. However, this
+document itself may not be modified in any way, such as by removing
+the copyright notice or references to the Internet Society or other
+Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for
+copyrights defined in the Internet Standards process must be
+followed, or as required to translate it into languages other than
+English.
+
+The limited permissions granted above are perpetual and will not be
+revoked by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an
+"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+License notice for The C++ REST SDK
+-----------------------------------
+
+C++ REST SDK
+
+The MIT License (MIT)
+
+Copyright (c) Microsoft Corporation
+
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+License notice for Algorithm from Internet Draft document "UUIDs and GUIDs"
+---------------------------------------------------------------------------
+
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
+Digital Equipment Corporation, Maynard, Mass.
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty: permission to use, copy,
+modify, and distribute this file for any purpose is hereby
+granted without fee, provided that the above copyright notices and
+this notice appears in all source code copies, and that none of
+the names of Open Software Foundation, Inc., Hewlett-Packard
+Company, or Digital Equipment Corporation be used in advertising
+or publicity pertaining to distribution of the software without
+specific, written prior permission. Neither Open Software
+Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital Equipment
+Corporation makes any representations about the suitability of
+this software for any purpose.
+
+Copyright(C) The Internet Society 1997. All Rights Reserved.
+
+This document and translations of it may be copied and furnished to others,
+and derivative works that comment on or otherwise explain it or assist in
+its implementation may be prepared, copied, published and distributed, in
+whole or in part, without restriction of any kind, provided that the above
+copyright notice and this paragraph are included on all such copies and
+derivative works.However, this document itself may not be modified in any
+way, such as by removing the copyright notice or references to the Internet
+Society or other Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for copyrights
+defined in the Internet Standards process must be followed, or as required
+to translate it into languages other than English.
+
+The limited permissions granted above are perpetual and will not be revoked
+by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an "AS IS"
+basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE
+DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY
+RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
+PARTICULAR PURPOSE.
+
+License notice for Algorithm from RFC 4122 -
+A Universally Unique IDentifier (UUID) URN Namespace
+----------------------------------------------------
+
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
+Digital Equipment Corporation, Maynard, Mass.
+Copyright (c) 1998 Microsoft.
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty: permission to use, copy,
+modify, and distribute this file for any purpose is hereby
+granted without fee, provided that the above copyright notices and
+this notice appears in all source code copies, and that none of
+the names of Open Software Foundation, Inc., Hewlett-Packard
+Company, Microsoft, or Digital Equipment Corporation be used in
+advertising or publicity pertaining to distribution of the software
+without specific, written prior permission. Neither Open Software
+Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital
+Equipment Corporation makes any representations about the
+suitability of this software for any purpose."
+
+License notice for The LLVM Compiler Infrastructure
+---------------------------------------------------
+
+Developed by:
+
+ LLVM Team
+
+ University of Illinois at Urbana-Champaign
+
+ http://llvm.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal with
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
+
+ * Neither the names of the LLVM Team, University of Illinois at
+ Urbana-Champaign, nor the names of its contributors may be used to
+ endorse or promote products derived from this Software without specific
+ prior written permission.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
+SOFTWARE.
+
+License notice for Bit Twiddling Hacks
+--------------------------------------
+
+Bit Twiddling Hacks
+
+By Sean Eron Anderson
+seander@cs.stanford.edu
+
+Individually, the code snippets here are in the public domain (unless otherwise
+noted) — feel free to use them however you please. The aggregate collection and
+descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are
+distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and
+without even the implied warranty of merchantability or fitness for a particular
+purpose.
+
+License notice for Bob Jenkins
+------------------------------
+
+By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this
+code any way you wish, private, educational, or commercial. It's free.
+
+License notice for Greg Parker
+------------------------------
+
+Greg Parker gparker@cs.stanford.edu December 2000
+This code is in the public domain and may be copied or modified without
+permission.
+
+License notice for libunwind8 based code
+----------------------------------------
+
+Copyright (c) 2003-2005 Hewlett-Packard Development Company, L.P.
+ Contributed by David Mosberger-Tang
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+License notice for the Printing Floating-Point Numbers
+/******************************************************************************
+ Copyright (c) 2014 Ryan Juckett
+ http://www.ryanjuckett.com/
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+
+ 3. This notice may not be removed or altered from any source
+ distribution.
+******************************************************************************/
+
+License notice for xxHash
+-------------------------
+
+xxHash Library
+Copyright (c) 2012-2014, Yann Collet
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice, this
+ list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for Slicing-by-8
+-------------------------------
+
+http://sourceforge.net/projects/slicing-by-8/
+
+Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved
+
+
+This software program is licensed subject to the BSD License, available at
+http://www.opensource.org/licenses/bsd-license.html.
+
+
+License notice for Unicode data
+-------------------------------
+
+http://www.unicode.org/copyright.html#License
+
+Copyright © 1991-2017 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Unicode data files and any associated documentation
+(the "Data Files") or Unicode software and any associated documentation
+(the "Software") to deal in the Data Files or Software
+without restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, and/or sell copies of
+the Data Files or Software, and to permit persons to whom the Data Files
+or Software are furnished to do so, provided that either
+(a) this copyright and permission notice appear with all copies
+of the Data Files or Software, or
+(b) this copyright and permission notice appear in associated
+Documentation.
+
+THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in these Data Files or Software without prior
+written authorization of the copyright holder.
+
+License notice for Zlib
+-----------------------
+
+https://github.com/madler/zlib
+http://zlib.net/zlib_license.html
+
+/* zlib.h -- interface of the 'zlib' general purpose compression library
+ version 1.2.11, January 15th, 2017
+
+ Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Jean-loup Gailly Mark Adler
+ jloup@gzip.org madler@alumni.caltech.edu
+
+*/
+
+License notice for Mono
+-------------------------------
+
+http://www.mono-project.com/docs/about-mono/
+
+Copyright (c) .NET Foundation Contributors
+
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the Software), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+License notice for International Organization for Standardization
+-----------------------------------------------------------------
+
+Portions (C) International Organization for Standardization 1986:
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+License notice for Intel
+------------------------
+
+"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for Xamarin and Novell
+-------------------------------------
+
+Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+Copyright (c) 2011 Novell, Inc (http://www.novell.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+Third party notice for W3C
+--------------------------
+
+"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE
+Status: This license takes effect 13 May, 2015.
+This work is being provided by the copyright holders under the following license.
+License
+By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions.
+Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications:
+The full text of this NOTICE in a location viewable to users of the redistributed or derivative work.
+Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included.
+Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)."
+Disclaimers
+THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT.
+The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders."
+
+License notice for Brotli
+--------------------------------------
+
+Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+compress_fragment.c:
+Copyright (c) 2011, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+decode_fuzzer.c:
+Copyright (c) 2015 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
\ No newline at end of file
diff --git a/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/lib/net45/Microsoft.DotNet.PlatformAbstractions.dll b/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/lib/net45/Microsoft.DotNet.PlatformAbstractions.dll
new file mode 100644
index 0000000..b60e8c3
Binary files /dev/null and b/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/lib/net45/Microsoft.DotNet.PlatformAbstractions.dll differ
diff --git a/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/lib/netstandard1.3/Microsoft.DotNet.PlatformAbstractions.dll b/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/lib/netstandard1.3/Microsoft.DotNet.PlatformAbstractions.dll
new file mode 100644
index 0000000..7d12a43
Binary files /dev/null and b/packages/Microsoft.DotNet.PlatformAbstractions.2.1.0/lib/netstandard1.3/Microsoft.DotNet.PlatformAbstractions.dll differ
diff --git a/packages/Microsoft.Extensions.DependencyModel.2.1.0/.signature.p7s b/packages/Microsoft.Extensions.DependencyModel.2.1.0/.signature.p7s
new file mode 100644
index 0000000..896d823
Binary files /dev/null and b/packages/Microsoft.Extensions.DependencyModel.2.1.0/.signature.p7s differ
diff --git a/packages/Microsoft.Extensions.DependencyModel.2.1.0/LICENSE.TXT b/packages/Microsoft.Extensions.DependencyModel.2.1.0/LICENSE.TXT
new file mode 100644
index 0000000..cd10d69
--- /dev/null
+++ b/packages/Microsoft.Extensions.DependencyModel.2.1.0/LICENSE.TXT
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 .NET Foundation
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/packages/Microsoft.Extensions.DependencyModel.2.1.0/Microsoft.Extensions.DependencyModel.2.1.0.nupkg b/packages/Microsoft.Extensions.DependencyModel.2.1.0/Microsoft.Extensions.DependencyModel.2.1.0.nupkg
new file mode 100644
index 0000000..4a2be5d
Binary files /dev/null and b/packages/Microsoft.Extensions.DependencyModel.2.1.0/Microsoft.Extensions.DependencyModel.2.1.0.nupkg differ
diff --git a/packages/Microsoft.Extensions.DependencyModel.2.1.0/THIRD-PARTY-NOTICES.TXT b/packages/Microsoft.Extensions.DependencyModel.2.1.0/THIRD-PARTY-NOTICES.TXT
new file mode 100644
index 0000000..edf8b3a
--- /dev/null
+++ b/packages/Microsoft.Extensions.DependencyModel.2.1.0/THIRD-PARTY-NOTICES.TXT
@@ -0,0 +1,562 @@
+.NET Core uses third-party libraries or other resources that may be
+distributed under licenses different than the .NET Core software.
+
+Attributions and licence notices for test cases originally authored by
+third parties can be found in the respective test directories.
+
+In the event that we accidentally failed to list a required notice, please
+bring it to our attention. Post an issue or email us:
+
+ dotnet@microsoft.com
+
+The attached notices are provided for information only.
+
+License notice for RFC 3492
+---------------------------
+
+Copyright (C) The Internet Society (2003). All Rights Reserved.
+
+This document and translations of it may be copied and furnished to
+others, and derivative works that comment on or otherwise explain it
+or assist in its implementation may be prepared, copied, published
+and distributed, in whole or in part, without restriction of any
+kind, provided that the above copyright notice and this paragraph are
+included on all such copies and derivative works. However, this
+document itself may not be modified in any way, such as by removing
+the copyright notice or references to the Internet Society or other
+Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for
+copyrights defined in the Internet Standards process must be
+followed, or as required to translate it into languages other than
+English.
+
+The limited permissions granted above are perpetual and will not be
+revoked by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an
+"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+License notice for The C++ REST SDK
+-----------------------------------
+
+C++ REST SDK
+
+The MIT License (MIT)
+
+Copyright (c) Microsoft Corporation
+
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+License notice for Algorithm from Internet Draft document "UUIDs and GUIDs"
+---------------------------------------------------------------------------
+
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
+Digital Equipment Corporation, Maynard, Mass.
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty: permission to use, copy,
+modify, and distribute this file for any purpose is hereby
+granted without fee, provided that the above copyright notices and
+this notice appears in all source code copies, and that none of
+the names of Open Software Foundation, Inc., Hewlett-Packard
+Company, or Digital Equipment Corporation be used in advertising
+or publicity pertaining to distribution of the software without
+specific, written prior permission. Neither Open Software
+Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital Equipment
+Corporation makes any representations about the suitability of
+this software for any purpose.
+
+Copyright(C) The Internet Society 1997. All Rights Reserved.
+
+This document and translations of it may be copied and furnished to others,
+and derivative works that comment on or otherwise explain it or assist in
+its implementation may be prepared, copied, published and distributed, in
+whole or in part, without restriction of any kind, provided that the above
+copyright notice and this paragraph are included on all such copies and
+derivative works.However, this document itself may not be modified in any
+way, such as by removing the copyright notice or references to the Internet
+Society or other Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for copyrights
+defined in the Internet Standards process must be followed, or as required
+to translate it into languages other than English.
+
+The limited permissions granted above are perpetual and will not be revoked
+by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an "AS IS"
+basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE
+DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY
+RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
+PARTICULAR PURPOSE.
+
+License notice for Algorithm from RFC 4122 -
+A Universally Unique IDentifier (UUID) URN Namespace
+----------------------------------------------------
+
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
+Digital Equipment Corporation, Maynard, Mass.
+Copyright (c) 1998 Microsoft.
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty: permission to use, copy,
+modify, and distribute this file for any purpose is hereby
+granted without fee, provided that the above copyright notices and
+this notice appears in all source code copies, and that none of
+the names of Open Software Foundation, Inc., Hewlett-Packard
+Company, Microsoft, or Digital Equipment Corporation be used in
+advertising or publicity pertaining to distribution of the software
+without specific, written prior permission. Neither Open Software
+Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital
+Equipment Corporation makes any representations about the
+suitability of this software for any purpose."
+
+License notice for The LLVM Compiler Infrastructure
+---------------------------------------------------
+
+Developed by:
+
+ LLVM Team
+
+ University of Illinois at Urbana-Champaign
+
+ http://llvm.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal with
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
+
+ * Neither the names of the LLVM Team, University of Illinois at
+ Urbana-Champaign, nor the names of its contributors may be used to
+ endorse or promote products derived from this Software without specific
+ prior written permission.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
+SOFTWARE.
+
+License notice for Bit Twiddling Hacks
+--------------------------------------
+
+Bit Twiddling Hacks
+
+By Sean Eron Anderson
+seander@cs.stanford.edu
+
+Individually, the code snippets here are in the public domain (unless otherwise
+noted) — feel free to use them however you please. The aggregate collection and
+descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are
+distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and
+without even the implied warranty of merchantability or fitness for a particular
+purpose.
+
+License notice for Bob Jenkins
+------------------------------
+
+By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this
+code any way you wish, private, educational, or commercial. It's free.
+
+License notice for Greg Parker
+------------------------------
+
+Greg Parker gparker@cs.stanford.edu December 2000
+This code is in the public domain and may be copied or modified without
+permission.
+
+License notice for libunwind8 based code
+----------------------------------------
+
+Copyright (c) 2003-2005 Hewlett-Packard Development Company, L.P.
+ Contributed by David Mosberger-Tang
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+License notice for the Printing Floating-Point Numbers
+/******************************************************************************
+ Copyright (c) 2014 Ryan Juckett
+ http://www.ryanjuckett.com/
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+
+ 3. This notice may not be removed or altered from any source
+ distribution.
+******************************************************************************/
+
+License notice for xxHash
+-------------------------
+
+xxHash Library
+Copyright (c) 2012-2014, Yann Collet
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice, this
+ list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for Slicing-by-8
+-------------------------------
+
+http://sourceforge.net/projects/slicing-by-8/
+
+Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved
+
+
+This software program is licensed subject to the BSD License, available at
+http://www.opensource.org/licenses/bsd-license.html.
+
+
+License notice for Unicode data
+-------------------------------
+
+http://www.unicode.org/copyright.html#License
+
+Copyright © 1991-2017 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in http://www.unicode.org/copyright.html.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Unicode data files and any associated documentation
+(the "Data Files") or Unicode software and any associated documentation
+(the "Software") to deal in the Data Files or Software
+without restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, and/or sell copies of
+the Data Files or Software, and to permit persons to whom the Data Files
+or Software are furnished to do so, provided that either
+(a) this copyright and permission notice appear with all copies
+of the Data Files or Software, or
+(b) this copyright and permission notice appear in associated
+Documentation.
+
+THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in these Data Files or Software without prior
+written authorization of the copyright holder.
+
+License notice for Zlib
+-----------------------
+
+https://github.com/madler/zlib
+http://zlib.net/zlib_license.html
+
+/* zlib.h -- interface of the 'zlib' general purpose compression library
+ version 1.2.11, January 15th, 2017
+
+ Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Jean-loup Gailly Mark Adler
+ jloup@gzip.org madler@alumni.caltech.edu
+
+*/
+
+License notice for Mono
+-------------------------------
+
+http://www.mono-project.com/docs/about-mono/
+
+Copyright (c) .NET Foundation Contributors
+
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the Software), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+License notice for International Organization for Standardization
+-----------------------------------------------------------------
+
+Portions (C) International Organization for Standardization 1986:
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+License notice for Intel
+------------------------
+
+"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for Xamarin and Novell
+-------------------------------------
+
+Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+Copyright (c) 2011 Novell, Inc (http://www.novell.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+Third party notice for W3C
+--------------------------
+
+"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE
+Status: This license takes effect 13 May, 2015.
+This work is being provided by the copyright holders under the following license.
+License
+By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions.
+Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications:
+The full text of this NOTICE in a location viewable to users of the redistributed or derivative work.
+Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included.
+Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)."
+Disclaimers
+THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT.
+The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders."
+
+License notice for Brotli
+--------------------------------------
+
+Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+compress_fragment.c:
+Copyright (c) 2011, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+decode_fuzzer.c:
+Copyright (c) 2015 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
\ No newline at end of file
diff --git a/packages/Microsoft.Extensions.DependencyModel.2.1.0/lib/net451/Microsoft.Extensions.DependencyModel.dll b/packages/Microsoft.Extensions.DependencyModel.2.1.0/lib/net451/Microsoft.Extensions.DependencyModel.dll
new file mode 100644
index 0000000..68f3631
Binary files /dev/null and b/packages/Microsoft.Extensions.DependencyModel.2.1.0/lib/net451/Microsoft.Extensions.DependencyModel.dll differ
diff --git a/packages/Microsoft.Extensions.DependencyModel.2.1.0/lib/netstandard1.3/Microsoft.Extensions.DependencyModel.dll b/packages/Microsoft.Extensions.DependencyModel.2.1.0/lib/netstandard1.3/Microsoft.Extensions.DependencyModel.dll
new file mode 100644
index 0000000..e9de8e7
Binary files /dev/null and b/packages/Microsoft.Extensions.DependencyModel.2.1.0/lib/netstandard1.3/Microsoft.Extensions.DependencyModel.dll differ
diff --git a/packages/Microsoft.Extensions.DependencyModel.2.1.0/lib/netstandard1.6/Microsoft.Extensions.DependencyModel.dll b/packages/Microsoft.Extensions.DependencyModel.2.1.0/lib/netstandard1.6/Microsoft.Extensions.DependencyModel.dll
new file mode 100644
index 0000000..1f35cfc
Binary files /dev/null and b/packages/Microsoft.Extensions.DependencyModel.2.1.0/lib/netstandard1.6/Microsoft.Extensions.DependencyModel.dll differ
diff --git a/packages/Newtonsoft.Json.11.0.2/.signature.p7s b/packages/Newtonsoft.Json.11.0.2/.signature.p7s
new file mode 100644
index 0000000..e3a81aa
Binary files /dev/null and b/packages/Newtonsoft.Json.11.0.2/.signature.p7s differ
diff --git a/packages/Newtonsoft.Json.11.0.2/LICENSE.md b/packages/Newtonsoft.Json.11.0.2/LICENSE.md
new file mode 100644
index 0000000..dfaadbe
--- /dev/null
+++ b/packages/Newtonsoft.Json.11.0.2/LICENSE.md
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2007 James Newton-King
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/packages/Newtonsoft.Json.11.0.2/Newtonsoft.Json.11.0.2.nupkg b/packages/Newtonsoft.Json.11.0.2/Newtonsoft.Json.11.0.2.nupkg
new file mode 100644
index 0000000..86b9682
Binary files /dev/null and b/packages/Newtonsoft.Json.11.0.2/Newtonsoft.Json.11.0.2.nupkg differ
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/net20/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.11.0.2/lib/net20/Newtonsoft.Json.dll
new file mode 100644
index 0000000..d2b249a
Binary files /dev/null and b/packages/Newtonsoft.Json.11.0.2/lib/net20/Newtonsoft.Json.dll differ
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/net20/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.11.0.2/lib/net20/Newtonsoft.Json.xml
new file mode 100644
index 0000000..f0307d4
--- /dev/null
+++ b/packages/Newtonsoft.Json.11.0.2/lib/net20/Newtonsoft.Json.xml
@@ -0,0 +1,9967 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false.
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a parameterized constructor.
+
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Creates a custom object.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z").
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+ The default value is false.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether integer values are allowed when deserializing.
+ The default value is true.
+
+ true if integers are allowed when deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from Unix epoch time
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements.
+
+ The name of the deserialized root element.
+
+
+
+ Gets or sets a flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attribute is written to the XML; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ true if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that it is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and set members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent an array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, when returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, when returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items.
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between .NET types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the to a JSON string.
+
+ The node to serialize.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false.
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false.
+
+
+
+ Converts an object to and from JSON.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read. If there is no existing value then null will be used.
+ The existing value has a value.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+ Parameter list to use when constructing the . Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false. The default is true.
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false. The default is true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the used when serializing the property's collection items.
+
+ The collection's items .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ A read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader is in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the source should be closed when this reader is closed.
+
+
+ true to close the source when this reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false.
+ The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Gets or sets how time zones are handled when reading JSON.
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Gets or sets how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads the next JSON token from the source.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+ A flag indicating whether the position index inside an array should be updated.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the source is also closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and to require that the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+ The default value is .
+
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) are handled.
+ The default value is .
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+ Null value handling.
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The containing the JSON data to read.
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many s to write for each level in the hierarchy when is set to .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Initializes a new instance of the class using the specified .
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a read method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+
+ Represents a reader that provides validation.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Sets an event handler for receiving schema validation errors.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+
+ Initializes a new instance of the class that
+ validates the content returned from the given .
+
+ The to read from while validating.
+
+
+
+ Gets or sets the schema.
+
+ The schema.
+
+
+
+ Gets the used to construct this .
+
+ The specified in the constructor.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+
+ A [] or null if the next JSON token is null.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets a value indicating whether the destination should be closed when this writer is closed.
+
+
+ true to close the destination when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed.
+
+
+ true to auto-complete the JSON when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Gets or sets a value indicating how JSON text output should be formatted.
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+
+
+
+
+ Gets or sets how time zones are handled when writing JSON text.
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the destination and also flushes the destination.
+
+
+
+
+ Closes this writer.
+ If is set to true, the destination is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the .
+
+ The being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while writing JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A of that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+
+
+
+ Removes all items from the .
+
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the list changes or an item in the list changes.
+
+
+
+
+ Occurs before an item is added to the collection.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An of containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An of containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates a that can be used to add tokens to the .
+
+ A that is ready to have content written to it.
+
+
+
+ Replaces the child nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens.
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of of this object's properties.
+
+ An of of this object's properties.
+
+
+
+ Gets a the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets a of of this object's property values.
+
+ A of of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Determines whether the JSON object has the specified property name.
+
+ Name of the property.
+ true if the JSON object has the specified property name; otherwise, false.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries to get the with the specified property name.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a view of a .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ When overridden in a derived class, returns whether resetting an object changes its value.
+
+
+ true if resetting the component changes its value; otherwise, false.
+
+ The component to test for reset capability.
+
+
+
+ When overridden in a derived class, gets the current value of the property on a component.
+
+
+ The value of a property for a given component.
+
+ The component with the property for which to retrieve the value.
+
+
+
+ When overridden in a derived class, resets the value for this property of the component to the default value.
+
+ The component with the property value that is to be reset to the default value.
+
+
+
+ When overridden in a derived class, sets the value of the component to a different value.
+
+ The component with the property value that is to be set.
+ The new value.
+
+
+
+ When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted.
+
+
+ true if the property should be persisted; otherwise, false.
+
+ The component with the property to be examined for persistence.
+
+
+
+ When overridden in a derived class, gets the type of the component this property is bound to.
+
+
+ A that represents the type of component this property is bound to.
+ When the or
+
+ methods are invoked, the object specified might be an instance of this type.
+
+
+
+
+ When overridden in a derived class, gets a value indicating whether this property is read-only.
+
+
+ true if the property is read-only; otherwise, false.
+
+
+
+
+ When overridden in a derived class, gets the type of the property.
+
+
+ A that represents the type of the property.
+
+
+
+
+ Gets the hash code for the name of the member.
+
+
+
+ The hash code for the name of the member.
+
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+
+ The JSON line info handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output should be formatted.
+ A collection of s which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates a for this token.
+
+ A that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object.
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An of that contains the selected elements.
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being written.
+
+ The token being written.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the JSON is auto-completed.
+
+
+ Setting to true has no additional effect, since the underlying is a type that cannot be closed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will be raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of s which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not of the same type as this instance.
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement .
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+
+ Contains the JSON schema extension methods.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ When this method returns, contains any error messages generated while validating.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ The validation event handler.
+
+
+
+
+ An in-memory representation of a JSON Schema.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the id.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ Gets or sets whether the object is required.
+
+
+
+
+ Gets or sets whether the object is read-only.
+
+
+
+
+ Gets or sets whether the object is visible to users.
+
+
+
+
+ Gets or sets whether the object is transient.
+
+
+
+
+ Gets or sets the description of the object.
+
+
+
+
+ Gets or sets the types of values allowed by the object.
+
+ The type.
+
+
+
+ Gets or sets the pattern.
+
+ The pattern.
+
+
+
+ Gets or sets the minimum length.
+
+ The minimum length.
+
+
+
+ Gets or sets the maximum length.
+
+ The maximum length.
+
+
+
+ Gets or sets a number that the value should be divisible by.
+
+ A number that the value should be divisible by.
+
+
+
+ Gets or sets the minimum.
+
+ The minimum.
+
+
+
+ Gets or sets the maximum.
+
+ The maximum.
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+
+
+ Gets or sets the minimum number of items.
+
+ The minimum number of items.
+
+
+
+ Gets or sets the maximum number of items.
+
+ The maximum number of items.
+
+
+
+ Gets or sets the of items.
+
+ The of items.
+
+
+
+ Gets or sets a value indicating whether items in an array are validated using the instance at their array position from .
+
+
+ true if items are validated using their array position; otherwise, false.
+
+
+
+
+ Gets or sets the of additional items.
+
+ The of additional items.
+
+
+
+ Gets or sets a value indicating whether additional items are allowed.
+
+
+ true if additional items are allowed; otherwise, false.
+
+
+
+
+ Gets or sets whether the array items must be unique.
+
+
+
+
+ Gets or sets the of properties.
+
+ The of properties.
+
+
+
+ Gets or sets the of additional properties.
+
+ The of additional properties.
+
+
+
+ Gets or sets the pattern properties.
+
+ The pattern properties.
+
+
+
+ Gets or sets a value indicating whether additional properties are allowed.
+
+
+ true if additional properties are allowed; otherwise, false.
+
+
+
+
+ Gets or sets the required property if this property is present.
+
+ The required property if this property is present.
+
+
+
+ Gets or sets the a collection of valid enum values allowed.
+
+ A collection of valid enum values allowed.
+
+
+
+ Gets or sets disallowed types.
+
+ The disallowed types.
+
+
+
+ Gets or sets the default value.
+
+ The default value.
+
+
+
+ Gets or sets the collection of that this schema extends.
+
+ The collection of that this schema extends.
+
+
+
+ Gets or sets the format.
+
+ The format.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The object representing the JSON Schema.
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The to use when resolving schema references.
+ The object representing the JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema.
+
+ A that contains JSON Schema.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema using the specified .
+
+ A that contains JSON Schema.
+ The resolver.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Writes this schema to a .
+
+ A into which this method will write.
+
+
+
+ Writes this schema to a using the specified .
+
+ A into which this method will write.
+ The resolver used.
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+
+ Returns detailed information about the schema exception.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+
+ Generates a from a specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets how undefined schemas are handled by the serializer.
+
+
+
+
+ Gets or sets the contract resolver.
+
+ The contract resolver.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+
+ Resolves from an id.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the loaded schemas.
+
+ The loaded schemas.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a for the specified reference.
+
+ The id.
+ A for the specified reference.
+
+
+
+
+ The value types allowed by the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ No type specified.
+
+
+
+
+ String type.
+
+
+
+
+ Float type.
+
+
+
+
+ Integer type.
+
+
+
+
+ Boolean type.
+
+
+
+
+ Object type.
+
+
+
+
+ Array type.
+
+
+
+
+ Null type.
+
+
+
+
+ Any type.
+
+
+
+
+
+ Specifies undefined schema Id handling options for the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Do not infer a schema Id.
+
+
+
+
+ Use the .NET type name as the schema Id.
+
+
+
+
+ Use the assembly qualified .NET type name as the schema Id.
+
+
+
+
+
+ Returns detailed information related to the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the associated with the validation error.
+
+ The JsonSchemaException associated with the validation error.
+
+
+
+ Gets the path of the JSON location where the validation error occurred.
+
+ The path of the JSON location where the validation error occurred.
+
+
+
+ Gets the text description corresponding to the validation error.
+
+ The text description.
+
+
+
+
+ Represents the callback method that will handle JSON schema validation events and the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ A camel case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false.
+
+
+
+
+ Gets or sets the default members search flags.
+
+ The default members search flags.
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types.
+
+
+ true if the interface will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types.
+
+
+ true if the attribute will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types.
+
+
+ true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types.
+
+
+ true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized.
+
+ The naming strategy used to resolve how property names and dictionary keys are serialized.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the name of the extension data. By default no changes are made to extension data names.
+
+ Name of the extension data.
+ Resolved name of the extension data.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default naming strategy. Property names and dictionary keys are unchanged.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer that writes to the application's instances.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that was resolved from the reference.
+
+
+
+ Gets the reference for the specified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false.
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false.
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non-public.
+
+ true if the default object creator is non-public; otherwise, false.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object constructor.
+
+ The object constructor.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Gets or sets the extension data name resolver.
+
+ The extension data name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes precedence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false.
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false.
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the type described by the argument.
+
+ The type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ A base class for resolving how property names and dictionary keys are serialized.
+
+
+
+
+ A flag indicating whether dictionary keys should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether extension data names should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether explicitly specified property names,
+ e.g. a property name customized with a , should be processed.
+ Defaults to false.
+
+
+
+
+ Gets the serialized name for a given property name.
+
+ The initial property name.
+ A flag indicating whether the property has had a name explicitly specified.
+ The serialized property name.
+
+
+
+ Gets the serialized name for a given extension data name.
+
+ The initial extension data name.
+ The serialized extension data name.
+
+
+
+ Gets the serialized key for a given dictionary key.
+
+ The initial dictionary key.
+ The serialized dictionary key.
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ A snake case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+ Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON
+ you must specify a root type object with
+ or .
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false.
+
+
+
+
+ Adds the elements of the specified collection to the specified generic .
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper class for serializing immutable collections.
+ Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed
+ https://github.com/JamesNK/Newtonsoft.Json/issues/652
+
+
+
+
+ Provides a set of static (Shared in Visual Basic) methods for
+ querying objects that implement .
+
+
+
+
+ Returns the input typed as .
+
+
+
+
+ Returns an empty that has the
+ specified type argument.
+
+
+
+
+ Converts the elements of an to the
+ specified type.
+
+
+
+
+ Filters the elements of an based on a specified type.
+
+
+
+
+ Generates a sequence of integral numbers within a specified range.
+
+ The value of the first integer in the sequence.
+ The number of sequential integers to generate.
+
+
+
+ Generates a sequence that contains one repeated value.
+
+
+
+
+ Filters a sequence of values based on a predicate.
+
+
+
+
+ Filters a sequence of values based on a predicate.
+ Each element's index is used in the logic of the predicate function.
+
+
+
+
+ Projects each element of a sequence into a new form.
+
+
+
+
+ Projects each element of a sequence into a new form by
+ incorporating the element's index.
+
+
+
+
+ Projects each element of a sequence to an
+ and flattens the resulting sequences into one sequence.
+
+
+
+
+ Projects each element of a sequence to an ,
+ and flattens the resulting sequences into one sequence. The
+ index of each source element is used in the projected form of
+ that element.
+
+
+
+
+ Projects each element of a sequence to an ,
+ flattens the resulting sequences into one sequence, and invokes
+ a result selector function on each element therein.
+
+
+
+
+ Projects each element of a sequence to an ,
+ flattens the resulting sequences into one sequence, and invokes
+ a result selector function on each element therein. The index of
+ each source element is used in the intermediate projected form
+ of that element.
+
+
+
+
+ Returns elements from a sequence as long as a specified condition is true.
+
+
+
+
+ Returns elements from a sequence as long as a specified condition is true.
+ The element's index is used in the logic of the predicate function.
+
+
+
+
+ Base implementation of First operator.
+
+
+
+
+ Returns the first element of a sequence.
+
+
+
+
+ Returns the first element in a sequence that satisfies a specified condition.
+
+
+
+
+ Returns the first element of a sequence, or a default value if
+ the sequence contains no elements.
+
+
+
+
+ Returns the first element of the sequence that satisfies a
+ condition or a default value if no such element is found.
+
+
+
+
+ Base implementation of Last operator.
+
+
+
+
+ Returns the last element of a sequence.
+
+
+
+
+ Returns the last element of a sequence that satisfies a
+ specified condition.
+
+
+
+
+ Returns the last element of a sequence, or a default value if
+ the sequence contains no elements.
+
+
+
+
+ Returns the last element of a sequence that satisfies a
+ condition or a default value if no such element is found.
+
+
+
+
+ Base implementation of Single operator.
+
+
+
+
+ Returns the only element of a sequence, and throws an exception
+ if there is not exactly one element in the sequence.
+
+
+
+
+ Returns the only element of a sequence that satisfies a
+ specified condition, and throws an exception if more than one
+ such element exists.
+
+
+
+
+ Returns the only element of a sequence, or a default value if
+ the sequence is empty; this method throws an exception if there
+ is more than one element in the sequence.
+
+
+
+
+ Returns the only element of a sequence that satisfies a
+ specified condition or a default value if no such element
+ exists; this method throws an exception if more than one element
+ satisfies the condition.
+
+
+
+
+ Returns the element at a specified index in a sequence.
+
+
+
+
+ Returns the element at a specified index in a sequence or a
+ default value if the index is out of range.
+
+
+
+
+ Inverts the order of the elements in a sequence.
+
+
+
+
+ Returns a specified number of contiguous elements from the start
+ of a sequence.
+
+
+
+
+ Bypasses a specified number of elements in a sequence and then
+ returns the remaining elements.
+
+
+
+
+ Bypasses elements in a sequence as long as a specified condition
+ is true and then returns the remaining elements.
+
+
+
+
+ Bypasses elements in a sequence as long as a specified condition
+ is true and then returns the remaining elements. The element's
+ index is used in the logic of the predicate function.
+
+
+
+
+ Returns the number of elements in a sequence.
+
+
+
+
+ Returns a number that represents how many elements in the
+ specified sequence satisfy a condition.
+
+
+
+
+ Returns a that represents the total number
+ of elements in a sequence.
+
+
+
+
+ Returns a that represents how many elements
+ in a sequence satisfy a condition.
+
+
+
+
+ Concatenates two sequences.
+
+
+
+
+ Creates a from an .
+
+
+
+
+ Creates an array from an .
+
+
+
+
+ Returns distinct elements from a sequence by using the default
+ equality comparer to compare values.
+
+
+
+
+ Returns distinct elements from a sequence by using a specified
+ to compare values.
+
+
+
+
+ Creates a from an
+ according to a specified key
+ selector function.
+
+
+
+
+ Creates a from an
+ according to a specified key
+ selector function and a key comparer.
+
+
+
+
+ Creates a from an
+ according to specified key
+ and element selector functions.
+
+
+
+
+ Creates a from an
+ according to a specified key
+ selector function, a comparer and an element selector function.
+
+
+
+
+ Groups the elements of a sequence according to a specified key
+ selector function.
+
+
+
+
+ Groups the elements of a sequence according to a specified key
+ selector function and compares the keys by using a specified
+ comparer.
+
+
+
+
+ Groups the elements of a sequence according to a specified key
+ selector function and projects the elements for each group by
+ using a specified function.
+
+
+
+
+ Groups the elements of a sequence according to a specified key
+ selector function and creates a result value from each group and
+ its key.
+
+
+
+
+ Groups the elements of a sequence according to a key selector
+ function. The keys are compared by using a comparer and each
+ group's elements are projected by using a specified function.
+
+
+
+
+ Groups the elements of a sequence according to a specified key
+ selector function and creates a result value from each group and
+ its key. The elements of each group are projected by using a
+ specified function.
+
+
+
+
+ Groups the elements of a sequence according to a specified key
+ selector function and creates a result value from each group and
+ its key. The keys are compared by using a specified comparer.
+
+
+
+
+ Groups the elements of a sequence according to a specified key
+ selector function and creates a result value from each group and
+ its key. Key values are compared by using a specified comparer,
+ and the elements of each group are projected by using a
+ specified function.
+
+
+
+
+ Applies an accumulator function over a sequence.
+
+
+
+
+ Applies an accumulator function over a sequence. The specified
+ seed value is used as the initial accumulator value.
+
+
+
+
+ Applies an accumulator function over a sequence. The specified
+ seed value is used as the initial accumulator value, and the
+ specified function is used to select the result value.
+
+
+
+
+ Produces the set union of two sequences by using the default
+ equality comparer.
+
+
+
+
+ Produces the set union of two sequences by using a specified
+ .
+
+
+
+
+ Returns the elements of the specified sequence or the type
+ parameter's default value in a singleton collection if the
+ sequence is empty.
+
+
+
+
+ Returns the elements of the specified sequence or the specified
+ value in a singleton collection if the sequence is empty.
+
+
+
+
+ Determines whether all elements of a sequence satisfy a condition.
+
+
+
+
+ Determines whether a sequence contains any elements.
+
+
+
+
+ Determines whether any element of a sequence satisfies a
+ condition.
+
+
+
+
+ Determines whether a sequence contains a specified element by
+ using the default equality comparer.
+
+
+
+
+ Determines whether a sequence contains a specified element by
+ using a specified .
+
+
+
+
+ Determines whether two sequences are equal by comparing the
+ elements by using the default equality comparer for their type.
+
+
+
+
+ Determines whether two sequences are equal by comparing their
+ elements by using a specified .
+
+
+
+
+ Base implementation for Min/Max operator.
+
+
+
+
+ Base implementation for Min/Max operator for nullable types.
+
+
+
+
+ Returns the minimum value in a generic sequence.
+
+
+
+
+ Invokes a transform function on each element of a generic
+ sequence and returns the minimum resulting value.
+
+
+
+
+ Returns the maximum value in a generic sequence.
+
+
+
+
+ Invokes a transform function on each element of a generic
+ sequence and returns the maximum resulting value.
+
+
+
+
+ Makes an enumerator seen as enumerable once more.
+
+
+ The supplied enumerator must have been started. The first element
+ returned is the element the enumerator was on when passed in.
+ DO NOT use this method if the caller must be a generator. It is
+ mostly safe among aggregate operations.
+
+
+
+
+ Sorts the elements of a sequence in ascending order according to a key.
+
+
+
+
+ Sorts the elements of a sequence in ascending order by using a
+ specified comparer.
+
+
+
+
+ Sorts the elements of a sequence in descending order according to a key.
+
+
+
+
+ Sorts the elements of a sequence in descending order by using a
+ specified comparer.
+
+
+
+
+ Performs a subsequent ordering of the elements in a sequence in
+ ascending order according to a key.
+
+
+
+
+ Performs a subsequent ordering of the elements in a sequence in
+ ascending order by using a specified comparer.
+
+
+
+
+ Performs a subsequent ordering of the elements in a sequence in
+ descending order, according to a key.
+
+
+
+
+ Performs a subsequent ordering of the elements in a sequence in
+ descending order by using a specified comparer.
+
+
+
+
+ Base implementation for Intersect and Except operators.
+
+
+
+
+ Produces the set intersection of two sequences by using the
+ default equality comparer to compare values.
+
+
+
+
+ Produces the set intersection of two sequences by using the
+ specified to compare values.
+
+
+
+
+ Produces the set difference of two sequences by using the
+ default equality comparer to compare values.
+
+
+
+
+ Produces the set difference of two sequences by using the
+ specified to compare values.
+
+
+
+
+ Creates a from an
+ according to a specified key
+ selector function.
+
+
+
+
+ Creates a from an
+ according to a specified key
+ selector function and key comparer.
+
+
+
+
+ Creates a from an
+ according to specified key
+ selector and element selector functions.
+
+
+
+
+ Creates a from an
+ according to a specified key
+ selector function, a comparer, and an element selector function.
+
+
+
+
+ Correlates the elements of two sequences based on matching keys.
+ The default equality comparer is used to compare keys.
+
+
+
+
+ Correlates the elements of two sequences based on matching keys.
+ The default equality comparer is used to compare keys. A
+ specified is used to compare keys.
+
+
+
+
+ Correlates the elements of two sequences based on equality of
+ keys and groups the results. The default equality comparer is
+ used to compare keys.
+
+
+
+
+ Correlates the elements of two sequences based on equality of
+ keys and groups the results. The default equality comparer is
+ used to compare keys. A specified
+ is used to compare keys.
+
+
+
+
+ Computes the sum of a sequence of values.
+
+
+
+
+ Computes the sum of a sequence of
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of values.
+
+
+
+
+ Computes the average of a sequence of values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Computes the sum of a sequence of nullable values.
+
+
+
+
+ Computes the sum of a sequence of nullable
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of nullable values.
+
+
+
+
+ Computes the average of a sequence of nullable values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Returns the minimum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the minimum nullable value.
+
+
+
+
+ Returns the maximum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the maximum nullable value.
+
+
+
+
+ Computes the sum of a sequence of values.
+
+
+
+
+ Computes the sum of a sequence of
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of values.
+
+
+
+
+ Computes the average of a sequence of values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Computes the sum of a sequence of nullable values.
+
+
+
+
+ Computes the sum of a sequence of nullable
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of nullable values.
+
+
+
+
+ Computes the average of a sequence of nullable values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Returns the minimum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the minimum nullable value.
+
+
+
+
+ Returns the maximum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the maximum nullable value.
+
+
+
+
+ Computes the sum of a sequence of nullable values.
+
+
+
+
+ Computes the sum of a sequence of
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of values.
+
+
+
+
+ Computes the average of a sequence of values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Computes the sum of a sequence of nullable values.
+
+
+
+
+ Computes the sum of a sequence of nullable
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of nullable values.
+
+
+
+
+ Computes the average of a sequence of nullable values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Returns the minimum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the minimum nullable value.
+
+
+
+
+ Returns the maximum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the maximum nullable value.
+
+
+
+
+ Computes the sum of a sequence of values.
+
+
+
+
+ Computes the sum of a sequence of
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of values.
+
+
+
+
+ Computes the average of a sequence of values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Computes the sum of a sequence of nullable values.
+
+
+
+
+ Computes the sum of a sequence of nullable
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of nullable values.
+
+
+
+
+ Computes the average of a sequence of nullable values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Returns the minimum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the minimum nullable value.
+
+
+
+
+ Returns the maximum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the maximum nullable value.
+
+
+
+
+ Computes the sum of a sequence of values.
+
+
+
+
+ Computes the sum of a sequence of
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of values.
+
+
+
+
+ Computes the average of a sequence of values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Computes the sum of a sequence of nullable values.
+
+
+
+
+ Computes the sum of a sequence of nullable
+ values that are obtained by invoking a transform function on
+ each element of the input sequence.
+
+
+
+
+ Computes the average of a sequence of nullable values.
+
+
+
+
+ Computes the average of a sequence of nullable values
+ that are obtained by invoking a transform function on each
+ element of the input sequence.
+
+
+
+
+ Returns the minimum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the minimum nullable value.
+
+
+
+
+ Returns the maximum value in a sequence of nullable
+ values.
+
+
+
+
+ Invokes a transform function on each element of a sequence and
+ returns the maximum nullable value.
+
+
+
+
+ Represents a collection of objects that have a common key.
+
+
+
+
+ Gets the key of the .
+
+
+
+
+ Defines an indexer, size property, and Boolean search method for
+ data structures that map keys to
+ sequences of values.
+
+
+
+
+ Represents a sorted sequence.
+
+
+
+
+ Performs a subsequent ordering on the elements of an
+ according to a key.
+
+
+
+
+ Represents a collection of keys each mapped to one or more values.
+
+
+
+
+ Gets the number of key/value collection pairs in the .
+
+
+
+
+ Gets the collection of values indexed by the specified key.
+
+
+
+
+ Determines whether a specified key is in the .
+
+
+
+
+ Applies a transform function to each key and its associated
+ values and returns the results.
+
+
+
+
+ Returns a generic enumerator that iterates through the .
+
+
+
+
+ See issue #11
+ for why this method is needed and cannot be expressed as a
+ lambda at the call site.
+
+
+
+
+ See issue #11
+ for why this method is needed and cannot be expressed as a
+ lambda at the call site.
+
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the member is an indexed property.
+
+ The member.
+
+ true if the member is an indexed property; otherwise, false.
+
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false.
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false.
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false.
+
+
+
+
+ Builds a string. Unlike this class lets you reuse its internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false.
+
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls result in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ An array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+
+ This attribute allows us to define extension methods without
+ requiring .NET Framework 3.5. For more information, see the section,
+ Extension Methods in .NET Framework 2.0 Apps,
+ of Basic Instincts: Extension Methods
+ column in MSDN Magazine,
+ issue Nov 2007.
+
+
+
+
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/net35/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.11.0.2/lib/net35/Newtonsoft.Json.dll
new file mode 100644
index 0000000..b2d3805
Binary files /dev/null and b/packages/Newtonsoft.Json.11.0.2/lib/net35/Newtonsoft.Json.dll differ
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/net35/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.11.0.2/lib/net35/Newtonsoft.Json.xml
new file mode 100644
index 0000000..26949bf
--- /dev/null
+++ b/packages/Newtonsoft.Json.11.0.2/lib/net35/Newtonsoft.Json.xml
@@ -0,0 +1,9096 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false.
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a parameterized constructor.
+
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Creates a custom object.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an Entity Framework to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z").
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+ The default value is false.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether integer values are allowed when deserializing.
+ The default value is true.
+
+ true if integers are allowed when deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from Unix epoch time
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements.
+
+ The name of the deserialized root element.
+
+
+
+ Gets or sets a flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attribute is written to the XML; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ true if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that it is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and set members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent an array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, when returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, when returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items.
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between .NET types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the to a JSON string.
+
+ The node to serialize.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false.
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false.
+
+
+
+ Converts an object to and from JSON.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read. If there is no existing value then null will be used.
+ The existing value has a value.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+ Parameter list to use when constructing the . Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false. The default is true.
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false. The default is true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the used when serializing the property's collection items.
+
+ The collection's items .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ A read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader is in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the source should be closed when this reader is closed.
+
+
+ true to close the source when this reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false.
+ The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Gets or sets how time zones are handled when reading JSON.
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Gets or sets how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads the next JSON token from the source.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+ A flag indicating whether the position index inside an array should be updated.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the source is also closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and to require that the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+ The default value is .
+
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) are handled.
+ The default value is .
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+ Null value handling.
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The containing the JSON data to read.
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many s to write for each level in the hierarchy when is set to .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Initializes a new instance of the class using the specified .
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a read method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+
+ Represents a reader that provides validation.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Sets an event handler for receiving schema validation errors.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+
+ Initializes a new instance of the class that
+ validates the content returned from the given .
+
+ The to read from while validating.
+
+
+
+ Gets or sets the schema.
+
+ The schema.
+
+
+
+ Gets the used to construct this .
+
+ The specified in the constructor.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+
+ A [] or null if the next JSON token is null.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets a value indicating whether the destination should be closed when this writer is closed.
+
+
+ true to close the destination when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed.
+
+
+ true to auto-complete the JSON when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Gets or sets a value indicating how JSON text output should be formatted.
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+
+
+
+
+ Gets or sets how time zones are handled when writing JSON text.
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the destination and also flushes the destination.
+
+
+
+
+ Closes this writer.
+ If is set to true, the destination is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the .
+
+ The being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while writing JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A of that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+
+
+
+ Removes all items from the .
+
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the list changes or an item in the list changes.
+
+
+
+
+ Occurs before an item is added to the collection.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An of containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An of containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates a that can be used to add tokens to the .
+
+ A that is ready to have content written to it.
+
+
+
+ Replaces the child nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens.
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Occurs when a property value is changing.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of of this object's properties.
+
+ An of of this object's properties.
+
+
+
+ Gets a the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets a of of this object's property values.
+
+ A of of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Determines whether the JSON object has the specified property name.
+
+ Name of the property.
+ true if the JSON object has the specified property name; otherwise, false.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries to get the with the specified property name.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a view of a .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ When overridden in a derived class, returns whether resetting an object changes its value.
+
+
+ true if resetting the component changes its value; otherwise, false.
+
+ The component to test for reset capability.
+
+
+
+ When overridden in a derived class, gets the current value of the property on a component.
+
+
+ The value of a property for a given component.
+
+ The component with the property for which to retrieve the value.
+
+
+
+ When overridden in a derived class, resets the value for this property of the component to the default value.
+
+ The component with the property value that is to be reset to the default value.
+
+
+
+ When overridden in a derived class, sets the value of the component to a different value.
+
+ The component with the property value that is to be set.
+ The new value.
+
+
+
+ When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted.
+
+
+ true if the property should be persisted; otherwise, false.
+
+ The component with the property to be examined for persistence.
+
+
+
+ When overridden in a derived class, gets the type of the component this property is bound to.
+
+
+ A that represents the type of component this property is bound to.
+ When the or
+
+ methods are invoked, the object specified might be an instance of this type.
+
+
+
+
+ When overridden in a derived class, gets a value indicating whether this property is read-only.
+
+
+ true if the property is read-only; otherwise, false.
+
+
+
+
+ When overridden in a derived class, gets the type of the property.
+
+
+ A that represents the type of the property.
+
+
+
+
+ Gets the hash code for the name of the member.
+
+
+
+ The hash code for the name of the member.
+
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+
+ The JSON line info handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output should be formatted.
+ A collection of s which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates a for this token.
+
+ A that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object.
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An of that contains the selected elements.
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being written.
+
+ The token being written.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the JSON is auto-completed.
+
+
+ Setting to true has no additional effect, since the underlying is a type that cannot be closed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will be raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of s which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not of the same type as this instance.
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement .
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+
+ Contains the JSON schema extension methods.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ When this method returns, contains any error messages generated while validating.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ The validation event handler.
+
+
+
+
+ An in-memory representation of a JSON Schema.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the id.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ Gets or sets whether the object is required.
+
+
+
+
+ Gets or sets whether the object is read-only.
+
+
+
+
+ Gets or sets whether the object is visible to users.
+
+
+
+
+ Gets or sets whether the object is transient.
+
+
+
+
+ Gets or sets the description of the object.
+
+
+
+
+ Gets or sets the types of values allowed by the object.
+
+ The type.
+
+
+
+ Gets or sets the pattern.
+
+ The pattern.
+
+
+
+ Gets or sets the minimum length.
+
+ The minimum length.
+
+
+
+ Gets or sets the maximum length.
+
+ The maximum length.
+
+
+
+ Gets or sets a number that the value should be divisible by.
+
+ A number that the value should be divisible by.
+
+
+
+ Gets or sets the minimum.
+
+ The minimum.
+
+
+
+ Gets or sets the maximum.
+
+ The maximum.
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+
+
+ Gets or sets the minimum number of items.
+
+ The minimum number of items.
+
+
+
+ Gets or sets the maximum number of items.
+
+ The maximum number of items.
+
+
+
+ Gets or sets the of items.
+
+ The of items.
+
+
+
+ Gets or sets a value indicating whether items in an array are validated using the instance at their array position from .
+
+
+ true if items are validated using their array position; otherwise, false.
+
+
+
+
+ Gets or sets the of additional items.
+
+ The of additional items.
+
+
+
+ Gets or sets a value indicating whether additional items are allowed.
+
+
+ true if additional items are allowed; otherwise, false.
+
+
+
+
+ Gets or sets whether the array items must be unique.
+
+
+
+
+ Gets or sets the of properties.
+
+ The of properties.
+
+
+
+ Gets or sets the of additional properties.
+
+ The of additional properties.
+
+
+
+ Gets or sets the pattern properties.
+
+ The pattern properties.
+
+
+
+ Gets or sets a value indicating whether additional properties are allowed.
+
+
+ true if additional properties are allowed; otherwise, false.
+
+
+
+
+ Gets or sets the required property if this property is present.
+
+ The required property if this property is present.
+
+
+
+ Gets or sets the a collection of valid enum values allowed.
+
+ A collection of valid enum values allowed.
+
+
+
+ Gets or sets disallowed types.
+
+ The disallowed types.
+
+
+
+ Gets or sets the default value.
+
+ The default value.
+
+
+
+ Gets or sets the collection of that this schema extends.
+
+ The collection of that this schema extends.
+
+
+
+ Gets or sets the format.
+
+ The format.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The object representing the JSON Schema.
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The to use when resolving schema references.
+ The object representing the JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema.
+
+ A that contains JSON Schema.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema using the specified .
+
+ A that contains JSON Schema.
+ The resolver.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Writes this schema to a .
+
+ A into which this method will write.
+
+
+
+ Writes this schema to a using the specified .
+
+ A into which this method will write.
+ The resolver used.
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+
+ Returns detailed information about the schema exception.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+
+ Generates a from a specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets how undefined schemas are handled by the serializer.
+
+
+
+
+ Gets or sets the contract resolver.
+
+ The contract resolver.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+
+ Resolves from an id.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the loaded schemas.
+
+ The loaded schemas.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a for the specified reference.
+
+ The id.
+ A for the specified reference.
+
+
+
+
+ The value types allowed by the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ No type specified.
+
+
+
+
+ String type.
+
+
+
+
+ Float type.
+
+
+
+
+ Integer type.
+
+
+
+
+ Boolean type.
+
+
+
+
+ Object type.
+
+
+
+
+ Array type.
+
+
+
+
+ Null type.
+
+
+
+
+ Any type.
+
+
+
+
+
+ Specifies undefined schema Id handling options for the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Do not infer a schema Id.
+
+
+
+
+ Use the .NET type name as the schema Id.
+
+
+
+
+ Use the assembly qualified .NET type name as the schema Id.
+
+
+
+
+
+ Returns detailed information related to the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the associated with the validation error.
+
+ The JsonSchemaException associated with the validation error.
+
+
+
+ Gets the path of the JSON location where the validation error occurred.
+
+ The path of the JSON location where the validation error occurred.
+
+
+
+ Gets the text description corresponding to the validation error.
+
+ The text description.
+
+
+
+
+ Represents the callback method that will handle JSON schema validation events and the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ A camel case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false.
+
+
+
+
+ Gets or sets the default members search flags.
+
+ The default members search flags.
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types.
+
+
+ true if the interface will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types.
+
+
+ true if the attribute will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types.
+
+
+ true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types.
+
+
+ true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized.
+
+ The naming strategy used to resolve how property names and dictionary keys are serialized.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the name of the extension data. By default no changes are made to extension data names.
+
+ Name of the extension data.
+ Resolved name of the extension data.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default naming strategy. Property names and dictionary keys are unchanged.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer that writes to the application's instances.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that was resolved from the reference.
+
+
+
+ Gets the reference for the specified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false.
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false.
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non-public.
+
+ true if the default object creator is non-public; otherwise, false.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object constructor.
+
+ The object constructor.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Gets or sets the extension data name resolver.
+
+ The extension data name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes precedence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false.
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false.
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the type described by the argument.
+
+ The type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ A base class for resolving how property names and dictionary keys are serialized.
+
+
+
+
+ A flag indicating whether dictionary keys should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether extension data names should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether explicitly specified property names,
+ e.g. a property name customized with a , should be processed.
+ Defaults to false.
+
+
+
+
+ Gets the serialized name for a given property name.
+
+ The initial property name.
+ A flag indicating whether the property has had a name explicitly specified.
+ The serialized property name.
+
+
+
+ Gets the serialized name for a given extension data name.
+
+ The initial extension data name.
+ The serialized extension data name.
+
+
+
+ Gets the serialized key for a given dictionary key.
+
+ The initial dictionary key.
+ The serialized dictionary key.
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ A snake case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+ Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON
+ you must specify a root type object with
+ or .
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false.
+
+
+
+
+ Adds the elements of the specified collection to the specified generic .
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper class for serializing immutable collections.
+ Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed
+ https://github.com/JamesNK/Newtonsoft.Json/issues/652
+
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the member is an indexed property.
+
+ The member.
+
+ true if the member is an indexed property; otherwise, false.
+
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false.
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false.
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false.
+
+
+
+
+ Builds a string. Unlike this class lets you reuse its internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false.
+
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls result in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ An array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/net40/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.11.0.2/lib/net40/Newtonsoft.Json.dll
new file mode 100644
index 0000000..e319ff3
Binary files /dev/null and b/packages/Newtonsoft.Json.11.0.2/lib/net40/Newtonsoft.Json.dll differ
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/net40/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.11.0.2/lib/net40/Newtonsoft.Json.xml
new file mode 100644
index 0000000..cbd7075
--- /dev/null
+++ b/packages/Newtonsoft.Json.11.0.2/lib/net40/Newtonsoft.Json.xml
@@ -0,0 +1,9296 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false.
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a parameterized constructor.
+
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Creates a custom object.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a F# discriminated union type to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an Entity Framework to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z").
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+ The default value is false.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether integer values are allowed when deserializing.
+ The default value is true.
+
+ true if integers are allowed when deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from Unix epoch time
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements.
+
+ The name of the deserialized root element.
+
+
+
+ Gets or sets a flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attribute is written to the XML; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ true if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that it is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and set members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent an array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, when returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, when returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items.
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between .NET types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the to a JSON string.
+
+ The node to serialize.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false.
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false.
+
+
+
+ Converts an object to and from JSON.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read. If there is no existing value then null will be used.
+ The existing value has a value.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+ Parameter list to use when constructing the . Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false. The default is true.
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false. The default is true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the used when serializing the property's collection items.
+
+ The collection's items .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ A read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader is in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the source should be closed when this reader is closed.
+
+
+ true to close the source when this reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false.
+ The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Gets or sets how time zones are handled when reading JSON.
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Gets or sets how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads the next JSON token from the source.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+ A flag indicating whether the position index inside an array should be updated.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the source is also closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and to require that the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+ The default value is .
+
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) are handled.
+ The default value is .
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+ Null value handling.
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The containing the JSON data to read.
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many s to write for each level in the hierarchy when is set to .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Initializes a new instance of the class using the specified .
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a read method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+
+ Represents a reader that provides validation.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Sets an event handler for receiving schema validation errors.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+
+ Initializes a new instance of the class that
+ validates the content returned from the given .
+
+ The to read from while validating.
+
+
+
+ Gets or sets the schema.
+
+ The schema.
+
+
+
+ Gets the used to construct this .
+
+ The specified in the constructor.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+
+ A [] or null if the next JSON token is null.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets a value indicating whether the destination should be closed when this writer is closed.
+
+
+ true to close the destination when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed.
+
+
+ true to auto-complete the JSON when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Gets or sets a value indicating how JSON text output should be formatted.
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+
+
+
+
+ Gets or sets how time zones are handled when writing JSON text.
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the destination and also flushes the destination.
+
+
+
+
+ Closes this writer.
+ If is set to true, the destination is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the .
+
+ The being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while writing JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A of that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+
+
+
+ Removes all items from the .
+
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the list changes or an item in the list changes.
+
+
+
+
+ Occurs before an item is added to the collection.
+
+
+
+
+ Occurs when the items list of the collection has changed, or the collection is reset.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An of containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An of containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates a that can be used to add tokens to the .
+
+ A that is ready to have content written to it.
+
+
+
+ Replaces the child nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens.
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Occurs when a property value is changing.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of of this object's properties.
+
+ An of of this object's properties.
+
+
+
+ Gets a the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets a of of this object's property values.
+
+ A of of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Determines whether the JSON object has the specified property name.
+
+ Name of the property.
+ true if the JSON object has the specified property name; otherwise, false.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries to get the with the specified property name.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a view of a .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ When overridden in a derived class, returns whether resetting an object changes its value.
+
+
+ true if resetting the component changes its value; otherwise, false.
+
+ The component to test for reset capability.
+
+
+
+ When overridden in a derived class, gets the current value of the property on a component.
+
+
+ The value of a property for a given component.
+
+ The component with the property for which to retrieve the value.
+
+
+
+ When overridden in a derived class, resets the value for this property of the component to the default value.
+
+ The component with the property value that is to be reset to the default value.
+
+
+
+ When overridden in a derived class, sets the value of the component to a different value.
+
+ The component with the property value that is to be set.
+ The new value.
+
+
+
+ When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted.
+
+
+ true if the property should be persisted; otherwise, false.
+
+ The component with the property to be examined for persistence.
+
+
+
+ When overridden in a derived class, gets the type of the component this property is bound to.
+
+
+ A that represents the type of component this property is bound to.
+ When the or
+
+ methods are invoked, the object specified might be an instance of this type.
+
+
+
+
+ When overridden in a derived class, gets a value indicating whether this property is read-only.
+
+
+ true if the property is read-only; otherwise, false.
+
+
+
+
+ When overridden in a derived class, gets the type of the property.
+
+
+ A that represents the type of the property.
+
+
+
+
+ Gets the hash code for the name of the member.
+
+
+
+ The hash code for the name of the member.
+
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+
+ The JSON line info handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output should be formatted.
+ A collection of s which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates a for this token.
+
+ A that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object.
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An of that contains the selected elements.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being written.
+
+ The token being written.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the JSON is auto-completed.
+
+
+ Setting to true has no additional effect, since the underlying is a type that cannot be closed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will be raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of s which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not of the same type as this instance.
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement .
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+
+ Contains the JSON schema extension methods.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ When this method returns, contains any error messages generated while validating.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ The validation event handler.
+
+
+
+
+ An in-memory representation of a JSON Schema.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the id.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ Gets or sets whether the object is required.
+
+
+
+
+ Gets or sets whether the object is read-only.
+
+
+
+
+ Gets or sets whether the object is visible to users.
+
+
+
+
+ Gets or sets whether the object is transient.
+
+
+
+
+ Gets or sets the description of the object.
+
+
+
+
+ Gets or sets the types of values allowed by the object.
+
+ The type.
+
+
+
+ Gets or sets the pattern.
+
+ The pattern.
+
+
+
+ Gets or sets the minimum length.
+
+ The minimum length.
+
+
+
+ Gets or sets the maximum length.
+
+ The maximum length.
+
+
+
+ Gets or sets a number that the value should be divisible by.
+
+ A number that the value should be divisible by.
+
+
+
+ Gets or sets the minimum.
+
+ The minimum.
+
+
+
+ Gets or sets the maximum.
+
+ The maximum.
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+
+
+ Gets or sets the minimum number of items.
+
+ The minimum number of items.
+
+
+
+ Gets or sets the maximum number of items.
+
+ The maximum number of items.
+
+
+
+ Gets or sets the of items.
+
+ The of items.
+
+
+
+ Gets or sets a value indicating whether items in an array are validated using the instance at their array position from .
+
+
+ true if items are validated using their array position; otherwise, false.
+
+
+
+
+ Gets or sets the of additional items.
+
+ The of additional items.
+
+
+
+ Gets or sets a value indicating whether additional items are allowed.
+
+
+ true if additional items are allowed; otherwise, false.
+
+
+
+
+ Gets or sets whether the array items must be unique.
+
+
+
+
+ Gets or sets the of properties.
+
+ The of properties.
+
+
+
+ Gets or sets the of additional properties.
+
+ The of additional properties.
+
+
+
+ Gets or sets the pattern properties.
+
+ The pattern properties.
+
+
+
+ Gets or sets a value indicating whether additional properties are allowed.
+
+
+ true if additional properties are allowed; otherwise, false.
+
+
+
+
+ Gets or sets the required property if this property is present.
+
+ The required property if this property is present.
+
+
+
+ Gets or sets the a collection of valid enum values allowed.
+
+ A collection of valid enum values allowed.
+
+
+
+ Gets or sets disallowed types.
+
+ The disallowed types.
+
+
+
+ Gets or sets the default value.
+
+ The default value.
+
+
+
+ Gets or sets the collection of that this schema extends.
+
+ The collection of that this schema extends.
+
+
+
+ Gets or sets the format.
+
+ The format.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The object representing the JSON Schema.
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The to use when resolving schema references.
+ The object representing the JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema.
+
+ A that contains JSON Schema.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema using the specified .
+
+ A that contains JSON Schema.
+ The resolver.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Writes this schema to a .
+
+ A into which this method will write.
+
+
+
+ Writes this schema to a using the specified .
+
+ A into which this method will write.
+ The resolver used.
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+
+ Returns detailed information about the schema exception.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+
+ Generates a from a specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets how undefined schemas are handled by the serializer.
+
+
+
+
+ Gets or sets the contract resolver.
+
+ The contract resolver.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+
+ Resolves from an id.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the loaded schemas.
+
+ The loaded schemas.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a for the specified reference.
+
+ The id.
+ A for the specified reference.
+
+
+
+
+ The value types allowed by the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ No type specified.
+
+
+
+
+ String type.
+
+
+
+
+ Float type.
+
+
+
+
+ Integer type.
+
+
+
+
+ Boolean type.
+
+
+
+
+ Object type.
+
+
+
+
+ Array type.
+
+
+
+
+ Null type.
+
+
+
+
+ Any type.
+
+
+
+
+
+ Specifies undefined schema Id handling options for the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Do not infer a schema Id.
+
+
+
+
+ Use the .NET type name as the schema Id.
+
+
+
+
+ Use the assembly qualified .NET type name as the schema Id.
+
+
+
+
+
+ Returns detailed information related to the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the associated with the validation error.
+
+ The JsonSchemaException associated with the validation error.
+
+
+
+ Gets the path of the JSON location where the validation error occurred.
+
+ The path of the JSON location where the validation error occurred.
+
+
+
+ Gets the text description corresponding to the validation error.
+
+ The text description.
+
+
+
+
+ Represents the callback method that will handle JSON schema validation events and the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ A camel case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false.
+
+
+
+
+ Gets or sets the default members search flags.
+
+ The default members search flags.
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types.
+
+
+ true if the interface will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types.
+
+
+ true if the attribute will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types.
+
+
+ true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types.
+
+
+ true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized.
+
+ The naming strategy used to resolve how property names and dictionary keys are serialized.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the name of the extension data. By default no changes are made to extension data names.
+
+ Name of the extension data.
+ Resolved name of the extension data.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default naming strategy. Property names and dictionary keys are unchanged.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer that writes to the application's instances.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that was resolved from the reference.
+
+
+
+ Gets the reference for the specified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false.
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false.
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non-public.
+
+ true if the default object creator is non-public; otherwise, false.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object constructor.
+
+ The object constructor.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Gets or sets the extension data name resolver.
+
+ The extension data name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes precedence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false.
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false.
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the type described by the argument.
+
+ The type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ A base class for resolving how property names and dictionary keys are serialized.
+
+
+
+
+ A flag indicating whether dictionary keys should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether extension data names should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether explicitly specified property names,
+ e.g. a property name customized with a , should be processed.
+ Defaults to false.
+
+
+
+
+ Gets the serialized name for a given property name.
+
+ The initial property name.
+ A flag indicating whether the property has had a name explicitly specified.
+ The serialized property name.
+
+
+
+ Gets the serialized name for a given extension data name.
+
+ The initial extension data name.
+ The serialized extension data name.
+
+
+
+ Gets the serialized key for a given dictionary key.
+
+ The initial dictionary key.
+ The serialized dictionary key.
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ A snake case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+ Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON
+ you must specify a root type object with
+ or .
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false.
+
+
+
+
+ Adds the elements of the specified collection to the specified generic .
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic that returns a result
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Returns a Restrictions object which includes our current restrictions merged
+ with a restriction limiting our type
+
+
+
+
+ Helper class for serializing immutable collections.
+ Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed
+ https://github.com/JamesNK/Newtonsoft.Json/issues/652
+
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the member is an indexed property.
+
+ The member.
+
+ true if the member is an indexed property; otherwise, false.
+
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false.
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false.
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false.
+
+
+
+
+ Builds a string. Unlike this class lets you reuse its internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false.
+
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls result in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ An array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/net45/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.11.0.2/lib/net45/Newtonsoft.Json.dll
new file mode 100644
index 0000000..8069902
Binary files /dev/null and b/packages/Newtonsoft.Json.11.0.2/lib/net45/Newtonsoft.Json.dll differ
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/net45/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.11.0.2/lib/net45/Newtonsoft.Json.xml
new file mode 100644
index 0000000..2ef7a77
--- /dev/null
+++ b/packages/Newtonsoft.Json.11.0.2/lib/net45/Newtonsoft.Json.xml
@@ -0,0 +1,10912 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false.
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a parameterized constructor.
+
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Creates a custom object.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a F# discriminated union type to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an Entity Framework to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z").
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+ The default value is false.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether integer values are allowed when deserializing.
+ The default value is true.
+
+ true if integers are allowed when deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from Unix epoch time
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements.
+
+ The name of the deserialized root element.
+
+
+
+ Gets or sets a flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attribute is written to the XML; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ true if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that it is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and set members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent an array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, when returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, when returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items.
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between .NET types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the to a JSON string.
+
+ The node to serialize.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false.
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false.
+
+
+
+ Converts an object to and from JSON.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read. If there is no existing value then null will be used.
+ The existing value has a value.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+ Parameter list to use when constructing the . Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false. The default is true.
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false. The default is true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the used when serializing the property's collection items.
+
+ The collection's items .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously skips the children of the current token.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ A read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader is in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the source should be closed when this reader is closed.
+
+
+ true to close the source when this reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false.
+ The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Gets or sets how time zones are handled when reading JSON.
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Gets or sets how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads the next JSON token from the source.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+ A flag indicating whether the position index inside an array should be updated.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the source is also closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and to require that the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+ The default value is .
+
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) are handled.
+ The default value is .
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+ Null value handling.
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The containing the JSON data to read.
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many s to write for each level in the hierarchy when is set to .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Initializes a new instance of the class using the specified .
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a read method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+
+ Represents a reader that provides validation.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Sets an event handler for receiving schema validation errors.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+
+ Initializes a new instance of the class that
+ validates the content returned from the given .
+
+ The to read from while validating.
+
+
+
+ Gets or sets the schema.
+
+ The schema.
+
+
+
+ Gets the used to construct this .
+
+ The specified in the constructor.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+
+ A [] or null if the next JSON token is null.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously ets the state of the .
+
+ The being written.
+ The value being written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Gets or sets a value indicating whether the destination should be closed when this writer is closed.
+
+
+ true to close the destination when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed.
+
+
+ true to auto-complete the JSON when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Gets or sets a value indicating how JSON text output should be formatted.
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+
+
+
+
+ Gets or sets how time zones are handled when writing JSON text.
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the destination and also flushes the destination.
+
+
+
+
+ Closes this writer.
+ If is set to true, the destination is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the .
+
+ The being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while writing JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A of that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+
+
+
+ Removes all items from the .
+
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the list changes or an item in the list changes.
+
+
+
+
+ Occurs before an item is added to the collection.
+
+
+
+
+ Occurs when the items list of the collection has changed, or the collection is reset.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An of containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An of containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates a that can be used to add tokens to the .
+
+ A that is ready to have content written to it.
+
+
+
+ Replaces the child nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens.
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Occurs when a property value is changing.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of of this object's properties.
+
+ An of of this object's properties.
+
+
+
+ Gets a the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets a of of this object's property values.
+
+ A of of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Determines whether the JSON object has the specified property name.
+
+ Name of the property.
+ true if the JSON object has the specified property name; otherwise, false.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries to get the with the specified property name.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a view of a .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ When overridden in a derived class, returns whether resetting an object changes its value.
+
+
+ true if resetting the component changes its value; otherwise, false.
+
+ The component to test for reset capability.
+
+
+
+ When overridden in a derived class, gets the current value of the property on a component.
+
+
+ The value of a property for a given component.
+
+ The component with the property for which to retrieve the value.
+
+
+
+ When overridden in a derived class, resets the value for this property of the component to the default value.
+
+ The component with the property value that is to be reset to the default value.
+
+
+
+ When overridden in a derived class, sets the value of the component to a different value.
+
+ The component with the property value that is to be set.
+ The new value.
+
+
+
+ When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted.
+
+
+ true if the property should be persisted; otherwise, false.
+
+ The component with the property to be examined for persistence.
+
+
+
+ When overridden in a derived class, gets the type of the component this property is bound to.
+
+
+ A that represents the type of component this property is bound to.
+ When the or
+
+ methods are invoked, the object specified might be an instance of this type.
+
+
+
+
+ When overridden in a derived class, gets a value indicating whether this property is read-only.
+
+
+ true if the property is read-only; otherwise, false.
+
+
+
+
+ When overridden in a derived class, gets the type of the property.
+
+
+ A that represents the type of the property.
+
+
+
+
+ Gets the hash code for the name of the member.
+
+
+
+ The hash code for the name of the member.
+
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Asynchronously creates an instance of with the content of the reader's current token.
+
+ The reader.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns an instance of with the content of the reader's current token.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+
+ The JSON line info handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output should be formatted.
+ A collection of s which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates a for this token.
+
+ A that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object.
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An of that contains the selected elements.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being written.
+
+ The token being written.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the JSON is auto-completed.
+
+
+ Setting to true has no additional effect, since the underlying is a type that cannot be closed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will be raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of s which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not of the same type as this instance.
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement .
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+
+ Contains the JSON schema extension methods.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ When this method returns, contains any error messages generated while validating.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ The validation event handler.
+
+
+
+
+ An in-memory representation of a JSON Schema.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the id.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ Gets or sets whether the object is required.
+
+
+
+
+ Gets or sets whether the object is read-only.
+
+
+
+
+ Gets or sets whether the object is visible to users.
+
+
+
+
+ Gets or sets whether the object is transient.
+
+
+
+
+ Gets or sets the description of the object.
+
+
+
+
+ Gets or sets the types of values allowed by the object.
+
+ The type.
+
+
+
+ Gets or sets the pattern.
+
+ The pattern.
+
+
+
+ Gets or sets the minimum length.
+
+ The minimum length.
+
+
+
+ Gets or sets the maximum length.
+
+ The maximum length.
+
+
+
+ Gets or sets a number that the value should be divisible by.
+
+ A number that the value should be divisible by.
+
+
+
+ Gets or sets the minimum.
+
+ The minimum.
+
+
+
+ Gets or sets the maximum.
+
+ The maximum.
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+
+
+ Gets or sets the minimum number of items.
+
+ The minimum number of items.
+
+
+
+ Gets or sets the maximum number of items.
+
+ The maximum number of items.
+
+
+
+ Gets or sets the of items.
+
+ The of items.
+
+
+
+ Gets or sets a value indicating whether items in an array are validated using the instance at their array position from .
+
+
+ true if items are validated using their array position; otherwise, false.
+
+
+
+
+ Gets or sets the of additional items.
+
+ The of additional items.
+
+
+
+ Gets or sets a value indicating whether additional items are allowed.
+
+
+ true if additional items are allowed; otherwise, false.
+
+
+
+
+ Gets or sets whether the array items must be unique.
+
+
+
+
+ Gets or sets the of properties.
+
+ The of properties.
+
+
+
+ Gets or sets the of additional properties.
+
+ The of additional properties.
+
+
+
+ Gets or sets the pattern properties.
+
+ The pattern properties.
+
+
+
+ Gets or sets a value indicating whether additional properties are allowed.
+
+
+ true if additional properties are allowed; otherwise, false.
+
+
+
+
+ Gets or sets the required property if this property is present.
+
+ The required property if this property is present.
+
+
+
+ Gets or sets the a collection of valid enum values allowed.
+
+ A collection of valid enum values allowed.
+
+
+
+ Gets or sets disallowed types.
+
+ The disallowed types.
+
+
+
+ Gets or sets the default value.
+
+ The default value.
+
+
+
+ Gets or sets the collection of that this schema extends.
+
+ The collection of that this schema extends.
+
+
+
+ Gets or sets the format.
+
+ The format.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The object representing the JSON Schema.
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The to use when resolving schema references.
+ The object representing the JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema.
+
+ A that contains JSON Schema.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema using the specified .
+
+ A that contains JSON Schema.
+ The resolver.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Writes this schema to a .
+
+ A into which this method will write.
+
+
+
+ Writes this schema to a using the specified .
+
+ A into which this method will write.
+ The resolver used.
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+
+ Returns detailed information about the schema exception.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+
+ Generates a from a specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets how undefined schemas are handled by the serializer.
+
+
+
+
+ Gets or sets the contract resolver.
+
+ The contract resolver.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+
+ Resolves from an id.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the loaded schemas.
+
+ The loaded schemas.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a for the specified reference.
+
+ The id.
+ A for the specified reference.
+
+
+
+
+ The value types allowed by the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ No type specified.
+
+
+
+
+ String type.
+
+
+
+
+ Float type.
+
+
+
+
+ Integer type.
+
+
+
+
+ Boolean type.
+
+
+
+
+ Object type.
+
+
+
+
+ Array type.
+
+
+
+
+ Null type.
+
+
+
+
+ Any type.
+
+
+
+
+
+ Specifies undefined schema Id handling options for the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Do not infer a schema Id.
+
+
+
+
+ Use the .NET type name as the schema Id.
+
+
+
+
+ Use the assembly qualified .NET type name as the schema Id.
+
+
+
+
+
+ Returns detailed information related to the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the associated with the validation error.
+
+ The JsonSchemaException associated with the validation error.
+
+
+
+ Gets the path of the JSON location where the validation error occurred.
+
+ The path of the JSON location where the validation error occurred.
+
+
+
+ Gets the text description corresponding to the validation error.
+
+ The text description.
+
+
+
+
+ Represents the callback method that will handle JSON schema validation events and the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ A camel case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false.
+
+
+
+
+ Gets or sets the default members search flags.
+
+ The default members search flags.
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types.
+
+
+ true if the interface will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types.
+
+
+ true if the attribute will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types.
+
+
+ true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types.
+
+
+ true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized.
+
+ The naming strategy used to resolve how property names and dictionary keys are serialized.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the name of the extension data. By default no changes are made to extension data names.
+
+ Name of the extension data.
+ Resolved name of the extension data.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default naming strategy. Property names and dictionary keys are unchanged.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer that writes to the application's instances.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that was resolved from the reference.
+
+
+
+ Gets the reference for the specified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false.
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false.
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non-public.
+
+ true if the default object creator is non-public; otherwise, false.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object constructor.
+
+ The object constructor.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Gets or sets the extension data name resolver.
+
+ The extension data name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes precedence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false.
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false.
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the type described by the argument.
+
+ The type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ A base class for resolving how property names and dictionary keys are serialized.
+
+
+
+
+ A flag indicating whether dictionary keys should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether extension data names should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether explicitly specified property names,
+ e.g. a property name customized with a , should be processed.
+ Defaults to false.
+
+
+
+
+ Gets the serialized name for a given property name.
+
+ The initial property name.
+ A flag indicating whether the property has had a name explicitly specified.
+ The serialized property name.
+
+
+
+ Gets the serialized name for a given extension data name.
+
+ The initial extension data name.
+ The serialized extension data name.
+
+
+
+ Gets the serialized key for a given dictionary key.
+
+ The initial dictionary key.
+ The serialized dictionary key.
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ A snake case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+ Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON
+ you must specify a root type object with
+ or .
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false.
+
+
+
+
+ Adds the elements of the specified collection to the specified generic .
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic that returns a result
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Returns a Restrictions object which includes our current restrictions merged
+ with a restriction limiting our type
+
+
+
+
+ Helper class for serializing immutable collections.
+ Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed
+ https://github.com/JamesNK/Newtonsoft.Json/issues/652
+
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the member is an indexed property.
+
+ The member.
+
+ true if the member is an indexed property; otherwise, false.
+
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false.
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false.
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false.
+
+
+
+
+ Builds a string. Unlike this class lets you reuse its internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false.
+
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls result in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ An array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/netstandard1.0/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.11.0.2/lib/netstandard1.0/Newtonsoft.Json.dll
new file mode 100644
index 0000000..6002614
Binary files /dev/null and b/packages/Newtonsoft.Json.11.0.2/lib/netstandard1.0/Newtonsoft.Json.dll differ
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/netstandard1.0/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.11.0.2/lib/netstandard1.0/Newtonsoft.Json.xml
new file mode 100644
index 0000000..482127f
--- /dev/null
+++ b/packages/Newtonsoft.Json.11.0.2/lib/netstandard1.0/Newtonsoft.Json.xml
@@ -0,0 +1,10619 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false.
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a parameterized constructor.
+
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Creates a custom object.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a F# discriminated union type to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z").
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+ The default value is false.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether integer values are allowed when deserializing.
+ The default value is true.
+
+ true if integers are allowed when deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from Unix epoch time
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements.
+
+ The name of the deserialized root element.
+
+
+
+ Gets or sets a flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attribute is written to the XML; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ true if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that it is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and set members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent an array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, when returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, when returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items.
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between .NET types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false.
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false.
+
+
+
+ Converts an object to and from JSON.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read. If there is no existing value then null will be used.
+ The existing value has a value.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+ Parameter list to use when constructing the . Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false. The default is true.
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false. The default is true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the used when serializing the property's collection items.
+
+ The collection's items .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously skips the children of the current token.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ A read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader is in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the source should be closed when this reader is closed.
+
+
+ true to close the source when this reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false.
+ The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Gets or sets how time zones are handled when reading JSON.
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Gets or sets how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads the next JSON token from the source.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+ A flag indicating whether the position index inside an array should be updated.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the source is also closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and to require that the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+ The default value is .
+
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) are handled.
+ The default value is .
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+ Null value handling.
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The containing the JSON data to read.
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many s to write for each level in the hierarchy when is set to .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Initializes a new instance of the class using the specified .
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a read method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+
+ Represents a reader that provides validation.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Sets an event handler for receiving schema validation errors.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+
+ Initializes a new instance of the class that
+ validates the content returned from the given .
+
+ The to read from while validating.
+
+
+
+ Gets or sets the schema.
+
+ The schema.
+
+
+
+ Gets the used to construct this .
+
+ The specified in the constructor.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+
+ A [] or null if the next JSON token is null.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously ets the state of the .
+
+ The being written.
+ The value being written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Gets or sets a value indicating whether the destination should be closed when this writer is closed.
+
+
+ true to close the destination when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed.
+
+
+ true to auto-complete the JSON when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Gets or sets a value indicating how JSON text output should be formatted.
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+
+
+
+
+ Gets or sets how time zones are handled when writing JSON text.
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the destination and also flushes the destination.
+
+
+
+
+ Closes this writer.
+ If is set to true, the destination is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the .
+
+ The being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while writing JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A of that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+
+
+
+ Removes all items from the .
+
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the items list of the collection has changed, or the collection is reset.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An of containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An of containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates a that can be used to add tokens to the .
+
+ A that is ready to have content written to it.
+
+
+
+ Replaces the child nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens.
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of of this object's properties.
+
+ An of of this object's properties.
+
+
+
+ Gets a the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets a of of this object's property values.
+
+ A of of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Determines whether the JSON object has the specified property name.
+
+ Name of the property.
+ true if the JSON object has the specified property name; otherwise, false.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries to get the with the specified property name.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Asynchronously creates an instance of with the content of the reader's current token.
+
+ The reader.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns an instance of with the content of the reader's current token.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+
+ The JSON line info handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output should be formatted.
+ A collection of s which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates a for this token.
+
+ A that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object.
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An of that contains the selected elements.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being written.
+
+ The token being written.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the JSON is auto-completed.
+
+
+ Setting to true has no additional effect, since the underlying is a type that cannot be closed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will be raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of s which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not of the same type as this instance.
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement .
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+
+ Contains the JSON schema extension methods.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ When this method returns, contains any error messages generated while validating.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ The validation event handler.
+
+
+
+
+ An in-memory representation of a JSON Schema.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the id.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ Gets or sets whether the object is required.
+
+
+
+
+ Gets or sets whether the object is read-only.
+
+
+
+
+ Gets or sets whether the object is visible to users.
+
+
+
+
+ Gets or sets whether the object is transient.
+
+
+
+
+ Gets or sets the description of the object.
+
+
+
+
+ Gets or sets the types of values allowed by the object.
+
+ The type.
+
+
+
+ Gets or sets the pattern.
+
+ The pattern.
+
+
+
+ Gets or sets the minimum length.
+
+ The minimum length.
+
+
+
+ Gets or sets the maximum length.
+
+ The maximum length.
+
+
+
+ Gets or sets a number that the value should be divisible by.
+
+ A number that the value should be divisible by.
+
+
+
+ Gets or sets the minimum.
+
+ The minimum.
+
+
+
+ Gets or sets the maximum.
+
+ The maximum.
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+
+
+ Gets or sets the minimum number of items.
+
+ The minimum number of items.
+
+
+
+ Gets or sets the maximum number of items.
+
+ The maximum number of items.
+
+
+
+ Gets or sets the of items.
+
+ The of items.
+
+
+
+ Gets or sets a value indicating whether items in an array are validated using the instance at their array position from .
+
+
+ true if items are validated using their array position; otherwise, false.
+
+
+
+
+ Gets or sets the of additional items.
+
+ The of additional items.
+
+
+
+ Gets or sets a value indicating whether additional items are allowed.
+
+
+ true if additional items are allowed; otherwise, false.
+
+
+
+
+ Gets or sets whether the array items must be unique.
+
+
+
+
+ Gets or sets the of properties.
+
+ The of properties.
+
+
+
+ Gets or sets the of additional properties.
+
+ The of additional properties.
+
+
+
+ Gets or sets the pattern properties.
+
+ The pattern properties.
+
+
+
+ Gets or sets a value indicating whether additional properties are allowed.
+
+
+ true if additional properties are allowed; otherwise, false.
+
+
+
+
+ Gets or sets the required property if this property is present.
+
+ The required property if this property is present.
+
+
+
+ Gets or sets the a collection of valid enum values allowed.
+
+ A collection of valid enum values allowed.
+
+
+
+ Gets or sets disallowed types.
+
+ The disallowed types.
+
+
+
+ Gets or sets the default value.
+
+ The default value.
+
+
+
+ Gets or sets the collection of that this schema extends.
+
+ The collection of that this schema extends.
+
+
+
+ Gets or sets the format.
+
+ The format.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The object representing the JSON Schema.
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The to use when resolving schema references.
+ The object representing the JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema.
+
+ A that contains JSON Schema.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema using the specified .
+
+ A that contains JSON Schema.
+ The resolver.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Writes this schema to a .
+
+ A into which this method will write.
+
+
+
+ Writes this schema to a using the specified .
+
+ A into which this method will write.
+ The resolver used.
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+
+ Returns detailed information about the schema exception.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+
+ Generates a from a specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets how undefined schemas are handled by the serializer.
+
+
+
+
+ Gets or sets the contract resolver.
+
+ The contract resolver.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+
+ Resolves from an id.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the loaded schemas.
+
+ The loaded schemas.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a for the specified reference.
+
+ The id.
+ A for the specified reference.
+
+
+
+
+ The value types allowed by the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ No type specified.
+
+
+
+
+ String type.
+
+
+
+
+ Float type.
+
+
+
+
+ Integer type.
+
+
+
+
+ Boolean type.
+
+
+
+
+ Object type.
+
+
+
+
+ Array type.
+
+
+
+
+ Null type.
+
+
+
+
+ Any type.
+
+
+
+
+
+ Specifies undefined schema Id handling options for the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Do not infer a schema Id.
+
+
+
+
+ Use the .NET type name as the schema Id.
+
+
+
+
+ Use the assembly qualified .NET type name as the schema Id.
+
+
+
+
+
+ Returns detailed information related to the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the associated with the validation error.
+
+ The JsonSchemaException associated with the validation error.
+
+
+
+ Gets the path of the JSON location where the validation error occurred.
+
+ The path of the JSON location where the validation error occurred.
+
+
+
+ Gets the text description corresponding to the validation error.
+
+ The text description.
+
+
+
+
+ Represents the callback method that will handle JSON schema validation events and the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ A camel case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types.
+
+
+ true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types.
+
+
+ true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized.
+
+ The naming strategy used to resolve how property names and dictionary keys are serialized.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the name of the extension data. By default no changes are made to extension data names.
+
+ Name of the extension data.
+ Resolved name of the extension data.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default naming strategy. Property names and dictionary keys are unchanged.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that was resolved from the reference.
+
+
+
+ Gets the reference for the specified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false.
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false.
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non-public.
+
+ true if the default object creator is non-public; otherwise, false.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Gets or sets the extension data name resolver.
+
+ The extension data name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes precedence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false.
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false.
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the type described by the argument.
+
+ The type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ A base class for resolving how property names and dictionary keys are serialized.
+
+
+
+
+ A flag indicating whether dictionary keys should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether extension data names should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether explicitly specified property names,
+ e.g. a property name customized with a , should be processed.
+ Defaults to false.
+
+
+
+
+ Gets the serialized name for a given property name.
+
+ The initial property name.
+ A flag indicating whether the property has had a name explicitly specified.
+ The serialized property name.
+
+
+
+ Gets the serialized name for a given extension data name.
+
+ The initial extension data name.
+ The serialized extension data name.
+
+
+
+ Gets the serialized key for a given dictionary key.
+
+ The initial dictionary key.
+ The serialized dictionary key.
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ A snake case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Specifies what messages to output for the class.
+
+
+
+
+ Output no tracing and debugging messages.
+
+
+
+
+ Output error-handling messages.
+
+
+
+
+ Output warnings and error-handling messages.
+
+
+
+
+ Output informational messages, warnings, and error-handling messages.
+
+
+
+
+ Output all debugging and tracing messages.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+ Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON
+ you must specify a root type object with
+ or .
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false.
+
+
+
+
+ Adds the elements of the specified collection to the specified generic .
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic that returns a result
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Returns a Restrictions object which includes our current restrictions merged
+ with a restriction limiting our type
+
+
+
+
+ Helper class for serializing immutable collections.
+ Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed
+ https://github.com/JamesNK/Newtonsoft.Json/issues/652
+
+
+
+
+ List of primitive types which can be widened.
+
+
+
+
+ Widening masks for primitive types above.
+ Index of the value in this array defines a type we're widening,
+ while the bits in mask define types it can be widened to (including itself).
+
+ For example, value at index 0 defines a bool type, and it only has bit 0 set,
+ i.e. bool values can be assigned only to bool.
+
+
+
+
+ Checks if value of primitive type can be
+ assigned to parameter of primitive type .
+
+ Source primitive type.
+ Target primitive type.
+ true if source type can be widened to target type, false otherwise.
+
+
+
+ Checks if a set of values with given can be used
+ to invoke a method with specified .
+
+ Method parameters.
+ Argument types.
+ Try to pack extra arguments into the last parameter when it is marked up with .
+ true if method can be called with given arguments, false otherwise.
+
+
+
+ Compares two sets of parameters to determine
+ which one suits better for given argument types.
+
+
+
+
+ Returns a best method overload for given argument .
+
+ List of method candidates.
+ Argument types.
+ Best method overload, or null if none matched.
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the member is an indexed property.
+
+ The member.
+
+ true if the member is an indexed property; otherwise, false.
+
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false.
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false.
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false.
+
+
+
+
+ Builds a string. Unlike this class lets you reuse its internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false.
+
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls result in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ An array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the method is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The is used to load the assembly.
+
+
+
+
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/netstandard1.3/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.11.0.2/lib/netstandard1.3/Newtonsoft.Json.dll
new file mode 100644
index 0000000..ef690ca
Binary files /dev/null and b/packages/Newtonsoft.Json.11.0.2/lib/netstandard1.3/Newtonsoft.Json.dll differ
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/netstandard1.3/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.11.0.2/lib/netstandard1.3/Newtonsoft.Json.xml
new file mode 100644
index 0000000..aa0ab33
--- /dev/null
+++ b/packages/Newtonsoft.Json.11.0.2/lib/netstandard1.3/Newtonsoft.Json.xml
@@ -0,0 +1,10722 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false.
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a parameterized constructor.
+
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Creates a custom object.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a F# discriminated union type to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z").
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+ The default value is false.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether integer values are allowed when deserializing.
+ The default value is true.
+
+ true if integers are allowed when deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from Unix epoch time
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements.
+
+ The name of the deserialized root element.
+
+
+
+ Gets or sets a flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attribute is written to the XML; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ true if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that it is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and set members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent an array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, when returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, when returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items.
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between .NET types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the to a JSON string.
+
+ The node to serialize.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false.
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false.
+
+
+
+ Converts an object to and from JSON.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read. If there is no existing value then null will be used.
+ The existing value has a value.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+ Parameter list to use when constructing the . Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false. The default is true.
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false. The default is true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the used when serializing the property's collection items.
+
+ The collection's items .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously skips the children of the current token.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ A read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader is in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the source should be closed when this reader is closed.
+
+
+ true to close the source when this reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false.
+ The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Gets or sets how time zones are handled when reading JSON.
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Gets or sets how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads the next JSON token from the source.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+ A flag indicating whether the position index inside an array should be updated.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the source is also closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and to require that the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+ The default value is .
+
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) are handled.
+ The default value is .
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+ Null value handling.
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The containing the JSON data to read.
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many s to write for each level in the hierarchy when is set to .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Initializes a new instance of the class using the specified .
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a read method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+
+ Represents a reader that provides validation.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Sets an event handler for receiving schema validation errors.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+
+ Initializes a new instance of the class that
+ validates the content returned from the given .
+
+ The to read from while validating.
+
+
+
+ Gets or sets the schema.
+
+ The schema.
+
+
+
+ Gets the used to construct this .
+
+ The specified in the constructor.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+
+ A [] or null if the next JSON token is null.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously ets the state of the .
+
+ The being written.
+ The value being written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Gets or sets a value indicating whether the destination should be closed when this writer is closed.
+
+
+ true to close the destination when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed.
+
+
+ true to auto-complete the JSON when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Gets or sets a value indicating how JSON text output should be formatted.
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+
+
+
+
+ Gets or sets how time zones are handled when writing JSON text.
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the destination and also flushes the destination.
+
+
+
+
+ Closes this writer.
+ If is set to true, the destination is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the .
+
+ The being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while writing JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A of that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+
+
+
+ Removes all items from the .
+
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the items list of the collection has changed, or the collection is reset.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An of containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An of containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates a that can be used to add tokens to the .
+
+ A that is ready to have content written to it.
+
+
+
+ Replaces the child nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens.
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Occurs when a property value is changing.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of of this object's properties.
+
+ An of of this object's properties.
+
+
+
+ Gets a the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets a of of this object's property values.
+
+ A of of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Determines whether the JSON object has the specified property name.
+
+ Name of the property.
+ true if the JSON object has the specified property name; otherwise, false.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries to get the with the specified property name.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Asynchronously creates an instance of with the content of the reader's current token.
+
+ The reader.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns an instance of with the content of the reader's current token.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+
+ The JSON line info handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output should be formatted.
+ A collection of s which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates a for this token.
+
+ A that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object.
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An of that contains the selected elements.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being written.
+
+ The token being written.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the JSON is auto-completed.
+
+
+ Setting to true has no additional effect, since the underlying is a type that cannot be closed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will be raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of s which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not of the same type as this instance.
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement .
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+
+ Contains the JSON schema extension methods.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ When this method returns, contains any error messages generated while validating.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ The validation event handler.
+
+
+
+
+ An in-memory representation of a JSON Schema.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the id.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ Gets or sets whether the object is required.
+
+
+
+
+ Gets or sets whether the object is read-only.
+
+
+
+
+ Gets or sets whether the object is visible to users.
+
+
+
+
+ Gets or sets whether the object is transient.
+
+
+
+
+ Gets or sets the description of the object.
+
+
+
+
+ Gets or sets the types of values allowed by the object.
+
+ The type.
+
+
+
+ Gets or sets the pattern.
+
+ The pattern.
+
+
+
+ Gets or sets the minimum length.
+
+ The minimum length.
+
+
+
+ Gets or sets the maximum length.
+
+ The maximum length.
+
+
+
+ Gets or sets a number that the value should be divisible by.
+
+ A number that the value should be divisible by.
+
+
+
+ Gets or sets the minimum.
+
+ The minimum.
+
+
+
+ Gets or sets the maximum.
+
+ The maximum.
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+
+
+ Gets or sets the minimum number of items.
+
+ The minimum number of items.
+
+
+
+ Gets or sets the maximum number of items.
+
+ The maximum number of items.
+
+
+
+ Gets or sets the of items.
+
+ The of items.
+
+
+
+ Gets or sets a value indicating whether items in an array are validated using the instance at their array position from .
+
+
+ true if items are validated using their array position; otherwise, false.
+
+
+
+
+ Gets or sets the of additional items.
+
+ The of additional items.
+
+
+
+ Gets or sets a value indicating whether additional items are allowed.
+
+
+ true if additional items are allowed; otherwise, false.
+
+
+
+
+ Gets or sets whether the array items must be unique.
+
+
+
+
+ Gets or sets the of properties.
+
+ The of properties.
+
+
+
+ Gets or sets the of additional properties.
+
+ The of additional properties.
+
+
+
+ Gets or sets the pattern properties.
+
+ The pattern properties.
+
+
+
+ Gets or sets a value indicating whether additional properties are allowed.
+
+
+ true if additional properties are allowed; otherwise, false.
+
+
+
+
+ Gets or sets the required property if this property is present.
+
+ The required property if this property is present.
+
+
+
+ Gets or sets the a collection of valid enum values allowed.
+
+ A collection of valid enum values allowed.
+
+
+
+ Gets or sets disallowed types.
+
+ The disallowed types.
+
+
+
+ Gets or sets the default value.
+
+ The default value.
+
+
+
+ Gets or sets the collection of that this schema extends.
+
+ The collection of that this schema extends.
+
+
+
+ Gets or sets the format.
+
+ The format.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The object representing the JSON Schema.
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The to use when resolving schema references.
+ The object representing the JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema.
+
+ A that contains JSON Schema.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema using the specified .
+
+ A that contains JSON Schema.
+ The resolver.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Writes this schema to a .
+
+ A into which this method will write.
+
+
+
+ Writes this schema to a using the specified .
+
+ A into which this method will write.
+ The resolver used.
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+
+ Returns detailed information about the schema exception.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+
+ Generates a from a specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets how undefined schemas are handled by the serializer.
+
+
+
+
+ Gets or sets the contract resolver.
+
+ The contract resolver.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+
+ Resolves from an id.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the loaded schemas.
+
+ The loaded schemas.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a for the specified reference.
+
+ The id.
+ A for the specified reference.
+
+
+
+
+ The value types allowed by the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ No type specified.
+
+
+
+
+ String type.
+
+
+
+
+ Float type.
+
+
+
+
+ Integer type.
+
+
+
+
+ Boolean type.
+
+
+
+
+ Object type.
+
+
+
+
+ Array type.
+
+
+
+
+ Null type.
+
+
+
+
+ Any type.
+
+
+
+
+
+ Specifies undefined schema Id handling options for the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Do not infer a schema Id.
+
+
+
+
+ Use the .NET type name as the schema Id.
+
+
+
+
+ Use the assembly qualified .NET type name as the schema Id.
+
+
+
+
+
+ Returns detailed information related to the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the associated with the validation error.
+
+ The JsonSchemaException associated with the validation error.
+
+
+
+ Gets the path of the JSON location where the validation error occurred.
+
+ The path of the JSON location where the validation error occurred.
+
+
+
+ Gets the text description corresponding to the validation error.
+
+ The text description.
+
+
+
+
+ Represents the callback method that will handle JSON schema validation events and the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ A camel case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types.
+
+
+ true if the interface will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types.
+
+
+ true if the attribute will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types.
+
+
+ true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types.
+
+
+ true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized.
+
+ The naming strategy used to resolve how property names and dictionary keys are serialized.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the name of the extension data. By default no changes are made to extension data names.
+
+ Name of the extension data.
+ Resolved name of the extension data.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default naming strategy. Property names and dictionary keys are unchanged.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that was resolved from the reference.
+
+
+
+ Gets the reference for the specified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false.
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false.
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non-public.
+
+ true if the default object creator is non-public; otherwise, false.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object constructor.
+
+ The object constructor.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Gets or sets the extension data name resolver.
+
+ The extension data name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes precedence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false.
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false.
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the type described by the argument.
+
+ The type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ A base class for resolving how property names and dictionary keys are serialized.
+
+
+
+
+ A flag indicating whether dictionary keys should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether extension data names should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether explicitly specified property names,
+ e.g. a property name customized with a , should be processed.
+ Defaults to false.
+
+
+
+
+ Gets the serialized name for a given property name.
+
+ The initial property name.
+ A flag indicating whether the property has had a name explicitly specified.
+ The serialized property name.
+
+
+
+ Gets the serialized name for a given extension data name.
+
+ The initial extension data name.
+ The serialized extension data name.
+
+
+
+ Gets the serialized key for a given dictionary key.
+
+ The initial dictionary key.
+ The serialized dictionary key.
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ A snake case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Specifies what messages to output for the class.
+
+
+
+
+ Output no tracing and debugging messages.
+
+
+
+
+ Output error-handling messages.
+
+
+
+
+ Output warnings and error-handling messages.
+
+
+
+
+ Output informational messages, warnings, and error-handling messages.
+
+
+
+
+ Output all debugging and tracing messages.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+ Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON
+ you must specify a root type object with
+ or .
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false.
+
+
+
+
+ Adds the elements of the specified collection to the specified generic .
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic that returns a result
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Returns a Restrictions object which includes our current restrictions merged
+ with a restriction limiting our type
+
+
+
+
+ Helper class for serializing immutable collections.
+ Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed
+ https://github.com/JamesNK/Newtonsoft.Json/issues/652
+
+
+
+
+ List of primitive types which can be widened.
+
+
+
+
+ Widening masks for primitive types above.
+ Index of the value in this array defines a type we're widening,
+ while the bits in mask define types it can be widened to (including itself).
+
+ For example, value at index 0 defines a bool type, and it only has bit 0 set,
+ i.e. bool values can be assigned only to bool.
+
+
+
+
+ Checks if value of primitive type can be
+ assigned to parameter of primitive type .
+
+ Source primitive type.
+ Target primitive type.
+ true if source type can be widened to target type, false otherwise.
+
+
+
+ Checks if a set of values with given can be used
+ to invoke a method with specified .
+
+ Method parameters.
+ Argument types.
+ Try to pack extra arguments into the last parameter when it is marked up with .
+ true if method can be called with given arguments, false otherwise.
+
+
+
+ Compares two sets of parameters to determine
+ which one suits better for given argument types.
+
+
+
+
+ Returns a best method overload for given argument .
+
+ List of method candidates.
+ Argument types.
+ Best method overload, or null if none matched.
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the member is an indexed property.
+
+ The member.
+
+ true if the member is an indexed property; otherwise, false.
+
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false.
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false.
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false.
+
+
+
+
+ Builds a string. Unlike this class lets you reuse its internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false.
+
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls result in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ An array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the method is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The is used to load the assembly.
+
+
+
+
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/netstandard2.0/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.11.0.2/lib/netstandard2.0/Newtonsoft.Json.dll
new file mode 100644
index 0000000..e2118f9
Binary files /dev/null and b/packages/Newtonsoft.Json.11.0.2/lib/netstandard2.0/Newtonsoft.Json.dll differ
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/netstandard2.0/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.11.0.2/lib/netstandard2.0/Newtonsoft.Json.xml
new file mode 100644
index 0000000..b1a5357
--- /dev/null
+++ b/packages/Newtonsoft.Json.11.0.2/lib/netstandard2.0/Newtonsoft.Json.xml
@@ -0,0 +1,10887 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false.
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a parameterized constructor.
+
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Creates a custom object.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a F# discriminated union type to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an Entity Framework to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z").
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+ The default value is false.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether integer values are allowed when deserializing.
+ The default value is true.
+
+ true if integers are allowed when deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from Unix epoch time
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements.
+
+ The name of the deserialized root element.
+
+
+
+ Gets or sets a flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attribute is written to the XML; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ true if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that it is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and set members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent an array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, when returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, when returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items.
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between .NET types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the to a JSON string.
+
+ The node to serialize.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false.
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false.
+
+
+
+ Converts an object to and from JSON.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read. If there is no existing value then null will be used.
+ The existing value has a value.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+ Parameter list to use when constructing the . Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false. The default is true.
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false. The default is true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the used when serializing the property's collection items.
+
+ The collection's items .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously skips the children of the current token.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ A read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader is in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the source should be closed when this reader is closed.
+
+
+ true to close the source when this reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false.
+ The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Gets or sets how time zones are handled when reading JSON.
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Gets or sets how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads the next JSON token from the source.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+ A flag indicating whether the position index inside an array should be updated.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the source is also closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and to require that the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+ The default value is .
+
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) are handled.
+ The default value is .
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+ Null value handling.
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The containing the JSON data to read.
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many s to write for each level in the hierarchy when is set to .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Initializes a new instance of the class using the specified .
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a read method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+
+ Represents a reader that provides validation.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Sets an event handler for receiving schema validation errors.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+
+ Initializes a new instance of the class that
+ validates the content returned from the given .
+
+ The to read from while validating.
+
+
+
+ Gets or sets the schema.
+
+ The schema.
+
+
+
+ Gets the used to construct this .
+
+ The specified in the constructor.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+
+ A [] or null if the next JSON token is null.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously ets the state of the .
+
+ The being written.
+ The value being written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Gets or sets a value indicating whether the destination should be closed when this writer is closed.
+
+
+ true to close the destination when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed.
+
+
+ true to auto-complete the JSON when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Gets or sets a value indicating how JSON text output should be formatted.
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+
+
+
+
+ Gets or sets how time zones are handled when writing JSON text.
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the destination and also flushes the destination.
+
+
+
+
+ Closes this writer.
+ If is set to true, the destination is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the .
+
+ The being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while writing JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A of that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+
+
+
+ Removes all items from the .
+
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the list changes or an item in the list changes.
+
+
+
+
+ Occurs before an item is added to the collection.
+
+
+
+
+ Occurs when the items list of the collection has changed, or the collection is reset.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An of containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An of containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates a that can be used to add tokens to the .
+
+ A that is ready to have content written to it.
+
+
+
+ Replaces the child nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens.
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Occurs when a property value is changing.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of of this object's properties.
+
+ An of of this object's properties.
+
+
+
+ Gets a the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets a of of this object's property values.
+
+ A of of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Determines whether the JSON object has the specified property name.
+
+ Name of the property.
+ true if the JSON object has the specified property name; otherwise, false.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries to get the with the specified property name.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a view of a .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ When overridden in a derived class, returns whether resetting an object changes its value.
+
+
+ true if resetting the component changes its value; otherwise, false.
+
+ The component to test for reset capability.
+
+
+
+ When overridden in a derived class, gets the current value of the property on a component.
+
+
+ The value of a property for a given component.
+
+ The component with the property for which to retrieve the value.
+
+
+
+ When overridden in a derived class, resets the value for this property of the component to the default value.
+
+ The component with the property value that is to be reset to the default value.
+
+
+
+ When overridden in a derived class, sets the value of the component to a different value.
+
+ The component with the property value that is to be set.
+ The new value.
+
+
+
+ When overridden in a derived class, determines a value indicating whether the value of this property needs to be persisted.
+
+
+ true if the property should be persisted; otherwise, false.
+
+ The component with the property to be examined for persistence.
+
+
+
+ When overridden in a derived class, gets the type of the component this property is bound to.
+
+
+ A that represents the type of component this property is bound to.
+ When the or
+
+ methods are invoked, the object specified might be an instance of this type.
+
+
+
+
+ When overridden in a derived class, gets a value indicating whether this property is read-only.
+
+
+ true if the property is read-only; otherwise, false.
+
+
+
+
+ When overridden in a derived class, gets the type of the property.
+
+
+ A that represents the type of the property.
+
+
+
+
+ Gets the hash code for the name of the member.
+
+
+
+ The hash code for the name of the member.
+
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Asynchronously creates an instance of with the content of the reader's current token.
+
+ The reader.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns an instance of with the content of the reader's current token.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+
+ The JSON line info handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output should be formatted.
+ A collection of s which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates a for this token.
+
+ A that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object.
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An of that contains the selected elements.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being written.
+
+ The token being written.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the JSON is auto-completed.
+
+
+ Setting to true has no additional effect, since the underlying is a type that cannot be closed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will be raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of s which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not of the same type as this instance.
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement .
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+
+ Contains the JSON schema extension methods.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ When this method returns, contains any error messages generated while validating.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ The validation event handler.
+
+
+
+
+ An in-memory representation of a JSON Schema.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the id.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ Gets or sets whether the object is required.
+
+
+
+
+ Gets or sets whether the object is read-only.
+
+
+
+
+ Gets or sets whether the object is visible to users.
+
+
+
+
+ Gets or sets whether the object is transient.
+
+
+
+
+ Gets or sets the description of the object.
+
+
+
+
+ Gets or sets the types of values allowed by the object.
+
+ The type.
+
+
+
+ Gets or sets the pattern.
+
+ The pattern.
+
+
+
+ Gets or sets the minimum length.
+
+ The minimum length.
+
+
+
+ Gets or sets the maximum length.
+
+ The maximum length.
+
+
+
+ Gets or sets a number that the value should be divisible by.
+
+ A number that the value should be divisible by.
+
+
+
+ Gets or sets the minimum.
+
+ The minimum.
+
+
+
+ Gets or sets the maximum.
+
+ The maximum.
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+
+
+ Gets or sets the minimum number of items.
+
+ The minimum number of items.
+
+
+
+ Gets or sets the maximum number of items.
+
+ The maximum number of items.
+
+
+
+ Gets or sets the of items.
+
+ The of items.
+
+
+
+ Gets or sets a value indicating whether items in an array are validated using the instance at their array position from .
+
+
+ true if items are validated using their array position; otherwise, false.
+
+
+
+
+ Gets or sets the of additional items.
+
+ The of additional items.
+
+
+
+ Gets or sets a value indicating whether additional items are allowed.
+
+
+ true if additional items are allowed; otherwise, false.
+
+
+
+
+ Gets or sets whether the array items must be unique.
+
+
+
+
+ Gets or sets the of properties.
+
+ The of properties.
+
+
+
+ Gets or sets the of additional properties.
+
+ The of additional properties.
+
+
+
+ Gets or sets the pattern properties.
+
+ The pattern properties.
+
+
+
+ Gets or sets a value indicating whether additional properties are allowed.
+
+
+ true if additional properties are allowed; otherwise, false.
+
+
+
+
+ Gets or sets the required property if this property is present.
+
+ The required property if this property is present.
+
+
+
+ Gets or sets the a collection of valid enum values allowed.
+
+ A collection of valid enum values allowed.
+
+
+
+ Gets or sets disallowed types.
+
+ The disallowed types.
+
+
+
+ Gets or sets the default value.
+
+ The default value.
+
+
+
+ Gets or sets the collection of that this schema extends.
+
+ The collection of that this schema extends.
+
+
+
+ Gets or sets the format.
+
+ The format.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The object representing the JSON Schema.
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The to use when resolving schema references.
+ The object representing the JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema.
+
+ A that contains JSON Schema.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema using the specified .
+
+ A that contains JSON Schema.
+ The resolver.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Writes this schema to a .
+
+ A into which this method will write.
+
+
+
+ Writes this schema to a using the specified .
+
+ A into which this method will write.
+ The resolver used.
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+
+ Returns detailed information about the schema exception.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The parameter is null.
+ The class name is null or is zero (0).
+
+
+
+
+ Generates a from a specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets how undefined schemas are handled by the serializer.
+
+
+
+
+ Gets or sets the contract resolver.
+
+ The contract resolver.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+
+ Resolves from an id.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the loaded schemas.
+
+ The loaded schemas.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a for the specified reference.
+
+ The id.
+ A for the specified reference.
+
+
+
+
+ The value types allowed by the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ No type specified.
+
+
+
+
+ String type.
+
+
+
+
+ Float type.
+
+
+
+
+ Integer type.
+
+
+
+
+ Boolean type.
+
+
+
+
+ Object type.
+
+
+
+
+ Array type.
+
+
+
+
+ Null type.
+
+
+
+
+ Any type.
+
+
+
+
+
+ Specifies undefined schema Id handling options for the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Do not infer a schema Id.
+
+
+
+
+ Use the .NET type name as the schema Id.
+
+
+
+
+ Use the assembly qualified .NET type name as the schema Id.
+
+
+
+
+
+ Returns detailed information related to the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the associated with the validation error.
+
+ The JsonSchemaException associated with the validation error.
+
+
+
+ Gets the path of the JSON location where the validation error occurred.
+
+ The path of the JSON location where the validation error occurred.
+
+
+
+ Gets the text description corresponding to the validation error.
+
+ The text description.
+
+
+
+
+ Represents the callback method that will handle JSON schema validation events and the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ A camel case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false.
+
+
+
+
+ Gets or sets the default members search flags.
+
+ The default members search flags.
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the interface when serializing and deserializing types.
+
+
+ true if the interface will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore the attribute when serializing and deserializing types.
+
+
+ true if the attribute will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types.
+
+
+ true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types.
+
+
+ true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized.
+
+ The naming strategy used to resolve how property names and dictionary keys are serialized.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the name of the extension data. By default no changes are made to extension data names.
+
+ Name of the extension data.
+ Resolved name of the extension data.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default naming strategy. Property names and dictionary keys are unchanged.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer that writes to the application's instances.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that was resolved from the reference.
+
+
+
+ Gets the reference for the specified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false.
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false.
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non-public.
+
+ true if the default object creator is non-public; otherwise, false.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object constructor.
+
+ The object constructor.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Gets or sets the extension data name resolver.
+
+ The extension data name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes precedence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false.
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false.
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the type described by the argument.
+
+ The type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ A base class for resolving how property names and dictionary keys are serialized.
+
+
+
+
+ A flag indicating whether dictionary keys should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether extension data names should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether explicitly specified property names,
+ e.g. a property name customized with a , should be processed.
+ Defaults to false.
+
+
+
+
+ Gets the serialized name for a given property name.
+
+ The initial property name.
+ A flag indicating whether the property has had a name explicitly specified.
+ The serialized property name.
+
+
+
+ Gets the serialized name for a given extension data name.
+
+ The initial extension data name.
+ The serialized extension data name.
+
+
+
+ Gets the serialized key for a given dictionary key.
+
+ The initial dictionary key.
+ The serialized dictionary key.
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ A snake case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+ Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON
+ you must specify a root type object with
+ or .
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false.
+
+
+
+
+ Adds the elements of the specified collection to the specified generic .
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic that returns a result
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Returns a Restrictions object which includes our current restrictions merged
+ with a restriction limiting our type
+
+
+
+
+ Helper class for serializing immutable collections.
+ Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed
+ https://github.com/JamesNK/Newtonsoft.Json/issues/652
+
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the member is an indexed property.
+
+ The member.
+
+ true if the member is an indexed property; otherwise, false.
+
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false.
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false.
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false.
+
+
+
+
+ Builds a string. Unlike this class lets you reuse its internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false.
+
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls result in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ An array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.11.0.2/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll
new file mode 100644
index 0000000..0395b1e
Binary files /dev/null and b/packages/Newtonsoft.Json.11.0.2/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.dll differ
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.11.0.2/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml
new file mode 100644
index 0000000..1d9143f
--- /dev/null
+++ b/packages/Newtonsoft.Json.11.0.2/lib/portable-net40+sl5+win8+wp8+wpa81/Newtonsoft.Json.xml
@@ -0,0 +1,8707 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false.
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a parameterized constructor.
+
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Creates a custom object.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a F# discriminated union type to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z").
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+ The default value is false.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether integer values are allowed when deserializing.
+ The default value is true.
+
+ true if integers are allowed when deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from Unix epoch time
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that it is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and set members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent an array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, when returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, when returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items.
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between .NET types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false.
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false.
+
+
+
+ Converts an object to and from JSON.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read. If there is no existing value then null will be used.
+ The existing value has a value.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+ Parameter list to use when constructing the . Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false. The default is true.
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false. The default is true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the used when serializing the property's collection items.
+
+ The collection's items .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ A read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader is in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the source should be closed when this reader is closed.
+
+
+ true to close the source when this reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false.
+ The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Gets or sets how time zones are handled when reading JSON.
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Gets or sets how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads the next JSON token from the source.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+ A flag indicating whether the position index inside an array should be updated.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the source is also closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and to require that the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+ The default value is .
+
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) are handled.
+ The default value is .
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+ Null value handling.
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The containing the JSON data to read.
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many s to write for each level in the hierarchy when is set to .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Initializes a new instance of the class using the specified .
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a read method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+
+ Represents a reader that provides validation.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Sets an event handler for receiving schema validation errors.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+
+ Initializes a new instance of the class that
+ validates the content returned from the given .
+
+ The to read from while validating.
+
+
+
+ Gets or sets the schema.
+
+ The schema.
+
+
+
+ Gets the used to construct this .
+
+ The specified in the constructor.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+
+ A [] or null if the next JSON token is null.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets or sets a value indicating whether the destination should be closed when this writer is closed.
+
+
+ true to close the destination when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed.
+
+
+ true to auto-complete the JSON when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Gets or sets a value indicating how JSON text output should be formatted.
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+
+
+
+
+ Gets or sets how time zones are handled when writing JSON text.
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the destination and also flushes the destination.
+
+
+
+
+ Closes this writer.
+ If is set to true, the destination is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the .
+
+ The being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while writing JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A of that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+
+
+
+ Removes all items from the .
+
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An of containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An of containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates a that can be used to add tokens to the .
+
+ A that is ready to have content written to it.
+
+
+
+ Replaces the child nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens.
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of of this object's properties.
+
+ An of of this object's properties.
+
+
+
+ Gets a the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets a of of this object's property values.
+
+ A of of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Determines whether the JSON object has the specified property name.
+
+ Name of the property.
+ true if the JSON object has the specified property name; otherwise, false.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries to get the with the specified property name.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+
+ The JSON line info handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output should be formatted.
+ A collection of s which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates a for this token.
+
+ A that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object.
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An of that contains the selected elements.
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being written.
+
+ The token being written.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the JSON is auto-completed.
+
+
+ Setting to true has no additional effect, since the underlying is a type that cannot be closed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will be raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of s which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not of the same type as this instance.
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement .
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+
+ Contains the JSON schema extension methods.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ When this method returns, contains any error messages generated while validating.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ The validation event handler.
+
+
+
+
+ An in-memory representation of a JSON Schema.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the id.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ Gets or sets whether the object is required.
+
+
+
+
+ Gets or sets whether the object is read-only.
+
+
+
+
+ Gets or sets whether the object is visible to users.
+
+
+
+
+ Gets or sets whether the object is transient.
+
+
+
+
+ Gets or sets the description of the object.
+
+
+
+
+ Gets or sets the types of values allowed by the object.
+
+ The type.
+
+
+
+ Gets or sets the pattern.
+
+ The pattern.
+
+
+
+ Gets or sets the minimum length.
+
+ The minimum length.
+
+
+
+ Gets or sets the maximum length.
+
+ The maximum length.
+
+
+
+ Gets or sets a number that the value should be divisible by.
+
+ A number that the value should be divisible by.
+
+
+
+ Gets or sets the minimum.
+
+ The minimum.
+
+
+
+ Gets or sets the maximum.
+
+ The maximum.
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+
+
+ Gets or sets the minimum number of items.
+
+ The minimum number of items.
+
+
+
+ Gets or sets the maximum number of items.
+
+ The maximum number of items.
+
+
+
+ Gets or sets the of items.
+
+ The of items.
+
+
+
+ Gets or sets a value indicating whether items in an array are validated using the instance at their array position from .
+
+
+ true if items are validated using their array position; otherwise, false.
+
+
+
+
+ Gets or sets the of additional items.
+
+ The of additional items.
+
+
+
+ Gets or sets a value indicating whether additional items are allowed.
+
+
+ true if additional items are allowed; otherwise, false.
+
+
+
+
+ Gets or sets whether the array items must be unique.
+
+
+
+
+ Gets or sets the of properties.
+
+ The of properties.
+
+
+
+ Gets or sets the of additional properties.
+
+ The of additional properties.
+
+
+
+ Gets or sets the pattern properties.
+
+ The pattern properties.
+
+
+
+ Gets or sets a value indicating whether additional properties are allowed.
+
+
+ true if additional properties are allowed; otherwise, false.
+
+
+
+
+ Gets or sets the required property if this property is present.
+
+ The required property if this property is present.
+
+
+
+ Gets or sets the a collection of valid enum values allowed.
+
+ A collection of valid enum values allowed.
+
+
+
+ Gets or sets disallowed types.
+
+ The disallowed types.
+
+
+
+ Gets or sets the default value.
+
+ The default value.
+
+
+
+ Gets or sets the collection of that this schema extends.
+
+ The collection of that this schema extends.
+
+
+
+ Gets or sets the format.
+
+ The format.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The object representing the JSON Schema.
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The to use when resolving schema references.
+ The object representing the JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema.
+
+ A that contains JSON Schema.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema using the specified .
+
+ A that contains JSON Schema.
+ The resolver.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Writes this schema to a .
+
+ A into which this method will write.
+
+
+
+ Writes this schema to a using the specified .
+
+ A into which this method will write.
+ The resolver used.
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+
+ Returns detailed information about the schema exception.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+
+ Generates a from a specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets how undefined schemas are handled by the serializer.
+
+
+
+
+ Gets or sets the contract resolver.
+
+ The contract resolver.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+
+ Resolves from an id.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the loaded schemas.
+
+ The loaded schemas.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a for the specified reference.
+
+ The id.
+ A for the specified reference.
+
+
+
+
+ The value types allowed by the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ No type specified.
+
+
+
+
+ String type.
+
+
+
+
+ Float type.
+
+
+
+
+ Integer type.
+
+
+
+
+ Boolean type.
+
+
+
+
+ Object type.
+
+
+
+
+ Array type.
+
+
+
+
+ Null type.
+
+
+
+
+ Any type.
+
+
+
+
+
+ Specifies undefined schema Id handling options for the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Do not infer a schema Id.
+
+
+
+
+ Use the .NET type name as the schema Id.
+
+
+
+
+ Use the assembly qualified .NET type name as the schema Id.
+
+
+
+
+
+ Returns detailed information related to the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the associated with the validation error.
+
+ The JsonSchemaException associated with the validation error.
+
+
+
+ Gets the path of the JSON location where the validation error occurred.
+
+ The path of the JSON location where the validation error occurred.
+
+
+
+ Gets the text description corresponding to the validation error.
+
+ The text description.
+
+
+
+
+ Represents the callback method that will handle JSON schema validation events and the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ A camel case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false.
+
+
+
+
+ Gets or sets the default members search flags.
+
+ The default members search flags.
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types.
+
+
+ true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types.
+
+
+ true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized.
+
+ The naming strategy used to resolve how property names and dictionary keys are serialized.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the name of the extension data. By default no changes are made to extension data names.
+
+ Name of the extension data.
+ Resolved name of the extension data.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default naming strategy. Property names and dictionary keys are unchanged.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that was resolved from the reference.
+
+
+
+ Gets the reference for the specified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false.
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false.
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non-public.
+
+ true if the default object creator is non-public; otherwise, false.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Gets or sets the extension data name resolver.
+
+ The extension data name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes precedence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false.
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false.
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the type described by the argument.
+
+ The type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ A base class for resolving how property names and dictionary keys are serialized.
+
+
+
+
+ A flag indicating whether dictionary keys should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether extension data names should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether explicitly specified property names,
+ e.g. a property name customized with a , should be processed.
+ Defaults to false.
+
+
+
+
+ Gets the serialized name for a given property name.
+
+ The initial property name.
+ A flag indicating whether the property has had a name explicitly specified.
+ The serialized property name.
+
+
+
+ Gets the serialized name for a given extension data name.
+
+ The initial extension data name.
+ The serialized extension data name.
+
+
+
+ Gets the serialized key for a given dictionary key.
+
+ The initial dictionary key.
+ The serialized dictionary key.
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ A snake case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Specifies what messages to output for the class.
+
+
+
+
+ Output no tracing and debugging messages.
+
+
+
+
+ Output error-handling messages.
+
+
+
+
+ Output warnings and error-handling messages.
+
+
+
+
+ Output informational messages, warnings, and error-handling messages.
+
+
+
+
+ Output all debugging and tracing messages.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+ Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON
+ you must specify a root type object with
+ or .
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false.
+
+
+
+
+ Adds the elements of the specified collection to the specified generic .
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper class for serializing immutable collections.
+ Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed
+ https://github.com/JamesNK/Newtonsoft.Json/issues/652
+
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the member is an indexed property.
+
+ The member.
+
+ true if the member is an indexed property; otherwise, false.
+
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false.
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false.
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false.
+
+
+
+
+ Builds a string. Unlike this class lets you reuse its internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false.
+
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls result in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ An array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the method is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The is used to load the assembly.
+
+
+
+
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll b/packages/Newtonsoft.Json.11.0.2/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll
new file mode 100644
index 0000000..2d82d36
Binary files /dev/null and b/packages/Newtonsoft.Json.11.0.2/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.dll differ
diff --git a/packages/Newtonsoft.Json.11.0.2/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml b/packages/Newtonsoft.Json.11.0.2/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml
new file mode 100644
index 0000000..482127f
--- /dev/null
+++ b/packages/Newtonsoft.Json.11.0.2/lib/portable-net45+win8+wp8+wpa81/Newtonsoft.Json.xml
@@ -0,0 +1,10619 @@
+
+
+
+ Newtonsoft.Json
+
+
+
+
+ Represents a BSON Oid (object id).
+
+
+
+
+ Gets or sets the value of the Oid.
+
+ The value of the Oid.
+
+
+
+ Initializes a new instance of the class.
+
+ The Oid value.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data.
+
+
+
+
+ Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary.
+
+
+ true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether the root object will be read as a JSON array.
+
+
+ true if the root object will be read as a JSON array; otherwise, false.
+
+
+
+
+ Gets or sets the used when reading values from BSON.
+
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The containing the BSON data to read.
+ if set to true the root object will be read as a JSON array.
+ The used when reading values from BSON.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data.
+
+
+
+
+ Gets or sets the used when writing values to BSON.
+ When set to no conversion will occur.
+
+ The used when writing values to BSON.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Initializes a new instance of the class.
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying stream.
+
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value that represents a BSON object id.
+
+ The Object ID value to write.
+
+
+
+ Writes a BSON regex.
+
+ The regex pattern.
+ The regex options.
+
+
+
+ Specifies how constructors are used when initializing objects during deserialization by the .
+
+
+
+
+ First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor.
+
+
+
+
+ Json.NET will use a non-public default constructor before falling back to a parameterized constructor.
+
+
+
+
+ Converts a binary value to and from a base 64 string value.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Creates a custom object.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Creates an object which will then be populated by the serializer.
+
+ Type of the object.
+ The created object.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Provides a base class for converting a to and from JSON.
+
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a F# discriminated union type to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+
+ true if this can write JSON; otherwise, false.
+
+
+
+
+ Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z").
+
+
+
+
+ Gets or sets the date time styles used when converting a date to and from JSON.
+
+ The date time styles used when converting a date to and from JSON.
+
+
+
+ Gets or sets the date time format used when converting a date to and from JSON.
+
+ The date time format used when converting a date to and from JSON.
+
+
+
+ Gets or sets the culture used when converting a date to and from JSON.
+
+ The culture used when converting a date to and from JSON.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)).
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from JSON and BSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts an to and from its name string value.
+
+
+
+
+ Gets or sets a value indicating whether the written enum text should be camel case.
+ The default value is false.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether integer values are allowed when deserializing.
+ The default value is true.
+
+ true if integers are allowed when deserializing; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ true if the written enum text will be camel case; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts a to and from Unix epoch time
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Converts a to and from a string (e.g. "1.2.3.4").
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing property value of the JSON that is being converted.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Converts XML to and from JSON.
+
+
+
+
+ Gets or sets the name of the root element to insert when deserializing to XML if the JSON structure has produced multiple root elements.
+
+ The name of the deserialized root element.
+
+
+
+ Gets or sets a flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ true if the array attribute is written to the XML; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether to write the root JSON object.
+
+ true if the JSON root object is omitted; otherwise, false.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The calling serializer.
+ The value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Checks if the is a namespace attribute.
+
+ Attribute name to test.
+ The attribute name prefix if it has one, otherwise an empty string.
+ true if attribute name is for a namespace attribute, otherwise false.
+
+
+
+ Determines whether this instance can convert the specified value type.
+
+ Type of the value.
+
+ true if this instance can convert the specified value type; otherwise, false.
+
+
+
+
+ Specifies how dates are formatted when writing JSON text.
+
+
+
+
+ Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z".
+
+
+
+
+ Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/".
+
+
+
+
+ Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text.
+
+
+
+
+ Date formatted strings are not parsed to a date type and are read as strings.
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to .
+
+
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+
+
+ Treat as a local time if a is being converted to a string.
+ If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+
+
+ Time zone information should be preserved when converting.
+
+
+
+
+ Specifies default value handling options for the .
+
+
+
+
+
+
+
+
+ Include members where the member value is the same as the member's default value when serializing objects.
+ Included members are written to JSON. Has no effect when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ so that it is not written to JSON.
+ This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers,
+ decimals and floating point numbers; and false for booleans). The default value ignored can be changed by
+ placing the on the property.
+
+
+
+
+ Members with a default value but no JSON will be set to their default value when deserializing.
+
+
+
+
+ Ignore members where the member value is the same as the member's default value when serializing objects
+ and set members to their default value when deserializing.
+
+
+
+
+ Specifies float format handling options when writing special floating point numbers, e.g. ,
+ and with .
+
+
+
+
+ Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity".
+
+
+
+
+ Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity.
+ Note that this will produce non-valid JSON.
+
+
+
+
+ Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property.
+
+
+
+
+ Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Floating point numbers are parsed to .
+
+
+
+
+ Specifies formatting options for the .
+
+
+
+
+ No special formatting is applied. This is the default.
+
+
+
+
+ Causes child objects to be indented according to the and settings.
+
+
+
+
+ Provides an interface for using pooled arrays.
+
+ The array type content.
+
+
+
+ Rent an array from the pool. This array must be returned when it is no longer needed.
+
+ The minimum required length of the array. The returned array may be longer.
+ The rented array from the pool. This array must be returned when it is no longer needed.
+
+
+
+ Return an array to the pool.
+
+ The array that is being returned.
+
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+ The current line number or 0 if no line information is available (for example, when returns false).
+
+
+
+ Gets the current line position.
+
+ The current line position or 0 if no line information is available (for example, when returns false).
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Gets or sets a value indicating whether null items are allowed in the collection.
+
+ true if null items are allowed in the collection; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with a flag indicating whether the array can contain null items.
+
+ A flag indicating whether the array can contain null items.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to use the specified constructor when deserializing that object.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the id.
+
+ The id.
+
+
+
+ Gets or sets the title.
+
+ The title.
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the collection's items converter.
+
+ The collection's items converter.
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets a value that indicates whether to preserve object references.
+
+
+ true to keep object reference; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets a value that indicates whether to preserve collection's items references.
+
+
+ true to keep collection's items object references; otherwise, false. The default is false.
+
+
+
+
+ Gets or sets the reference loop handling used when serializing the collection's items.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the collection's items.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Provides methods for converting between .NET types and JSON types.
+
+
+
+
+
+
+
+ Gets or sets a function that creates default .
+ Default settings are automatically used by serialization methods on ,
+ and and on .
+ To serialize without using any default settings create a with
+ .
+
+
+
+
+ Represents JavaScript's boolean value true as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's boolean value false as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's null as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's undefined as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's positive infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's negative infinity as a string. This field is read-only.
+
+
+
+
+ Represents JavaScript's NaN as a string. This field is read-only.
+
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ The time zone handling when the date is converted to a string.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation using the specified.
+
+ The value to convert.
+ The format the date will be converted to.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ The string delimiter character.
+ The string escape handling.
+ A JSON string representation of the .
+
+
+
+ Converts the to its JSON string representation.
+
+ The value to convert.
+ A JSON string representation of the .
+
+
+
+ Serializes the specified object to a JSON string.
+
+ The object to serialize.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting.
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a collection of .
+
+ The object to serialize.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using formatting and a collection of .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ A collection of converters used while serializing.
+ A JSON string representation of the object.
+
+
+
+ Serializes the specified object to a JSON string using .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ A JSON string representation of the object.
+
+
+
+
+ Serializes the specified object to a JSON string using a type, formatting and .
+
+ The object to serialize.
+ Indicates how the output should be formatted.
+ The used to serialize the object.
+ If this is null, default serialization settings will be used.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+ A JSON string representation of the object.
+
+
+
+
+ Deserializes the JSON to a .NET object.
+
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to a .NET object using .
+
+ The JSON to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The JSON to deserialize.
+ The of object being deserialized.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type.
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type.
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the given anonymous type using .
+
+
+ The anonymous type to deserialize to. This can't be specified
+ traditionally and must be inferred from the anonymous type passed
+ as a parameter.
+
+ The JSON to deserialize.
+ The anonymous type object.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized anonymous type from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The type of the object to deserialize to.
+ The JSON to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The type of the object to deserialize to.
+ The object to deserialize.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using a collection of .
+
+ The JSON to deserialize.
+ The type of the object to deserialize.
+ Converters to use while deserializing.
+ The deserialized object from the JSON string.
+
+
+
+ Deserializes the JSON to the specified .NET type using .
+
+ The JSON to deserialize.
+ The type of the object to deserialize to.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+ The deserialized object from the JSON string.
+
+
+
+ Populates the object with values from the JSON string.
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+
+
+ Populates the object with values from the JSON string using .
+
+ The JSON to populate values from.
+ The target object to populate values onto.
+
+ The used to deserialize the object.
+ If this is null, default serialization settings will be used.
+
+
+
+
+ Serializes the to a JSON string.
+
+ The node to convert to JSON.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting.
+
+ The node to convert to JSON.
+ Indicates how the output should be formatted.
+ A JSON string of the .
+
+
+
+ Serializes the to a JSON string using formatting and omits the root object if is true.
+
+ The node to serialize.
+ Indicates how the output should be formatted.
+ Omits writing the root object.
+ A JSON string of the .
+
+
+
+ Deserializes the from a JSON string.
+
+ The JSON string.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by .
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+ The deserialized .
+
+
+
+ Deserializes the from a JSON string nested in a root element specified by
+ and writes a Json.NET array attribute for collections.
+
+ The JSON string.
+ The name of the root element to append when deserializing.
+
+ A flag to indicate whether to write the Json.NET array attribute.
+ This attribute helps preserve arrays when converting the written XML back to JSON.
+
+ The deserialized .
+
+
+
+ Converts an object to and from JSON.
+
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this can read JSON.
+
+ true if this can read JSON; otherwise, false.
+
+
+
+ Gets a value indicating whether this can write JSON.
+
+ true if this can write JSON; otherwise, false.
+
+
+
+ Converts an object to and from JSON.
+
+ The object type to convert.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Writes the JSON representation of the object.
+
+ The to write to.
+ The value.
+ The calling serializer.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read.
+ The calling serializer.
+ The object value.
+
+
+
+ Reads the JSON representation of the object.
+
+ The to read from.
+ Type of the object.
+ The existing value of object being read. If there is no existing value then null will be used.
+ The existing value has a value.
+ The calling serializer.
+ The object value.
+
+
+
+ Determines whether this instance can convert the specified object type.
+
+ Type of the object.
+
+ true if this instance can convert the specified object type; otherwise, false.
+
+
+
+
+ Instructs the to use the specified when serializing the member or class.
+
+
+
+
+ Gets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the .
+ Parameter list to use when constructing the . Can be null.
+
+
+
+ Represents a collection of .
+
+
+
+
+ Instructs the how to serialize the collection.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to deserialize properties with no matching class member into the specified collection
+ and write values during serialization.
+
+
+
+
+ Gets or sets a value that indicates whether to write extension data when serializing the object.
+
+
+ true to write extension data when serializing the object; otherwise, false. The default is true.
+
+
+
+
+ Gets or sets a value that indicates whether to read extension data when deserializing the object.
+
+
+ true to read extension data when deserializing the object; otherwise, false. The default is true.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Instructs the not to serialize the public field or public read/write property value.
+
+
+
+
+ Instructs the how to serialize the object.
+
+
+
+
+ Gets or sets the member serialization.
+
+ The member serialization.
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified member serialization.
+
+ The member serialization.
+
+
+
+ Initializes a new instance of the class with the specified container Id.
+
+ The container Id.
+
+
+
+ Instructs the to always serialize the member with the specified name.
+
+
+
+
+ Gets or sets the used when serializing the property's collection items.
+
+ The collection's items .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the of the .
+
+ The of the .
+
+
+
+ The parameter list to use when constructing the described by .
+ If null, the default constructor is used.
+ When non-null, there must be a constructor defined in the that exactly matches the number,
+ order, and type of these parameters.
+
+
+
+ [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })]
+
+
+
+
+
+ Gets or sets the null value handling used when serializing this property.
+
+ The null value handling.
+
+
+
+ Gets or sets the default value handling used when serializing this property.
+
+ The default value handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing this property.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the object creation handling used when deserializing this property.
+
+ The object creation handling.
+
+
+
+ Gets or sets the type name handling used when serializing this property.
+
+ The type name handling.
+
+
+
+ Gets or sets whether this property's value is serialized as a reference.
+
+ Whether this property's value is serialized as a reference.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets a value indicating whether this property is required.
+
+
+ A value indicating whether this property is required.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ Name of the property.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously skips the children of the current token.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Specifies the state of the reader.
+
+
+
+
+ A read method has not been called.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Reader is at a property.
+
+
+
+
+ Reader is at the start of an object.
+
+
+
+
+ Reader is in an object.
+
+
+
+
+ Reader is at the start of an array.
+
+
+
+
+ Reader is in an array.
+
+
+
+
+ The method has been called.
+
+
+
+
+ Reader has just read a value.
+
+
+
+
+ Reader is at the start of a constructor.
+
+
+
+
+ Reader is in a constructor.
+
+
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+
+
+ The end of the file has been reached successfully.
+
+
+
+
+ Gets the current reader state.
+
+ The current reader state.
+
+
+
+ Gets or sets a value indicating whether the source should be closed when this reader is closed.
+
+
+ true to close the source when this reader is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether multiple pieces of JSON content can
+ be read from a continuous stream without erroring.
+
+
+ true to support reading multiple pieces of JSON content; otherwise false.
+ The default is false.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+ Gets or sets how time zones are handled when reading JSON.
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+
+
+
+
+ Gets or sets how custom date formatted strings are parsed when reading JSON.
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets or sets the culture used when reading JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads the next JSON token from the source.
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the source as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Skips the children of the current token.
+
+
+
+
+ Sets the current token.
+
+ The new token.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+
+
+
+ Sets the current token and value.
+
+ The new token.
+ The value.
+ A flag indicating whether the position index inside an array should be updated.
+
+
+
+ Sets the state based on current token type.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the source is also closed.
+
+
+
+
+ The exception thrown when an error occurs while reading JSON text.
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path, line number, line position, and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Instructs the to always serialize the member, and to require that the member has a value.
+
+
+
+
+ The exception thrown when an error occurs during JSON serialization or deserialization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Serializes and deserializes objects into and from the JSON format.
+ The enables you to control how objects are encoded into JSON.
+
+
+
+
+ Occurs when the errors during serialization and deserialization.
+
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) is handled.
+ The default value is .
+
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets a collection that will be used during serialization.
+
+ Collection that will be used during serialization.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Gets a value indicating whether there will be a check for additional JSON content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional JSON content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new instance.
+ The will not use default settings
+ from .
+
+
+ A new instance.
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will not use default settings
+ from .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will not use default settings
+ from .
+
+
+
+
+ Creates a new instance.
+ The will use default settings
+ from .
+
+
+ A new instance.
+ The will use default settings
+ from .
+
+
+
+
+ Creates a new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+ The settings to be applied to the .
+
+ A new instance using the specified .
+ The will use default settings
+ from as well as the specified .
+
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Populates the JSON values onto the target object.
+
+ The that contains the JSON structure to reader values from.
+ The target object to populate values onto.
+
+
+
+ Deserializes the JSON structure contained by the specified .
+
+ The that contains the JSON structure to deserialize.
+ The being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The type of the object to deserialize.
+ The instance of being deserialized.
+
+
+
+ Deserializes the JSON structure contained by the specified
+ into an instance of the specified type.
+
+ The containing the object.
+ The of object being deserialized.
+ The instance of being deserialized.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+ The type of the value being serialized.
+ This parameter is used when is Auto to write out the type name if the type of the value does not match.
+ Specifying the type is optional.
+
+
+
+
+ Serializes the specified and writes the JSON structure
+ using the specified .
+
+ The used to write the JSON structure.
+ The to serialize.
+
+
+
+ Specifies the settings on a object.
+
+
+
+
+ Gets or sets how reference loops (e.g. a class referencing itself) are handled.
+ The default value is .
+
+ Reference loop handling.
+
+
+
+ Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization.
+ The default value is .
+
+ Missing member handling.
+
+
+
+ Gets or sets how objects are created during deserialization.
+ The default value is .
+
+ The object creation handling.
+
+
+
+ Gets or sets how null values are handled during serialization and deserialization.
+ The default value is .
+
+ Null value handling.
+
+
+
+ Gets or sets how default values are handled during serialization and deserialization.
+ The default value is .
+
+ The default value handling.
+
+
+
+ Gets or sets a collection that will be used during serialization.
+
+ The converters.
+
+
+
+ Gets or sets how object references are preserved by the serializer.
+ The default value is .
+
+ The preserve references handling.
+
+
+
+ Gets or sets how type name writing and reading is handled by the serializer.
+ The default value is .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+ The type name handling.
+
+
+
+ Gets or sets how metadata properties are used during deserialization.
+ The default value is .
+
+ The metadata properties handling.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how a type name assembly is written and resolved by the serializer.
+ The default value is .
+
+ The type name assembly format.
+
+
+
+ Gets or sets how constructors are used during deserialization.
+ The default value is .
+
+ The constructor handling.
+
+
+
+ Gets or sets the contract resolver used by the serializer when
+ serializing .NET objects to JSON and vice versa.
+
+ The contract resolver.
+
+
+
+ Gets or sets the equality comparer used by the serializer when comparing references.
+
+ The equality comparer.
+
+
+
+ Gets or sets the used by the serializer when resolving references.
+
+ The reference resolver.
+
+
+
+ Gets or sets a function that creates the used by the serializer when resolving references.
+
+ A function that creates the used by the serializer when resolving references.
+
+
+
+ Gets or sets the used by the serializer when writing trace messages.
+
+ The trace writer.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the used by the serializer when resolving type names.
+
+ The binder.
+
+
+
+ Gets or sets the error handler called during serialization and deserialization.
+
+ The error handler called during serialization and deserialization.
+
+
+
+ Gets or sets the used by the serializer when invoking serialization callback methods.
+
+ The context.
+
+
+
+ Gets or sets how and values are formatted when writing JSON text,
+ and the expected date format when reading JSON text.
+ The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK".
+
+
+
+
+ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a .
+ A null value means there is no maximum.
+ The default value is null.
+
+
+
+
+ Indicates how JSON text output is formatted.
+ The default value is .
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how time zones are handled during serialization and deserialization.
+ The default value is .
+
+
+
+
+ Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written as JSON.
+ The default value is .
+
+
+
+
+ Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+ The default value is .
+
+
+
+
+ Gets or sets the culture used when reading JSON.
+ The default value is .
+
+
+
+
+ Gets a value indicating whether there will be a check for additional content after deserializing an object.
+ The default value is false.
+
+
+ true if there will be a check for additional content after deserializing an object; otherwise, false.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to JSON text data.
+
+
+
+
+ Asynchronously reads the next JSON token from the source.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns true if the next token was read successfully; false if there are no more tokens to read.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a [].
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the []. This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a of .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the of . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously reads the next JSON token from the source as a .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous read. The
+ property returns the . This result will be null at the end of an array.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Initializes a new instance of the class with the specified .
+
+ The containing the JSON data to read.
+
+
+
+ Gets or sets the reader's character buffer pool.
+
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+ A [] or null if the next JSON token is null. This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Gets a value indicating whether the class can return line information.
+
+
+ true if and can be provided; otherwise, false.
+
+
+
+
+ Gets the current line number.
+
+
+ The current line number or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Gets the current line position.
+
+
+ The current line position or 0 if no line information is available (for example, returns false).
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ Derived classes must override this method to get asynchronous behaviour. Otherwise it will
+ execute synchronously, returning an already-completed task.
+
+
+
+ Gets or sets the writer's character array pool.
+
+
+
+
+ Gets or sets how many s to write for each level in the hierarchy when is set to .
+
+
+
+
+ Gets or sets which character to use to quote attribute values.
+
+
+
+
+ Gets or sets which character to use for indenting when is set to .
+
+
+
+
+ Gets or sets a value indicating whether object names will be surrounded with quotes.
+
+
+
+
+ Initializes a new instance of the class using the specified .
+
+ The to write to.
+
+
+
+ Flushes whatever is in the buffer to the underlying and also flushes the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the underlying is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Specifies the type of JSON token.
+
+
+
+
+ This is returned by the if a read method has not been called.
+
+
+
+
+ An object start token.
+
+
+
+
+ An array start token.
+
+
+
+
+ A constructor start token.
+
+
+
+
+ An object property name.
+
+
+
+
+ A comment.
+
+
+
+
+ Raw JSON.
+
+
+
+
+ An integer.
+
+
+
+
+ A float.
+
+
+
+
+ A string.
+
+
+
+
+ A boolean.
+
+
+
+
+ A null token.
+
+
+
+
+ An undefined token.
+
+
+
+
+ An object end token.
+
+
+
+
+ An array end token.
+
+
+
+
+ A constructor end token.
+
+
+
+
+ A Date.
+
+
+
+
+ Byte data.
+
+
+
+
+
+ Represents a reader that provides validation.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Sets an event handler for receiving schema validation errors.
+
+
+
+
+ Gets the text value of the current JSON token.
+
+
+
+
+
+ Gets the depth of the current token in the JSON document.
+
+ The depth of the current token in the JSON document.
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Gets the quotation mark character used to enclose the value of a string.
+
+
+
+
+
+ Gets the type of the current JSON token.
+
+
+
+
+
+ Gets the .NET type for the current JSON token.
+
+
+
+
+
+ Initializes a new instance of the class that
+ validates the content returned from the given .
+
+ The to read from while validating.
+
+
+
+ Gets or sets the schema.
+
+ The schema.
+
+
+
+ Gets the used to construct this .
+
+ The specified in the constructor.
+
+
+
+ Changes the reader's state to .
+ If is set to true, the underlying is also closed.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a [].
+
+
+ A [] or null if the next JSON token is null.
+
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying as a .
+
+ A . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of . This method will return null at the end of an array.
+
+
+
+ Reads the next JSON token from the underlying as a of .
+
+ A of .
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Asynchronously closes this writer.
+ If is set to true, the destination is also closed.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the specified end token.
+
+ The end token to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes indent characters.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the JSON value delimiter.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an indent space.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of the current JSON object or array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of an array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a constructor.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the end of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a null value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON array.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the start of a constructor with the given name.
+
+ The name of the constructor.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the beginning of a JSON object.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a [] value.
+
+ The [] value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a value.
+
+ The value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes a of value.
+
+ The of value to write.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes an undefined value.
+
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously writes the given white space.
+
+ The string of white space characters.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Asynchronously ets the state of the .
+
+ The being written.
+ The value being written.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous operation.
+ The default behaviour is to execute synchronously, returning an already-completed task. Derived
+ classes can override this behaviour for true asynchronicity.
+
+
+
+ Gets or sets a value indicating whether the destination should be closed when this writer is closed.
+
+
+ true to close the destination when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed.
+
+
+ true to auto-complete the JSON when this writer is closed; otherwise false. The default is true.
+
+
+
+
+ Gets the top.
+
+ The top.
+
+
+
+ Gets the state of the writer.
+
+
+
+
+ Gets the path of the writer.
+
+
+
+
+ Gets or sets a value indicating how JSON text output should be formatted.
+
+
+
+
+ Gets or sets how dates are written to JSON text.
+
+
+
+
+ Gets or sets how time zones are handled when writing JSON text.
+
+
+
+
+ Gets or sets how strings are escaped when writing JSON text.
+
+
+
+
+ Gets or sets how special floating point numbers, e.g. ,
+ and ,
+ are written to JSON text.
+
+
+
+
+ Gets or sets how and values are formatted when writing JSON text.
+
+
+
+
+ Gets or sets the culture used when writing JSON. Defaults to .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the destination and also flushes the destination.
+
+
+
+
+ Closes this writer.
+ If is set to true, the destination is also closed.
+ If is set to true, the JSON is auto-completed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the end of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the end of an array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end constructor.
+
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+
+
+
+ Writes the property name of a name/value pair of a JSON object.
+
+ The name of the property.
+ A flag to indicate whether the text should be escaped when it is written as a JSON property name.
+
+
+
+ Writes the end of the current JSON object or array.
+
+
+
+
+ Writes the current token and its children.
+
+ The to read the token from.
+
+
+
+ Writes the current token.
+
+ The to read the token from.
+ A flag indicating whether the current token's children should be written.
+
+
+
+ Writes the token and its value.
+
+ The to write.
+
+ The value to write.
+ A value is only required for tokens that have an associated value, e.g. the property name for .
+ null can be passed to the method for tokens that don't have a value, e.g. .
+
+
+
+
+ Writes the token.
+
+ The to write.
+
+
+
+ Writes the specified end token.
+
+ The end token to write.
+
+
+
+ Writes indent characters.
+
+
+
+
+ Writes the JSON value delimiter.
+
+
+
+
+ Writes an indent space.
+
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON without changing the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes raw JSON where a value is expected and updates the writer's state.
+
+ The raw JSON to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a of value.
+
+ The of value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+ An error will raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes the given white space.
+
+ The string of white space characters.
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ true to release both managed and unmanaged resources; false to release only unmanaged resources.
+
+
+
+ Sets the state of the .
+
+ The being written.
+ The value being written.
+
+
+
+ The exception thrown when an error occurs while writing JSON text.
+
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message, JSON path and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The path to the JSON where the error occurred.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+ Specifies how JSON comments are handled when loading JSON.
+
+
+
+
+ Ignore comments.
+
+
+
+
+ Load comments as a with type .
+
+
+
+
+ Contains the LINQ to JSON extension methods.
+
+
+
+
+ Returns a collection of tokens that contains the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, the ancestors of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains the descendants of every token in the source collection.
+
+
+
+ Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection.
+
+ The type of the objects in source, constrained to .
+ An of that contains the source collection.
+ An of that contains every token in the source collection, and the descendants of every token in the source collection.
+
+
+
+ Returns a collection of child properties of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the properties of every object in the source collection.
+
+
+
+ Returns a collection of child values of every object in the source collection with the given key.
+
+ An of that contains the source collection.
+ The token key.
+ An of that contains the values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of child values of every object in the source collection.
+
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child values of every object in the source collection with the given key.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ The token key.
+ An that contains the converted values of every token in the source collection with the given key.
+
+
+
+ Returns a collection of converted child values of every object in the source collection.
+
+ The type to convert the values to.
+ An of that contains the source collection.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Converts the value.
+
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Converts the value.
+
+ The source collection type.
+ The type to convert the value to.
+ A cast as a of .
+ A converted value.
+
+
+
+ Returns a collection of child tokens of every array in the source collection.
+
+ The source collection type.
+ An of that contains the source collection.
+ An of that contains the values of every token in the source collection.
+
+
+
+ Returns a collection of converted child tokens of every array in the source collection.
+
+ An of that contains the source collection.
+ The type to convert the values to.
+ The source collection type.
+ An that contains the converted values of every token in the source collection.
+
+
+
+ Returns the input typed as .
+
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Returns the input typed as .
+
+ The source collection type.
+ An of that contains the source collection.
+ The input typed as .
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Represents a JSON array.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous load. The property contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the array.
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads an from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the at the specified index.
+
+
+
+
+
+ Determines the index of a specific item in the .
+
+ The object to locate in the .
+
+ The index of if found in the list; otherwise, -1.
+
+
+
+
+ Inserts an item to the at the specified index.
+
+ The zero-based index at which should be inserted.
+ The object to insert into the .
+
+ is not a valid index in the .
+
+
+
+
+ Removes the item at the specified index.
+
+ The zero-based index of the item to remove.
+
+ is not a valid index in the .
+
+
+
+
+ Returns an enumerator that iterates through the collection.
+
+
+ A of that can be used to iterate through the collection.
+
+
+
+
+ Adds an item to the .
+
+ The object to add to the .
+
+
+
+ Removes all items from the .
+
+
+
+
+ Determines whether the contains a specific value.
+
+ The object to locate in the .
+
+ true if is found in the ; otherwise, false.
+
+
+
+
+ Copies the elements of the to an array, starting at a particular array index.
+
+ The array.
+ Index of the array.
+
+
+
+ Gets a value indicating whether the is read-only.
+
+ true if the is read-only; otherwise, false.
+
+
+
+ Removes the first occurrence of a specific object from the .
+
+ The object to remove from the .
+
+ true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original .
+
+
+
+
+ Represents a JSON constructor.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets or sets the name of this constructor.
+
+ The constructor name.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name and content.
+
+ The constructor name.
+ The contents of the constructor.
+
+
+
+ Initializes a new instance of the class with the specified name.
+
+ The constructor name.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a token that can contain other tokens.
+
+
+
+
+ Occurs when the items list of the collection has changed, or the collection is reset.
+
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Raises the event.
+
+ The instance containing the event data.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Get the first child token of this token.
+
+
+ A containing the first child token of the .
+
+
+
+
+ Get the last child token of this token.
+
+
+ A containing the last child token of the .
+
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+
+ An of containing the child tokens of this , in document order.
+
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+
+ A containing the child values of this , in document order.
+
+
+
+
+ Returns a collection of the descendant tokens for this token in document order.
+
+ An of containing the descendant tokens of the .
+
+
+
+ Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order.
+
+ An of containing this token, and all the descendant tokens of the .
+
+
+
+ Adds the specified content as children of this .
+
+ The content to be added.
+
+
+
+ Adds the specified content as the first children of this .
+
+ The content to be added.
+
+
+
+ Creates a that can be used to add tokens to the .
+
+ A that is ready to have content written to it.
+
+
+
+ Replaces the child nodes of this token with the specified content.
+
+ The content.
+
+
+
+ Removes the child nodes from this token.
+
+
+
+
+ Merge the specified content into this .
+
+ The content to be merged.
+
+
+
+ Merge the specified content into this using .
+
+ The content to be merged.
+ The used to merge the content.
+
+
+
+ Gets the count of child JSON tokens.
+
+ The count of child JSON tokens.
+
+
+
+ Represents a collection of objects.
+
+ The type of token.
+
+
+
+ An empty collection of objects.
+
+
+
+
+ Initializes a new instance of the struct.
+
+ The enumerable.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Gets the of with the specified key.
+
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to this instance.
+
+ The to compare with this instance.
+
+ true if the specified is equal to this instance; otherwise, false.
+
+
+
+
+ Returns a hash code for this instance.
+
+
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+
+
+ Represents a JSON object.
+
+
+
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous load. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Occurs when a property value changes.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Initializes a new instance of the class with the specified content.
+
+ The contents of the object.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets an of of this object's properties.
+
+ An of of this object's properties.
+
+
+
+ Gets a the specified name.
+
+ The property name.
+ A with the specified name or null.
+
+
+
+ Gets a of of this object's property values.
+
+ A of of this object's property values.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets or sets the with the specified property name.
+
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+ is not valid JSON.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+ is not valid JSON.
+
+
+
+
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the values of the specified object.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ The that will be used to read the object.
+ A with the values of the specified object.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Gets the with the specified property name.
+
+ Name of the property.
+ The with the specified property name.
+
+
+
+ Gets the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ One of the enumeration values that specifies how the strings will be compared.
+ The with the specified property name.
+
+
+
+ Tries to get the with the specified property name.
+ The exact property name will be searched for first and if no matching property is found then
+ the will be used to match a property.
+
+ Name of the property.
+ The value.
+ One of the enumeration values that specifies how the strings will be compared.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Adds the specified property name.
+
+ Name of the property.
+ The value.
+
+
+
+ Determines whether the JSON object has the specified property name.
+
+ Name of the property.
+ true if the JSON object has the specified property name; otherwise, false.
+
+
+
+ Removes the property with the specified name.
+
+ Name of the property.
+ true if item was successfully removed; otherwise, false.
+
+
+
+ Tries to get the with the specified property name.
+
+ Name of the property.
+ The value.
+ true if a value was successfully retrieved; otherwise, false.
+
+
+
+ Returns an enumerator that can be used to iterate through the collection.
+
+
+ A that can be used to iterate through the collection.
+
+
+
+
+ Raises the event with the provided arguments.
+
+ Name of the property.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Represents a JSON property.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Asynchronously loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns a that contains the JSON that was read from the specified .
+
+
+
+ Gets the container's children tokens.
+
+ The container's children tokens.
+
+
+
+ Gets the property name.
+
+ The property name.
+
+
+
+ Gets or sets the property value.
+
+ The property value.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Initializes a new instance of the class.
+
+ The property name.
+ The property content.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ A that contains the JSON that was read from the specified .
+
+
+
+ Loads a from a .
+
+ A that will be read for the content of the .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A that contains the JSON that was read from the specified .
+
+
+
+ Represents a raw JSON string.
+
+
+
+
+ Asynchronously creates an instance of with the content of the reader's current token.
+
+ The reader.
+ The token to monitor for cancellation requests. The default value is .
+ A representing the asynchronous creation. The
+ property returns an instance of with the content of the reader's current token.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class.
+
+ The raw json.
+
+
+
+ Creates an instance of with the content of the reader's current token.
+
+ The reader.
+ An instance of with the content of the reader's current token.
+
+
+
+ Specifies the settings used when loading JSON.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets how JSON comments are handled when loading JSON.
+
+ The JSON comment handling.
+
+
+
+ Gets or sets how JSON line info is handled when loading JSON.
+
+ The JSON line info handling.
+
+
+
+ Specifies the settings used when merging JSON.
+
+
+
+
+ Gets or sets the method used when merging JSON arrays.
+
+ The method used when merging JSON arrays.
+
+
+
+ Gets or sets how null value properties are merged.
+
+ How null value properties are merged.
+
+
+
+ Represents an abstract JSON token.
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains
+ the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Asynchronously creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ The token to monitor for cancellation requests. The default value is .
+
+ A that represents the asynchronous creation. The
+ property returns a that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Gets a comparer that can compare two tokens for value equality.
+
+ A that can compare two nodes for value equality.
+
+
+
+ Gets or sets the parent.
+
+ The parent.
+
+
+
+ Gets the root of this .
+
+ The root of this .
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Compares the values of two tokens, including the values of all descendant tokens.
+
+ The first to compare.
+ The second to compare.
+ true if the tokens are equal; otherwise false.
+
+
+
+ Gets the next sibling token of this node.
+
+ The that contains the next sibling token.
+
+
+
+ Gets the previous sibling token of this node.
+
+ The that contains the previous sibling token.
+
+
+
+ Gets the path of the JSON token.
+
+
+
+
+ Adds the specified content immediately after this token.
+
+ A content object that contains simple content or a collection of content objects to be added after this token.
+
+
+
+ Adds the specified content immediately before this token.
+
+ A content object that contains simple content or a collection of content objects to be added before this token.
+
+
+
+ Returns a collection of the ancestor tokens of this token.
+
+ A collection of the ancestor tokens of this token.
+
+
+
+ Returns a collection of tokens that contain this token, and the ancestors of this token.
+
+ A collection of tokens that contain this token, and the ancestors of this token.
+
+
+
+ Returns a collection of the sibling tokens after this token, in document order.
+
+ A collection of the sibling tokens after this tokens, in document order.
+
+
+
+ Returns a collection of the sibling tokens before this token, in document order.
+
+ A collection of the sibling tokens before this token, in document order.
+
+
+
+ Gets the with the specified key.
+
+ The with the specified key.
+
+
+
+ Gets the with the specified key converted to the specified type.
+
+ The type to convert the token to.
+ The token key.
+ The converted token value.
+
+
+
+ Get the first child token of this token.
+
+ A containing the first child token of the .
+
+
+
+ Get the last child token of this token.
+
+ A containing the last child token of the .
+
+
+
+ Returns a collection of the child tokens of this token, in document order.
+
+ An of containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child tokens of this token, in document order, filtered by the specified type.
+
+ The type to filter the child tokens on.
+ A containing the child tokens of this , in document order.
+
+
+
+ Returns a collection of the child values of this token, in document order.
+
+ The type to convert the values to.
+ A containing the child values of this , in document order.
+
+
+
+ Removes this token from its parent.
+
+
+
+
+ Replaces this token with the specified token.
+
+ The value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of which will be used when writing the token.
+
+
+
+ Returns the indented JSON for this token.
+
+
+ The indented JSON for this token.
+
+
+
+
+ Returns the JSON for this token using the given formatting and converters.
+
+ Indicates how the output should be formatted.
+ A collection of s which will be used when writing the token.
+ The JSON for this token using the given formatting and converters.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to [].
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to of .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an explicit conversion from to .
+
+ The value.
+ The result of the conversion.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from [] to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Performs an implicit conversion from of to .
+
+ The value to create a from.
+ The initialized with the specified value.
+
+
+
+ Creates a for this token.
+
+ A that can be used to read this token and its descendants.
+
+
+
+ Creates a from an object.
+
+ The object that will be used to create .
+ A with the value of the specified object.
+
+
+
+ Creates a from an object using the specified .
+
+ The object that will be used to create .
+ The that will be used when reading the object.
+ A with the value of the specified object.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the .
+
+ The object type that the token will be deserialized to.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates an instance of the specified .NET type from the using the specified .
+
+ The object type that the token will be deserialized to.
+ The that will be used when creating the object.
+ The new object created from the JSON value.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ An positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ A populated from the string that contains JSON.
+
+
+
+ Load a from a string that contains JSON.
+
+ A that contains JSON.
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+ A populated from the string that contains JSON.
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+ The used to load the JSON.
+ If this is null, default load settings will be used.
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Creates a from a .
+
+ A positioned at the token to read into this .
+
+ A that contains the token and its descendant tokens
+ that were read from the reader. The runtime type of the token is determined
+ by the token type of the first token encountered in the reader.
+
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A , or null.
+
+
+
+ Selects a using a JPath expression. Selects the token that matches the object path.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ A .
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ An of that contains the selected elements.
+
+
+
+ Selects a collection of elements using a JPath expression.
+
+
+ A that contains a JPath expression.
+
+ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression.
+ An of that contains the selected elements.
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Creates a new instance of the . All child tokens are recursively cloned.
+
+ A new instance of the .
+
+
+
+ Adds an object to the annotation list of this .
+
+ The annotation to add.
+
+
+
+ Get the first annotation object of the specified type from this .
+
+ The type of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets the first annotation object of the specified type from this .
+
+ The of the annotation to retrieve.
+ The first annotation object that matches the specified type, or null if no annotation is of the specified type.
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The type of the annotations to retrieve.
+ An that contains the annotations for this .
+
+
+
+ Gets a collection of annotations of the specified type for this .
+
+ The of the annotations to retrieve.
+ An of that contains the annotations that match the specified type for this .
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The type of annotations to remove.
+
+
+
+ Removes the annotations of the specified type from this .
+
+ The of annotations to remove.
+
+
+
+ Compares tokens to determine whether they are equal.
+
+
+
+
+ Determines whether the specified objects are equal.
+
+ The first object of type to compare.
+ The second object of type to compare.
+
+ true if the specified objects are equal; otherwise, false.
+
+
+
+
+ Returns a hash code for the specified object.
+
+ The for which a hash code is to be returned.
+ A hash code for the specified object.
+ The type of is a reference type and is null.
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data.
+
+
+
+
+ Gets the at the reader's current position.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The token to read from.
+
+
+
+ Reads the next JSON token from the underlying .
+
+
+ true if the next token was read successfully; false if there are no more tokens to read.
+
+
+
+
+ Gets the path of the current JSON token.
+
+
+
+
+ Specifies the type of token.
+
+
+
+
+ No token type has been set.
+
+
+
+
+ A JSON object.
+
+
+
+
+ A JSON array.
+
+
+
+
+ A JSON constructor.
+
+
+
+
+ A JSON object property.
+
+
+
+
+ A comment.
+
+
+
+
+ An integer value.
+
+
+
+
+ A float value.
+
+
+
+
+ A string value.
+
+
+
+
+ A boolean value.
+
+
+
+
+ A null value.
+
+
+
+
+ An undefined value.
+
+
+
+
+ A date value.
+
+
+
+
+ A raw JSON value.
+
+
+
+
+ A collection of bytes value.
+
+
+
+
+ A Guid value.
+
+
+
+
+ A Uri value.
+
+
+
+
+ A TimeSpan value.
+
+
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data.
+
+
+
+
+ Gets the at the writer's current position.
+
+
+
+
+ Gets the token being written.
+
+ The token being written.
+
+
+
+ Initializes a new instance of the class writing to the given .
+
+ The container being written to.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Flushes whatever is in the buffer to the underlying .
+
+
+
+
+ Closes this writer.
+ If is set to true, the JSON is auto-completed.
+
+
+ Setting to true has no additional effect, since the underlying is a type that cannot be closed.
+
+
+
+
+ Writes the beginning of a JSON object.
+
+
+
+
+ Writes the beginning of a JSON array.
+
+
+
+
+ Writes the start of a constructor with the given name.
+
+ The name of the constructor.
+
+
+
+ Writes the end.
+
+ The token.
+
+
+
+ Writes the property name of a name/value pair on a JSON object.
+
+ The name of the property.
+
+
+
+ Writes a value.
+ An error will be raised if the value cannot be written as a single JSON token.
+
+ The value to write.
+
+
+
+ Writes a null value.
+
+
+
+
+ Writes an undefined value.
+
+
+
+
+ Writes raw JSON.
+
+ The raw JSON to write.
+
+
+
+ Writes a comment /*...*/ containing the specified text.
+
+ Text to place inside the comment.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a [] value.
+
+ The [] value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Writes a value.
+
+ The value to write.
+
+
+
+ Represents a value in JSON (string, integer, date, etc).
+
+
+
+
+ Writes this token to a asynchronously.
+
+ A into which this method will write.
+ The token to monitor for cancellation requests.
+ A collection of which will be used when writing the token.
+ A that represents the asynchronous write operation.
+
+
+
+ Initializes a new instance of the class from another object.
+
+ A object to copy from.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Initializes a new instance of the class with the given value.
+
+ The value.
+
+
+
+ Gets a value indicating whether this token has child tokens.
+
+
+ true if this token has child values; otherwise, false.
+
+
+
+
+ Creates a comment with the given value.
+
+ The value.
+ A comment with the given value.
+
+
+
+ Creates a string with the given value.
+
+ The value.
+ A string with the given value.
+
+
+
+ Creates a null value.
+
+ A null value.
+
+
+
+ Creates a undefined value.
+
+ A undefined value.
+
+
+
+ Gets the node type for this .
+
+ The type.
+
+
+
+ Gets or sets the underlying token value.
+
+ The underlying token value.
+
+
+
+ Writes this token to a .
+
+ A into which this method will write.
+ A collection of s which will be used when writing the token.
+
+
+
+ Indicates whether the current object is equal to another object of the same type.
+
+
+ true if the current object is equal to the parameter; otherwise, false.
+
+ An object to compare with this object.
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type.
+
+
+ A hash code for the current .
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns a that represents this instance.
+
+ The format.
+ The format provider.
+
+ A that represents this instance.
+
+
+
+
+ Returns the responsible for binding operations performed on this object.
+
+ The expression tree representation of the runtime value.
+
+ The to bind this object.
+
+
+
+
+ Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object.
+
+ An object to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings:
+ Value
+ Meaning
+ Less than zero
+ This instance is less than .
+ Zero
+ This instance is equal to .
+ Greater than zero
+ This instance is greater than .
+
+
+ is not of the same type as this instance.
+
+
+
+
+ Specifies how line information is handled when loading JSON.
+
+
+
+
+ Ignore line information.
+
+
+
+
+ Load line information.
+
+
+
+
+ Specifies how JSON arrays are merged together.
+
+
+
+ Concatenate arrays.
+
+
+ Union arrays, skipping items that already exist.
+
+
+ Replace all array items.
+
+
+ Merge array items together, matched by index.
+
+
+
+ Specifies how null value properties are merged.
+
+
+
+
+ The content's null value properties will be ignored during merging.
+
+
+
+
+ The content's null value properties will be merged.
+
+
+
+
+ Specifies the member serialization options for the .
+
+
+
+
+ All public members are serialized by default. Members can be excluded using or .
+ This is the default member serialization mode.
+
+
+
+
+ Only members marked with or are serialized.
+ This member serialization mode can also be set by marking the class with .
+
+
+
+
+ All public and private fields are serialized. Members can be excluded using or .
+ This member serialization mode can also be set by marking the class with
+ and setting IgnoreSerializableAttribute on to false.
+
+
+
+
+ Specifies metadata property handling options for the .
+
+
+
+
+ Read metadata properties located at the start of a JSON object.
+
+
+
+
+ Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance.
+
+
+
+
+ Do not try to read metadata properties.
+
+
+
+
+ Specifies missing member handling options for the .
+
+
+
+
+ Ignore a missing member and do not attempt to deserialize it.
+
+
+
+
+ Throw a when a missing member is encountered during deserialization.
+
+
+
+
+ Specifies null value handling options for the .
+
+
+
+
+
+
+
+
+ Include null values when serializing and deserializing objects.
+
+
+
+
+ Ignore null values when serializing and deserializing objects.
+
+
+
+
+ Specifies how object creation is handled by the .
+
+
+
+
+ Reuse existing objects, create new objects when needed.
+
+
+
+
+ Only reuse existing objects.
+
+
+
+
+ Always create new objects.
+
+
+
+
+ Specifies reference handling options for the .
+ Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement .
+
+
+
+
+
+
+
+ Do not preserve references when serializing types.
+
+
+
+
+ Preserve references when serializing into a JSON object structure.
+
+
+
+
+ Preserve references when serializing into a JSON array structure.
+
+
+
+
+ Preserve references when serializing.
+
+
+
+
+ Specifies reference loop handling options for the .
+
+
+
+
+ Throw a when a loop is encountered.
+
+
+
+
+ Ignore loop references and do not serialize.
+
+
+
+
+ Serialize loop references.
+
+
+
+
+ Indicating whether a property is required.
+
+
+
+
+ The property is not required. The default state.
+
+
+
+
+ The property must be defined in JSON but can be a null value.
+
+
+
+
+ The property must be defined in JSON and cannot be a null value.
+
+
+
+
+ The property is not required but it cannot be a null value.
+
+
+
+
+
+ Contains the JSON schema extension methods.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Determines whether the is valid.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ When this method returns, contains any error messages generated while validating.
+
+ true if the specified is valid; otherwise, false.
+
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+
+
+
+
+ Validates the specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+ The source to test.
+ The schema to test with.
+ The validation event handler.
+
+
+
+
+ An in-memory representation of a JSON Schema.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the id.
+
+
+
+
+ Gets or sets the title.
+
+
+
+
+ Gets or sets whether the object is required.
+
+
+
+
+ Gets or sets whether the object is read-only.
+
+
+
+
+ Gets or sets whether the object is visible to users.
+
+
+
+
+ Gets or sets whether the object is transient.
+
+
+
+
+ Gets or sets the description of the object.
+
+
+
+
+ Gets or sets the types of values allowed by the object.
+
+ The type.
+
+
+
+ Gets or sets the pattern.
+
+ The pattern.
+
+
+
+ Gets or sets the minimum length.
+
+ The minimum length.
+
+
+
+ Gets or sets the maximum length.
+
+ The maximum length.
+
+
+
+ Gets or sets a number that the value should be divisible by.
+
+ A number that the value should be divisible by.
+
+
+
+ Gets or sets the minimum.
+
+ The minimum.
+
+
+
+ Gets or sets the maximum.
+
+ The maximum.
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the minimum attribute ().
+
+
+
+ Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+ A flag indicating whether the value can not equal the number defined by the maximum attribute ().
+
+
+
+ Gets or sets the minimum number of items.
+
+ The minimum number of items.
+
+
+
+ Gets or sets the maximum number of items.
+
+ The maximum number of items.
+
+
+
+ Gets or sets the of items.
+
+ The of items.
+
+
+
+ Gets or sets a value indicating whether items in an array are validated using the instance at their array position from .
+
+
+ true if items are validated using their array position; otherwise, false.
+
+
+
+
+ Gets or sets the of additional items.
+
+ The of additional items.
+
+
+
+ Gets or sets a value indicating whether additional items are allowed.
+
+
+ true if additional items are allowed; otherwise, false.
+
+
+
+
+ Gets or sets whether the array items must be unique.
+
+
+
+
+ Gets or sets the of properties.
+
+ The of properties.
+
+
+
+ Gets or sets the of additional properties.
+
+ The of additional properties.
+
+
+
+ Gets or sets the pattern properties.
+
+ The pattern properties.
+
+
+
+ Gets or sets a value indicating whether additional properties are allowed.
+
+
+ true if additional properties are allowed; otherwise, false.
+
+
+
+
+ Gets or sets the required property if this property is present.
+
+ The required property if this property is present.
+
+
+
+ Gets or sets the a collection of valid enum values allowed.
+
+ A collection of valid enum values allowed.
+
+
+
+ Gets or sets disallowed types.
+
+ The disallowed types.
+
+
+
+ Gets or sets the default value.
+
+ The default value.
+
+
+
+ Gets or sets the collection of that this schema extends.
+
+ The collection of that this schema extends.
+
+
+
+ Gets or sets the format.
+
+ The format.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The object representing the JSON Schema.
+
+
+
+ Reads a from the specified .
+
+ The containing the JSON Schema to read.
+ The to use when resolving schema references.
+ The object representing the JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema.
+
+ A that contains JSON Schema.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Load a from a string that contains JSON Schema using the specified .
+
+ A that contains JSON Schema.
+ The resolver.
+ A populated from the string that contains JSON Schema.
+
+
+
+ Writes this schema to a .
+
+ A into which this method will write.
+
+
+
+ Writes this schema to a using the specified .
+
+ A into which this method will write.
+ The resolver used.
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+
+ Returns detailed information about the schema exception.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the line number indicating where the error occurred.
+
+ The line number indicating where the error occurred.
+
+
+
+ Gets the line position indicating where the error occurred.
+
+ The line position indicating where the error occurred.
+
+
+
+ Gets the path to the JSON where the error occurred.
+
+ The path to the JSON where the error occurred.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with a specified error message.
+
+ The error message that explains the reason for the exception.
+
+
+
+ Initializes a new instance of the class
+ with a specified error message and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or null if no inner exception is specified.
+
+
+
+
+ Generates a from a specified .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets how undefined schemas are handled by the serializer.
+
+
+
+
+ Gets or sets the contract resolver.
+
+ The contract resolver.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+ Generate a from the specified type.
+
+ The type to generate a from.
+ The used to resolve schema references.
+ Specify whether the generated root will be nullable.
+ A generated from the specified type.
+
+
+
+
+ Resolves from an id.
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets or sets the loaded schemas.
+
+ The loaded schemas.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets a for the specified reference.
+
+ The id.
+ A for the specified reference.
+
+
+
+
+ The value types allowed by the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ No type specified.
+
+
+
+
+ String type.
+
+
+
+
+ Float type.
+
+
+
+
+ Integer type.
+
+
+
+
+ Boolean type.
+
+
+
+
+ Object type.
+
+
+
+
+ Array type.
+
+
+
+
+ Null type.
+
+
+
+
+ Any type.
+
+
+
+
+
+ Specifies undefined schema Id handling options for the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Do not infer a schema Id.
+
+
+
+
+ Use the .NET type name as the schema Id.
+
+
+
+
+ Use the assembly qualified .NET type name as the schema Id.
+
+
+
+
+
+ Returns detailed information related to the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Gets the associated with the validation error.
+
+ The JsonSchemaException associated with the validation error.
+
+
+
+ Gets the path of the JSON location where the validation error occurred.
+
+ The path of the JSON location where the validation error occurred.
+
+
+
+ Gets the text description corresponding to the validation error.
+
+ The text description.
+
+
+
+
+ Represents the callback method that will handle JSON schema validation events and the .
+
+
+ JSON Schema validation has been moved to its own package. See http://www.newtonsoft.com/jsonschema for more details.
+
+
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ A camel case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Resolves member mappings for a type, camel casing property names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+ Gets a value indicating whether members are being get and set using dynamic code generation.
+ This value is determined by the runtime permissions available.
+
+
+ true if using dynamic code generation; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether compiler generated members should be serialized.
+
+
+ true if serialized compiler generated members; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types.
+
+
+ true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types.
+
+
+ true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false.
+
+
+
+
+ Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized.
+
+ The naming strategy used to resolve how property names and dictionary keys are serialized.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Gets the serializable members for the type.
+
+ The type to get serializable members for.
+ The serializable members for the type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates the constructor parameters.
+
+ The constructor to create properties for.
+ The type's member properties.
+ Properties for the given .
+
+
+
+ Creates a for the given .
+
+ The matching member property.
+ The constructor parameter.
+ A created for the given .
+
+
+
+ Resolves the default for the contract.
+
+ Type of the object.
+ The contract's default .
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates a for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Determines which contract type is created for the given type.
+
+ Type of the object.
+ A for the given type.
+
+
+
+ Creates properties for the given .
+
+ The type to create properties for.
+ /// The member serialization mode for the type.
+ Properties for the given .
+
+
+
+ Creates the used by the serializer to get and set values from a member.
+
+ The member.
+ The used by the serializer to get and set values from a member.
+
+
+
+ Creates a for the given .
+
+ The member's parent .
+ The member to create a for.
+ A created for the given .
+
+
+
+ Resolves the name of the property.
+
+ Name of the property.
+ Resolved name of the property.
+
+
+
+ Resolves the name of the extension data. By default no changes are made to extension data names.
+
+ Name of the extension data.
+ Resolved name of the extension data.
+
+
+
+ Resolves the key of the dictionary. By default is used to resolve dictionary keys.
+
+ Key of the dictionary.
+ Resolved key of the dictionary.
+
+
+
+ Gets the resolved name of the property.
+
+ Name of the property.
+ Name of the property.
+
+
+
+ The default naming strategy. Property names and dictionary keys are unchanged.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ The default serialization binder used when resolving and loading classes from type names.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+ The type of the object the formatter creates a new instance of.
+
+
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Provides information surrounding an error.
+
+
+
+
+ Gets the error.
+
+ The error.
+
+
+
+ Gets the original object that caused the error.
+
+ The original object that caused the error.
+
+
+
+ Gets the member that caused the error.
+
+ The member that caused the error.
+
+
+
+ Gets the path of the JSON location where the error occurred.
+
+ The path of the JSON location where the error occurred.
+
+
+
+ Gets or sets a value indicating whether this is handled.
+
+ true if handled; otherwise, false.
+
+
+
+ Provides data for the Error event.
+
+
+
+
+ Gets the current object the error event is being raised against.
+
+ The current object the error event is being raised against.
+
+
+
+ Gets the error context.
+
+ The error context.
+
+
+
+ Initializes a new instance of the class.
+
+ The current object.
+ The error context.
+
+
+
+ Get and set values for a using dynamic methods.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Provides methods to get attributes.
+
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Used by to resolve a for a given .
+
+
+
+
+
+
+
+
+ Resolves the contract for a given type.
+
+ The type to resolve a contract for.
+ The contract for a given type.
+
+
+
+ Used to resolve references when serializing and deserializing JSON by the .
+
+
+
+
+ Resolves a reference to its object.
+
+ The serialization context.
+ The reference to resolve.
+ The object that was resolved from the reference.
+
+
+
+ Gets the reference for the specified object.
+
+ The serialization context.
+ The object to get a reference for.
+ The reference to the object.
+
+
+
+ Determines whether the specified object is referenced.
+
+ The serialization context.
+ The object to test for a reference.
+
+ true if the specified object is referenced; otherwise, false.
+
+
+
+
+ Adds a reference to the specified object.
+
+ The serialization context.
+ The reference.
+ The object to reference.
+
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object
+ The type of the object the formatter creates a new instance of.
+
+
+
+ When implemented, controls the binding of a serialized object to a type.
+
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+
+ Represents a trace writer.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Provides methods to get and set values.
+
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the of the collection items.
+
+ The of the collection items.
+
+
+
+ Gets a value indicating whether the collection type is a multidimensional array.
+
+ true if the collection type is a multidimensional array; otherwise, false.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the collection values.
+
+ true if the creator has a parameter with the collection values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the default collection items .
+
+ The converter.
+
+
+
+ Gets or sets a value indicating whether the collection items preserve object references.
+
+ true if collection items preserve object references; otherwise, false.
+
+
+
+ Gets or sets the collection item reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the collection item type name handling.
+
+ The type name handling.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Handles serialization callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+
+
+
+ Handles serialization error callback events.
+
+ The object that raised the callback event.
+ The streaming context.
+ The error context.
+
+
+
+ Sets extension data for an object during deserialization.
+
+ The object to set extension data on.
+ The extension data key.
+ The extension data value.
+
+
+
+ Gets extension data for an object during serialization.
+
+ The object to set extension data on.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the underlying type for the contract.
+
+ The underlying type for the contract.
+
+
+
+ Gets or sets the type created during deserialization.
+
+ The type created during deserialization.
+
+
+
+ Gets or sets whether this type contract is serialized as a reference.
+
+ Whether this type contract is serialized as a reference.
+
+
+
+ Gets or sets the default for this contract.
+
+ The converter.
+
+
+
+ Gets or sets all methods called immediately after deserialization of the object.
+
+ The methods called immediately after deserialization of the object.
+
+
+
+ Gets or sets all methods called during deserialization of the object.
+
+ The methods called during deserialization of the object.
+
+
+
+ Gets or sets all methods called after serialization of the object graph.
+
+ The methods called after serialization of the object graph.
+
+
+
+ Gets or sets all methods called before serialization of the object.
+
+ The methods called before serialization of the object.
+
+
+
+ Gets or sets all method called when an error is thrown during the serialization of the object.
+
+ The methods called when an error is thrown during the serialization of the object.
+
+
+
+ Gets or sets the default creator method used to create the object.
+
+ The default creator method used to create the object.
+
+
+
+ Gets or sets a value indicating whether the default creator is non-public.
+
+ true if the default object creator is non-public; otherwise, false.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the dictionary key resolver.
+
+ The dictionary key resolver.
+
+
+
+ Gets the of the dictionary keys.
+
+ The of the dictionary keys.
+
+
+
+ Gets the of the dictionary values.
+
+ The of the dictionary values.
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+
+ The function used to create the object.
+
+
+
+ Gets a value indicating whether the creator has a parameter with the dictionary values.
+
+ true if the creator has a parameter with the dictionary values; otherwise, false.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets or sets the property name resolver.
+
+ The property name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Gets or sets the object member serialization.
+
+ The member object serialization.
+
+
+
+ Gets or sets a value that indicates whether the object's properties are required.
+
+
+ A value indicating whether the object's properties are required.
+
+
+
+
+ Gets or sets how the object's properties with null values are handled during serialization and deserialization.
+
+ How the object's properties with null values are handled during serialization and deserialization.
+
+
+
+ Gets the object's properties.
+
+ The object's properties.
+
+
+
+ Gets a collection of instances that define the parameters used with .
+
+
+
+
+ Gets or sets the function used to create the object. When set this function will override .
+ This function is called with a collection of arguments which are defined by the collection.
+
+ The function used to create the object.
+
+
+
+ Gets or sets the extension data setter.
+
+
+
+
+ Gets or sets the extension data getter.
+
+
+
+
+ Gets or sets the extension data value type.
+
+
+
+
+ Gets or sets the extension data name resolver.
+
+ The extension data name resolver.
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Maps a JSON property to a .NET member or constructor parameter.
+
+
+
+
+ Gets or sets the name of the property.
+
+ The name of the property.
+
+
+
+ Gets or sets the type that declared this property.
+
+ The type that declared this property.
+
+
+
+ Gets or sets the order of serialization of a member.
+
+ The numeric order of serialization.
+
+
+
+ Gets or sets the name of the underlying member or parameter.
+
+ The name of the underlying member or parameter.
+
+
+
+ Gets the that will get and set the during serialization.
+
+ The that will get and set the during serialization.
+
+
+
+ Gets or sets the for this property.
+
+ The for this property.
+
+
+
+ Gets or sets the type of the property.
+
+ The type of the property.
+
+
+
+ Gets or sets the for the property.
+ If set this converter takes precedence over the contract converter for the property type.
+
+ The converter.
+
+
+
+ Gets or sets the member converter.
+
+ The member converter.
+
+
+
+ Gets or sets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is readable.
+
+ true if readable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this is writable.
+
+ true if writable; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether this has a member attribute.
+
+ true if has a member attribute; otherwise, false.
+
+
+
+ Gets the default value.
+
+ The default value.
+
+
+
+ Gets or sets a value indicating whether this is required.
+
+ A value indicating whether this is required.
+
+
+
+ Gets or sets a value indicating whether this property preserves object references.
+
+
+ true if this instance is reference; otherwise, false.
+
+
+
+
+ Gets or sets the property null value handling.
+
+ The null value handling.
+
+
+
+ Gets or sets the property default value handling.
+
+ The default value handling.
+
+
+
+ Gets or sets the property reference loop handling.
+
+ The reference loop handling.
+
+
+
+ Gets or sets the property object creation handling.
+
+ The object creation handling.
+
+
+
+ Gets or sets or sets the type name handling.
+
+ The type name handling.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be deserialized.
+
+ A predicate used to determine whether the property should be deserialized.
+
+
+
+ Gets or sets a predicate used to determine whether the property should be serialized.
+
+ A predicate used to determine whether the property should be serialized.
+
+
+
+ Gets or sets an action used to set whether the property has been deserialized.
+
+ An action used to set whether the property has been deserialized.
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Gets or sets the converter used when serializing the property's collection items.
+
+ The collection's items converter.
+
+
+
+ Gets or sets whether this property's collection items are serialized as a reference.
+
+ Whether this property's collection items are serialized as a reference.
+
+
+
+ Gets or sets the type name handling used when serializing the property's collection items.
+
+ The collection's items type name handling.
+
+
+
+ Gets or sets the reference loop handling used when serializing the property's collection items.
+
+ The collection's items reference loop handling.
+
+
+
+ A collection of objects.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ When implemented in a derived class, extracts the key from the specified element.
+
+ The element from which to extract the key.
+ The key for the specified element.
+
+
+
+ Adds a object.
+
+ The property to add to the collection.
+
+
+
+ Gets the closest matching object.
+ First attempts to get an exact case match of and then
+ a case insensitive match.
+
+ Name of the property.
+ A matching property if found.
+
+
+
+ Gets a property by property name.
+
+ The name of the property to get.
+ Type property name string comparison.
+ A matching property if found.
+
+
+
+ Contract details for a used by the .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying type for the contract.
+
+
+
+ Lookup and create an instance of the type described by the argument.
+
+ The type to create.
+ Optional arguments to pass to an initializing constructor of the JsonConverter.
+ If null, the default constructor is used.
+
+
+
+ Represents a trace writer that writes to memory. When the trace message limit is
+ reached then old trace messages will be removed as new messages are added.
+
+
+
+
+ Gets the that will be used to filter the trace messages passed to the writer.
+ For example a filter level of will exclude messages and include ,
+ and messages.
+
+
+ The that will be used to filter the trace messages passed to the writer.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Writes the specified trace level, message and optional exception.
+
+ The at which to write this trace.
+ The trace message.
+ The trace exception. This parameter is optional.
+
+
+
+ Returns an enumeration of the most recent trace messages.
+
+ An enumeration of the most recent trace messages.
+
+
+
+ Returns a of the most recent trace messages.
+
+
+ A of the most recent trace messages.
+
+
+
+
+ A base class for resolving how property names and dictionary keys are serialized.
+
+
+
+
+ A flag indicating whether dictionary keys should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether extension data names should be processed.
+ Defaults to false.
+
+
+
+
+ A flag indicating whether explicitly specified property names,
+ e.g. a property name customized with a , should be processed.
+ Defaults to false.
+
+
+
+
+ Gets the serialized name for a given property name.
+
+ The initial property name.
+ A flag indicating whether the property has had a name explicitly specified.
+ The serialized property name.
+
+
+
+ Gets the serialized name for a given extension data name.
+
+ The initial extension data name.
+ The serialized extension data name.
+
+
+
+ Gets the serialized key for a given dictionary key.
+
+ The initial dictionary key.
+ The serialized dictionary key.
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Represents a method that constructs an object.
+
+ The object type to create.
+
+
+
+ When applied to a method, specifies that the method is called when an error occurs serializing an object.
+
+
+
+
+ Provides methods to get attributes from a , , or .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instance to get attributes for. This parameter should be a , , or .
+
+
+
+ Returns a collection of all of the attributes, or an empty collection if there are no attributes.
+
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Returns a collection of attributes, identified by type, or an empty collection if there are no attributes.
+
+ The type of the attributes.
+ When true, look up the hierarchy chain for the inherited custom attribute.
+ A collection of s, or an empty collection.
+
+
+
+ Get and set values for a using reflection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The member info.
+
+
+
+ Sets the value.
+
+ The target to set the value on.
+ The value to set on the target.
+
+
+
+ Gets the value.
+
+ The target to get the value from.
+ The value.
+
+
+
+ A snake case naming strategy.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ A flag indicating whether dictionary keys should be processed.
+
+
+ A flag indicating whether explicitly specified property names should be processed,
+ e.g. a property name customized with a .
+
+
+ A flag indicating whether extension data names should be processed.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Resolves the specified property name.
+
+ The property name to resolve.
+ The resolved property name.
+
+
+
+ Specifies how strings are escaped when writing JSON text.
+
+
+
+
+ Only control characters (e.g. newline) are escaped.
+
+
+
+
+ All non-ASCII and control characters (e.g. newline) are escaped.
+
+
+
+
+ HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped.
+
+
+
+
+ Specifies what messages to output for the class.
+
+
+
+
+ Output no tracing and debugging messages.
+
+
+
+
+ Output error-handling messages.
+
+
+
+
+ Output warnings and error-handling messages.
+
+
+
+
+ Output informational messages, warnings, and error-handling messages.
+
+
+
+
+ Output all debugging and tracing messages.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly.
+
+
+
+
+ Specifies type name handling options for the .
+
+
+ should be used with caution when your application deserializes JSON from an external source.
+ Incoming types should be validated with a custom
+ when deserializing with a value other than .
+
+
+
+
+ Do not include the .NET type name when serializing types.
+
+
+
+
+ Include the .NET type name when serializing into a JSON object structure.
+
+
+
+
+ Include the .NET type name when serializing into a JSON array structure.
+
+
+
+
+ Always include the .NET type name when serializing.
+
+
+
+
+ Include the .NET type name when the type of the object being serialized is not the same as its declared type.
+ Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON
+ you must specify a root type object with
+ or .
+
+
+
+
+ Determines whether the collection is null or empty.
+
+ The collection.
+
+ true if the collection is null or empty; otherwise, false.
+
+
+
+
+ Adds the elements of the specified collection to the specified generic .
+
+ The list to add to.
+ The collection of elements to add.
+
+
+
+ Converts the value to the specified type. If the value is unable to be converted, the
+ value is checked whether it assignable to the specified type.
+
+ The value to convert.
+ The culture to use when converting.
+ The type to convert or cast the value to.
+
+ The converted type. If conversion was unsuccessful, the initial value
+ is returned if assignable to the target type.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic that returns a result
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Helper method for generating a MetaObject which calls a
+ specific method on Dynamic, but uses one of the arguments for
+ the result.
+
+
+
+
+ Returns a Restrictions object which includes our current restrictions merged
+ with a restriction limiting our type
+
+
+
+
+ Helper class for serializing immutable collections.
+ Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed
+ https://github.com/JamesNK/Newtonsoft.Json/issues/652
+
+
+
+
+ List of primitive types which can be widened.
+
+
+
+
+ Widening masks for primitive types above.
+ Index of the value in this array defines a type we're widening,
+ while the bits in mask define types it can be widened to (including itself).
+
+ For example, value at index 0 defines a bool type, and it only has bit 0 set,
+ i.e. bool values can be assigned only to bool.
+
+
+
+
+ Checks if value of primitive type can be
+ assigned to parameter of primitive type .
+
+ Source primitive type.
+ Target primitive type.
+ true if source type can be widened to target type, false otherwise.
+
+
+
+ Checks if a set of values with given can be used
+ to invoke a method with specified .
+
+ Method parameters.
+ Argument types.
+ Try to pack extra arguments into the last parameter when it is marked up with .
+ true if method can be called with given arguments, false otherwise.
+
+
+
+ Compares two sets of parameters to determine
+ which one suits better for given argument types.
+
+
+
+
+ Returns a best method overload for given argument .
+
+ List of method candidates.
+ Argument types.
+ Best method overload, or null if none matched.
+
+
+
+ Gets the type of the typed collection's items.
+
+ The type.
+ The type of the typed collection's items.
+
+
+
+ Gets the member's underlying type.
+
+ The member.
+ The underlying type of the member.
+
+
+
+ Determines whether the member is an indexed property.
+
+ The member.
+
+ true if the member is an indexed property; otherwise, false.
+
+
+
+
+ Determines whether the property is an indexed property.
+
+ The property.
+
+ true if the property is an indexed property; otherwise, false.
+
+
+
+
+ Gets the member's value on the object.
+
+ The member.
+ The target object.
+ The member's value on the object.
+
+
+
+ Sets the member's value on the target object.
+
+ The member.
+ The target.
+ The value.
+
+
+
+ Determines whether the specified MemberInfo can be read.
+
+ The MemberInfo to determine whether can be read.
+ /// if set to true then allow the member to be gotten non-publicly.
+
+ true if the specified MemberInfo can be read; otherwise, false.
+
+
+
+
+ Determines whether the specified MemberInfo can be set.
+
+ The MemberInfo to determine whether can be set.
+ if set to true then allow the member to be set non-publicly.
+ if set to true then allow the member to be set if read-only.
+
+ true if the specified MemberInfo can be set; otherwise, false.
+
+
+
+
+ Builds a string. Unlike this class lets you reuse its internal buffer.
+
+
+
+
+ Determines whether the string is all white space. Empty string will return false.
+
+ The string to test whether it is all white space.
+
+ true if the string is all white space; otherwise, false.
+
+
+
+
+ Specifies the state of the .
+
+
+
+
+ An exception has been thrown, which has left the in an invalid state.
+ You may call the method to put the in the Closed state.
+ Any other method calls result in an being thrown.
+
+
+
+
+ The method has been called.
+
+
+
+
+ An object is being written.
+
+
+
+
+ An array is being written.
+
+
+
+
+ A constructor is being written.
+
+
+
+
+ A property is being written.
+
+
+
+
+ A write method has not been called.
+
+
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the method is used to load the assembly.
+
+
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The is used to load the assembly.
+
+
+
+
diff --git a/packages/Portable.BouncyCastle.1.8.2/.signature.p7s b/packages/Portable.BouncyCastle.1.8.2/.signature.p7s
new file mode 100644
index 0000000..9b9397a
Binary files /dev/null and b/packages/Portable.BouncyCastle.1.8.2/.signature.p7s differ
diff --git a/packages/Portable.BouncyCastle.1.8.2/Portable.BouncyCastle.1.8.2.nupkg b/packages/Portable.BouncyCastle.1.8.2/Portable.BouncyCastle.1.8.2.nupkg
new file mode 100644
index 0000000..d728a2c
Binary files /dev/null and b/packages/Portable.BouncyCastle.1.8.2/Portable.BouncyCastle.1.8.2.nupkg differ
diff --git a/packages/Portable.BouncyCastle.1.8.2/lib/net40/BouncyCastle.Crypto.dll b/packages/Portable.BouncyCastle.1.8.2/lib/net40/BouncyCastle.Crypto.dll
new file mode 100644
index 0000000..b870046
Binary files /dev/null and b/packages/Portable.BouncyCastle.1.8.2/lib/net40/BouncyCastle.Crypto.dll differ
diff --git a/packages/Portable.BouncyCastle.1.8.2/lib/net40/BouncyCastle.Crypto.xml b/packages/Portable.BouncyCastle.1.8.2/lib/net40/BouncyCastle.Crypto.xml
new file mode 100644
index 0000000..e43aa62
--- /dev/null
+++ b/packages/Portable.BouncyCastle.1.8.2/lib/net40/BouncyCastle.Crypto.xml
@@ -0,0 +1,25101 @@
+
+
+
+ BouncyCastle.Crypto
+
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ Return the DER encoding of the object, null if the DER encoding can not be made.
+
+ @return a DER byte array, null otherwise.
+
+
+ a general purpose ASN.1 decoder - note: this class differs from the
+ others in that it returns null after it has read the last object in
+ the stream. If an ASN.1 Null is encountered a Der/BER Null object is
+ returned.
+
+
+ Create an ASN1InputStream where no DER object will be longer than limit.
+
+ @param input stream containing ASN.1 encoded data.
+ @param limit maximum size of a DER encoded object.
+
+
+ Create an ASN1InputStream based on the input byte array. The length of DER objects in
+ the stream is automatically limited to the length of the input array.
+
+ @param input array containing ASN.1 encoded data.
+
+
+ build an object given its tag and the number of bytes to construct it from.
+
+
+ A Null object.
+
+
+ Create a base ASN.1 object from a byte array.
+ The byte array to parse.
+ The base ASN.1 object represented by the byte array.
+
+ If there is a problem parsing the data, or parsing an object did not exhaust the available data.
+
+
+
+ Read a base ASN.1 object from a stream.
+ The stream to parse.
+ The base ASN.1 object represented by the byte array.
+ If there is a problem parsing the data.
+
+
+ return an Octet string from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return an Octet string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ @param string the octets making up the octet string.
+
+
+ return an Asn1Sequence from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 sequence from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ sequence - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sequences you really should
+ be using this method.
+
+ @param obj the tagged object.
+ @param explicitly true if the object is meant to be explicitly tagged,
+ false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return the object at the sequence position indicated by index.
+
+ @param index the sequence number (starting at zero) of the object
+ @return the object at the sequence position indicated by index.
+
+
+ return an ASN1Set from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 set from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ set - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sets you really should
+ be using this method.
+
+ @param obj the tagged object.
+ @param explicitly true if the object is meant to be explicitly tagged
+ false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return the object at the set position indicated by index.
+
+ @param index the set number (starting at zero) of the object
+ @return the object at the set position indicated by index.
+
+
+ ASN.1 TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if the object is explicitly tagged.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ return whether or not the object may be explicitly tagged.
+
+ Note: if the object has been read from an input stream, the only
+ time you can be sure if isExplicit is returning the true state of
+ affairs is if it returns false. An implicitly tagged object may appear
+ to be explicitly tagged, so you need to understand the context under
+ which the reading was done as well, see GetObject below.
+
+
+ return whatever was following the tag.
+
+ Note: tagged objects are generally context dependent if you're
+ trying to extract a tagged object you should be going via the
+ appropriate GetInstance method.
+
+
+ Return the object held in this tagged object as a parser assuming it has
+ the type of the passed in tag. If the object doesn't have a parser
+ associated with it, the base object is returned.
+
+
+
+
+
+ SHA-2.SHA-256; 1.3.6.1.4.1.22554.1.2.1
+
+
+ SHA-2.SHA-384; 1.3.6.1.4.1.22554.1.2.2
+
+
+ SHA-2.SHA-512; 1.3.6.1.4.1.22554.1.2.3
+
+
+ SHA-2.SHA-224; 1.3.6.1.4.1.22554.1.2.4
+
+
+ PKCS-5(1)|PKCS-12(2)
+ SHA-1.PKCS5; 1.3.6.1.4.1.22554.1.1.1
+
+
+ SHA-1.PKCS12; 1.3.6.1.4.1.22554.1.1.2
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.1
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.2
+
+
+ AES(1) . (CBC-128(2)|CBC-192(22)|CBC-256(42))
+ 1.3.6.1.4.1.22554.1.1.2.1.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.42
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.42
+
+
+ signature(2) algorithms
+
+
+ Sphincs-256
+
+
+ XMSS
+
+
+ XMSS^MT
+
+
+ key_exchange(3) algorithms
+
+
+ NewHope
+
+
+ A BER Null object.
+
+
+ convert a vector of octet strings into a single byte string
+
+
+ The octets making up the octet string.
+
+
+ return the DER octets that make up this string.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty sequence
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ BER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+
+ CAKeyUpdAnnContent ::= SEQUENCE {
+ oldWithNew CmpCertificate, -- old pub signed with new priv
+ newWithOld CmpCertificate, -- new pub signed with old priv
+ newWithNew CmpCertificate -- new pub signed with new priv
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertConfirmContent ::= SEQUENCE OF CertStatus
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertifiedKeyPair ::= SEQUENCE {
+ certOrEncCert CertOrEncCert,
+ privateKey [0] EncryptedValue OPTIONAL,
+ -- see [CRMF] for comment on encoding
+ publicationInfo [1] PKIPublicationInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertOrEncCert ::= CHOICE {
+ certificate [0] CMPCertificate,
+ encryptedCert [1] EncryptedValue
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRepMessage ::= SEQUENCE {
+ caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL,
+ response SEQUENCE OF CertResponse
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertResponse ::= SEQUENCE {
+ certReqId INTEGER,
+ -- to match this response with corresponding request (a value
+ -- of -1 is to be used if certReqId is not specified in the
+ -- corresponding request)
+ status PKIStatusInfo,
+ certifiedKeyPair CertifiedKeyPair OPTIONAL,
+ rspInfo OCTET STRING OPTIONAL
+ -- analogous to the id-regInfo-utf8Pairs string defined
+ -- for regInfo in CertReqMsg [CRMF]
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertStatus ::= SEQUENCE {
+ certHash OCTET STRING,
+ -- the hash of the certificate, using the same hash algorithm
+ -- as is used to create and verify the certificate signature
+ certReqId INTEGER,
+ -- to match this confirmation with the corresponding req/rep
+ statusInfo PKIStatusInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Note: the addition of attribute certificates is a BC extension.
+
+
+
+ CMPCertificate ::= CHOICE {
+ x509v3PKCert Certificate
+ x509v2AttrCert [1] AttributeCertificate
+ }
+
+ Note: the addition of attribute certificates is a BC extension.
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CrlAnnContent ::= SEQUENCE OF CertificateList
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenRepContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+ Example InfoTypeAndValue contents include, but are not limited
+ to, the following (un-comment in this ASN.1 module and use as
+ appropriate for a given environment):
+
+ id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1}
+ CAProtEncCertValue ::= CMPCertificate
+ id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
+ SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3}
+ EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
+ PreferredSymmAlgValue ::= AlgorithmIdentifier
+ id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5}
+ CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent
+ id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6}
+ CurrentCRLValue ::= CertificateList
+ id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7}
+ UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER
+ id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10}
+ KeyPairParamReqValue ::= OBJECT IDENTIFIER
+ id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11}
+ KeyPairParamRepValue ::= AlgorithmIdentifer
+ id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12}
+ RevPassphraseValue ::= EncryptedValue
+ id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13}
+ ImplicitConfirmValue ::= NULL
+ id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14}
+ ConfirmWaitTimeValue ::= GeneralizedTime
+ id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15}
+ OrigPKIMessageValue ::= PKIMessages
+ id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16}
+ SuppLangTagsValue ::= SEQUENCE OF UTF8String
+
+ where
+
+ id-pkix OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
+ and
+ id-it OBJECT IDENTIFIER ::= {id-pkix 4}
+
+
+
+
+ InfoTypeAndValue ::= SEQUENCE {
+ infoType OBJECT IDENTIFIER,
+ infoValue ANY DEFINED BY infoType OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ KeyRecRepContent ::= SEQUENCE {
+ status PKIStatusInfo,
+ newSigCert [0] CMPCertificate OPTIONAL,
+ caCerts [1] SEQUENCE SIZE (1..MAX) OF
+ CMPCertificate OPTIONAL,
+ keyPairHist [2] SEQUENCE SIZE (1..MAX) OF
+ CertifiedKeyPair OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OobCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the Der encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PbmParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiBody.
+ @param type one of the TYPE_* constants
+ @param content message content
+
+
+
+ PkiBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiConfirmContent ::= NULL
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIFailureInfo ::= BIT STRING {
+ badAlg (0),
+ -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2),
+ -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5),
+ -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+ certRevoked (10),
+ certConfirmed (11),
+ wrongIntegrity (12),
+ badRecipientNonce (13),
+ timeNotAvailable (14),
+ -- the TSA's time source is not available
+ unacceptedPolicy (15),
+ -- the requested TSA policy is not supported by the TSA
+ unacceptedExtension (16),
+ -- the requested extension is not supported by the TSA
+ addInfoNotAvailable (17)
+ -- the additional information requested could not be understood
+ -- or is not available
+ badSenderNonce (18),
+ badCertTemplate (19),
+ signerNotTrusted (20),
+ transactionIdInUse (21),
+ unsupportedVersion (22),
+ notAuthorized (23),
+ systemUnavail (24),
+ systemFailure (25),
+ -- the request cannot be handled due to system failure
+ duplicateCertReq (26)
+
+
+
+ Basic constructor.
+
+
+ Return the number of string elements present.
+
+ @return number of elements present.
+
+
+ Return the UTF8STRING at index.
+
+ @param index index of the string of interest
+ @return the string at index.
+
+
+
+ PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
+
+
+
+ Value for a "null" recipient or sender.
+
+
+
+ PkiHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiMessage.
+
+ @param header message header
+ @param body message body
+ @param protection message protection (may be null)
+ @param extraCerts extra certificates (may be null)
+
+
+
+ PkiMessage ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody,
+ protection [0] PKIProtection OPTIONAL,
+ extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiMessages ::= SEQUENCE SIZE (1..MAX) OF PkiMessage
+
+ @return a basic ASN.1 object representation.
+
+
+ @param status
+
+
+ @param status
+ @param statusString
+
+
+
+ PkiStatusInfo ::= SEQUENCE {
+ status PKIStatus, (INTEGER)
+ statusString PkiFreeText OPTIONAL,
+ failInfo PkiFailureInfo OPTIONAL (BIT STRING)
+ }
+
+ PKIStatus:
+ granted (0), -- you got exactly what you asked for
+ grantedWithMods (1), -- you got something like what you asked for
+ rejection (2), -- you don't get it, more information elsewhere in the message
+ waiting (3), -- the request body part has not yet been processed, expect to hear more later
+ revocationWarning (4), -- this message contains a warning that a revocation is imminent
+ revocationNotification (5), -- notification that a revocation has occurred
+ keyUpdateWarning (6) -- update already done for the oldCertId specified in CertReqMsg
+
+ PkiFailureInfo:
+ badAlg (0), -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2), -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5), -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+
+
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PollReqContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyChallContent ::= SEQUENCE OF Challenge
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyRespContent ::= SEQUENCE OF INTEGER
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ProtectedPart ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevAnnContent ::= SEQUENCE {
+ status PKIStatus,
+ certId CertId,
+ willBeRevokedAt GeneralizedTime,
+ badSinceDate GeneralizedTime,
+ crlDetails Extensions OPTIONAL
+ -- extra CRL details (e.g., crl number, reason, location, etc.)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevReqContent ::= SEQUENCE OF RevDetails
+
+ @return a basic ASN.1 object representation.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attribute ::= SEQUENCE {
+ attrType OBJECT IDENTIFIER,
+ attrValues SET OF AttributeValue
+ }
+
+
+
+
+ Attributes ::=
+ SET SIZE(1..MAX) OF Attribute -- according to RFC 5652
+
+ @return
+
+
+ Return the first attribute matching the given OBJECT IDENTIFIER
+
+
+ Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be
+ empty if there are no attributes of the required type present.
+
+ @param oid type of attribute required.
+ @return a vector of all the attributes found of type oid.
+
+
+ Return a new table with the passed in attribute added.
+
+ @param attrType
+ @param attrValue
+ @return
+
+
+ return an AuthenticatedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthenticatedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ The other Revocation Info arc
+ id-ri OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7) ri(16) }
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= Sequence {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ return a CompressedData object from a tagged object.
+
+ @param ato the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a CompressedData object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= SEQUENCE {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ MQVuserKeyingMaterial ::= SEQUENCE {
+ ephemeralPublicKey OriginatorPublicKey,
+ addedukm [0] EXPLICIT UserKeyingMaterial OPTIONAL }
+
+
+
+ return an EncryptedContentInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedData ::= SEQUENCE {
+ version CMSVersion,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ return an EnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an EnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= Sequence {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ return a KekIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekIdentifier ::= Sequence {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+
+
+ return a KekRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 4
+ kekID KekIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return an KeyAgreeRecipientIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an KeyAgreeRecipientIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyAgreeRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ rKeyId [0] IMPLICIT RecipientKeyIdentifier
+ }
+
+
+
+ return a KeyAgreeRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KeyAgreeRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ * Produce an object suitable for an Asn1OutputStream.
+ *
+ * KeyAgreeRecipientInfo ::= Sequence {
+ * version CMSVersion, -- always set to 3
+ * originator [0] EXPLICIT OriginatorIdentifierOrKey,
+ * ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
+ * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ * recipientEncryptedKeys RecipientEncryptedKeys
+ * }
+ *
+ * UserKeyingMaterial ::= OCTET STRING
+ *
+
+
+ return a KeyTransRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyTransRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 0 or 2
+ rid RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+
+ MetaData ::= SEQUENCE {
+ hashProtected BOOLEAN,
+ fileName UTF8String OPTIONAL,
+ mediaType IA5String OPTIONAL,
+ otherMetaData Attributes OPTIONAL
+ }
+
+ @return
+
+
+ return an OriginatorIdentifierOrKey object from a tagged object.
+
+ @param o the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorIdentifierOrKey object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorKey [1] OriginatorPublicKey
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ return an OriginatorInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorInfo ::= Sequence {
+ certs [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL
+ }
+
+
+
+ return an OriginatorPublicKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorPublicKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorPublicKey ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+ }
+
+
+
+ return an OtherKeyAttribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherKeyAttribute ::= Sequence {
+ keyAttrId OBJECT IDENTIFIER,
+ keyAttr ANY DEFINED BY keyAttrId OPTIONAL
+ }
+
+
+
+ return a OtherRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherRecipientInfo ::= Sequence {
+ oriType OBJECT IDENTIFIER,
+ oriValue ANY DEFINED BY oriType }
+
+
+
+ return a OtherRevocationInfoFormat object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRevocationInfoFormat object from the given object.
+
+ @param obj the object we want converted.
+ @exception IllegalArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ OtherRevocationInfoFormat ::= SEQUENCE {
+ otherRevInfoFormat OBJECT IDENTIFIER,
+ otherRevInfo ANY DEFINED BY otherRevInfoFormat }
+
+
+
+ return a PasswordRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a PasswordRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ PasswordRecipientInfo ::= Sequence {
+ version CMSVersion, -- Always set to 0
+ keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
+ OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+
+
+ return an RecipientEncryptedKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientEncryptedKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientEncryptedKey ::= SEQUENCE {
+ rid KeyAgreeRecipientIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return a RecipientIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientInfo ::= CHOICE {
+ ktri KeyTransRecipientInfo,
+ kari [1] KeyAgreeRecipientInfo,
+ kekri [2] KekRecipientInfo,
+ pwri [3] PasswordRecipientInfo,
+ ori [4] OtherRecipientInfo }
+
+
+
+ return a RecipientKeyIdentifier object from a tagged object.
+
+ @param _ato the tagged object holding the object we want.
+ @param _explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientKeyIdentifier object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientKeyIdentifier ::= Sequence {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+
+ ScvpReqRes ::= SEQUENCE {
+ request [0] EXPLICIT ContentInfo OPTIONAL,
+ response ContentInfo }
+
+ @return the ASN.1 primitive representation.
+
+
+ a signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+
+ SignedData ::= SEQUENCE {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+ return a SignerIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ SignerIdentifier sid,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+
+ TimeStampAndCRL ::= SEQUENCE {
+ timeStamp TimeStampToken, -- according to RFC 3161
+ crl CertificateList OPTIONAL -- according to RFC 5280
+ }
+
+ @return
+
+
+
+ TimeStampedData ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ dataUri IA5String OPTIONAL,
+ metaData MetaData OPTIONAL,
+ content OCTET STRING OPTIONAL,
+ temporalEvidence Evidence
+ }
+
+ @return
+
+
+
+ TimeStampTokenEvidence ::=
+ SEQUENCE SIZE(1..MAX) OF TimeStampAndCrl
+
+ @return
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertId ::= SEQUENCE {
+ issuer GeneralName,
+ serialNumber INTEGER }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new CertReqMsg.
+ @param certReq CertRequest
+ @param popo may be null
+ @param regInfo may be null
+
+
+
+ CertReqMsg ::= SEQUENCE {
+ certReq CertRequest,
+ pop ProofOfPossession OPTIONAL,
+ -- content depends upon key type
+ regInfo SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRequest ::= SEQUENCE {
+ certReqId INTEGER, -- ID for matching request and reply
+ certTemplate CertTemplate, -- Selected fields of cert to be issued
+ controls Controls OPTIONAL } -- Attributes affecting issuance
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Sets the X.509 version. Note: for X509v3, use 2 here.
+
+
+ Sets the issuer unique ID (deprecated in X.509v3)
+
+
+ Sets the subject unique ID (deprecated in X.509v3)
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ EncKeyWithID ::= SEQUENCE {
+ privateKey PrivateKeyInfo,
+ identifier CHOICE {
+ string UTF8String,
+ generalName GeneralName
+ } OPTIONAL
+ }
+
+ @return
+
+
+
+ EncryptedKey ::= CHOICE {
+ encryptedValue EncryptedValue, -- deprecated
+ envelopedData [0] EnvelopedData }
+ -- The encrypted private key MUST be placed in the envelopedData
+ -- encryptedContentInfo encryptedContent OCTET STRING.
+
+
+
+
+ EncryptedValue ::= SEQUENCE {
+ intendedAlg [0] AlgorithmIdentifier OPTIONAL,
+ -- the intended algorithm for which the value will be used
+ symmAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- the symmetric algorithm used to encrypt the value
+ encSymmKey [2] BIT STRING OPTIONAL,
+ -- the (encrypted) symmetric key used to encrypt the value
+ keyAlg [3] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used to encrypt the symmetric key
+ valueHint [4] OCTET STRING OPTIONAL,
+ -- a brief description or identifier of the encValue content
+ -- (may be meaningful only to the sending entity, and used only
+ -- if EncryptedValue might be re-examined by the sending entity
+ -- in the future)
+ encValue BIT STRING }
+ -- the encrypted value itself
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OptionalValidity ::= SEQUENCE {
+ notBefore [0] Time OPTIONAL,
+ notAfter [1] Time OPTIONAL } --at least one MUST be present
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiArchiveOptions ::= CHOICE {
+ encryptedPrivKey [0] EncryptedKey,
+ -- the actual value of the private key
+ keyGenParameters [1] KeyGenParameters,
+ -- parameters which allow the private key to be re-generated
+ archiveRemGenPrivKey [2] BOOLEAN }
+ -- set to TRUE if sender wishes receiver to archive the private
+ -- key of a key pair that the receiver generates in response to
+ -- this request; set to FALSE if no archival is desired.
+
+
+
+
+ PkiPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+ @return a basic ASN.1 object representation.
+
+
+ Password-based MAC value for use with POPOSigningKeyInput.
+
+
+ Creates a new PKMACValue.
+ @param params parameters for password-based MAC
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+ Creates a new PKMACValue.
+ @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+
+ PKMACValue ::= SEQUENCE {
+ algId AlgorithmIdentifier,
+ -- algorithm value shall be PasswordBasedMac 1.2.840.113533.7.66.13
+ -- parameter value is PBMParameter
+ value BIT STRING }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoPrivKey ::= CHOICE {
+ thisMessage [0] BIT STRING, -- Deprecated
+ -- possession is proven in this message (which contains the private
+ -- key itself (encrypted for the CA))
+ subsequentMessage [1] SubsequentMessage,
+ -- possession will be proven in a subsequent message
+ dhMAC [2] BIT STRING, -- Deprecated
+ agreeMAC [3] PKMACValue,
+ encryptedKey [4] EnvelopedData }
+
+
+
+ Creates a new Proof of Possession object for a signing key.
+ @param poposkIn the PopoSigningKeyInput structure, or null if the
+ CertTemplate includes both subject and publicKey values.
+ @param aid the AlgorithmIdentifier used to sign the proof of possession.
+ @param signature a signature over the DER-encoded value of poposkIn,
+ or the DER-encoded value of certReq if poposkIn is null.
+
+
+
+ PopoSigningKey ::= SEQUENCE {
+ poposkInput [0] PopoSigningKeyInput OPTIONAL,
+ algorithmIdentifier AlgorithmIdentifier,
+ signature BIT STRING }
+ -- The signature (using "algorithmIdentifier") is on the
+ -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg
+ -- certReq CertTemplate contains the subject and publicKey values,
+ -- then poposkInput MUST be omitted and the signature MUST be
+ -- computed on the DER-encoded value of CertReqMsg certReq. If
+ -- the CertReqMsg certReq CertTemplate does not contain the public
+ -- key and subject values, then poposkInput MUST be present and
+ -- MUST be signed. This strategy ensures that the public key is
+ -- not present in both the poposkInput and CertReqMsg certReq
+ -- CertTemplate fields.
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PopoSigningKeyInput with sender name as authInfo.
+
+
+ Creates a new PopoSigningKeyInput using password-based MAC.
+
+
+ Returns the sender field, or null if authInfo is publicKeyMac
+
+
+ Returns the publicKeyMac field, or null if authInfo is sender
+
+
+
+ PopoSigningKeyInput ::= SEQUENCE {
+ authInfo CHOICE {
+ sender [0] GeneralName,
+ -- used only if an authenticated identity has been
+ -- established for the sender (e.g., a DN from a
+ -- previously-issued and currently-valid certificate
+ publicKeyMac PKMacValue },
+ -- used if no authenticated GeneralName currently exists for
+ -- the sender; publicKeyMac contains a password-based MAC
+ -- on the DER-encoded value of publicKey
+ publicKey SubjectPublicKeyInfo } -- from CertTemplate
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a ProofOfPossession with type raVerified.
+
+
+ Creates a ProofOfPossession for a signing key.
+
+
+ Creates a ProofOfPossession for key encipherment or agreement.
+ @param type one of TYPE_KEY_ENCIPHERMENT or TYPE_KEY_AGREEMENT
+
+
+
+ ProofOfPossession ::= CHOICE {
+ raVerified [0] NULL,
+ -- used if the RA has already verified that the requester is in
+ -- possession of the private key
+ signature [1] PopoSigningKey,
+ keyEncipherment [2] PopoPrivKey,
+ keyAgreement [3] PopoPrivKey }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ SinglePubInfo ::= SEQUENCE {
+ pubMethod INTEGER {
+ dontCare (0),
+ x500 (1),
+ web (2),
+ ldap (3) },
+ pubLocation GeneralName OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Table of the available named parameters for GOST 3410-2001 / 2012.
+
+
+
+ return the ECDomainParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+
+ Gost28147-89-Parameters ::=
+ SEQUENCE {
+ iv Gost28147-89-IV,
+ encryptionParamSet OBJECT IDENTIFIER
+ }
+
+ Gost28147-89-IV ::= OCTET STRING (SIZE (8))
+
+
+
+ table of the available named parameters for GOST 3410-94.
+
+
+ return the GOST3410ParamSetParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for parameters
+ contained in this structure.
+
+
+ Base class for an application specific object
+
+
+ Return the enclosed object assuming explicit tagging.
+
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ Return the enclosed object assuming implicit tagging.
+
+ @param derTagNo the type tag that should be applied to the object's contents.
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ return a Bit string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Bit string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ @param data the octets making up the bit string.
+ @param padBits the number of extra bits at the end of the string.
+
+
+ Return the octets contained in this BIT STRING, checking that this BIT STRING really
+ does represent an octet aligned string. Only use this method when the standard you are
+ following dictates that the BIT STRING will be octet aligned.
+
+ @return a copy of the octet aligned data.
+
+
+ @return the value of the bit string as an int (truncating if necessary)
+
+
+ Der BMPString object.
+
+
+ return a BMP string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a BMP string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a bool from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a DerBoolean from the passed in bool.
+
+
+ return a Boolean from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Enumerated from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Class representing the DER-type External
+
+
+ Creates a new instance of DerExternal
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param externalData The external data in its encoded form.
+
+
+ Creates a new instance of DerExternal.
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param encoding The encoding to be used for the external data
+ @param externalData The external data
+
+
+ The encoding of the content. Valid values are
+
+ 0 single-ASN1-type
+ 1 OCTET STRING
+ 2 BIT STRING
+
+
+
+ Generalized time object.
+
+
+ return a generalized time from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Generalized Time object from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYYYMMDDHHMMSS[.f]Z, or without the Z
+ for local time, or Z+-HHMM on the end, for difference between local
+ time and UTC time. The fractional second amount f must consist of at
+ least one number with trailing zeroes removed.
+
+ @param time the time string.
+ @exception ArgumentException if string is an illegal format.
+
+
+ base constructor from a local time object
+
+
+ Return the time.
+ @return The time string as it appeared in the encoded object.
+
+
+ return the time - always in the form of
+ YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyyyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+
+ return a Graphic String from the passed in object
+
+ @param obj a DerGraphicString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ return a Graphic String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der IA5String object - this is an ascii string.
+
+
+ return a IA5 string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an IA5 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in an IA5String.
+
+
+ return true if the passed in String can be represented without
+ loss as an IA5String, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Integer from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ in some cases positive values Get crammed into a space,
+ that's not quite big enough...
+
+
+ A Null object.
+
+
+ Der NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
+
+
+ return a Numeric string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Numeric string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation..
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a NumericString.
+
+
+ Return true if the string can be represented as a NumericString ('0'..'9', ' ')
+
+ @param str string to validate.
+ @return true if numeric, fale otherwise.
+
+
+ return an Oid from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an object Identifier from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Return true if this oid is an extension of the passed in branch, stem.
+ @param stem the arc or branch that is a possible parent.
+ @return true if the branch is on the passed in stem, false otherwise.
+
+
+ The octets making up the octet string.
+
+
+ Der PrintableString object.
+
+
+ return a printable string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Printable string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor - this does not validate the string
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a PrintableString.
+
+
+ return true if the passed in String can be represented without
+ loss as a PrintableString, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ A Der encoded set object
+
+
+ create an empty set
+
+
+ @param obj - a single object that makes up the set.
+
+
+ @param v - a vector of objects making up the set.
+
+
+ Der T61String (also the teletex string) - 8-bit characters
+
+
+ return a T61 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an T61 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - with string.
+
+
+ DER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+ Der UniversalString object.
+
+
+ return a Universal string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Universal string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ UTC time object.
+
+
+ return an UTC Time from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTC Time from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYMMDDHHMMSSZ (it used to be that seconds were
+ never encoded. When you're creating one of these objects from scratch, that's
+ what you want to use, otherwise we'll try to deal with whatever Gets read from
+ the input stream... (this is why the input format is different from the GetTime()
+ method output).
+
+ @param time the time string.
+
+
+ base constructor from a DateTime object
+
+
+ return the time as a date based on whatever a 2 digit year will return. For
+ standardised processing use ToAdjustedDateTime().
+
+ @return the resulting date
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time as an adjusted date
+ in the range of 1950 - 2049.
+
+ @return a date in the range of 1950 to 2049.
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time - always in the form of
+ YYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+ Note: In some cases, due to the local date processing, this
+ may lead to unexpected results. If you want to stick the normal
+ convention of 1950 to 2049 use the GetAdjustedTime() method.
+
+
+
+ Return a time string as an adjusted date with a 4 digit year.
+ This goes in the range of 1950 - 2049.
+
+
+
+ Der UTF8String object.
+
+
+ return an UTF8 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTF8 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a Videotex String from the passed in object
+
+ @param obj a DERVideotexString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ return a Videotex String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der VisibleString object.
+
+
+ return a Visible string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Visible string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+
+ RFC 3126: 4.3.1 Certificate Values Attribute Definition
+
+ CertificateValues ::= SEQUENCE OF Certificate
+
+
+
+
+
+ CommitmentTypeIndication ::= SEQUENCE {
+ commitmentTypeId CommitmentTypeIdentifier,
+ commitmentTypeQualifier SEQUENCE SIZE (1..MAX) OF
+ CommitmentTypeQualifier OPTIONAL }
+
+
+
+ Commitment type qualifiers, used in the Commitment-Type-Indication attribute (RFC3126).
+
+
+ CommitmentTypeQualifier ::= SEQUENCE {
+ commitmentTypeIdentifier CommitmentTypeIdentifier,
+ qualifier ANY DEFINED BY commitmentTypeIdentifier OPTIONAL }
+
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param as CommitmentTypeQualifier structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a DER-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+ RFC 3126: 4.2.1 Complete Certificate Refs Attribute Definition
+
+ CompleteCertificateRefs ::= SEQUENCE OF OtherCertID
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CompleteRevocationRefs ::= SEQUENCE OF CrlOcspRef
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlIdentifier ::= SEQUENCE
+ {
+ crlissuer Name,
+ crlIssuedTime UTCTime,
+ crlNumber INTEGER OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CRLListID ::= SEQUENCE
+ {
+ crls SEQUENCE OF CrlValidatedID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlOcspRef ::= SEQUENCE {
+ crlids [0] CRLListID OPTIONAL,
+ ocspids [1] OcspListID OPTIONAL,
+ otherRev [2] OtherRevRefs OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlValidatedID ::= SEQUENCE {
+ crlHash OtherHash,
+ crlIdentifier CrlIdentifier OPTIONAL}
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspIdentifier ::= SEQUENCE {
+ ocspResponderID ResponderID,
+ -- As in OCSP response data
+ producedAt GeneralizedTime
+ -- As in OCSP response data
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspListID ::= SEQUENCE {
+ ocspResponses SEQUENCE OF OcspResponsesID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspResponsesID ::= SEQUENCE {
+ ocspIdentifier OcspIdentifier,
+ ocspRepHash OtherHash OPTIONAL
+ }
+
+
+
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+
+
+
+
+
+ OtherHash ::= CHOICE {
+ sha1Hash OtherHashValue, -- This contains a SHA-1 hash
+ otherHash OtherHashAlgAndValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ Summary description for OtherHashAlgAndValue.
+
+
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OtherHashValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OtherRevRefs ::= SEQUENCE
+ {
+ otherRevRefType OtherRevRefType,
+ otherRevRefs ANY DEFINED BY otherRevRefType
+ }
+
+ OtherRevRefType ::= OBJECT IDENTIFIER
+
+
+
+
+
+ RFC 3126: 4.3.2 Revocation Values Attribute Definition
+
+ OtherRevVals ::= SEQUENCE
+ {
+ otherRevValType OtherRevValType,
+ otherRevVals ANY DEFINED BY otherRevValType
+ }
+
+ OtherRevValType ::= OBJECT IDENTIFIER
+
+
+
+
+
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+
+
+
+
+ RFC 5126: 6.3.4. revocation-values Attribute Definition
+
+ RevocationValues ::= SEQUENCE {
+ crlVals [0] SEQUENCE OF CertificateList OPTIONAL,
+ ocspVals [1] SEQUENCE OF BasicOCSPResponse OPTIONAL,
+ otherRevVals [2] OtherRevVals OPTIONAL
+ }
+
+
+
+
+
+
+ SignaturePolicyId ::= SEQUENCE {
+ sigPolicyIdentifier SigPolicyId,
+ sigPolicyHash SigPolicyHash,
+ sigPolicyQualifiers SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo OPTIONAL
+ }
+
+ SigPolicyId ::= OBJECT IDENTIFIER
+
+ SigPolicyHash ::= OtherHashAlgAndValue
+
+
+
+
+
+
+ SignaturePolicyIdentifier ::= CHOICE {
+ SignaturePolicyId SignaturePolicyId,
+ SignaturePolicyImplied SignaturePolicyImplied
+ }
+
+ SignaturePolicyImplied ::= NULL
+
+
+
+
+
+
+ SignerAttribute ::= SEQUENCE OF CHOICE {
+ claimedAttributes [0] ClaimedAttributes,
+ certifiedAttributes [1] CertifiedAttributes }
+
+ ClaimedAttributes ::= SEQUENCE OF Attribute
+ CertifiedAttributes ::= AttributeCertificate -- as defined in RFC 3281: see clause 4.1.
+
+
+
+ Signer-Location attribute (RFC3126).
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1.. MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+
+
+ SigPolicyQualifierInfo ::= SEQUENCE {
+ sigPolicyQualifierId SigPolicyQualifierId,
+ sigQualifier ANY DEFINED BY sigPolicyQualifierId
+ }
+
+ SigPolicyQualifierId ::= OBJECT IDENTIFIER
+
+
+
+
+ constructor
+
+
+
+ ContentHints ::= SEQUENCE {
+ contentDescription UTF8String (SIZE (1..MAX)) OPTIONAL,
+ contentType ContentType }
+
+
+
+ Create from OCTET STRING whose octets represent the identifier.
+
+
+ Create from byte array representing the identifier.
+
+
+ The definition of ContentIdentifier is
+
+ ContentIdentifier ::= OCTET STRING
+
+ id-aa-contentIdentifier OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 7 }
+
+
+ constructor
+
+
+
+ EssCertID ::= SEQUENCE {
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+
+
+
+ EssCertIDv2 ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier
+ DEFAULT {algorithm id-sha256},
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+ Hash ::= OCTET STRING
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serialNumber CertificateSerialNumber
+ }
+
+
+
+ constructor
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+ OtherHash ::= CHOICE {
+ sha1Hash OCTET STRING,
+ otherHash OtherHashAlgAndValue }
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OCTET STRING }
+
+
+
+
+ constructors
+
+
+ The definition of OtherSigningCertificate is
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-ets-otherSigCert OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 19 }
+
+
+ constructors
+
+
+ The definition of SigningCertificate is
+
+ SigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF EssCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 12 }
+
+
+ The definition of SigningCertificateV2 is
+
+ SigningCertificateV2 ::= SEQUENCE {
+ certs SEQUENCE OF EssCertIDv2,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 47 }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ 1.3.6.1.4.1.11591.15 - ellipticCurve
+
+
+ Marker interface for CHOICE objects - if you implement this in a roll-your-own
+ object, any attempt to tag the object implicitly will convert the tag to an
+ explicit one as the encoding rules require.
+
+ If you use this interface your class should also implement the getInstance
+ pattern which takes a tag object and the tagging mode used.
+
+
+
+ basic interface for Der string objects.
+
+
+ The CscaMasterList object. This object can be wrapped in a
+ CMSSignedData to be published in LDAP.
+
+
+ CscaMasterList ::= SEQUENCE {
+ version CscaMasterListVersion,
+ certList SET OF Certificate }
+
+ CscaMasterListVersion :: INTEGER {v0(0)}
+
+
+
+ The DataGroupHash object.
+
+ DataGroupHash ::= SEQUENCE {
+ dataGroupNumber DataGroupNumber,
+ dataGroupHashValue OCTET STRING }
+
+ DataGroupNumber ::= INTEGER {
+ dataGroup1 (1),
+ dataGroup1 (2),
+ dataGroup1 (3),
+ dataGroup1 (4),
+ dataGroup1 (5),
+ dataGroup1 (6),
+ dataGroup1 (7),
+ dataGroup1 (8),
+ dataGroup1 (9),
+ dataGroup1 (10),
+ dataGroup1 (11),
+ dataGroup1 (12),
+ dataGroup1 (13),
+ dataGroup1 (14),
+ dataGroup1 (15),
+ dataGroup1 (16) }
+
+
+
+
+ The LDSSecurityObject object (V1.8).
+
+ LDSSecurityObject ::= SEQUENCE {
+ version LDSSecurityObjectVersion,
+ hashAlgorithm DigestAlgorithmIdentifier,
+ dataGroupHashValues SEQUENCE SIZE (2..ub-DataGroups) OF DataHashGroup,
+ ldsVersionInfo LDSVersionInfo OPTIONAL
+ -- if present, version MUST be v1 }
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier,
+
+ LDSSecurityObjectVersion :: INTEGER {V0(0)}
+
+
+
+
+ LDSVersionInfo ::= SEQUENCE {
+ ldsVersion PRINTABLE STRING
+ unicodeVersion PRINTABLE STRING
+ }
+
+ @return
+
+
+ The id-isismtt-cp-accredited OID indicates that the certificate is a
+ qualified certificate according to Directive 1999/93/EC of the European
+ Parliament and of the Council of 13 December 1999 on a Community
+ Framework for Electronic Signatures, which additionally conforms the
+ special requirements of the SigG and has been issued by an accredited CA.
+
+
+ Certificate extensionDate of certificate generation
+
+
+ DateOfCertGenSyntax ::= GeneralizedTime
+
+
+
+ Attribute to indicate that the certificate holder may sign in the name of
+ a third person. May also be used as extension in a certificate.
+
+
+ Attribute to indicate admissions to certain professions. May be used as
+ attribute in attribute certificate or as extension in a certificate
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST
+ be used in new certificates in place of the extension/attribute
+ MonetaryLimit since January 1, 2004. For the sake of backward
+ compatibility with certificates already in use, SigG conforming
+ components MUST support MonetaryLimit (as well as QcEuLimitValue).
+
+
+ A declaration of majority. May be used as attribute in attribute
+ certificate or as extension in a certificate
+
+
+
+ Serial number of the smart card containing the corresponding private key
+
+
+ ICCSNSyntax ::= OCTET STRING (SIZE(8..20))
+
+
+
+
+ Reference for a file of a smartcard that stores the public key of this
+ certificate and that is used as �security anchor�.
+
+
+ PKReferenceSyntax ::= OCTET STRING (SIZE(20))
+
+
+
+ Some other restriction regarding the usage of this certificate. May be
+ used as attribute in attribute certificate or as extension in a
+ certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Restriction
+
+
+
+ (Single)Request extension: Clients may include this extension in a
+ (single) Request to request the responder to send the certificate in the
+ response message along with the status information. Besides the LDAP
+ service, this extension provides another mechanism for the distribution
+ of certificates, which MAY optionally be provided by certificate
+ repositories.
+
+
+ RetrieveIfAllowed ::= BOOLEAN
+
+
+
+ SingleOCSPResponse extension: The certificate requested by the client by
+ inserting the RetrieveIfAllowed extension in the request, will be
+ returned in this extension.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate
+
+
+ Base ObjectIdentifier for naming authorities
+
+
+ SingleOCSPResponse extension: Date, when certificate has been published
+ in the directory and status information has become available. Currently,
+ accrediting authorities enforce that SigG-conforming OCSP servers include
+ this extension in the responses.
+
+
+ CertInDirSince ::= GeneralizedTime
+
+
+
+ Hash of a certificate in OCSP.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.CertHash
+
+
+
+ NameAtBirth ::= DirectoryString(SIZE(1..64)
+
+
+ Used in
+ {@link Org.BouncyCastle.Asn1.X509.SubjectDirectoryAttributes SubjectDirectoryAttributes}
+
+
+ Some other information of non-restrictive nature regarding the usage of
+ this certificate. May be used as attribute in atribute certificate or as
+ extension in a certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdditionalInformationSyntax
+
+
+ Indicates that an attribute certificate exists, which limits the
+ usability of this public key certificate. Whenever verifying a signature
+ with the help of this certificate, the content of the corresponding
+ attribute certificate should be concerned. This extension MUST be
+ included in a PKC, if a corresponding attribute certificate (having the
+ PKC as base certificate) contains some attribute that restricts the
+ usability of the PKC too. Attribute certificates with restricting content
+ MUST always be included in the signed document.
+
+
+ LiabilityLimitationFlagSyntax ::= BOOLEAN
+
+
+
+ ISIS-MTT PROFILE: The responder may include this extension in a response to
+ send the hash of the requested certificate to the responder. This hash is
+ cryptographically bound to the certificate and serves as evidence that the
+ certificate is known to the responder (i.e. it has been issued and is present
+ in the directory). Hence, this extension is a means to provide a positive
+ statement of availability as described in T8.[8]. As explained in T13.[1],
+ clients may rely on this information to be able to validate signatures after
+ the expiry of the corresponding certificate. Hence, clients MUST support this
+ extension. If a positive statement of availability is to be delivered, this
+ extension syntax and OID MUST be used.
+
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertHash:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param hashAlgorithm The hash algorithm identifier.
+ @param certificateHash The hash of the whole DER encoding of the certificate.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ ISIS-MTT-Optional: The certificate requested by the client by inserting the
+ RetrieveIfAllowed extension in the request, will be returned in this
+ extension.
+
+ ISIS-MTT-SigG: The signature act allows publishing certificates only then,
+ when the certificate owner gives his isExplicit permission. Accordingly, there
+ may be �nondownloadable� certificates, about which the responder must provide
+ status information, but MUST NOT include them in the response. Clients may
+ get therefore the following three kind of answers on a single request
+ including the RetrieveIfAllowed extension:
+
+ - a) the responder supports the extension and is allowed to publish the
+ certificate: RequestedCertificate returned including the requested
+ certificate
+ - b) the responder supports the extension but is NOT allowed to publish
+ the certificate: RequestedCertificate returned including an empty OCTET
+ STRING
+ - c) the responder does not support the extension: RequestedCertificate is
+ not included in the response
+
+ Clients requesting RetrieveIfAllowed MUST be able to handle these cases. If
+ any of the OCTET STRING options is used, it MUST contain the DER encoding of
+ the requested certificate.
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+
+ Constructor from a given details.
+
+ Only one parameter can be given. All other must be null.
+
+ @param certificate Given as Certificate
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ Some other information of non-restrictive nature regarding the usage of this
+ certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+
+ Constructor from a given details.
+
+ @param information The describtion of the information.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @return an Asn1Object
+
+
+ An Admissions structure.
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ Parameter professionInfos is mandatory.
+
+ @param admissionAuthority The admission authority.
+ @param namingAuthority The naming authority.
+ @param professionInfos The profession infos.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate admissions to certain professions.
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+
+ ISIS-MTT PROFILE: The relatively complex structure of AdmissionSyntax
+ supports the following concepts and requirements:
+
+ - External institutions (e.g. professional associations, chambers, unions,
+ administrative bodies, companies, etc.), which are responsible for granting
+ and verifying professional admissions, are indicated by means of the data
+ field admissionAuthority. An admission authority is indicated by a
+ GeneralName object. Here an X.501 directory name (distinguished name) can be
+ indicated in the field directoryName, a URL address can be indicated in the
+ field uniformResourceIdentifier, and an object identifier can be indicated in
+ the field registeredId.
+ - The names of authorities which are responsible for the administration of
+ title registers are indicated in the data field namingAuthority. The name of
+ the authority can be identified by an object identifier in the field
+ namingAuthorityId, by means of a text string in the field
+ namingAuthorityText, by means of a URL address in the field
+ namingAuthorityUrl, or by a combination of them. For example, the text string
+ can contain the name of the authority, the country and the name of the title
+ register. The URL-option refers to a web page which contains lists with
+ officially registered professions (text and possibly OID) as well as
+ further information on these professions. Object identifiers for the
+ component namingAuthorityId are grouped under the OID-branch
+ id-isis-at-namingAuthorities and must be applied for.
+ - See http://www.teletrust.de/anwend.asp?Id=30200&Sprache=E_&HomePG=0
+ for an application form and http://www.teletrust.de/links.asp?id=30220,11
+ for an overview of registered naming authorities.
+ - By means of the data type ProfessionInfo certain professions,
+ specializations, disciplines, fields of activity, etc. are identified. A
+ profession is represented by one or more text strings, resp. profession OIDs
+ in the fields professionItems and professionOIDs and by a registration number
+ in the field registrationNumber. An indication in text form must always be
+ present, whereas the other indications are optional. The component
+ addProfessionInfo may contain additional applicationspecific information in
+ DER-encoded form.
+
+
+ By means of different namingAuthority-OIDs or profession OIDs hierarchies of
+ professions, specializations, disciplines, fields of activity, etc. can be
+ expressed. The issuing admission authority should always be indicated (field
+ admissionAuthority), whenever a registration number is presented. Still,
+ information on admissions can be given without indicating an admission or a
+ naming authority by the exclusive use of the component professionItems. In
+ this case the certification authority is responsible for the verification of
+ the admission information.
+
+
+
+ This attribute is single-valued. Still, several admissions can be captured in
+ the sequence structure of the component contentsOfAdmissions of
+ AdmissionSyntax or in the component professionInfos of Admissions. The
+ component admissionAuthority of AdmissionSyntax serves as default value for
+ the component admissionAuthority of Admissions. Within the latter component
+ the default value can be overwritten, in case that another authority is
+ responsible. The component namingAuthority of Admissions serves as a default
+ value for the component namingAuthority of ProfessionInfo. Within the latter
+ component the default value can be overwritten, in case that another naming
+ authority needs to be recorded.
+
+ The length of the string objects is limited to 128 characters. It is
+ recommended to indicate a namingAuthorityURL in all issued attribute
+ certificates. If a namingAuthorityURL is indicated, the field professionItems
+ of ProfessionInfo should contain only registered titles. If the field
+ professionOIDs exists, it has to contain the OIDs of the professions listed
+ in professionItems in the same order. In general, the field professionInfos
+ should contain only one entry, unless the admissions that are to be listed
+ are logically connected (e.g. they have been issued under the same admission
+ number).
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Admissions
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ @param admissionAuthority The admission authority.
+ @param contentsOfAdmissions The admissions.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the admissionAuthority if present, null otherwise.
+
+
+ @return Returns the contentsOfAdmissions.
+
+
+ A declaration of majority.
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ fullAgeAtCountry indicates the majority of the owner with respect to the laws
+ of a specific country.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ @return an Asn1Object
+
+
+ @return notYoungerThan if that's what we are, -1 otherwise
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST be
+ used in new certificates in place of the extension/attribute MonetaryLimit
+ since January 1, 2004. For the sake of backward compatibility with
+ certificates already in use, components SHOULD support MonetaryLimit (as well
+ as QcEuLimitValue).
+
+ Indicates a monetary limit within which the certificate holder is authorized
+ to act. (This value DOES NOT express a limit on the liability of the
+ certification authority).
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ currency must be the ISO code.
+
+ value = amount�10*exponent
+
+
+ Constructor from a given details.
+
+
+ value = amount�10^exponent
+
+ @param currency The currency. Must be the ISO code.
+ @param amount The amount
+ @param exponent The exponent
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ @return an Asn1Object
+
+
+ Names of authorities which are responsible for the administration of title
+ registers.
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+
+ Profession OIDs should always be defined under the OID branch of the
+ responsible naming authority. At the time of this writing, the work group
+ �Recht, Wirtschaft, Steuern� (�Law, Economy, Taxes�) is registered as the
+ first naming authority under the OID id-isismtt-at-namingAuthorities.
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ @return Returns the namingAuthorityID.
+
+
+ @return Returns the namingAuthorityText.
+
+
+ @return Returns the namingAuthorityUrl.
+
+
+ Constructor from given details.
+
+ All parameters can be combined.
+
+ @param namingAuthorityID ObjectIdentifier for naming authority.
+ @param namingAuthorityUrl URL for naming authority.
+ @param namingAuthorityText Textual representation of naming authority.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate that the certificate holder may sign in the name of a
+ third person.
+
+ ISIS-MTT PROFILE: The corresponding ProcurationSyntax contains either the
+ name of the person who is represented (subcomponent thirdPerson) or a
+ reference to his/her base certificate (in the component signingFor,
+ subcomponent certRef), furthermore the optional components country and
+ typeSubstitution to indicate the country whose laws apply, and respectively
+ the type of procuration (e.g. manager, procuration, custody).
+
+
+ ISIS-MTT PROFILE: The GeneralName MUST be of type directoryName and MAY only
+ contain: - RFC3039 attributes, except pseudonym (countryName, commonName,
+ surname, givenName, serialNumber, organizationName, organizationalUnitName,
+ stateOrProvincename, localityName, postalAddress) and - SubjectDirectoryName
+ attributes (title, dateOfBirth, placeOfBirth, gender, countryOfCitizenship,
+ countryOfResidence and NameAtBirth).
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param certRef Reference to certificate of the person who is represented.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param thirdPerson The GeneralName of the person who is represented.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @return an Asn1Object
+
+
+ Professions, specializations, disciplines, fields of activity, etc.
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+ Rechtsanw�ltin
+
+
+ Rechtsanwalt
+
+
+ Rechtsbeistand
+
+
+ Steuerberaterin
+
+
+ Steuerberater
+
+
+ Steuerbevollm�chtigte
+
+
+ Steuerbevollm�chtigter
+
+
+ Notarin
+
+
+ Notar
+
+
+ Notarvertreterin
+
+
+ Notarvertreter
+
+
+ Notariatsverwalterin
+
+
+ Notariatsverwalter
+
+
+ Wirtschaftspr�ferin
+
+
+ Wirtschaftspr�fer
+
+
+ Vereidigte Buchpr�ferin
+
+
+ Vereidigter Buchpr�fer
+
+
+ Patentanw�ltin
+
+
+ Patentanwalt
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ professionItems is mandatory, all other parameters are
+ optional.
+
+ @param namingAuthority The naming authority.
+ @param professionItems Directory strings of the profession.
+ @param professionOids DERObjectIdentfier objects for the
+ profession.
+ @param registrationNumber Registration number.
+ @param addProfessionInfo Additional infos in encoded form.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the addProfessionInfo.
+
+
+ @return Returns the namingAuthority.
+
+
+ @return Returns the professionItems.
+
+
+ @return Returns the professionOids.
+
+
+ @return Returns the registrationNumber.
+
+
+ Some other restriction regarding the usage of this certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ Constructor from DirectoryString.
+
+ The DirectoryString is of type RestrictionSyntax:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @param restriction A IAsn1String.
+
+
+ Constructor from a given details.
+
+ @param restriction The description of the restriction.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ @return an Asn1Object
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ cast5CBCParameters ::= Sequence {
+ iv OCTET STRING DEFAULT 0,
+ -- Initialization vector
+ keyLength Integer
+ -- Key length, in bits
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IDEA-CBCPar ::= Sequence {
+ iv OCTET STRING OPTIONAL -- exactly 8 octets
+ }
+
+
+
+ The NetscapeCertType object.
+
+ NetscapeCertType ::= BIT STRING {
+ SSLClient (0),
+ SSLServer (1),
+ S/MIME (2),
+ Object Signing (3),
+ Reserved (4),
+ SSL CA (5),
+ S/MIME CA (6),
+ Object Signing CA (7) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509NetscapeCertType.sslCA | X509NetscapeCertType.smimeCA)
+
+
+ This is designed to parse
+ the PublicKeyAndChallenge created by the KEYGEN tag included by
+ Mozilla based browsers.
+
+ PublicKeyAndChallenge ::= SEQUENCE {
+ spki SubjectPublicKeyInfo,
+ challenge IA5STRING
+ }
+
+
+
+
+ Utility class for fetching curves using their NIST names as published in FIPS-PUB 186-3
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ From RFC 3657
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicOcspResponse ::= Sequence {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertID ::= Sequence {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ create a CertStatus object with a tag of zero.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertStatus ::= CHOICE {
+ good [0] IMPLICIT Null,
+ revoked [1] IMPLICIT RevokedInfo,
+ unknown [2] IMPLICIT UnknownInfo }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlID ::= Sequence {
+ crlUrl [0] EXPLICIT IA5String OPTIONAL,
+ crlNum [1] EXPLICIT Integer OPTIONAL,
+ crlTime [2] EXPLICIT GeneralizedTime OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspRequest ::= Sequence {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspResponse ::= Sequence {
+ responseStatus OcspResponseStatus,
+ responseBytes [0] EXPLICIT ResponseBytes OPTIONAL }
+
+
+
+ The OcspResponseStatus enumeration.
+
+ OcspResponseStatus ::= Enumerated {
+ successful (0), --Response has valid confirmations
+ malformedRequest (1), --Illegal confirmation request
+ internalError (2), --Internal error in issuer
+ tryLater (3), --Try again later
+ --(4) is not used
+ sigRequired (5), --Must sign the request
+ unauthorized (6) --Request unauthorized
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Request ::= Sequence {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponderID ::= CHOICE {
+ byName [1] Name,
+ byKey [2] KeyHash }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseBytes ::= Sequence {
+ responseType OBJECT IDENTIFIER,
+ response OCTET STRING }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseData ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ responderID ResponderID,
+ producedAt GeneralizedTime,
+ responses Sequence OF SingleResponse,
+ responseExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RevokedInfo ::= Sequence {
+ revocationTime GeneralizedTime,
+ revocationReason [0] EXPLICIT CRLReason OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ServiceLocator ::= Sequence {
+ issuer Name,
+ locator AuthorityInfoAccessSyntax OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Signature ::= Sequence {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL}
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SingleResponse ::= Sequence {
+ certID CertID,
+ certStatus CertStatus,
+ thisUpdate GeneralizedTime,
+ nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL,
+ singleExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ TBSRequest ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList Sequence OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+
+
+ class for breaking up an Oid into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Pkcs10 Certfication request object.
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+
+
+ Pkcs10 CertificationRequestInfo object.
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ The EncryptedData object.
+
+ EncryptedData ::= Sequence {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo
+ }
+
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+ EncryptedContent ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedPrivateKeyInfo ::= Sequence {
+ encryptionAlgorithm AlgorithmIdentifier {{KeyEncryptionAlgorithms}},
+ encryptedData EncryptedData
+ }
+
+ EncryptedData ::= OCTET STRING
+
+ KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= {
+ ... -- For local profiles
+ }
+
+
+
+
+ MacData ::= SEQUENCE {
+ mac DigestInfo,
+ macSalt OCTET STRING,
+ iterations INTEGER DEFAULT 1
+ -- Note: The default is for historic reasons and its use is deprecated. A
+ -- higher value, like 1024 is recommended.
+
+ @return the basic DERObject construction.
+
+
+ the infamous Pfx from Pkcs12
+
+
+ PKCS#1: 1.2.840.113549.1.1.15
+
+
+ PKCS#1: 1.2.840.113549.1.1.16
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.6.2.37 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.6.2.38 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.54 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.43 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.40 RFC7030
+
+
+ write out an RSA private key with its associated information
+ as described in Pkcs8.
+
+ PrivateKeyInfo ::= Sequence {
+ version Version,
+ privateKeyAlgorithm AlgorithmIdentifier {{PrivateKeyAlgorithms}},
+ privateKey PrivateKey,
+ attributes [0] IMPLICIT Attributes OPTIONAL
+ }
+ Version ::= Integer {v1(0)} (v1,...)
+
+ PrivateKey ::= OCTET STRING
+
+ Attributes ::= Set OF Attr
+
+
+
+ The default version
+
+
+
+ RSAES-OAEP-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ pSourceAlgorithm [2] PKCS1PSourceAlgorithms DEFAULT pSpecifiedEmpty
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+ PKCS1PSourceAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-pSpecified PARAMETERS OCTET STRING },
+ ... -- Allows for future expansion --
+ }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RsaPrivateKey ::= Sequence {
+ version Version,
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ privateExponent Integer, -- d
+ prime1 Integer, -- p
+ prime2 Integer, -- q
+ exponent1 Integer, -- d mod (p-1)
+ exponent2 Integer, -- d mod (q-1)
+ coefficient Integer -- (inverse of q) mod p
+ }
+
+ Version ::= Integer
+
+ This routine is written to output Pkcs1 version 0, private keys.
+
+
+ The default version
+
+
+
+ RSASSA-PSS-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ saltLength [2] INTEGER DEFAULT 20,
+ trailerField [3] TrailerField DEFAULT trailerFieldBC
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+
+ TrailerField ::= INTEGER { trailerFieldBC(1) }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ a Pkcs#7 signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates
+ [0] IMPLICIT ExtendedCertificatesAndCertificates
+ OPTIONAL,
+ crls
+ [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos }
+
+
+
+ a Pkcs#7 signer info object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ the elliptic curve private key object from SEC 1
+
+
+ ECPrivateKey ::= SEQUENCE {
+ version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
+ privateKey OCTET STRING,
+ parameters [0] Parameters OPTIONAL,
+ publicKey [1] BIT STRING OPTIONAL }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ EllipticCurve OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0)
+ }
+
+
+ Handler class for dealing with S/MIME Capabilities
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ returns an ArrayList with 0 or more objects of all the capabilities
+ matching the passed in capability Oid. If the Oid passed is null the
+ entire set is returned.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapabilities ::= Sequence OF SMIMECapability
+
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapability ::= Sequence {
+ capabilityID OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY capabilityID OPTIONAL
+ }
+
+
+
+ Handler for creating a vector S/MIME Capabilities
+
+
+ The SmimeEncryptionKeyPreference object.
+
+ SmimeEncryptionKeyPreference ::= CHOICE {
+ issuerAndSerialNumber [0] IssuerAndSerialNumber,
+ receipentKeyId [1] RecipientKeyIdentifier,
+ subjectAltKeyIdentifier [2] SubjectKeyIdentifier
+ }
+
+
+
+ @param sKeyId the subjectKeyIdentifier value (normally the X.509 one)
+
+
+ elliptic curves defined in "ECC Brainpool Standard Curves and Curve Generation"
+ http://www.ecc-brainpool.org/download/draft_pkix_additional_ecc_dp.txt
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+
+ Accuracy ::= SEQUENCE {
+ seconds INTEGER OPTIONAL,
+ millis [0] INTEGER (1..999) OPTIONAL,
+ micros [1] INTEGER (1..999) OPTIONAL
+ }
+
+
+
+ @param o
+ @return a MessageImprint object.
+
+
+
+ MessageImprint ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashedMessage OCTET STRING }
+
+
+
+
+ TimeStampReq ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ messageImprint MessageImprint,
+ --a hash algorithm OID and the hash value of the data to be
+ --time-stamped
+ reqPolicy TSAPolicyId OPTIONAL,
+ nonce INTEGER OPTIONAL,
+ certReq BOOLEAN DEFAULT FALSE,
+ extensions [0] IMPLICIT Extensions OPTIONAL
+ }
+
+
+
+
+ TimeStampResp ::= SEQUENCE {
+ status PkiStatusInfo,
+ timeStampToken TimeStampToken OPTIONAL }
+
+
+
+
+
+ TstInfo ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ policy TSAPolicyId,
+ messageImprint MessageImprint,
+ -- MUST have the same value as the similar field in
+ -- TimeStampReq
+ serialNumber INTEGER,
+ -- Time-Stamping users MUST be ready to accommodate integers
+ -- up to 160 bits.
+ genTime GeneralizedTime,
+ accuracy Accuracy OPTIONAL,
+ ordering BOOLEAN DEFAULT FALSE,
+ nonce INTEGER OPTIONAL,
+ -- MUST be present if the similar field was present
+ -- in TimeStampReq. In that case it MUST have the same value.
+ tsa [0] GeneralName OPTIONAL,
+ extensions [1] IMPLICIT Extensions OPTIONAL }
+
+
+
+
+
+ Base OID: 1.2.804.2.1.1.1
+
+
+ DSTU4145 Little Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1
+
+
+ DSTU4145 Big Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1.1
+
+
+ DSTU7564 256-bit digest presentation.
+
+
+ DSTU7564 384-bit digest presentation.
+
+
+ DSTU7564 512-bit digest presentation.
+
+
+ DSTU7564 256-bit mac presentation.
+
+
+ DSTU7564 384-bit mac presentation.
+
+
+ DSTU7564 512-bit mac presentation.
+
+
+ DSTU7624 in ECB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 512 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 128 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 256 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 512 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 512 bit block/key presentation
+
+
+ dump a Der object as a formatted string with indentation
+
+ @param obj the Asn1Object to be dumped out.
+
+
+ dump out a DER object as a formatted string, in non-verbose mode
+
+ @param obj the Asn1Encodable to be dumped out.
+ @return the resulting string.
+
+
+ Dump out the object as a string
+
+ @param obj the Asn1Encodable to be dumped out.
+ @param verbose if true, dump out the contents of octet and bit strings.
+ @return the resulting string.
+
+
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+ The AccessDescription object.
+
+ AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+
+
+ create an AccessDescription with the oid and location provided.
+
+
+
+ @return the access method.
+
+
+
+ @return the access location
+
+
+
+ Return the OID in the Algorithm entry of this identifier.
+
+
+
+
+ Return the parameters structure in the Parameters entry of this identifier.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AlgorithmIdentifier ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+
+
+
+
+ Don't use this one if you are trying to be RFC 3281 compliant.
+ Use it for v1 attribute certificates only.
+
+ Our GeneralNames structure
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertValidityPeriod ::= Sequence {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ @param obj
+ @return
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificate ::= Sequence {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= Integer { v2(1) }
+
+
+
+ The AuthorityInformationAccess object.
+
+ id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+ AuthorityInfoAccessSyntax ::=
+ Sequence SIZE (1..MAX) OF AccessDescription
+ AccessDescription ::= Sequence {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+ id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+ id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+
+
+
+ create an AuthorityInformationAccess with the oid and location provided.
+
+
+ The AuthorityKeyIdentifier object.
+
+ id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+ AuthorityKeyIdentifier ::= Sequence {
+ keyIdentifier [0] IMPLICIT KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] IMPLICIT GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] IMPLICIT CertificateSerialNumber OPTIONAL }
+
+ KeyIdentifier ::= OCTET STRING
+
+
+
+
+ *
+ * Calulates the keyidentifier using a SHA1 hash over the BIT STRING
+ * from SubjectPublicKeyInfo as defined in RFC2459.
+ *
+ * Example of making a AuthorityKeyIdentifier:
+ *
+ * SubjectPublicKeyInfo apki = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(
+ * publicKey.getEncoded()).readObject());
+ * AuthorityKeyIdentifier aki = new AuthorityKeyIdentifier(apki);
+ *
+ *
+ *
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided as well.
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided.
+
+
+ create an AuthorityKeyIdentifier with a precomputed key identifier
+
+
+ create an AuthorityKeyIdentifier with a precomupted key identifier
+ and the GeneralNames tag and the serial number provided as well.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ create a cA=true object for the given path length constraint.
+
+ @param pathLenConstraint
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicConstraints := Sequence {
+ cA Boolean DEFAULT FALSE,
+ pathLenConstraint Integer (0..MAX) OPTIONAL
+ }
+
+
+
+ PKIX RFC-2459
+
+ The X.509 v2 CRL syntax is as follows. For signature calculation,
+ the data that is to be signed is ASN.1 Der encoded.
+
+
+ CertificateList ::= Sequence {
+ tbsCertList TbsCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING }
+
+
+
+ This class helps to support crossCerfificatePairs in a LDAP directory
+ according RFC 2587
+
+
+ crossCertificatePairATTRIBUTE::={
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID joint-iso-ccitt(2) ds(5) attributeType(4) crossCertificatePair(40)}
+
+
+ The forward elements of the crossCertificatePair attribute of a
+ CA's directory entry shall be used to store all, except self-issued
+ certificates issued to this CA. Optionally, the reverse elements of the
+ crossCertificatePair attribute, of a CA's directory entry may contain a
+ subset of certificates issued by this CA to other CAs. When both the forward
+ and the reverse elements are present in a single attribute value, issuer name
+ in one certificate shall match the subject name in the other and vice versa,
+ and the subject public key in one certificate shall be capable of verifying
+ the digital signature on the other certificate and vice versa.
+
+ When a reverse element is present, the forward element value and the reverse
+ element value need not be stored in the same attribute value; in other words,
+ they can be stored in either a single attribute value or two attribute
+ values.
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertificatePair:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param forward Certificates issued to this CA.
+ @param reverse Certificates issued by this CA to other CAs.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @return a DERObject
+
+
+ @return Returns the forward.
+
+
+ @return Returns the reverse.
+
+
+ Construct a CertificatePolicies object containing one PolicyInformation.
+
+ @param name the name to be contained.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation
+
+
+
+ CertPolicyId, used in the CertificatePolicies and PolicyMappings
+ X509V3 Extensions.
+
+
+ CertPolicyId ::= OBJECT IDENTIFIER
+
+
+
+ Return the distribution points making up the sequence.
+
+ @return DistributionPoint[]
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlDistPoint ::= Sequence SIZE {1..MAX} OF DistributionPoint
+
+
+
+ The CRLNumber object.
+
+ CRLNumber::= Integer(0..MAX)
+
+
+
+ The CRLReason enumeration.
+
+ CRLReason ::= Enumerated {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10)
+ }
+
+
+
+ The DigestInfo object.
+
+ DigestInfo::=Sequence{
+ digestAlgorithm AlgorithmIdentifier,
+ digest OCTET STRING }
+
+
+
+ DisplayText class, used in
+ CertificatePolicies X509 V3 extensions (in policy qualifiers).
+
+ It stores a string in a chosen encoding.
+
+ DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Constant corresponding to ia5String encoding.
+
+
+
+ Constant corresponding to bmpString encoding.
+
+
+
+ Constant corresponding to utf8String encoding.
+
+
+
+ Constant corresponding to visibleString encoding.
+
+
+
+ Describe constant DisplayTextMaximumSize here.
+
+
+
+ Creates a new DisplayText instance.
+
+ @param type the desired encoding type for the text.
+ @param text the text to store. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+
+ @param text the text to encapsulate. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+ Useful when reading back a DisplayText class
+ from it's Asn1Encodable form.
+
+ @param contents an Asn1Encodable instance.
+
+
+ Returns the stored string object.
+
+ @return the stored text as a string.
+
+
+ The DistributionPoint object.
+
+ DistributionPoint ::= Sequence {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+ }
+
+
+
+ The DistributionPointName object.
+
+ DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RDN
+ }
+
+
+
+ The extendedKeyUsage object.
+
+ extendedKeyUsage ::= Sequence SIZE (1..MAX) OF KeyPurposeId
+
+
+
+ Returns all extended key usages.
+ The returned ArrayList contains DerObjectIdentifier instances.
+ @return An ArrayList with all key purposes.
+
+
+ The GeneralName object.
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+ OtherName ::= Sequence {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+ EDIPartyName ::= Sequence {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+
+
+ When the subjectAltName extension contains an Internet mail address,
+ the address MUST be included as an rfc822Name. The format of an
+ rfc822Name is an "addr-spec" as defined in RFC 822 [RFC 822].
+
+ When the subjectAltName extension contains a domain name service
+ label, the domain name MUST be stored in the dNSName (an IA5String).
+ The name MUST be in the "preferred name syntax," as specified by RFC
+ 1034 [RFC 1034].
+
+ When the subjectAltName extension contains a URI, the name MUST be
+ stored in the uniformResourceIdentifier (an IA5String). The name MUST
+ be a non-relative URL, and MUST follow the URL syntax and encoding
+ rules specified in [RFC 1738]. The name must include both a scheme
+ (e.g., "http" or "ftp") and a scheme-specific-part. The scheme-
+ specific-part must include a fully qualified domain name or IP
+ address as the host.
+
+ When the subjectAltName extension contains a iPAddress, the address
+ MUST be stored in the octet string in "network byte order," as
+ specified in RFC 791 [RFC 791]. The least significant bit (LSB) of
+ each octet is the LSB of the corresponding byte in the network
+ address. For IP Version 4, as specified in RFC 791, the octet string
+ MUST contain exactly four octets. For IP Version 6, as specified in
+ RFC 1883, the octet string MUST contain exactly sixteen octets [RFC
+ 1883].
+
+
+ Create a GeneralName for the given tag from the passed in string.
+
+ This constructor can handle:
+
+ - rfc822Name
+ - iPAddress
+ - directoryName
+ - dNSName
+ - uniformResourceIdentifier
+ - registeredID
+
+ For x400Address, otherName and ediPartyName there is no common string
+ format defined.
+
+ Note: A directory name can be encoded in different ways into a byte
+ representation. Be aware of this if the byte representation is used for
+ comparing results.
+
+
+ @param tag tag number
+ @param name string representation of name
+ @throws ArgumentException if the string encoding is not correct or
+ not supported.
+
+
+ Construct a GeneralNames object containing one GeneralName.
+ The name to be contained.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ GeneralNames ::= Sequence SIZE {1..MAX} OF GeneralName
+
+
+
+ Class for containing a restriction object subtrees in NameConstraints. See
+ RFC 3280.
+
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.NameConstraints
+
+
+
+ Constructor from a given details.
+
+ According RFC 3280, the minimum and maximum fields are not used with any
+ name forms, thus minimum MUST be zero, and maximum MUST be absent.
+
+ If minimum is null, zero is assumed, if
+ maximum is null, maximum is absent.
+
+ @param baseName
+ A restriction.
+ @param minimum
+ Minimum
+
+ @param maximum
+ Maximum
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @return a DERObject
+
+
+ The Holder object.
+
+ For an v2 attribute certificate this is:
+
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ For an v1 attribute certificate this is:
+
+
+ subject CHOICE {
+ baseCertificateID [0] IssuerSerial,
+ -- associated with a Public Key Certificate
+ subjectName [1] GeneralNames },
+ -- associated with a name
+
+
+
+
+ Constructor for a holder for an v1 attribute certificate.
+
+ @param tagObj The ASN.1 tagged holder object.
+
+
+ Constructor for a holder for an v2 attribute certificate. *
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructs a holder from a IssuerSerial.
+ @param baseCertificateID The IssuerSerial.
+ @param version The version of the attribute certificate.
+
+
+ Returns 1 for v2 attribute certificates or 0 for v1 attribute
+ certificates.
+ @return The version of the attribute certificate.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+ @param version The version of the attribute certificate.
+
+
+ Constructs a holder from an object digest info.
+
+ @param objectDigestInfo The object digest info object.
+
+
+ Returns the entityName for an v2 attribute certificate or the subjectName
+ for an v1 attribute certificate.
+
+ @return The entityname or subjectname.
+
+
+ The Holder object.
+
+ Holder ::= Sequence {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ Implementation of IetfAttrSyntax as specified by RFC3281.
+
+
+
+
+
+
+
+
+ IetfAttrSyntax ::= Sequence {
+ policyAuthority [0] GeneralNames OPTIONAL,
+ values Sequence OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IssuerSerial ::= Sequence {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUid UniqueIdentifier OPTIONAL
+ }
+
+
+
+
+ IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+
+
+ Constructor from given details.
+
+ @param distributionPoint
+ May contain an URI as pointer to most current CRL.
+ @param onlyContainsUserCerts Covers revocation information for end certificates.
+ @param onlyContainsCACerts Covers revocation information for CA certificates.
+
+ @param onlySomeReasons
+ Which revocation reasons does this point cover.
+ @param indirectCRL
+ If true then the CRL contains revocation
+ information about certificates ssued by other CAs.
+ @param onlyContainsAttributeCerts Covers revocation information for attribute certificates.
+
+
+ Constructor from Asn1Sequence
+
+
+ @return Returns the distributionPoint.
+
+
+ @return Returns the onlySomeReasons.
+
+
+ The KeyPurposeID object.
+
+ KeyPurposeID ::= OBJECT IDENTIFIER
+
+
+
+ The KeyUsage object.
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (KeyUsage.keyEncipherment | KeyUsage.dataEncipherment)
+
+
+ Constructor from a given details.
+
+ permitted and excluded are Vectors of GeneralSubtree objects.
+
+ @param permitted Permitted subtrees
+ @param excluded Excluded subtrees
+
+
+ NoticeReference class, used in
+ CertificatePolicies X509 V3 extensions
+ (in policy qualifiers).
+
+
+ NoticeReference ::= Sequence {
+ organization DisplayText,
+ noticeNumbers Sequence OF Integer }
+
+
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param numbers a Vector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization displayText
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+ Useful for reconstructing a NoticeReference
+ instance from its encodable/encoded form.
+
+ @param as an Asn1Sequence value obtained from either
+ calling @{link ToAsn1Object()} for a NoticeReference
+ instance or from parsing it from a Der-encoded stream.
+
+
+ Describe ToAsn1Object method here.
+
+ @return a Asn1Object value
+
+
+ ObjectDigestInfo ASN.1 structure used in v2 attribute certificates.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+
+ The public key is hashed.
+
+
+ The public key certificate is hashed.
+
+
+ An other object is hashed.
+
+
+ Constructor from given details.
+
+ If digestedObjectType is not {@link #publicKeyCert} or
+ {@link #publicKey} otherObjectTypeID must be given,
+ otherwise it is ignored.
+
+ @param digestedObjectType The digest object type.
+ @param otherObjectTypeID The object type ID for
+ otherObjectDigest.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param objectDigest The hash value.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+ PolicyMappings V3 extension, described in RFC3280.
+
+ PolicyMappings ::= Sequence SIZE (1..MAX) OF Sequence {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+
+ @see RFC 3280, section 4.2.1.6
+
+
+ Creates a new PolicyMappings instance.
+
+ @param seq an Asn1Sequence constructed as specified
+ in RFC 3280
+
+
+ Creates a new PolicyMappings instance.
+
+ @param mappings a HashMap value that maps
+ string oids
+ to other string oids.
+
+
+ PolicyQualifierId, used in the CertificatePolicies
+ X509V3 extension.
+
+
+ id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+
+
+ Policy qualifiers, used in the X509V3 CertificatePolicies
+ extension.
+
+
+ PolicyQualifierInfo ::= Sequence {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param policyQualifierId a PolicyQualifierId value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new PolicyQualifierInfo containing a
+ cPSuri qualifier.
+
+ @param cps the CPS (certification practice statement) uri as a
+ string.
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param as PolicyQualifierInfo X509 structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a Der-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+
+ PrivateKeyUsagePeriod ::= SEQUENCE
+ {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+
+
+
+
+ The BiometricData object.
+
+ BiometricData ::= SEQUENCE {
+ typeOfBiometricData TypeOfBiometricData,
+ hashAlgorithm AlgorithmIdentifier,
+ biometricDataHash OCTET STRING,
+ sourceDataUri IA5String OPTIONAL }
+
+
+
+ The Iso4217CurrencyCode object.
+
+ Iso4217CurrencyCode ::= CHOICE {
+ alphabetic PrintableString (SIZE 3), --Recommended
+ numeric INTEGER (1..999) }
+ -- Alphabetic or numeric currency code as defined in ISO 4217
+ -- It is recommended that the Alphabetic form is used
+
+
+
+ The MonetaryValue object.
+
+ MonetaryValue ::= SEQUENCE {
+ currency Iso4217CurrencyCode,
+ amount INTEGER,
+ exponent INTEGER }
+ -- value = amount * 10^exponent
+
+
+
+ The QCStatement object.
+
+ QCStatement ::= SEQUENCE {
+ statementId OBJECT IDENTIFIER,
+ statementInfo ANY DEFINED BY statementId OPTIONAL}
+
+
+
+ The SemanticsInformation object.
+
+ SemanticsInformation ::= SEQUENCE {
+ semanticsIdentifier OBJECT IDENTIFIER OPTIONAL,
+ nameRegistrationAuthorities NameRegistrationAuthorities
+ OPTIONAL }
+ (WITH COMPONENTS {..., semanticsIdentifier PRESENT}|
+ WITH COMPONENTS {..., nameRegistrationAuthorities PRESENT})
+
+ NameRegistrationAuthorities ::= SEQUENCE SIZE (1..MAX) OF
+ GeneralName
+
+
+
+ The TypeOfBiometricData object.
+
+ TypeOfBiometricData ::= CHOICE {
+ predefinedBiometricType PredefinedBiometricType,
+ biometricDataOid OBJECT IDENTIFIER }
+
+ PredefinedBiometricType ::= INTEGER {
+ picture(0),handwritten-signature(1)}
+ (picture|handwritten-signature)
+
+
+
+ The ReasonFlags object.
+
+ ReasonFlags ::= BIT STRING {
+ unused(0),
+ keyCompromise(1),
+ cACompromise(2),
+ affiliationChanged(3),
+ superseded(4),
+ cessationOfOperation(5),
+ certficateHold(6)
+ }
+
+
+
+ @param reasons - the bitwise OR of the Key Reason flags giving the
+ allowed uses for the key.
+
+
+ Implementation of the RoleSyntax object as specified by the RFC3281.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ RoleSyntax factory method.
+ @param obj the object used to construct an instance of
+ RoleSyntax. It must be an instance of RoleSyntax
+ or Asn1Sequence.
+ @return the instance of RoleSyntax built from the
+ supplied object.
+ @throws java.lang.ArgumentException if the object passed
+ to the factory is not an instance of RoleSyntax or
+ Asn1Sequence.
+
+
+ Constructor.
+ @param roleAuthority the role authority of this RoleSyntax.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Constructor. Invoking this constructor is the same as invoking
+ new RoleSyntax(null, roleName).
+ @param roleName the role name of this RoleSyntax.
+
+
+ Utility constructor. Takes a string argument representing
+ the role name, builds a GeneralName to hold the role name
+ and calls the constructor that takes a GeneralName.
+ @param roleName
+
+
+ Constructor that builds an instance of RoleSyntax by
+ extracting the encoded elements from the Asn1Sequence
+ object supplied.
+ @param seq an instance of Asn1Sequence that holds
+ the encoded elements used to build this RoleSyntax.
+
+
+ Gets the role authority of this RoleSyntax.
+ @return an instance of GeneralNames holding the
+ role authority of this RoleSyntax.
+
+
+ Gets the role name of this RoleSyntax.
+ @return an instance of GeneralName holding the
+ role name of this RoleSyntax.
+
+
+ Gets the role name as a java.lang.string object.
+ @return the role name of this RoleSyntax represented as a
+ string object.
+
+
+ Gets the role authority as a string[] object.
+ @return the role authority of this RoleSyntax represented as a
+ string[] array.
+
+
+ Implementation of the method ToAsn1Object as
+ required by the superclass ASN1Encodable.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RSAPublicKey ::= Sequence {
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ }
+
+
+
+ Structure for a name or pseudonym.
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.PersonalData
+
+
+
+ Constructor from DERString.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+ @param pseudonym pseudonym value to use.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param pseudonym The pseudonym.
+
+
+ Constructor from a given details.
+
+ @param surname The surname.
+ @param givenName A sequence of directory strings making up the givenName
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @return an Asn1Object
+
+
+ Contains personal data for the otherName field in the subjectAltNames
+ extension.
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.NameOrPseudonym
+ @see org.bouncycastle.asn1.x509.sigi.SigIObjectIdentifiers
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param nameOrPseudonym Name or pseudonym.
+ @param nameDistinguisher Name distinguisher.
+ @param dateOfBirth Date of birth.
+ @param placeOfBirth Place of birth.
+ @param gender Gender.
+ @param postalAddress Postal Address.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Object Identifiers of SigI specifciation (German Signature Law
+ Interoperability specification).
+
+
+ Key purpose IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Certificate policy IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Other Name IDs for German SigI (Signature Interoperability Specification)
+
+
+ To be used for for the generation of directory service certificates.
+
+
+ ID for PersonalData
+
+
+ Certificate is conform to german signature law.
+
+
+ This extension may contain further X.500 attributes of the subject. See also
+ RFC 3039.
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @see org.bouncycastle.asn1.x509.X509Name for AttributeType ObjectIdentifiers.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type SubjectDirectoryAttributes:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @param seq
+ The ASN.1 sequence.
+
+
+ Constructor from an ArrayList of attributes.
+
+ The ArrayList consists of attributes of type {@link Attribute Attribute}
+
+ @param attributes The attributes.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @return a DERObject
+
+
+ @return Returns the attributes.
+
+
+ The SubjectKeyIdentifier object.
+
+ SubjectKeyIdentifier::= OCTET STRING
+
+
+
+ Calculates the keyIdentifier using a SHA1 hash over the BIT STRING
+ from SubjectPublicKeyInfo as defined in RFC3280.
+
+ @param spki the subject public key info.
+
+
+ Return a RFC 3280 type 1 key identifier. As in:
+
+ (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the
+ value of the BIT STRING subjectPublicKey (excluding the tag,
+ length, and number of unused bits).
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ Return a RFC 3280 type 2 key identifier. As in:
+
+ (2) The keyIdentifier is composed of a four bit type field with
+ the value 0100 followed by the least significant 60 bits of the
+ SHA-1 hash of the value of the BIT STRING subjectPublicKey.
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ The object that contains the public key stored in a certficate.
+
+ The GetEncoded() method in the public keys in the JCE produces a DER
+ encoded one of these.
+
+
+ for when the public key is an encoded object - if the bitstring
+ can't be decoded this routine raises an IOException.
+
+ @exception IOException - if the bit string doesn't represent a Der
+ encoded object.
+
+
+ for when the public key is raw bits...
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SubjectPublicKeyInfo ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING }
+
+
+
+ Target structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+
+ The targetCert field is currently not supported and must not be used
+ according to RFC 3281.
+
+
+ Creates an instance of a Target from the given object.
+
+ obj can be a Target or a {@link Asn1TaggedObject}
+
+ @param obj The object.
+ @return A Target instance.
+ @throws ArgumentException if the given object cannot be
+ interpreted as Target.
+
+
+ Constructor from Asn1TaggedObject.
+
+ @param tagObj The tagged object.
+ @throws ArgumentException if the encoding is wrong.
+
+
+ Constructor from given details.
+
+ Exactly one of the parameters must be not null.
+
+ @param type the choice type to apply to the name.
+ @param name the general name.
+ @throws ArgumentException if type is invalid.
+
+
+ @return Returns the targetGroup.
+
+
+ @return Returns the targetName.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+ @return an Asn1Object
+
+
+ Target information extension for attributes certificates according to RFC
+ 3281.
+
+
+ SEQUENCE OF Targets
+
+
+
+
+ Creates an instance of a TargetInformation from the given object.
+
+ obj can be a TargetInformation or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A TargetInformation instance.
+ @throws ArgumentException if the given object cannot be interpreted as TargetInformation.
+
+
+ Constructor from a Asn1Sequence.
+
+ @param seq The Asn1Sequence.
+ @throws ArgumentException if the sequence does not contain
+ correctly encoded Targets elements.
+
+
+ Returns the targets in this target information extension.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Constructs a target information from a single targets element.
+ According to RFC 3281 only one targets element must be produced.
+
+ @param targets A Targets instance.
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given they must be merged in
+ into one targets element.
+
+ @param targets An array with {@link Targets}.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SEQUENCE OF Targets
+
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given in the constructor they are merged into one
+ targets element. If this was produced from a
+ {@link Org.BouncyCastle.Asn1.Asn1Sequence} the encoding is kept.
+
+ @return an Asn1Object
+
+
+ Targets structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.Target
+ @see org.bouncycastle.asn1.x509.TargetInformation
+
+
+ Creates an instance of a Targets from the given object.
+
+ obj can be a Targets or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A Targets instance.
+ @throws ArgumentException if the given object cannot be interpreted as Target.
+
+
+ Constructor from Asn1Sequence.
+
+ @param targets The ASN.1 SEQUENCE.
+ @throws ArgumentException if the contents of the sequence are
+ invalid.
+
+
+ Constructor from given targets.
+
+ The ArrayList is copied.
+
+ @param targets An ArrayList of {@link Target}s.
+ @see Target
+ @throws ArgumentException if the ArrayList contains not only Targets.
+
+
+ Returns the targets in an ArrayList.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Targets ::= SEQUENCE OF Target
+
+
+ @return an Asn1Object
+
+
+ The TbsCertificate object.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+ Note: issuerUniqueID and subjectUniqueID are both deprecated by the IETF. This class
+ will parse them, but you really shouldn't be creating new ones.
+
+
+ PKIX RFC-2459 - TbsCertList object.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+
+ Return our time as DateTime.
+
+ A date time.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+ UserNotice class, used in
+ CertificatePolicies X509 extensions (in policy
+ qualifiers).
+
+ UserNotice ::= Sequence {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+
+
+ @see PolicyQualifierId
+ @see PolicyInformation
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param explicitText a DisplayText value
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param str the explicitText field as a string.
+
+
+ Creates a new UserNotice instance.
+ Useful from reconstructing a UserNotice instance
+ from its encodable/encoded form.
+
+ @param as an ASN1Sequence value obtained from either
+ calling @{link toASN1Object()} for a UserNotice
+ instance or from parsing it from a DER-encoded stream.
+
+
+ Generator for Version 1 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ }
+
+
+
+
+ Generator for Version 2 AttributeCertificateInfo
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+
+
+
+ @param attribute
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ V2Form ::= Sequence {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST NOT
+ -- be present in this profile
+ }
+
+
+
+ Generator for Version 2 TbsCertList structures.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+ Note: This class may be subject to change
+
+
+ Generator for Version 3 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+
+
+ an X509Certificate structure.
+
+ Certificate ::= Sequence {
+ tbsCertificate TbsCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+
+
+ The default converter for X509 DN entries when going from their
+ string value to ASN.1 strings.
+
+
+ Apply default conversion for the given value depending on the oid
+ and the character range of the value.
+
+ @param oid the object identifier for the DN entry
+ @param value the value associated with it
+ @return the ASN.1 equivalent for the string value.
+
+
+ an object for the elements in the X.509 V3 extension block.
+
+
+ Convert the value of the passed in extension to an object.
+ The extension to parse.
+ The object the value string contains.
+ If conversion is not possible.
+
+
+ Subject Directory Attributes
+
+
+ Subject Key Identifier
+
+
+ Key Usage
+
+
+ Private Key Usage Period
+
+
+ Subject Alternative Name
+
+
+ Issuer Alternative Name
+
+
+ Basic Constraints
+
+
+ CRL Number
+
+
+ Reason code
+
+
+ Hold Instruction Code
+
+
+ Invalidity Date
+
+
+ Delta CRL indicator
+
+
+ Issuing Distribution Point
+
+
+ Certificate Issuer
+
+
+ Name Constraints
+
+
+ CRL Distribution Points
+
+
+ Certificate Policies
+
+
+ Policy Mappings
+
+
+ Authority Key Identifier
+
+
+ Policy Constraints
+
+
+ Extended Key Usage
+
+
+ Freshest CRL
+
+
+ Inhibit Any Policy
+
+
+ Authority Info Access
+
+
+ Subject Info Access
+
+
+ Logo Type
+
+
+ BiometricInfo
+
+
+ QCStatements
+
+
+ Audit identity extension in attribute certificates.
+
+
+ NoRevAvail extension in attribute certificates.
+
+
+ TargetInformation extension in attribute certificates.
+
+
+ Expired Certificates on CRL extension
+
+
+ Constructor from Asn1Sequence.
+
+ the extensions are a list of constructed sequences, either with (Oid, OctetString) or (Oid, Boolean, OctetString)
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ return an Enumeration of the extension field's object ids.
+
+
+ return the extension represented by the object identifier
+ passed in.
+
+ @return the extension if it's present, null otherwise.
+
+
+
+ Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+ Extension ::= SEQUENCE {
+ extnId EXTENSION.&id ({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+
+
+ Generator for X.509 extensions
+
+
+ Reset the generator
+
+
+
+ Add an extension with the given oid and the passed in value to be included
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The ASN.1 object to be included in the extension.
+
+
+
+ Add an extension with the given oid and the passed in byte array to be wrapped
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The byte array to be wrapped.
+
+
+ Return true if there are no extension present in this generator.
+ True if empty, false otherwise
+
+
+ Generate an X509Extensions object based on the current state of the generator.
+ An X509Extensions object
+
+
+
+ RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+ RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY }
+
+
+
+ country code - StringType(SIZE(2))
+
+
+ organization - StringType(SIZE(1..64))
+
+
+ organizational unit name - StringType(SIZE(1..64))
+
+
+ Title
+
+
+ common name - StringType(SIZE(1..64))
+
+
+ street - StringType(SIZE(1..64))
+
+
+ device serial number name - StringType(SIZE(1..64))
+
+
+ locality name - StringType(SIZE(1..64))
+
+
+ state, or province name - StringType(SIZE(1..64))
+
+
+ Naming attributes of type X520name
+
+
+ businessCategory - DirectoryString(SIZE(1..128)
+
+
+ postalCode - DirectoryString(SIZE(1..40)
+
+
+ dnQualifier - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 Pseudonym - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Z
+
+
+ RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128)
+
+
+ RFC 3039 DateOfBirth - PrintableString (SIZE(1)) -- "M", "F", "m" or "f"
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF
+ DirectoryString(SIZE(1..30))
+
+
+ RFC 2256 dmdName
+
+
+ id-at-telephoneNumber
+
+
+ id-at-organizationIdentifier
+
+
+ id-at-name
+
+
+ Email address (RSA PKCS#9 extension) - IA5String.
+ Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.
+
+
+ more from PKCS#9
+
+
+ email address in Verisign certificates
+
+
+ LDAP User id.
+
+
+ determines whether or not strings should be processed and printed
+ from back to front.
+
+
+ default look up table translating OID values into their common symbols following
+ the convention in RFC 2253 with a few extras
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 2253
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 1779
+
+
+
+ look up table translating common symbols into their OIDS.
+
+
+ Return a X509Name based on the passed in tagged object.
+
+ @param obj tag object holding name.
+ @param explicitly true if explicitly tagged false otherwise.
+ @return the X509Name
+
+
+ Constructor from Asn1Sequence
+
+ the principal will be a list of constructed sets, each containing an (OID, string) pair.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. If reverse
+ is true, create the encoded version of the sequence starting from the
+ last element in the string.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter. If reverse is true the ASN.1 sequence representing the DN will
+ be built by starting at the end of the string, rather than the start.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically.
+
+ If reverse is true, create the encoded version of the sequence
+ starting from the last element in the string.
+ @param reverse true if we should start scanning from the end (RFC 2553).
+ @param lookUp table of names and their oids.
+ @param dirName the X.500 string to be parsed.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically. The passed in converter is used to convert the
+ string values to the right of each equals sign to their ASN.1 counterparts.
+
+ @param reverse true if we should start scanning from the end, false otherwise.
+ @param lookUp table of names and oids.
+ @param dirName the string dirName
+ @param converter the converter to convert string values into their ASN.1 equivalents
+
+
+ return an IList of the oids in the name, in the order they were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found, with the DN label corresponding to passed in oid.
+
+
+ The X509Name object to test equivalency against.
+ If true, the order of elements must be the same,
+ as well as the values associated with each element.
+
+
+ test for equivalence - note: case is ignored.
+
+
+ convert the structure to a string - if reverse is true the
+ oids and values are listed out starting with the last element
+ in the sequence (ala RFC 2253), otherwise the string will begin
+ with the first element of the structure. If no string definition
+ for the oid is found in oidSymbols the string value of the oid is
+ added. Two standard symbol tables are provided DefaultSymbols, and
+ RFC2253Symbols as part of this class.
+
+ @param reverse if true start at the end of the sequence and work back.
+ @param oidSymbols look up table strings for oids.
+
+
+ * It turns out that the number of standard ways the fields in a DN should be
+ * encoded into their ASN.1 counterparts is rapidly approaching the
+ * number of machines on the internet. By default the X509Name class
+ * will produce UTF8Strings in line with the current recommendations (RFC 3280).
+ *
+ * An example of an encoder look like below:
+ *
+ * public class X509DirEntryConverter
+ * : X509NameEntryConverter
+ * {
+ * public Asn1Object GetConvertedValue(
+ * DerObjectIdentifier oid,
+ * string value)
+ * {
+ * if (str.Length() != 0 && str.charAt(0) == '#')
+ * {
+ * return ConvertHexEncoded(str, 1);
+ * }
+ * if (oid.Equals(EmailAddress))
+ * {
+ * return new DerIA5String(str);
+ * }
+ * else if (CanBePrintable(str))
+ * {
+ * return new DerPrintableString(str);
+ * }
+ * else if (CanBeUTF8(str))
+ * {
+ * return new DerUtf8String(str);
+ * }
+ * else
+ * {
+ * return new DerBmpString(str);
+ * }
+ * }
+ * }
+ *
+ *
+
+
+ Convert an inline encoded hex string rendition of an ASN.1
+ object back into its corresponding ASN.1 object.
+
+ @param str the hex encoded object
+ @param off the index at which the encoding starts
+ @return the decoded object
+
+
+ return true if the passed in string can be represented without
+ loss as a PrintableString, false otherwise.
+
+
+ Convert the passed in string value into the appropriate ASN.1
+ encoded object.
+
+ @param oid the oid associated with the value in the DN.
+ @param value the value of the particular DN component.
+ @return the ASN.1 equivalent for the value.
+
+
+ class for breaking up an X500 Name into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ A general class that reads all X9.62 style EC curve tables.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve. The routine returns null if the curve is not present.
+
+ @param name the name of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve.
+
+ @param oid the object id of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return an enumeration of the names of the available curves.
+
+ @return an enumeration of the names of the available curves.
+
+
+ ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeySpecificInfo ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ counter OCTET STRING SIZE (4..4)
+ }
+
+
+
+ ANS.1 def for Diffie-Hellman key exchange OtherInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherInfo ::= Sequence {
+ keyInfo KeySpecificInfo,
+ partyAInfo [0] OCTET STRING OPTIONAL,
+ suppPubInfo [2] OCTET STRING
+ }
+
+
+
+ table of the current named curves defined in X.962 EC-DSA.
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Parameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve CURVES.&id({CurveNames}),
+ implicitlyCA Null
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve Curve structure. See
+ X9.62, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Curve ::= Sequence {
+ a FieldElement,
+ b FieldElement,
+ seed BIT STRING OPTIONAL
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve ECParameters structure. See
+ X9.62, for further details.
+
+
+ Return the ASN.1 entry representing the Curve.
+
+ @return the X9Curve for the curve in these parameters.
+
+
+ Return the ASN.1 entry representing the FieldID.
+
+ @return the X9FieldID for the FieldID in these parameters.
+
+
+ Return the ASN.1 entry representing the base point G.
+
+ @return the X9ECPoint for the base point in these parameters.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECParameters ::= Sequence {
+ version Integer { ecpVer1(1) } (ecpVer1),
+ fieldID FieldID {{FieldTypes}},
+ curve X9Curve,
+ base X9ECPoint,
+ order Integer,
+ cofactor Integer OPTIONAL
+ }
+
+
+
+ class for describing an ECPoint as a Der object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECPoint ::= OCTET STRING
+
+
+ Octet string produced using ECPoint.GetEncoded().
+
+
+ Class for processing an ECFieldElement as a DER object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ FieldElement ::= OCTET STRING
+
+
+
+ - if q is an odd prime then the field element is
+ processed as an Integer and converted to an octet string
+ according to x 9.62 4.3.1.
+ - if q is 2m then the bit string
+ contained in the field element is converted into an octet
+ string with the same ordering padded at the front if necessary.
+
+
+
+
+
+ ASN.1 def for Elliptic-Curve Field ID structure. See
+ X9.62, for further details.
+
+
+ Constructor for elliptic curves over prime fields
+ F2.
+ @param primeP The prime p defining the prime field.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)..
+
+
+ Produce a Der encoding of the following structure.
+
+ FieldID ::= Sequence {
+ fieldType FIELD-ID.&id({IOSet}),
+ parameters FIELD-ID.&Type({IOSet}{@fieldType})
+ }
+
+
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) x9-57 (10040) x9cm(4) 3 }
+
+
+ X9.63
+
+
+ X9.42
+
+
+ reader for Base64 armored objects - read the headers and then start returning
+ bytes when the data is reached. An IOException is thrown if the CRC check
+ fails.
+
+
+ decode the base 64 encoded input data.
+
+ @return the offset the data starts in out.
+
+
+ Create a stream for reading a PGP armoured message, parsing up to a header
+ and then reading the data that follows.
+
+ @param input
+
+
+ Create an armoured input stream which will assume the data starts
+ straight away, or parse for headers first depending on the value of
+ hasHeaders.
+
+ @param input
+ @param hasHeaders true if headers are to be looked for, false otherwise.
+
+
+ @return true if we are inside the clear text section of a PGP
+ signed message.
+
+
+ @return true if the stream is actually at end of file.
+
+
+ Return the armor header line (if there is one)
+ @return the armor header line, null if none present.
+
+
+ Return the armor headers (the lines after the armor header line),
+ @return an array of armor headers, null if there aren't any.
+
+
+ Basic output stream.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+
+ Set an additional header entry. A null value will clear the entry for name.
+
+ @param name the name of the header entry.
+ @param v the value of the header entry.
+
+
+ Reset the headers to only contain a Version string (if one is present).
+
+
+ Start a clear text signed message.
+ @param hashAlgorithm
+
+
+ Note: Close() does not close the underlying stream. So it is possible to write
+ multiple objects using armoring to a single stream.
+
+
+ Basic type for a image attribute packet.
+
+
+ Reader for PGP objects.
+
+
+ Returns the next packet tag in the stream.
+
+
+
+ A stream that overlays our input stream, allowing the user to only read a segment of it.
+ NB: dataLength will be negative if the segment length is in the upper range above 2**31.
+
+
+
+ Base class for a PGP object.
+
+
+ Basic output stream.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+
+
+ Create a stream representing an old style partial object.
+ Output stream to write to.
+ The packet tag for the object.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+ If true, the header is written out in old format.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Buffer to use for collecting chunks.
+
+
+ Flush the underlying stream.
+
+
+ Finish writing out the current packet without closing the underlying stream.
+
+
+ Generic compressed data object.
+
+
+ The algorithm tag value.
+
+
+ Basic tags for compression algorithms.
+
+
+ Basic type for a PGP packet.
+
+
+ Base class for a DSA public key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for a DSA secret key.
+
+
+ @param in
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ @return x
+
+
+ Base class for an ECDH Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an ECDSA Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an EC Public Key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an EC Secret Key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal public key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal secret key.
+
+
+ @param in
+
+
+ @param x
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Basic packet for an experimental packet.
+
+
+ Basic tags for hash algorithms.
+
+
+ Base interface for a PGP key.
+
+
+
+ The base format for this key - in the case of the symmetric keys it will generally
+ be raw indicating that the key is just a straight byte representation, for an asymmetric
+ key the format will be PGP, indicating the key is a string of MPIs encoded in PGP format.
+
+ "RAW" or "PGP".
+
+
+ Note: you can only read from this once...
+
+
+ Generic literal data packet.
+
+
+ The format tag value.
+
+
+ The modification time of the file in milli-seconds (since Jan 1, 1970 UTC)
+
+
+ Basic type for a marker packet.
+
+
+ Basic packet for a modification detection code packet.
+
+
+ A multiple precision integer
+
+
+ Generic signature object
+
+
+ The encryption algorithm tag.
+
+
+ The hash algorithm tag.
+
+
+ Basic PGP packet tag types.
+
+
+ Public Key Algorithm tag numbers.
+
+
+ Basic packet for a PGP public key.
+
+
+ Basic packet for a PGP public key.
+
+
+ Construct a version 4 public key packet.
+
+
+ Basic packet for a PGP public subkey
+
+
+ Construct a version 4 public subkey packet.
+
+
+ Base class for an RSA public key.
+
+
+ Construct an RSA public key from the passed in stream.
+
+
+ The modulus.
+ The public exponent.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an RSA secret (or priate) key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ The string to key specifier class.
+
+
+ The hash algorithm.
+
+
+ The IV for the key generation algorithm.
+
+
+ The iteration count
+
+
+ The protection mode - only if GnuDummyS2K
+
+
+ Basic packet for a PGP secret key.
+
+
+ Basic packet for a PGP secret key.
+
+
+ Generic signature packet.
+
+
+ Generate a version 4 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param hashedData
+ @param unhashedData
+ @param fingerprint
+ @param signature
+
+
+ Generate a version 2/3 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param fingerprint
+ @param signature
+
+
+ return the keyId
+ @return the keyId that created the signature.
+
+
+ return the signature trailer that must be included with the data
+ to reconstruct the signature
+
+ @return byte[]
+
+
+ * return the signature as a set of integers - note this is normalised to be the
+ * ASN.1 encoding of what appears in the signature packet.
+
+
+ Return the byte encoding of the signature section.
+ @return uninterpreted signature bytes.
+
+
+ Return the creation time in milliseconds since 1 Jan., 1970 UTC.
+
+
+ Basic type for a PGP Signature sub-packet.
+
+
+ Return the generic data making up the packet.
+
+
+ reader for signature sub-packets
+
+
+ Basic PGP signature sub-packet tag types.
+
+
+ Packet embedded signature
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ Identifier for the modification detection feature
+
+
+ Returns if modification detection is supported.
+
+
+ Returns if a particular feature is supported.
+
+
+ Sets support for a particular feature.
+
+
+ packet giving signature creation time.
+
+
+ packet giving time after creation at which the key expires.
+
+
+ Return the number of seconds after creation time a key is valid for.
+
+ @return second count for key validity.
+
+
+ Packet holding the key flag values.
+
+
+
+ Return the flag values contained in the first 4 octets (note: at the moment
+ the standard only uses the first one).
+
+
+
+ Class provided a NotationData object according to
+ RFC2440, Chapter 5.2.3.15. Notation Data
+
+
+ packet giving signature creation time.
+
+
+ packet giving whether or not the signature is signed using the primary user ID for the key.
+
+
+ packet giving whether or not is revocable.
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ return time in seconds before signature expires after creation time.
+
+
+ packet giving the User ID of the signer.
+
+
+ packet giving trust.
+
+
+
+ Represents revocation key OpenPGP signature sub packet.
+
+
+
+
+ Represents revocation reason OpenPGP signature sub packet.
+
+
+
+ Basic type for a symmetric key encrypted packet.
+
+
+ Basic tags for symmetric key algorithms
+
+
+ Basic type for a symmetric encrypted session key packet
+
+
+ @return int
+
+
+ @return S2k
+
+
+ @return byte[]
+
+
+ @return int
+
+
+ Basic type for a trust packet.
+
+
+ Basic type for a user attribute packet.
+
+
+ Basic type for a user attribute sub-packet.
+
+
+ return the generic data making up the packet.
+
+
+ reader for user attribute sub-packets
+
+
+ Basic PGP user attribute sub-packet tag types.
+
+
+ Basic type for a user ID packet.
+
+
+ Compressed data objects
+
+
+ The algorithm used for compression
+
+
+ Get the raw input stream contained in the object.
+
+
+ Return an uncompressed input stream which allows reading of the compressed data.
+
+
+ Class for producing compressed data packets.
+
+
+
+
+ Return an output stream which will save the data being written to
+ the compressed object.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Stream to be used for output.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+
+ Return an output stream which will compress the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+ Note: using this may break compatibility with RFC 1991 compliant tools.
+ Only recent OpenPGP implementations are capable of accepting these streams.
+
+
+ Stream to be used for output.
+ The buffer to use.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+ Close the compressed object.summary>
+
+
+
+ Thrown if the IV at the start of a data stream indicates the wrong key is being used.
+
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return true if the message is integrity protected.
+ True, if there is a modification detection code namespace associated
+ with this stream.
+
+
+ Note: This can only be called after the message has been read.
+ True, if the message verifies, false otherwise
+
+
+ Generator for encrypted objects.
+
+
+ Existing SecureRandom constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+
+
+ Creates a cipher stream which will have an integrity packet associated with it.
+
+
+ Base constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+ PGP 2.6.x compatibility required.
+
+
+
+ Add a PBE encryption method to the encrypted object using the default algorithm (S2K_SHA1).
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Add a public key encrypted session key to the encrypted object.
+
+
+
+
+ If buffer is non null stream assumed to be partial, otherwise the length will be used
+ to output a fixed length packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+
+
+
+
+ Close off the encrypted object - this is equivalent to calling Close() on the stream
+ returned by the Open() method.
+
+
+ Note: This does not close the underlying output stream, only the stream on top of
+ it created by the Open() method.
+
+
+
+
+ A holder for a list of PGP encryption method packets.
+
+
+ Generic exception class for PGP encoding/decoding problems.
+
+
+ Key flag values for the KeyFlags subpacket.
+
+
+
+ General class to handle JCA key pairs and convert them into OpenPGP ones.
+
+ A word for the unwary, the KeyId for an OpenPGP public key is calculated from
+ a hash that includes the time of creation, if you pass a different date to the
+ constructor below with the same public private key pair the KeyIs will not be the
+ same as for previous generations of the key, so ideally you only want to do
+ this once.
+
+
+
+
+ Create a key pair from a PgpPrivateKey and a PgpPublicKey.
+ The public key.
+ The private key.
+
+
+ The keyId associated with this key pair.
+
+
+
+ Generator for a PGP master and subkey ring.
+ This class will generate both the secret and public key rings
+
+
+
+
+ Create a new key ring generator using old style checksumming. It is recommended to use
+ SHA1 checksumming where possible.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+ The key pair.
+ The hash algorithm.
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ exception adding subkey:
+
+
+
+ Return the secret key ring.
+
+
+ Return the public key ring that corresponds to the secret key ring.
+
+
+
+ Thrown if the key checksum is invalid.
+
+
+
+ Class for processing literal data objects.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+ The format of the data stream - Binary or Text
+
+
+ The file name that's associated with the data stream.
+
+
+ Return the file name as an unintrepreted byte array.
+
+
+ The modification time for the file.
+
+
+ The raw input stream for the data stream.
+
+
+ The input stream representing the data stream.
+
+
+ Class for producing literal data packets.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+
+ Generates literal data objects in the old format.
+ This is important if you need compatibility with PGP 2.6.x.
+
+ If true, uses old format.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The length of the data we will write.
+ The time of last modification we want stored.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet,
+ as an indefinite length stream. The stream is written out as a series of partial
+ packets with a chunk size determined by the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The time of last modification we want stored.
+ The buffer to use for collecting data to put into chunks.
+
+
+
+
+ Open a literal data packet for the passed in FileInfo object, returning
+ an output stream for saving the file contents.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The FileInfo object containg the packet details.
+
+
+
+ Close the literal data packet - this is equivalent to calling Close()
+ on the stream returned by the Open() method.
+
+
+
+
+ A PGP marker packet - in general these should be ignored other than where
+ the idea is to preserve the original input stream.
+
+
+
+
+ General class for reading a PGP object stream.
+
+ Note: if this class finds a PgpPublicKey or a PgpSecretKey it
+ will create a PgpPublicKeyRing, or a PgpSecretKeyRing for each
+ key found. If all you are trying to do is read a key ring file use
+ either PgpPublicKeyRingBundle or PgpSecretKeyRingBundle.
+
+
+
+ Return the next object in the stream, or null if the end is reached.
+ On a parse error
+
+
+
+ Return all available objects in a list.
+
+ An IList containing all objects from this factory, in order.
+
+
+ A one pass signature object.
+
+
+ Initialise the signature object for verification.
+
+
+ Verify the calculated signature against the passed in PgpSignature.
+
+
+ Holder for a list of PgpOnePassSignature objects.
+
+
+ Padding functions.
+
+
+ A password based encryption object.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ General class to contain a private key for use with other OpenPGP objects.
+
+
+
+ Create a PgpPrivateKey from a keyID, the associated public data packet, and a regular private key.
+
+ ID of the corresponding public key.
+ the public key data packet to be associated with this private key.
+ the private key data packet to be associated with this private key.
+
+
+ The keyId associated with the contained private key.
+
+
+ The public key packet associated with this private key, if available.
+
+
+ The contained private key.
+
+
+ General class to handle a PGP public key object.
+
+
+
+ Create a PgpPublicKey from the passed in lightweight one.
+
+
+ Note: the time passed in affects the value of the key's keyId, so you probably only want
+ to do this once for a lightweight key, or make sure you keep track of the time you used.
+
+ Asymmetric algorithm type representing the public key.
+ Actual public key to associate.
+ Date of creation.
+ If pubKey is not public.
+ On key creation problem.
+
+
+ Constructor for a sub-key.
+
+
+ Copy constructor.
+ The public key to copy.
+
+
+ The version of this key.
+
+
+ The creation time of this key.
+
+
+ The number of valid days from creation time - zero means no expiry.
+ WARNING: This method will return 1 for keys with version > 3 that expire in less than 1 day
+
+
+ Return the trust data associated with the public key, if present.
+ A byte array with trust data, null otherwise.
+
+
+ The number of valid seconds from creation time - zero means no expiry.
+
+
+ The keyId associated with the public key.
+
+
+ The fingerprint of the key
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for encryption.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for encryption.
+
+
+
+ True, if this is a master key.
+
+
+ The algorithm code associated with the public key.
+
+
+ The strength of the key in bits.
+
+
+ The public key contained in the object.
+ A lightweight public key.
+ If the key algorithm is not recognised.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of PgpUserAttributeSubpacketVector objects.
+
+
+ Allows enumeration of any signatures associated with the passed in id.
+ The ID to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures associated with the passed in user attributes.
+ The vector of user attributes to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures of the passed in type that are on this key.
+ The type of the signature to be returned.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of all signatures/certifications associated with this key.
+ An IEnumerable with all signatures/certifications.
+
+
+ Return all signatures/certifications directly associated with this key (ie, not to a user id).
+
+ @return an iterator (possibly empty) with all signatures/certifications.
+
+
+ Check whether this (sub)key has a revocation signature on it.
+ True, if this (sub)key has been revoked.
+
+
+ Add a certification for an id to the given public key.
+ The key the certification is to be added to.
+ The ID the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+ Add a certification for the given UserAttributeSubpackets to the given public key.
+ The key the certification is to be added to.
+ The attributes the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+
+ Remove any certifications associated with a user attribute subpacket on a key.
+
+ The key the certifications are to be removed from.
+ The attributes to be removed.
+
+ The re-certified key, or null if the user attribute subpacket was not found on the key.
+
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from.
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given user attributes on a key.
+ The key the certifications are to be removed from.
+ The user attributes that the certfication is to be removed from.
+ The certification to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Add a revocation or some other key certification to a key.
+ The key the revocation is to be added to.
+ The key signature to be added.
+ The new changed public key object.
+
+
+ Remove a certification from the key.
+ The key the certifications are to be removed from.
+ The certfication to be removed.
+ The modified key, null if the certification was not found.
+
+
+ A public key encrypted data object.
+
+
+ The key ID for the key used to encrypt the data.
+
+
+
+ Return the algorithm code for the symmetric algorithm used to encrypt the data.
+
+
+
+ Return the decrypted data stream for the packet.
+
+
+
+ Class to hold a single master public key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpPublicKeyRingBundle class.
+
+
+
+
+ Return the first public key in the ring.
+
+
+ Return the public key referred to by the passed in key ID if it is present.
+
+
+ Allows enumeration of all the public keys.
+ An IEnumerable of PgpPublicKey objects.
+
+
+
+ Returns a new key ring with the public key passed in either added or
+ replacing an existing one.
+
+ The public key ring to be modified.
+ The public key to be inserted.
+ A new PgpPublicKeyRing
+
+
+ Returns a new key ring with the public key passed in removed from the key ring.
+ The public key ring to be modified.
+ The public key to be removed.
+ A new PgpPublicKeyRing, or null if pubKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire public key file in one hit this is the class for you.
+
+
+
+ Build a PgpPublicKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpPublicKeyRing.
+
+
+ Return the number of key rings in this collection.
+
+
+ Allow enumeration of the public key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP public key associated with the given key id.
+ The ID of the public key to return.
+
+
+ Return the public key ring which contains the key referred to by keyId
+ key ID to match against
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in public key ring.
+
+ The PgpPublicKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpPublicKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in public key ring removed.
+
+ The PgpPublicKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpPublicKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ General class to handle a PGP secret key object.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for signing.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for use with signing.
+
+
+
+ True, if this is a master key.
+
+
+ Detect if the Secret Key's Private Key is empty or not
+
+
+ The algorithm the key is encrypted with.
+
+
+ The key ID of the public key associated with this key.
+
+
+ Return the S2K usage associated with this key.
+
+
+ Return the S2K used to process this key.
+
+
+ The public key associated with this key.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of string objects.
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+ Replace the passed the public key on the passed in secret key.
+ Secret key to change.
+ New public key.
+ A new secret key.
+ If KeyId's do not match.
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+
+
+ Class to hold a single master secret key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpSecretKeyRingBundle class.
+
+
+
+
+ Return the public key for the master key.
+
+
+ Return the master private key.
+
+
+ Allows enumeration of the secret keys.
+ An IEnumerable of PgpSecretKey objects.
+
+
+
+ Return an iterator of the public keys in the secret key ring that
+ have no matching private key. At the moment only personal certificate data
+ appears in this fashion.
+
+ An IEnumerable of unattached, or extra, public keys.
+
+
+
+ Replace the public key set on the secret ring with the corresponding key off the public ring.
+
+ Secret ring to be changed.
+ Public ring containing the new public key set.
+
+
+
+ Return a copy of the passed in secret key ring, with the master key and sub keys encrypted
+ using a new password and the passed in algorithm.
+
+ The PgpSecretKeyRing to be copied.
+ The current password for key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Returns a new key ring with the secret key passed in either added or
+ replacing an existing one with the same key ID.
+
+ The secret key ring to be modified.
+ The secret key to be inserted.
+ A new PgpSecretKeyRing
+
+
+ Returns a new key ring with the secret key passed in removed from the key ring.
+ The secret key ring to be modified.
+ The secret key to be removed.
+ A new PgpSecretKeyRing, or null if secKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire secret key file in one hit this is the class for you.
+
+
+
+ Build a PgpSecretKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpSecretKeyRing.
+
+
+ Return the number of rings in this collection.
+
+
+ Allow enumeration of the secret key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP secret key associated with the given key id.
+ The ID of the secret key to return.
+
+
+ Return the secret key ring which contains the key referred to by keyId
+ The ID of the secret key
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in secret key ring.
+
+ The PgpSecretKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpSecretKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in secret key ring removed.
+
+ The PgpSecretKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpSecretKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ A PGP signature object.
+
+
+ The OpenPGP version number for this signature.
+
+
+ The key algorithm associated with this signature.
+
+
+ The hash algorithm associated with this signature.
+
+
+ Return true if this signature represents a certification.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in user attributes.
+
+ User attributes the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in ID.
+
+ ID the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+ Verify a certification for the passed in key against the passed in master key.
+ The key we are verifying against.
+ The key we are verifying.
+ True, if the certification is valid, false otherwise.
+
+
+ Verify a key certification, such as revocation, for the passed in key.
+ The key we are checking.
+ True, if the certification is valid, false otherwise.
+
+
+ The ID of the key that created the signature.
+
+
+ The creation time of this signature.
+
+
+
+ Return true if the signature has either hashed or unhashed subpackets.
+
+
+
+
+ Return true if the passed in signature type represents a certification, false if the signature type is not.
+
+
+ true if signatureType is a certification, false otherwise.
+
+
+ Generator for PGP signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a signature object containing the current signature state.
+
+
+ Generate a certification for the passed in ID and key.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in userAttributes.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in key against the passed in master key.
+ The key we are certifying against.
+ The key we are certifying.
+ The certification.
+
+
+ Generate a certification, such as a revocation, for the passed in key.
+ The key we are certifying.
+ The certification.
+
+
+ A list of PGP signatures - normally in the signature block after literal data.
+
+
+ Generator for signature subpackets.
+
+
+
+ Add a TrustSignature packet to the signature. The values for depth and trust are largely
+ installation dependent but there are some guidelines in RFC 4880 - 5.2.3.13.
+
+ true if the packet is critical.
+ depth level.
+ trust amount.
+
+
+
+ Set the number of seconds a key is valid for after the time of its creation.
+ A value of zero means the key never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the key is valid, or zero if no expiry.
+
+
+
+ Set the number of seconds a signature is valid for after the time of its creation.
+ A value of zero means the signature never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the signature is valid, or zero if no expiry.
+
+
+
+ Set the creation time for the signature.
+
+ Note: this overrides the generation of a creation time when the signature
+ is generated.
+
+
+
+
+ Sets revocation reason sub packet
+
+
+
+
+ Sets revocation key sub packet
+
+
+
+
+ Sets issuer key sub packet
+
+
+
+ Container for a list of signature subpackets.
+
+
+ Return true if a particular subpacket type exists.
+
+ @param type type to look for.
+ @return true if present, false otherwise.
+
+
+ Return all signature subpackets of the passed in type.
+ @param type subpacket type code
+ @return an array of zero or more matching subpackets.
+
+
+
+ Return the number of seconds a signature is valid for after its creation date.
+ A value of zero means the signature never expires.
+
+ Seconds a signature is valid for.
+
+
+
+ Return the number of seconds a key is valid for after its creation date.
+ A value of zero means the key never expires.
+
+ Seconds a signature is valid for.
+
+
+ Return the number of packets this vector contains.
+
+
+ Container for a list of user attribute subpackets.
+
+
+ Basic utility class.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Write out the passed in file as a literal data packet.
+
+
+ Write out the passed in file as a literal data packet in partial packet format.
+
+
+
+ Return either an ArmoredInputStream or a BcpgInputStream based on whether
+ the initial characters of the stream are binary PGP encodings or not.
+
+
+
+ Generator for old style PGP V3 Signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a V3 signature object containing the current signature state.
+
+
+ Utility functions for looking a S-expression keys. This class will move when it finds a better home!
+
+ Format documented here:
+ http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=agent/keyformat.txt;h=42c4b1f06faf1bbe71ffadc2fee0fad6bec91a97;hb=refs/heads/master
+
+
+
+
+ The 'Signature' parameter is only available when generating unsigned attributes.
+
+
+
+ containing class for an CMS Authenticated Data object
+
+
+ return the object identifier for the content MAC algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the digested attributes indexed by
+ the OID of the attribute.
+
+
+ return a table of the undigested attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ General class for generating a CMS authenticated-data message.
+
+ A simple example of usage.
+
+
+ CMSAuthenticatedDataGenerator fact = new CMSAuthenticatedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSAuthenticatedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+
+
+ generate an authenticated object that contains an CMS Authenticated Data object
+
+
+ Parsing class for an CMS Authenticated Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CMSAuthenticatedDataParser ad = new CMSAuthenticatedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ad.getRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey, "BC");
+
+ processDataStream(recData.getContentStream());
+
+ if (!Arrays.equals(ad.getMac(), recipient.getMac())
+ {
+ System.err.println("Data corrupted!!!!");
+ }
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSAuthenticatedDataParser ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the mac algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ General class for generating a CMS authenticated-data message stream.
+
+ A simple example of usage.
+
+ CMSAuthenticatedDataStreamGenerator edGen = new CMSAuthenticatedDataStreamGenerator();
+
+ edGen.addKeyTransRecipient(cert);
+
+ ByteArrayOutputStream bOut = new ByteArrayOutputStream();
+
+ OutputStream out = edGen.open(
+ bOut, CMSAuthenticatedDataGenerator.AES128_CBC, "BC");*
+ out.write(data);
+
+ out.close();
+
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+ @throws java.io.IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+
+ @param rand instance of SecureRandom to use
+
+
+ containing class for an CMS AuthEnveloped Data object
+
+
+ containing class for an CMS Compressed Data object
+
+
+ Return the uncompressed content.
+
+ @return the uncompressed content
+ @throws CmsException if there is an exception uncompressing the data.
+
+
+ Return the uncompressed content, throwing an exception if the data size
+ is greater than the passed in limit. If the content is exceeded getCause()
+ on the CMSException will contain a StreamOverflowException
+
+ @param limit maximum number of bytes to read
+ @return the content read
+ @throws CMSException if there is an exception uncompressing the data.
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ * General class for generating a compressed CMS message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * CMSCompressedDataGenerator fact = new CMSCompressedDataGenerator();
+ * CMSCompressedData data = fact.Generate(content, algorithm);
+ *
+ *
+
+
+ Generate an object that contains an CMS Compressed Data
+
+
+ Class for reading a CMS Compressed Data stream.
+
+ CMSCompressedDataParser cp = new CMSCompressedDataParser(inputStream);
+
+ process(cp.GetContent().GetContentStream());
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSCompressedDataParser ep = new CMSCompressedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ General class for generating a compressed CMS message stream.
+
+ A simple example of usage.
+
+
+ CMSCompressedDataStreamGenerator gen = new CMSCompressedDataStreamGenerator();
+
+ Stream cOut = gen.Open(outputStream, CMSCompressedDataStreamGenerator.ZLIB);
+
+ cOut.Write(data);
+
+ cOut.Close();
+
+
+
+ base constructor
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Close the underlying data stream.
+ @throws IOException if the close fails.
+
+
+ containing class for an CMS Enveloped Data object
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CmsEnvelopedDataGenerator fact = new CmsEnvelopedDataGenerator();
+
+ fact.AddKeyTransRecipient(cert);
+
+ CmsEnvelopedData data = fact.Generate(content, algorithm);
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+
+ Generate an enveloped object that contains a CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Parsing class for an CMS Enveloped Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ep.GetRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey);
+
+ processDataStream(recData.getContentStream());
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message stream.
+
+ A simple example of usage.
+
+ CmsEnvelopedDataStreamGenerator edGen = new CmsEnvelopedDataStreamGenerator();
+
+ edGen.AddKeyTransRecipient(cert);
+
+ MemoryStream bOut = new MemoryStream();
+
+ Stream out = edGen.Open(
+ bOut, CMSEnvelopedDataGenerator.AES128_CBC);*
+ out.Write(data);
+
+ out.Close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data.
+ Length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CMSEnvelopedDataGenerator fact = new CMSEnvelopedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSEnvelopedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ add a recipient.
+
+ @param cert recipient's public key certificate
+ @exception ArgumentException if there is a problem with the certificate
+
+
+ add a recipient
+
+ @param key the public key used by the recipient
+ @param subKeyId the identifier for the recipient's public key
+ @exception ArgumentException if there is a problem with the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ Add a key agreement based recipient.
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCert recipient's public key certificate.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+ Add multiple key agreement based recipients (sharing a single KeyAgreeRecipientInfo structure).
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCerts recipients' public key certificates.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+
+ Generic routine to copy out the data we want processed.
+
+
+ This routine may be called multiple times.
+
+
+
+ a holding class for a byte array of data to be processed.
+
+
+ A clone of the byte array
+
+
+ a holding class for a file of data to be processed.
+
+
+ The file handle
+
+
+ general class for handling a pkcs7-signature message.
+
+ A simple example of usage - note, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer...
+
+
+ IX509Store certs = s.GetCertificates();
+ SignerInformationStore signers = s.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ if (signer.Verify(cert.GetPublicKey()))
+ {
+ verified++;
+ }
+ }
+
+
+
+ Content with detached signature, digests precomputed
+
+ @param hashes a map of precomputed digests for content indexed by name of hash.
+ @param sigBlock the signature object.
+
+
+ base constructor - content with detached signature.
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ base constructor - with encapsulated content
+
+
+ Return the version number for this object.
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Replace the signerinformation store associated with this
+ CmsSignedData object with the new one passed in. You would
+ probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ @param signedData the signed data object to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @return a new signed data object.
+
+
+ Replace the certificate and CRL information associated with this
+ CmsSignedData object with the new one passed in.
+
+ @param signedData the signed data object to be used as a base.
+ @param x509Certs the new certificates to be used.
+ @param x509Crls the new CRLs to be used.
+ @return a new signed data object.
+ @exception CmsException if there is an error processing the stores
+
+
+ * general class for generating a pkcs7-signature message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * IX509Store certs...
+ * IX509Store crls...
+ * CmsSignedDataGenerator gen = new CmsSignedDataGenerator();
+ *
+ * gen.AddSigner(privKey, cert, CmsSignedGenerator.DigestSha1);
+ * gen.AddCertificates(certs);
+ * gen.AddCrls(crls);
+ *
+ * CmsSignedData data = gen.Generate(content);
+ *
+ *
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ * add a signer - no attributes other than the default ones will be
+ * provided here.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param subjectKeyID subjectKeyID of corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param subjectKeyID subjectKeyID of corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a set of one or more SignerInformation objects representing counter signatures on
+ the passed in SignerInformation object.
+
+ @param signer the signer to be countersigned
+ @param sigProvider the provider to be used for counter signing.
+ @return a store containing the signers.
+
+
+ Parsing class for an CMS Signed Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one signer can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ A simple example of usage for an encapsulated signature.
+
+
+ Two notes: first, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer, and, second, because we are in a streaming
+ mode the order of the operations is important.
+
+
+ CmsSignedDataParser sp = new CmsSignedDataParser(encapSigData);
+
+ sp.GetSignedContent().Drain();
+
+ IX509Store certs = sp.GetCertificates();
+ SignerInformationStore signers = sp.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ Console.WriteLine("verify returns: " + signer.Verify(cert));
+ }
+
+ Note also: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsSignedDataParser ep = new CmsSignedDataParser(new BufferedInputStream(encapSigData, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ base constructor - with encapsulated content
+
+
+ base constructor
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ Return the version number for the SignedData object
+
+ @return the version number
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+ @throws CmsException
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception org.bouncycastle.x509.NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ Replace the signerinformation store associated with the passed
+ in message contained in the stream original with the new one passed in.
+ You would probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+
+
+ Replace the certificate and CRL information associated with this
+ CMSSignedData object with the new one passed in.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param certsAndCrls the new certificates and CRLs to be used.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+ @exception CmsException if there is an error processing the CertStore
+
+
+ General class for generating a pkcs7-signature message stream.
+
+ A simple example of usage.
+
+
+ IX509Store certs...
+ CmsSignedDataStreamGenerator gen = new CmsSignedDataStreamGenerator();
+
+ gen.AddSigner(privateKey, cert, CmsSignedDataStreamGenerator.DIGEST_SHA1);
+
+ gen.AddCertificates(certs);
+
+ Stream sigOut = gen.Open(bOut);
+
+ sigOut.Write(Encoding.UTF8.GetBytes("Hello World!"));
+
+ sigOut.Close();
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer, specifying the digest encryption algorithm - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes - specifying digest
+ encryption algorithm.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data". If dataOutputStream is non null the data
+ being signed will be written to the stream as it is processed.
+ @param out stream the CMS object is to be written to.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+ @param out stream the CMS object is to be written to.
+ @param signedContentType OID for data to be signed.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ Default type for the signed data.
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Add the attribute certificates contained in the passed in store to the
+ generator.
+
+ @param store a store of Version 2 attribute certificates
+ @throws CmsException if an error occurse processing the store.
+
+
+ Add a store of precalculated signers to the generator.
+
+ @param signerStore store of signers
+
+
+ Return a map of oids and byte arrays representing the digests calculated on the content during
+ the last generate.
+
+ @return a map of oids (as String objects) and byte[] representing digests.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+ Return the digest encryption algorithm using one of the standard
+ JCA string representations rather than the algorithm identifier (if
+ possible).
+
+
+ Default authenticated attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in IDictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ Default signed attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType, signingTime, and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType, signingTime, and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in Hashtable of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a secret key known to the other side.
+
+
+ decrypt the content and return an input stream.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using key agreement.
+
+
+ decrypt the content and return an input stream.
+
+
+ the KeyTransRecipientInformation class for a recipient who has been sent a secret
+ key encrypted using their public key that needs to be used to
+ extract the message.
+
+
+ decrypt the content and return it as a byte array.
+
+
+ a basic index for an originator.
+
+
+ Return the certificates stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CertificateHolder objects.
+
+
+ Return the CRLs stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CRLHolder objects.
+
+
+ Return the underlying ASN.1 object defining this SignerInformation object.
+
+ @return a OriginatorInfo.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a password.
+
+
+ return the object identifier for the key derivation algorithm, or null
+ if there is none present.
+
+ @return OID for key derivation algorithm, if present.
+
+
+ decrypt the content and return an input stream.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes assuming ASCII.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes using UTF-8.
+
+
+
+ Generate a RecipientInfo object for the given key.
+
+
+ A
+
+
+ A
+
+
+ A
+
+
+
+
+ * return the object identifier for the key encryption algorithm.
+ *
+ * @return OID for key encryption algorithm.
+
+
+ * return the ASN.1 encoded key encryption algorithm parameters, or null if
+ * there aren't any.
+ *
+ * @return ASN.1 encoding of key encryption algorithm parameters.
+
+
+ Return the MAC calculated for the content stream. Note: this call is only meaningful once all
+ the content has been read.
+
+ @return byte array containing the mac.
+
+
+ Return the first RecipientInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a recipient
+ @return a single RecipientInformation object. Null if none matches.
+
+
+ Return the number of recipients in the collection.
+
+ @return number of recipients identified.
+
+
+ Return all recipients in the collection
+
+ @return a collection of recipients.
+
+
+ Return possible empty collection with recipients matching the passed in RecipientID
+
+ @param selector a recipient id to select against.
+ @return a collection of RecipientInformation objects.
+
+
+ a basic index for a signer.
+
+
+ If the passed in flag is true, the signer signature will be based on the data, not
+ a collection of signed attributes, and no signed attributes will be included.
+
+ @return the builder object
+
+
+ Provide a custom signed attribute generator.
+
+ @param signedGen a generator of signed attributes.
+ @return the builder object
+
+
+ Provide a generator of unsigned attributes.
+
+ @param unsignedGen a generator for signed attributes.
+ @return the builder object
+
+
+ Build a generator with the passed in certHolder issuer and serial number as the signerIdentifier.
+
+ @param contentSigner operator for generating the final signature in the SignerInfo with.
+ @param certHolder carrier for the X.509 certificate related to the contentSigner.
+ @return a SignerInfoGenerator
+ @throws OperatorCreationException if the generator cannot be built.
+
+
+ Build a generator with the passed in subjectKeyIdentifier as the signerIdentifier. If used you should
+ try to follow the calculation described in RFC 5280 section 4.2.1.2.
+
+ @param signerFactory operator factory for generating the final signature in the SignerInfo with.
+ @param subjectKeyIdentifier key identifier to identify the public key for verifying the signature.
+ @return a SignerInfoGenerator
+
+
+ an expanded SignerInfo block from a CMS Signed message
+
+
+ return the version number for this objects underlying SignerInfo structure.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature parameters, or null if there aren't any.
+
+
+ return the content digest that was calculated during verification.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature/encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a table of the signed attributes - indexed by
+ the OID of the attribute.
+
+
+ return a table of the unsigned attributes indexed by
+ the OID of the attribute.
+
+
+ return the encoded signature
+
+
+ Return a SignerInformationStore containing the counter signatures attached to this
+ signer. If no counter signatures are present an empty store is returned.
+
+
+ return the DER encoding of the signed attributes.
+ @throws IOException if an encoding error occurs.
+
+
+ verify that the given public key successfully handles and confirms the
+ signature associated with this signer.
+
+
+ verify that the given certificate successfully handles and confirms
+ the signature associated with this signer and, if a signingTime
+ attribute is available, that the certificate was valid at the time the
+ signature was generated.
+
+
+ Return the base ASN.1 CMS structure that this object contains.
+
+ @return an object containing a CMS SignerInfo structure.
+
+
+ Return a signer information object with the passed in unsigned
+ attributes replacing the ones that are current associated with
+ the object passed in.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param unsignedAttributes the unsigned attributes to add.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Return a signer information object with passed in SignerInformationStore representing counter
+ signatures attached as an unsigned attribute.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param counterSigners signer info objects carrying counter signature.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Create a store containing a single SignerInformation object.
+
+ @param signerInfo the signer information to contain.
+
+
+ Create a store containing a collection of SignerInformation objects.
+
+ @param signerInfos a collection signer information objects to contain.
+
+
+ Return the first SignerInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a signer
+ @return a single SignerInformation object. Null if none matches.
+
+
+ The number of signers in the collection.
+
+
+ An ICollection of all signers in the collection
+
+
+ Return possible empty collection with signers matching the passed in SignerID
+
+ @param selector a signer id to select against.
+ @return a collection of SignerInformation objects.
+
+
+ Basic generator that just returns a preconstructed attribute table
+
+
+ a Diffie-Hellman key exchange engine.
+
+ note: This uses MTI/A0 key agreement in order to make the key agreement
+ secure against passive attacks. If you're doing Diffie-Hellman and both
+ parties have long term public keys you should look at using this. For
+ further information have a look at RFC 2631.
+
+ It's possible to extend this to more than two parties as well, for the moment
+ that is left as an exercise for the reader.
+
+
+ calculate our initial message.
+
+
+ given a message from a given party and the corresponding public key
+ calculate the next message in the agreement sequence. In this case
+ this will represent the shared secret.
+
+
+ a Diffie-Hellman key agreement class.
+
+ note: This is only the basic algorithm, it doesn't take advantage of
+ long term public keys if they are available. See the DHAgreement class
+ for a "better" implementation.
+
+
+ given a short term public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+ P1363 7.2.1 ECSVDP-DH
+
+ ECSVDP-DH is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version. It is based on the work of [DH76], [Mil86],
+ and [Kob87]. This primitive derives a shared secret value from one
+ party's private key and another party's public key, where both have
+ the same set of EC domain parameters. If two parties correctly
+ execute this primitive, they will produce the same output. This
+ primitive can be invoked by a scheme to derive a shared secret key;
+ specifically, it may be used with the schemes ECKAS-DH1 and
+ DL/ECKAS-DH2. It assumes that the input keys are valid (see also
+ Section 7.2.2).
+
+
+ P1363 7.2.2 ECSVDP-DHC
+
+ ECSVDP-DHC is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version with cofactor multiplication. It is based on
+ the work of [DH76], [Mil86], [Kob87], [LMQ98] and [Kal98a]. This
+ primitive derives a shared secret value from one party's private key
+ and another party's public key, where both have the same set of EC
+ domain parameters. If two parties correctly execute this primitive,
+ they will produce the same output. This primitive can be invoked by a
+ scheme to derive a shared secret key; specifically, it may be used
+ with the schemes ECKAS-DH1 and DL/ECKAS-DH2. It does not assume the
+ validity of the input public key (see also Section 7.2.1).
+
+ Note: As stated P1363 compatibility mode with ECDH can be preset, and
+ in this case the implementation doesn't have a ECDH compatibility mode
+ (if you want that just use ECDHBasicAgreement and note they both implement
+ BasicAgreement!).
+
+
+
+ A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange.
+
+ The J-PAKE exchange is defined by Feng Hao and Peter Ryan in the paper
+
+ "Password Authenticated Key Exchange by Juggling, 2008."
+
+ The J-PAKE protocol is symmetric.
+ There is no notion of a client or server, but rather just two participants.
+ An instance of JPakeParticipant represents one participant, and
+ is the primary interface for executing the exchange.
+
+ To execute an exchange, construct a JPakeParticipant on each end,
+ and call the following 7 methods
+ (once and only once, in the given order, for each participant, sending messages between them as described):
+
+ CreateRound1PayloadToSend() - and send the payload to the other participant
+ ValidateRound1PayloadReceived(JPakeRound1Payload) - use the payload received from the other participant
+ CreateRound2PayloadToSend() - and send the payload to the other participant
+ ValidateRound2PayloadReceived(JPakeRound2Payload) - use the payload received from the other participant
+ CalculateKeyingMaterial()
+ CreateRound3PayloadToSend(BigInteger) - and send the payload to the other participant
+ ValidateRound3PayloadReceived(JPakeRound3Payload, BigInteger) - use the payload received from the other participant
+
+ Each side should derive a session key from the keying material returned by CalculateKeyingMaterial().
+ The caller is responsible for deriving the session key using a secure key derivation function (KDF).
+
+ Round 3 is an optional key confirmation process.
+ If you do not execute round 3, then there is no assurance that both participants are using the same key.
+ (i.e. if the participants used different passwords, then their session keys will differ.)
+
+ If the round 3 validation succeeds, then the keys are guaranteed to be the same on both sides.
+
+ The symmetric design can easily support the asymmetric cases when one party initiates the communication.
+ e.g. Sometimes the round1 payload and round2 payload may be sent in one pass.
+ Also, in some cases, the key confirmation payload can be sent together with the round2 payload.
+ These are the trivial techniques to optimize the communication.
+
+ The key confirmation process is implemented as specified in
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ This class is stateful and NOT threadsafe.
+ Each instance should only be used for ONE complete J-PAKE exchange
+ (i.e. a new JPakeParticipant should be constructed for each new J-PAKE exchange).
+
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ the JPakePrimeOrderGroups#NIST_3072 prime order group,
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+
+
+
+ Constructor for a new JPakeParticipant.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+ Digest to use during zero knowledge proofs and key confirmation
+ (SHA-256 or stronger preferred).
+ Source of secure random data for x1 and x2, and for the zero knowledge proofs.
+
+
+
+ Gets the current state of this participant.
+ See the STATE_* constants for possible values.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 1.
+
+ After execution, the State state} will be STATE_ROUND_1_CREATED}.
+
+
+
+
+ Validates the payload received from the other participant during round 1.
+
+ Must be called prior to CreateRound2PayloadToSend().
+
+ After execution, the State state will be STATE_ROUND_1_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException
+ if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 2.
+
+ ValidateRound1PayloadReceived(JPakeRound1Payload) must be called prior to this method.
+
+ After execution, the State state will be STATE_ROUND_2_CREATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Validates the payload received from the other participant during round 2.
+ Note that this DOES NOT detect a non-common password.
+ The only indication of a non-common password is through derivation
+ of different keys (which can be detected explicitly by executing round 3 and round 4)
+
+ Must be called prior to CalculateKeyingMaterial().
+
+ After execution, the State state will be STATE_ROUND_2_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws
+ InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Calculates and returns the key material.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPakeParticipant).
+
+ The keying material will be identical for each participant if and only if
+ each participant's password is the same. i.e. If the participants do not
+ share the same password, then each participant will derive a different key.
+ Therefore, if you immediately start using a key derived from
+ the keying material, then you must handle detection of incorrect keys.
+ If you want to handle this detection explicitly, you can optionally perform
+ rounds 3 and 4. See JPakeParticipant for details on how to execute
+ rounds 3 and 4.
+
+ The keying material will be in the range [0, p-1].
+
+ ValidateRound2PayloadReceived(JPakeRound2Payload) must be called prior to this method.
+
+ As a side effect, the internal password array is cleared, since it is no longer needed.
+
+ After execution, the State state will be STATE_KEY_CALCULATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound2PayloadReceived(JPakeRound2Payload),
+ or if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state} will be STATE_ROUND_3_CREATED.
+ Throws InvalidOperationException if called prior to CalculateKeyingMaterial, or multiple
+ times.
+
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ Validates the payload received from the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state will be STATE_ROUND_3_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException if called prior to
+ CalculateKeyingMaterial or multiple times
+
+ The round 3 payload received from the other participant.
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ A pre-computed prime order group for use during a J-PAKE exchange.
+
+ Typically a Schnorr group is used. In general, J-PAKE can use any prime order group
+ that is suitable for public key cryptography, including elliptic curve cryptography.
+
+ See JPakePrimeOrderGroups for convenient standard groups.
+
+ NIST publishes
+ many groups that can be used for the desired level of security.
+
+
+
+
+ Constructs a new JPakePrimeOrderGroup.
+
+ In general, you should use one of the pre-approved groups from
+ JPakePrimeOrderGroups, rather than manually constructing one.
+
+ The following basic checks are performed:
+
+ p-1 must be evenly divisible by q
+ g must be in [2, p-1]
+ g^q mod p must equal 1
+ p must be prime (within reasonably certainty)
+ q must be prime (within reasonably certainty)
+
+ The prime checks are performed using BigInteger#isProbablePrime(int),
+ and are therefore subject to the same probability guarantees.
+
+ These checks prevent trivial mistakes.
+ However, due to the small uncertainties if p and q are not prime,
+ advanced attacks are not prevented.
+ Use it at your own risk.
+
+ Throws NullReferenceException if any argument is null. Throws
+ InvalidOperationException is any of the above validations fail.
+
+
+
+
+ Constructor used by the pre-approved groups in JPakePrimeOrderGroups.
+ These pre-approved groups can avoid the expensive checks.
+ User-specified groups should not use this constructor.
+
+
+
+
+ Standard pre-computed prime order groups for use by J-PAKE.
+ (J-PAKE can use pre-computed prime order groups, same as DSA and Diffie-Hellman.)
+
+ This class contains some convenient constants for use as input for
+ constructing {@link JPAKEParticipant}s.
+
+ The prime order groups below are taken from Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB),
+ and from the prime order groups
+ published by NIST.
+
+
+
+
+ From Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB)
+ 1024-bit p, 160-bit q and 1024-bit g for 80-bit security.
+
+
+
+
+ From NIST.
+ 2048-bit p, 224-bit q and 2048-bit g for 112-bit security.
+
+
+
+
+ From NIST.
+ 3072-bit p, 256-bit q and 3072-bit g for 128-bit security.
+
+
+
+
+ The payload sent/received during the first round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance of this payload to
+ the other. The payload to send should be created via
+ JPAKEParticipant.CreateRound1PayloadToSend().
+
+ Each participant must also validate the payload received from the other.
+ The received payload should be validated via
+ JPAKEParticipant.ValidateRound1PayloadReceived(JPakeRound1Payload).
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of g^x1
+
+
+
+
+ The value of g^x2
+
+
+
+
+ The zero knowledge proof for x1.
+
+ This is a two element array, containing {g^v, r} for x1.
+
+
+
+
+ The zero knowledge proof for x2.
+
+ This is a two element array, containing {g^v, r} for x2.
+
+
+
+
+ The payload sent/received during the second round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound2PayloadToSend()
+
+ Each JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound2PayloadReceived(JPakeRound2Payload)
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of A, as computed during round 2.
+
+
+
+
+ The zero knowledge proof for x2 * s.
+
+ This is a two element array, containing {g^v, r} for x2 * s.
+
+
+
+
+ The payload sent/received during the optional third round of a J-PAKE exchange,
+ which is for explicit key confirmation.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound3PayloadToSend(BigInteger)
+
+ Eeach JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound3PayloadReceived(JPakeRound3Payload, BigInteger)
+
+
+
+
+ The id of the {@link JPAKEParticipant} who created/sent this payload.
+
+
+
+
+ The value of MacTag, as computed by round 3.
+
+ See JPAKEUtil#calculateMacTag(string, string, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, org.bouncycastle.crypto.Digest)
+
+
+
+
+ Primitives needed for a J-PAKE exchange.
+
+ The recommended way to perform a J-PAKE exchange is by using
+ two JPAKEParticipants. Internally, those participants
+ call these primitive operations in JPakeUtilities.
+
+ The primitives, however, can be used without a JPAKEParticipant if needed.
+
+
+
+
+ Return a value that can be used as x1 or x3 during round 1.
+ The returned value is a random value in the range [0, q-1].
+
+
+
+
+ Return a value that can be used as x2 or x4 during round 1.
+ The returned value is a random value in the range [1, q-1].
+
+
+
+
+ Converts the given password to a BigInteger
+ for use in arithmetic calculations.
+
+
+
+
+ Calculate g^x mod p as done in round 1.
+
+
+
+
+ Calculate ga as done in round 2.
+
+
+
+
+ Calculate x2 * s as done in round 2.
+
+
+
+
+ Calculate A as done in round 2.
+
+
+
+
+ Calculate a zero knowledge proof of x using Schnorr's signature.
+ The returned array has two elements {g^v, r = v-x*h} for x.
+
+
+
+
+ Validates that g^x4 is not 1.
+ throws CryptoException if g^x4 is 1
+
+
+
+
+ Validates that ga is not 1.
+
+ As described by Feng Hao...
+ Alice could simply check ga != 1 to ensure it is a generator.
+ In fact, as we will explain in Section 3, (x1 + x3 + x4 ) is random over Zq even in the face of active attacks.
+ Hence, the probability for ga = 1 is extremely small - on the order of 2^160 for 160-bit q.
+
+ throws CryptoException if ga is 1
+
+
+
+
+ Validates the zero knowledge proof (generated by
+ calculateZeroKnowledgeProof(BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, string, Digest, SecureRandom)
+ is correct.
+
+ throws CryptoException if the zero knowledge proof is not correct
+
+
+
+
+ Calculates the keying material, which can be done after round 2 has completed.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPAKEParticipant).
+
+ KeyingMaterial = (B/g^{x2*x4*s})^x2
+
+
+
+
+ Validates that the given participant ids are not equal.
+ (For the J-PAKE exchange, each participant must use a unique id.)
+
+ Throws CryptoException if the participantId strings are equal.
+
+
+
+
+ Validates that the given participant ids are equal.
+ This is used to ensure that the payloads received from
+ each round all come from the same participant.
+
+
+
+
+ Validates that the given object is not null.
+ throws NullReferenceException if the object is null.
+
+ object in question
+ name of the object (to be used in exception message)
+
+
+
+ Calculates the MacTag (to be used for key confirmation), as defined by
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ MacTag = HMAC(MacKey, MacLen, MacData)
+ MacKey = H(K || "JPAKE_KC")
+ MacData = "KC_1_U" || participantId || partnerParticipantId || gx1 || gx2 || gx3 || gx4
+
+ Note that both participants use "KC_1_U" because the sender of the round 3 message
+ is always the initiator for key confirmation.
+
+ HMAC = {@link HMac} used with the given {@link Digest}
+ H = The given {@link Digest}
+ MacLen = length of MacTag
+
+
+
+
+ Calculates the MacKey (i.e. the key to use when calculating the MagTag for key confirmation).
+
+ MacKey = H(K || "JPAKE_KC")
+
+
+
+
+ Validates the MacTag received from the partner participant.
+
+ throws CryptoException if the participantId strings are equal.
+
+
+
+ Generator for Concatenation Key Derivation Function defined in NIST SP 800-56A, Sect 5.8.1
+
+
+ @param digest the digest to be used as the source of generated bytes
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ RFC 2631 Diffie-hellman KEK derivation function.
+
+
+ X9.63 based key derivation function for ECDH CMS.
+
+
+
+ SM2 Key Exchange protocol - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
+
+
+
+ Implements the client side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the client to begin new authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates client's credentials given the client's salt, identity and password
+ @param salt The salt used in the client's verifier.
+ @param identity The user's identity (eg. username)
+ @param password The user's password
+ @return Client's public value to send to server
+
+
+ Generates client's verification message given the server's credentials
+ @param serverB The server's credentials
+ @return Client's verification message for the server
+ @throws CryptoException If server's credentials are invalid
+
+
+ Computes the client evidence message M1 using the previously received values.
+ To be called after calculating the secret S.
+ @return M1: the client side generated evidence message
+ @throws CryptoException
+
+
+ Authenticates the server evidence message M2 received and saves it only if correct.
+ @param M2: the server side generated evidence message
+ @return A boolean indicating if the server message M2 was the expected one.
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after verifying the server evidence message M2.
+ @return Key: the mutually authenticated symmetric session key
+ @throws CryptoException
+
+
+ Implements the server side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the server to accept a new client authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param v The client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates the server's credentials that are to be sent to the client.
+ @return The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+ @param clientA The client's credentials
+ @return A shared secret BigInteger
+ @throws CryptoException If client's credentials are invalid
+
+
+ Authenticates the received client evidence message M1 and saves it only if correct.
+ To be called after calculating the secret S.
+ @param M1: the client side generated evidence message
+ @return A boolean indicating if the client message M1 was the expected one.
+ @throws CryptoException
+
+
+ Computes the server evidence message M2 using the previously verified values.
+ To be called after successfully verifying the client evidence message M1.
+ @return M2: the server side generated evidence message
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after calculating the server evidence message M2.
+ @return Key: the mutual authenticated symmetric session key
+ @throws CryptoException
+
+
+ Computes the client evidence message (M1) according to the standard routine:
+ M1 = H( A | B | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param B The public server value
+ @param S The secret calculated by both sides
+ @return M1 The calculated client evidence message
+
+
+ Computes the server evidence message (M2) according to the standard routine:
+ M2 = H( A | M1 | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param M1 The client evidence message
+ @param S The secret calculated by both sides
+ @return M2 The calculated server evidence message
+
+
+ Computes the final Key according to the standard routine: Key = H(S)
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param S The secret calculated by both sides
+ @return
+
+
+ Generates new SRP verifier for user
+
+
+ Initialises generator to create new verifiers
+ @param N The safe prime to use (see DHParametersGenerator)
+ @param g The group parameter to use (see DHParametersGenerator)
+ @param digest The digest to use. The same digest type will need to be used later for the actual authentication
+ attempt. Also note that the final session key size is dependent on the chosen digest.
+
+
+ Creates a new SRP verifier
+ @param salt The salt to use, generally should be large and random
+ @param identity The user's identifying information (eg. username)
+ @param password The user's password
+ @return A new verifier for use in future SRP authentication
+
+
+ a holding class for public/private parameter pairs.
+
+
+ basic constructor.
+
+ @param publicParam a public key parameters object.
+ @param privateParam the corresponding private key parameters.
+
+
+ return the public key parameters.
+
+ @return the public key parameters.
+
+
+ return the private key parameters.
+
+ @return the private key parameters.
+
+
+ The AEAD block ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ a buffer wrapper for an asymmetric block cipher, allowing input
+ to be accumulated in a piecemeal fashion until final processing.
+
+
+ base constructor.
+
+ @param cipher the cipher this buffering object wraps.
+
+
+ return the amount of data sitting in the buffer.
+
+ @return the amount of data sitting in the buffer.
+
+
+ initialise the buffer and the underlying cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+
+
+ process the contents of the buffer using the underlying
+ cipher.
+
+ @return the result of the encryption/decryption process on the
+ buffer.
+ @exception InvalidCipherTextException if we are given a garbage block.
+
+
+ Reset the buffer
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion. The BufferedBlockCipher outputs a block only when the
+ buffer is full and more data is being added, or on a doFinal.
+
+ Note: in the case where the underlying cipher is either a CFB cipher or an
+ OFB one the last block may not be a multiple of the block size.
+
+
+
+ constructor for subclasses
+
+
+ Create a buffered block cipher without padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ false otherwise.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The base class for symmetric, or secret, cipher key generators.
+
+
+ initialise the key generator.
+
+ @param param the parameters to be used for key generation
+
+
+ Generate a secret key.
+
+ @return a byte array containing the key value.
+
+
+ this exception is thrown if a buffer that is meant to have output
+ copied into it turns out to be too short, or if we've been given
+ insufficient input. In general this exception will Get thrown rather
+ than an ArrayOutOfBounds exception.
+
+
+ base constructor.
+
+
+ create a DataLengthException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Basic sized constructor - size in bits.
+
+ @param digestSize size of the digest in bits
+
+
+ Blake2b for authentication ("Prefix-MAC mode").
+ After calling the doFinal() method, the key will
+ remain to be used for further computations of
+ this instance.
+ The key can be overwritten using the clearKey() method.
+
+ @param key A key up to 64 bytes or null
+
+
+ Blake2b with key, required digest length (in bytes), salt and personalization.
+ After calling the doFinal() method, the key, the salt and the personal string
+ will remain and might be used for further computations with this instance.
+ The key can be overwritten using the clearKey() method, the salt (pepper)
+ can be overwritten using the clearSalt() method.
+
+ @param key A key up to 64 bytes or null
+ @param digestLength from 1 up to 64 bytes
+ @param salt 16 bytes or null
+ @param personalization 16 bytes or null
+
+
+ update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+ Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to it's initial state.
+ The key, the salt and the personal string will
+ remain for further computations.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies it's compression
+ function to.
+
+ @return byte length of the digests internal buffer.
+
+
+ Overwrite the key
+ if it is no longer used (zeroization)
+
+
+ Overwrite the salt (pepper) if it
+ is secret and no longer used (zeroization)
+
+
+ Implementation of the cryptographic hash function BLAKE2s.
+
+ BLAKE2s offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2s offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2s is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 32 bytes.
+
+
+ BLAKE2s Initialization Vector
+
+
+
+ Message word permutations
+
+
+
+ Whenever this buffer overflows, it will be processed in the Compress()
+ function. For performance issues, long messages will not use this buffer.
+
+
+ Position of last inserted byte
+
+
+
+ Internal state, in the BLAKE2 paper it is called v
+
+
+
+ State vector, in the BLAKE2 paper it is called h
+
+
+
+ holds least significant bits of counter
+
+
+
+ holds most significant bits of counter
+
+
+
+ finalization flag, for last block: ~0
+
+
+
+ BLAKE2s-256 for hashing.
+
+
+ BLAKE2s for hashing.
+
+ @param digestBits the desired digest length in bits. Must be one of
+ [128, 160, 224, 256].
+
+
+ BLAKE2s for authentication ("Prefix-MAC mode").
+
+ After calling the doFinal() method, the key will remain to be used for
+ further computations of this instance. The key can be overwritten using
+ the clearKey() method.
+
+ @param key a key up to 32 bytes or null
+
+
+ BLAKE2s with key, required digest length, salt and personalization.
+
+ After calling the doFinal() method, the key, the salt and the personal
+ string will remain and might be used for further computations with this
+ instance. The key can be overwritten using the clearKey() method, the
+ salt (pepper) can be overwritten using the clearSalt() method.
+
+ @param key a key up to 32 bytes or null
+ @param digestBytes from 1 up to 32 bytes
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Overwrite the key if it is no longer used (zeroization).
+
+
+ Overwrite the salt (pepper) if it is secret and no longer used
+ (zeroization).
+
+
+ implementation of Ukrainian DSTU 7564 hash function
+
+
+ base implementation of MD4 family style digest as outlined in
+ "Handbook of Applied Cryptography", pages 344 - 347.
+
+
+ implementation of GOST R 34.11-94
+
+
+ Standard constructor
+
+
+ Constructor to allow use of a particular sbox with GOST28147
+ @see GOST28147Engine#getSBox(String)
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Return the size of block that the compression function is applied to in bytes.
+
+ @return internal byte length of a block.
+
+
+ Base class for SHA-384 and SHA-512.
+
+
+ Constructor for variable length word
+
+
+ Copy constructor. We are using copy constructors in place
+ of the object.Clone() interface as this interface is not
+ supported by J2ME.
+
+
+ adjust the byte counts so that byteCount2 represents the
+ upper long (less 3 bits) word of the byte count.
+
+
+ implementation of MD2
+ as outlined in RFC1319 by B.Kaliski from RSA Laboratories April 1992
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param out the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ implementation of MD4 as RFC 1320 by R. Rivest, MIT Laboratory for
+ Computer Science and RSA Data Security, Inc.
+
+ NOTE: This algorithm is only included for backwards compatibility
+ with legacy applications, it's not secure, don't use it for anything new!
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ Wrapper removes exposure to the IMemoable interface on an IDigest implementation.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @exception IllegalArgumentException if baseDigest is null
+
+
+ implementation of RipeMD128
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of RipeMD see,
+ http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD256.
+ Note: this algorithm offers the same level of security as RipeMD128.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD 320.
+ Note: this algorithm offers the same level of security as RipeMD160.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349.
+
+ It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5
+ is the "endianness" of the word processing!
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ SHA-224 as described in RFC 3874
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-224 512 32 224
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-256. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-384. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHA-3 based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Draft FIPS 180-2 implementation of SHA-512. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ FIPS 180-4 implementation of SHA-512/t
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHAKE based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Wrapper class that reduces the output length of a particular digest to
+ only the first n bytes of the digest function.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @param length length in bytes of the output of doFinal.
+ @exception ArgumentException if baseDigest is null, or length is greater than baseDigest.GetDigestSize().
+
+
+
+ Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block
+ sizes, based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation is the basis for and , implementing the
+ parameter based configuration system that allows Skein to be adapted to multiple applications.
+ Initialising the engine with allows standard and arbitrary parameters to
+ be applied during the Skein hash function.
+
+ Implemented:
+
+ - 256, 512 and 1024 bit internal states.
+ - Full 96 bit input length.
+ - Parameters defined in the Skein specification, and arbitrary other pre and post message
+ parameters.
+ - Arbitrary output size in 1 byte intervals.
+
+
+ Not implemented:
+
+ - Sub-byte length input (bit padding).
+ - Tree hashing.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+ The parameter type for the Skein key.
+
+
+ The parameter type for the Skein configuration block.
+
+
+ The parameter type for the message.
+
+
+ The parameter type for the output transformation.
+
+
+ Precalculated UBI(CFG) states for common state/output combinations without key or other
+ pre-message params.
+
+
+ Point at which position might overflow long, so switch to add with carry logic
+
+
+ Bit 127 = final
+
+
+ Bit 126 = first
+
+
+ UBI uses a 128 bit tweak
+
+
+ Whether 64 bit position exceeded
+
+
+ Advances the position in the tweak by the specified value.
+
+
+ The Unique Block Iteration chaining mode.
+
+
+ Buffer for the current block of message data
+
+
+ Offset into the current message block
+
+
+ Buffer for message words for feedback into encrypted block
+
+
+ Underlying Threefish tweakable block cipher
+
+
+ Size of the digest output, in bytes
+
+
+ The current chaining/state value
+
+
+ The initial state value
+
+
+ The (optional) key parameter
+
+
+ Parameters to apply prior to the message
+
+
+ Parameters to apply after the message, but prior to output
+
+
+ The current UBI operation
+
+
+ Buffer for single byte update method
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Creates a SkeinEngine as an exact copy of an existing instance.
+
+
+
+
+ Initialises the Skein engine with the provided parameters. See for
+ details on the parameterisation of the Skein hash function.
+
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+ Calculate the initial (pre message block) chaining state.
+
+
+
+ Reset the engine to the initial state (with the key and any pre-message parameters , ready to
+ accept message input.
+
+
+
+
+ Implementation of Chinese SM3 digest as described at
+ http://tools.ietf.org/html/draft-shen-sm3-hash-00
+ and at .... ( Chinese PDF )
+
+
+ The specification says "process a bit stream",
+ but this is written to process bytes in blocks of 4,
+ meaning this will process 32-bit word groups.
+ But so do also most other digest specifications,
+ including the SHA-256 which was a origin for
+ this specification.
+
+
+
+
+ Standard constructor
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+
+ reset the chaining variables
+
+
+
+ implementation of Tiger based on:
+
+ http://www.cs.technion.ac.il/~biham/Reports/Tiger
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Implementation of WhirlpoolDigest, based on Java source published by Barreto
+ and Rijmen.
+
+
+
+ Copy constructor. This will copy the state of the provided message
+ digest.
+
+
+ Reset the chaining variables
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ ISO 9796-1 padding. Note in the light of recent results you should
+ only use this with RSA (rather than the "simpler" Rabin keys) and you
+ should never use it with anything other than a hash (ie. even if the
+ message is small don't sign the message, sign it's hash) or some "random"
+ value. See your favorite search engine for details.
+
+
+ return the input block size. The largest message we can process
+ is (key_size_in_bits + 3)/16, which in our world comes to
+ key_size_in_bytes / 2.
+
+
+ return the maximum possible size for the output.
+
+
+ set the number of bits in the next message to be treated as
+ pad bits.
+
+
+ retrieve the number of pad bits in the last decoded message.
+
+
+ @exception InvalidCipherTextException if the decrypted block is not a valid ISO 9796 bit string
+
+
+ Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2.
+
+
+ @exception InvalidCipherTextException if the decrypted block turns out to
+ be badly formatted.
+
+
+ int to octet string.
+
+
+ mask generator function, as described in PKCS1v2.
+
+
+ this does your basic Pkcs 1 v1.5 padding - whether or not you should be using this
+ depends on your application - see Pkcs1 Version 2 for details.
+
+
+ some providers fail to include the leading zero in PKCS1 encoded blocks. If you need to
+ work with one of these set the system property Org.BouncyCastle.Pkcs1.Strict to false.
+
+
+ The same effect can be achieved by setting the static property directly
+
+ The static property is checked during construction of the encoding object, it is set to
+ true by default.
+
+
+
+ Basic constructor.
+
+ @param cipher
+
+
+ Constructor for decryption with a fixed plaintext length.
+
+ @param cipher The cipher to use for cryptographic operation.
+ @param pLen Length of the expected plaintext.
+
+
+ Constructor for decryption with a fixed plaintext length and a fallback
+ value that is returned, if the padding is incorrect.
+
+ @param cipher
+ The cipher to use for cryptographic operation.
+ @param fallback
+ The fallback value, we don't to a arraycopy here.
+
+
+ Checks if the argument is a correctly PKCS#1.5 encoded Plaintext
+ for encryption.
+
+ @param encoded The Plaintext.
+ @param pLen Expected length of the plaintext.
+ @return Either 0, if the encoding is correct, or -1, if it is incorrect.
+
+
+ Decode PKCS#1.5 encoding, and return a random value if the padding is not correct.
+
+ @param in The encrypted block.
+ @param inOff Offset in the encrypted block.
+ @param inLen Length of the encrypted block.
+ @param pLen Length of the desired output.
+ @return The plaintext without padding, or a random value if the padding was incorrect.
+ @throws InvalidCipherTextException
+
+
+ @exception InvalidCipherTextException if the decrypted block is not in Pkcs1 format.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first.
+
+ The slowest version uses no static tables at all and computes the values in each round.
+
+
+ This file contains the middle performance version with 2Kbytes of static tables for round precomputation.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael)), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor), they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations), 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each), for a total of 2Kbytes),
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values in each round
+
+
+ This file contains the fast version with 8Kbytes of static tables for round precomputation
+
+
+ Unfortunately this class has a few side channel issues.
+ In an environment where encryption/decryption may be closely observed it should not be used.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values
+ in each round.
+
+
+ This file contains the slowest performance version with no static tables
+ for round precomputation, but it has the smallest foot print.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ A class that provides Blowfish key encryption operations,
+ such as encoding data and generating keys.
+ All the algorithms herein are from Applied Cryptography
+ and implement a simplified cryptography interface.
+
+
+ initialise a Blowfish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ apply the encryption cycle to each value pair in the table.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Camellia - based on RFC 3713.
+
+
+ Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.
+
+
+
+ An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3657.txt.
+
+
+
+ A class that provides CAST key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC's
+
+ RFC2144 - Cast5 (64bit block, 40-128bit key)
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ initialise a CAST cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ The first of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The second of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The third of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ Does the 16 rounds to encrypt the block.
+
+ @param L0 the LH-32bits of the plaintext block
+ @param R0 the RH-32bits of the plaintext block
+
+
+ A class that provides CAST6 key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC
+
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Does the 12 quad rounds rounds to encrypt the block.
+
+ @param A the 00-31 bits of the plaintext block
+ @param B the 32-63 bits of the plaintext block
+ @param C the 64-95 bits of the plaintext block
+ @param D the 96-127 bits of the plaintext block
+ @param result the resulting ciphertext
+
+
+ Does the 12 quad rounds rounds to decrypt the block.
+
+ @param A the 00-31 bits of the ciphertext block
+ @param B the 32-63 bits of the ciphertext block
+ @param C the 64-95 bits of the ciphertext block
+ @param D the 96-127 bits of the ciphertext block
+ @param result the resulting plaintext
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Creates a ChaCha engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+
+ ChaCha function.
+
+ The number of ChaCha rounds to execute
+ The input words.
+ The ChaCha state to modify.
+
+
+ A class that provides a basic DESede (or Triple DES) engine.
+
+
+ initialise a DESede cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ * Wrap keys according to
+ *
+ * draft-ietf-smime-key-wrap-01.txt.
+ *
+ * Note:
+ *
+ * - this is based on a draft, and as such is subject to change - don't use this class for anything requiring long term storage.
+ * - if you are using this to wrap triple-des keys you need to set the
+ * parity bits on the key and, if it's a two-key triple-des key, pad it
+ * yourself.
+ *
+ *
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ A class that provides a basic DES engine.
+
+
+ initialise a DES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ what follows is mainly taken from "Applied Cryptography", by
+ Bruce Schneier, however it also bears great resemblance to Richard
+ Outerbridge's D3DES...
+
+
+ Generate an integer based working key based on our secret key
+ and what we processing we are planning to do.
+
+ Acknowledgements for this routine go to James Gillogly and Phil Karn.
+ (whoever, and wherever they are!).
+
+
+ the DES engine.
+
+
+ implementation of DSTU 7624 (Kalyna)
+
+
+ this does your basic ElGamal algorithm.
+
+
+ initialise the ElGamal engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary ElGamal key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ encryption, and twice the length as the size of P on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ decryption, and twice the length as the size of P on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic ElGamal algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param length the length of the data to be processed.
+ @return the result of the ElGamal process.
+ @exception DataLengthException the input block is too large.
+
+
+ implementation of GOST 28147-89
+
+
+ standard constructor.
+
+
+ initialise an Gost28147 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ Return the S-Box associated with SBoxName
+ @param sBoxName name of the S-Box
+ @return byte array representing the S-Box
+
+
+ HC-128 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 128-bit secret key and a 128-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc128_p3.pdf
+
+ It is a third phase candidate in the eStream contest, and is patent-free.
+ No attacks are known as of today (April 2007). See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-128 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 128 bit long).
+
+
+ HC-256 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 256-bit secret key and a 256-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc256_p3.pdf
+
+ Its brother, HC-128, is a third phase candidate in the eStream contest.
+ The algorithm is patent-free. No attacks are known as of today (April 2007).
+ See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-256 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 256 bit long).
+
+
+ A class that provides a basic International Data Encryption Algorithm (IDEA) engine.
+
+ This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM"
+ implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (baring 1 typo at the
+ end of the mulinv function!).
+
+
+ It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/
+
+
+ Note 1: This algorithm is patented in the USA, Japan, and Europe including
+ at least Austria, France, Germany, Italy, Netherlands, Spain, Sweden, Switzerland
+ and the United Kingdom. Non-commercial use is free, however any commercial
+ products are liable for royalties. Please see
+ www.mediacrypt.com for
+ further details. This announcement has been included at the request of
+ the patent holders.
+
+
+ Note 2: Due to the requests concerning the above, this algorithm is now only
+ included in the extended assembly. It is not included in the default distributions.
+
+
+
+ standard constructor.
+
+
+ initialise an IDEA cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return x = x * y where the multiplication is done modulo
+ 65537 (0x10001) (as defined in the IDEA specification) and
+ a zero input is taken to be 65536 (0x10000).
+
+ @param x the x value
+ @param y the y value
+ @return x = x * y
+
+
+ The following function is used to expand the user key to the encryption
+ subkey. The first 16 bytes are the user key, and the rest of the subkey
+ is calculated by rotating the previous 16 bytes by 25 bits to the left,
+ and so on until the subkey is completed.
+
+
+ This function computes multiplicative inverse using Euclid's Greatest
+ Common Divisor algorithm. Zero and one are self inverse.
+
+ i.e. x * MulInv(x) == 1 (modulo BASE)
+
+
+
+ Return the additive inverse of x.
+
+ i.e. x + AddInv(x) == 0
+
+
+
+ The function to invert the encryption subkey to the decryption subkey.
+ It also involves the multiplicative inverse and the additive inverse functions.
+
+
+ support class for constructing intergrated encryption ciphers
+ for doing basic message exchanges on top of key agreement ciphers
+
+
+ set up for use with stream mode, where the key derivation function
+ is used to provide a stream of bytes to xor with the message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+
+
+ set up for use in conjunction with a block cipher to handle the
+ message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+ @param cipher the cipher to used for encrypting the message
+
+
+ Initialise the encryptor.
+
+ @param forEncryption whether or not this is encryption/decryption.
+ @param privParam our private key parameters
+ @param pubParam the recipient's/sender's public key parameters
+ @param param encoding and derivation parameters.
+
+
+ Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count).
+ see: http://www.burtleburtle.net/bob/rand/isaacafa.html
+
+
+ initialise an ISAAC cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ NaccacheStern Engine. For details on this cipher, please see
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Initializes this algorithm. Must be called before all other Functions.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#init(bool,
+ org.bouncycastle.crypto.CipherParameters)
+
+
+ Returns the input block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetInputBlockSize()
+
+
+ Returns the output block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetOutputBlockSize()
+
+
+ Process a single Block using the Naccache-Stern algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#ProcessBlock(byte[],
+ int, int)
+
+
+ Encrypts a BigInteger aka Plaintext with the public key.
+
+ @param plain
+ The BigInteger to encrypt
+ @return The byte[] representation of the encrypted BigInteger (i.e.
+ crypted.toByteArray())
+
+
+ Adds the contents of two encrypted blocks mod sigma
+
+ @param block1
+ the first encrypted block
+ @param block2
+ the second encrypted block
+ @return encrypt((block1 + block2) mod sigma)
+ @throws InvalidCipherTextException
+
+
+ Convenience Method for data exchange with the cipher.
+
+ Determines blocksize and splits data to blocksize.
+
+ @param data the data to be processed
+ @return the data after it went through the NaccacheSternEngine.
+ @throws InvalidCipherTextException
+
+
+ Computes the integer x that is expressed through the given primes and the
+ congruences with the chinese remainder theorem (CRT).
+
+ @param congruences
+ the congruences c_i
+ @param primes
+ the primes p_i
+ @return an integer x for that x % p_i == c_i
+
+
+ A Noekeon engine, using direct-key mode.
+
+
+ Create an instance of the Noekeon encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ The no-op engine that just copies bytes through, irrespective of whether encrypting and decrypting.
+ Provided for the sake of completeness.
+
+
+ an implementation of RC2 as described in RFC 2268
+ "A Description of the RC2(r) Encryption Algorithm" R. Rivest.
+
+
+ initialise a RC2 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the result rotating the 16 bit number in x left by y
+
+
+ Wrap keys according to RFC 3217 - RC2 mechanism
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ initialise a RC4 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation has a word size of 32 bits.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation is set to work with a 64 bit word size.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-64 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ An RC6 engine.
+
+
+ Create an instance of the RC6 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param inKey the key to be used
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ an implementation of the RFC 3211 Key Wrap
+ Specification.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap
+ Specification as described in RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3394.txt
+ and http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ an implementation of Rijndael, based on the documentation and reference implementation
+ by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.
+
+ Note: this implementation is based on information prior to readonly NIST publication.
+
+
+
+ multiply two elements of GF(2^m)
+ needed for MixColumn and InvMixColumn
+
+
+ xor corresponding text input and round key input bytes
+
+
+ Row 0 remains unchanged
+ The other three rows are shifted a variable amount
+
+
+ Replace every byte of the input by the byte at that place
+ in the nonlinear S-box
+
+
+ Mix the bytes of every column in a linear way
+
+
+ Mix the bytes of every column in a linear way
+ This is the opposite operation of Mixcolumn
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on keyBits and blockBits
+
+
+ default constructor - 128 bit block size.
+
+
+ basic constructor - set the cipher up for a given blocksize
+
+ @param blocksize the blocksize in bits, must be 128, 192, or 256.
+
+
+ initialise a Rijndael cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ this does your basic RSA algorithm with blinding
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+ This does your basic RSA Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475. You need to use this if you are
+ trying to get another party to generate signatures without them being aware
+ of the message they are signing.
+
+
+ Initialise the blinding engine.
+
+ @param forEncryption true if we are encrypting (blinding), false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the RSA blinding algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @throws DataLengthException the input block is too large.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+
+ Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005
+
+
+
+ Constants
+
+
+
+ Creates a 20 round Salsa20 engine.
+
+
+
+
+ Creates a Salsa20 engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ Rotate left
+
+ @param x value to rotate
+ @param y amount to rotate x
+
+ @return rotated x
+
+
+ Implementation of the SEED algorithm as described in RFC 4009
+
+
+
+ An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc4010.txt.
+
+
+
+ * Serpent is a 128-bit 32-round block cipher with variable key lengths,
+ * including 128, 192 and 256 bit keys conjectured to be at least as
+ * secure as three-key triple-DES.
+ *
+ * Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ * candidate algorithm for the NIST AES Quest.
+ *
+ *
+ * For full details see The Serpent home page
+ *
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ initialise a Serpent cipher.
+
+ @param encrypting whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @throws IllegalArgumentException if the params argument is
+ inappropriate.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @return the number of bytes processed and produced.
+ @throws DataLengthException if there isn't enough data in in, or
+ space in out.
+ @throws IllegalStateException if the cipher isn't initialised.
+
+
+ InvSO - {13, 3,11, 0,10, 6, 5,12, 1,14, 4, 7,15, 9, 8, 2 } - 15 terms.
+
+
+ S1 - {15,12, 2, 7, 9, 0, 5,10, 1,11,14, 8, 6,13, 3, 4 } - 14 terms.
+
+
+ InvS1 - { 5, 8, 2,14,15, 6,12, 3,11, 4, 7, 9, 1,13,10, 0 } - 14 steps.
+
+
+ S2 - { 8, 6, 7, 9, 3,12,10,15,13, 1,14, 4, 0,11, 5, 2 } - 16 terms.
+
+
+ InvS2 - {12, 9,15, 4,11,14, 1, 2, 0, 3, 6,13, 5, 8,10, 7 } - 16 steps.
+
+
+ S3 - { 0,15,11, 8,12, 9, 6, 3,13, 1, 2, 4,10, 7, 5,14 } - 16 terms.
+
+
+ InvS3 - { 0, 9,10, 7,11,14, 6,13, 3, 5,12, 2, 4, 8,15, 1 } - 15 terms
+
+
+ S4 - { 1,15, 8, 3,12, 0,11, 6, 2, 5, 4,10, 9,14, 7,13 } - 15 terms.
+
+
+ InvS4 - { 5, 0, 8, 3,10, 9, 7,14, 2,12,11, 6, 4,15,13, 1 } - 15 terms.
+
+
+ S5 - {15, 5, 2,11, 4,10, 9,12, 0, 3,14, 8,13, 6, 7, 1 } - 16 terms.
+
+
+ InvS5 - { 8,15, 2, 9, 4, 1,13,14,11, 6, 5, 3, 7,12,10, 0 } - 16 terms.
+
+
+ S6 - { 7, 2,12, 5, 8, 4, 6,11,14, 9, 1,15,13, 3,10, 0 } - 15 terms.
+
+
+ InvS6 - {15,10, 1,13, 5, 3, 6, 0, 4, 9,14, 7, 2,12, 8,11 } - 15 terms.
+
+
+ S7 - { 1,13,15, 0,14, 8, 2,11, 7, 4,12,10, 9, 3, 5, 6 } - 16 terms.
+
+
+ InvS7 - { 3, 0, 6,13, 9,14,15, 8, 5,12,11, 7,10, 1, 4, 2 } - 17 terms.
+
+
+ Apply the linear transformation to the register set.
+
+
+ Apply the inverse of the linear transformation to the register set.
+
+
+ a class that provides a basic SKIPJACK engine.
+
+
+ initialise a SKIPJACK cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The G permutation
+
+
+ the inverse of the G permutation.
+
+
+
+ SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.
+
+
+
+ An TEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+
+ Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block
+ sizes.
+
+
+ This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST
+ SHA-3 competition in October 2010.
+
+ Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables
+ to speed up key schedule injection.
+ 2 x block size state is retained by each cipher instance.
+
+
+
+
+ 256 bit block size - Threefish-256
+
+
+
+
+ 512 bit block size - Threefish-512
+
+
+
+
+ 1024 bit block size - Threefish-1024
+
+
+
+ Size of the tweak in bytes (always 128 bit/16 bytes)
+
+
+ Rounds in Threefish-256
+
+
+ Rounds in Threefish-512
+
+
+ Rounds in Threefish-1024
+
+
+ Max rounds of any of the variants
+
+
+ Key schedule parity constant
+
+
+ Block size in bytes
+
+
+ Block size in 64 bit words
+
+
+ Buffer for byte oriented processBytes to call internal word API
+
+
+ Tweak bytes (2 byte t1,t2, calculated t3 and repeat of t1,t2 for modulo free lookup
+
+
+ Key schedule words
+
+
+ The internal cipher implementation (varies by blocksize)
+
+
+
+ Constructs a new Threefish cipher, with a specified block size.
+
+ the block size in bits, one of , ,
+ .
+
+
+
+ Initialise the engine.
+
+ Initialise for encryption if true, for decryption if false.
+ an instance of or (to
+ use a 0 tweak)
+
+
+
+ Initialise the engine, specifying the key and tweak directly.
+
+ the cipher mode.
+ the words of the key, or null to use the current key.
+ the 2 word (128 bit) tweak, or null to use the current tweak.
+
+
+
+ Process a block of data represented as 64 bit words.
+
+ the number of 8 byte words processed (which will be the same as the block size).
+ a block sized buffer of words to process.
+ a block sized buffer of words to receive the output of the operation.
+ if either the input or output is not block sized
+ if this engine is not initialised
+
+
+
+ Read a single 64 bit word from input in LSB first order.
+
+
+
+
+ Write a 64 bit word to output in LSB first order.
+
+
+
+ Rotate left + xor part of the mix operation.
+
+
+ Rotate xor + rotate right part of the unmix operation.
+
+
+ The extended + repeated tweak words
+
+
+ The extended + repeated key words
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Tnepres is a 128-bit 32-round block cipher with variable key lengths,
+ including 128, 192 and 256 bit keys conjectured to be at least as
+ secure as three-key triple-DES.
+
+ Tnepres is based on Serpent which was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ candidate algorithm for the NIST AES Quest. Unfortunately there was an endianness issue
+ with test vectors in the AES submission and the resulting confusion lead to the Tnepres cipher
+ as well, which is a byte swapped version of Serpent.
+
+
+ For full details see The Serpent home page
+
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ A class that provides Twofish encryption operations.
+
+ This Java implementation is based on the Java reference
+ implementation provided by Bruce Schneier and developed
+ by Raif S. Naffah.
+
+
+ Define the fixed p0/p1 permutations used in keyed S-box lookup.
+ By changing the following constant definitions, the S-boxes will
+ automatically Get changed in the Twofish engine.
+
+
+ gSubKeys[] and gSBox[] are eventually used in the
+ encryption and decryption methods.
+
+
+ initialise a Twofish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+ encryptBlock uses the pre-calculated gSBox[] and subKey[]
+ arrays.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Use (12, 8) Reed-Solomon code over GF(256) to produce
+ a key S-box 32-bit entity from 2 key material 32-bit
+ entities.
+
+ @param k0 first 32-bit entity
+ @param k1 second 32-bit entity
+ @return Remainder polynomial Generated using RS code
+
+
+ * Reed-Solomon code parameters: (12,8) reversible code:
+ *
+ *
+ * G(x) = x^4 + (a+1/a)x^3 + ax^2 + (a+1/a)x + 1
+ *
+ * where a = primitive root of field generator 0x14D
+ *
+
+
+ initialise a VMPC cipher.
+
+ @param forEncryption
+ whether or not we are for encryption.
+ @param params
+ the parameters required to set up the cipher.
+ @exception ArgumentException
+ if the params argument is inappropriate.
+
+
+
+ Implementation of Daniel J. Bernstein's XSalsa20 stream cipher - Salsa20 with an extended nonce.
+
+
+ XSalsa20 requires a 256 bit key, and a 192 bit nonce.
+
+
+
+
+ XSalsa20 key generation: process 256 bit input key and 128 bits of the input nonce
+ using a core Salsa20 function without input addition to produce 256 bit working key
+ and use that with the remaining 64 bits of nonce to initialize a standard Salsa20 engine state.
+
+
+
+ An XTEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on ISO 18033/P1363a.
+
+
+ Construct a KDF Parameters generator.
+
+ @param counterStart value of counter.
+ @param digest the digest to be used as the source of derived keys.
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws ArgumentException if the size of the request will cause an overflow.
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Core of password hashing scheme Bcrypt,
+ designed by Niels Provos and David Mazières,
+ corresponds to the C reference implementation.
+
+ This implementation does not correspondent to the 1999 published paper
+ "A Future-Adaptable Password Scheme" of Niels Provos and David Mazières,
+ see: https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html.
+ In contrast to the paper, the order of key setup and salt setup is reversed:
+ state <- ExpandKey(state, 0, key)
+ state %lt;- ExpandKey(state, 0, salt)
+ This corresponds to the OpenBSD reference implementation of Bcrypt.
+
+ Note:
+ There is no successful cryptanalysis (status 2015), but
+ the amount of memory and the band width of Bcrypt
+ may be insufficient to effectively prevent attacks
+ with custom hardware like FPGAs, ASICs
+
+ This implementation uses some parts of Bouncy Castle's BlowfishEngine.
+
+
+
+ Derives a raw 192 bit Bcrypt key
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param psw the password
+ @return a 192 bit key
+
+
+ Size of the salt parameter in bytes
+
+
+ Minimum value of cost parameter, equal to log2(bytes of salt)
+
+
+ Maximum value of cost parameter (31 == 2,147,483,648)
+
+
+ Maximum size of password == max (unrestricted) size of Blowfish key
+
+
+ Calculates the bcrypt hash of a password.
+
+ This implements the raw bcrypt function as defined in the bcrypt specification, not
+ the crypt encoded version implemented in OpenBSD.
+
+ @param password the password bytes (up to 72 bytes) to use for this invocation.
+ @param salt the 128 bit salt to use for this invocation.
+ @param cost the bcrypt cost parameter. The cost of the bcrypt function grows as
+ 2^cost. Legal values are 4..31 inclusive.
+ @return the output of the raw bcrypt operation: a 192 bit (24 byte) hash.
+
+
+ initialise the key generator - if strength is set to zero
+ the key Generated will be 192 bits in size, otherwise
+ strength can be 128 or 192 (or 112 or 168 if you don't count
+ parity bits), depending on whether you wish to do 2-key or 3-key
+ triple DES.
+
+ @param param the parameters to be used for key generation
+
+
+ initialise the key generator - if strength is set to zero
+ the key generated will be 64 bits in size, otherwise
+ strength can be 64 or 56 bits (if you don't count the parity bits).
+
+ @param param the parameters to be used for key generation
+
+
+ a basic Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use with the basic algorithm for
+ Diffie-Hellman.
+
+
+ a Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use in the MTI/A0 key agreement protocol
+ as described in "Handbook of Applied Cryptography", Pages 516-519.
+
+
+ which Generates the p and g values from the given parameters,
+ returning the DHParameters object.
+
+ Note: can take a while...
+
+
+ a DSA key pair generator.
+
+ This Generates DSA keys in line with the method described
+ in FIPS 186-3 B.1 FFC Key Pair Generation.
+
+
+ Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3.
+
+
+ Initialise the generator
+ This form can only be used for older DSA (pre-DSA2) parameters
+ the size of keys in bits (from 512 up to 1024, and a multiple of 64)
+ measure of robustness of primes (at least 80 for FIPS 186-2 compliance)
+ the source of randomness to use
+
+
+ Initialise the generator for DSA 2
+ You must use this Init method if you need to generate parameters for DSA 2 keys
+ An instance of DsaParameterGenerationParameters used to configure this generator
+
+
+ Generates a set of DsaParameters
+ Can take a while...
+
+
+ generate suitable parameters for DSA, in line with
+ FIPS 186-3 A.1 Generation of the FFC Primes p and q.
+
+
+ Given the domain parameters this routine generates an EC key
+ pair in accordance with X9.62 section 5.2.1 pages 26, 27.
+
+
+ a ElGamal key pair generator.
+
+ This Generates keys consistent for use with ElGamal as described in
+ page 164 of "Handbook of Applied Cryptography".
+
+
+ * which Generates the p and g values from the given parameters,
+ * returning the ElGamalParameters object.
+ *
+ * Note: can take a while...
+ *
+
+
+ a GOST3410 key pair generator.
+ This generates GOST3410 keys in line with the method described
+ in GOST R 34.10-94.
+
+
+ generate suitable parameters for GOST3410.
+
+
+ initialise the key generator.
+
+ @param size size of the key
+ @param typeProcedure type procedure A,B = 1; A',B' - else
+ @param random random byte source.
+
+
+ Procedure C
+ procedure generates the a value from the given p,q,
+ returning the a value.
+
+
+ which generates the p , q and a values from the given parameters,
+ returning the Gost3410Parameters object.
+
+
+ HMAC-based Extract-and-Expand Key Derivation Function (HKDF) implemented
+ according to IETF RFC 5869, May 2010 as specified by H. Krawczyk, IBM
+ Research & P. Eronen, Nokia. It uses a HMac internally to compute de OKM
+ (output keying material) and is likely to have better security properties
+ than KDF's based on just a hash function.
+
+
+ Creates a HKDFBytesGenerator based on the given hash function.
+
+ @param hash the digest to be used as the source of generatedBytes bytes
+
+
+ Performs the extract part of the key derivation function.
+
+ @param salt the salt to use
+ @param ikm the input keying material
+ @return the PRK as KeyParameter
+
+
+ Performs the expand part of the key derivation function, using currentT
+ as input and output buffer.
+
+ @throws DataLengthException if the total number of bytes generated is larger than the one
+ specified by RFC 5869 (255 * HashLen)
+
+
+ KFD2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF1 byte generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ KDF2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF2 bytes generator. Generates key material
+ according to IEEE P1363 or ISO 18033 depending on the initialisation.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ Generator for MGF1 as defined in Pkcs 1v2
+
+
+ @param digest the digest to be used as the source of Generated bytes
+
+
+ return the underlying digest.
+
+
+ int to octet string.
+
+
+ fill len bytes of the output buffer with bytes Generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Key generation parameters for NaccacheStern cipher. For details on this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Generates a permuted ArrayList from the original one. The original List
+ is not modified
+
+ @param arr
+ the ArrayList to be permuted
+ @param rand
+ the source of Randomness for permutation
+ @return a new IList with the permuted elements.
+
+
+ Finds the first 'count' primes starting with 3
+
+ @param count
+ the number of primes to find
+ @return a vector containing the found primes as Integer
+
+
+ Password hashing scheme BCrypt,
+ designed by Niels Provos and David Mazières, using the
+ String format and the Base64 encoding
+ of the reference implementation on OpenBSD
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Checks if a password corresponds to a 60 character Bcrypt String
+
+ @param bcryptString a 60 character Bcrypt String, including
+ version, cost factor, salt and hash,
+ separated by '$'
+ @param password the password as an array of chars
+ @return true if the password corresponds to the
+ Bcrypt String, otherwise false
+
+
+ Generator for PBE derived keys and ivs as usd by OpenSSL.
+
+ The scheme is a simple extension of PKCS 5 V2.0 Scheme 1 using MD5 with an
+ iteration count of 1.
+
+
+
+ Construct a OpenSSL Parameters generator.
+
+
+ Initialise - note the iteration count for this algorithm is fixed at 1.
+
+ @param password password to use.
+ @param salt salt to use.
+
+
+ the derived key function, the ith hash of the password and the salt.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 12 V1.0.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs12 Page
+
+
+
+ Construct a Pkcs 12 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+ @exception ArgumentException if an unknown digest is passed in.
+
+
+ add a + b + 1, returning the result in a. The a value is treated
+ as a BigInteger of length (b.Length * 8) bits. The result is
+ modulo 2^b.Length in case of overflow.
+
+
+ generation of a derived key ala Pkcs12 V1.0.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 1.
+ Note this generator is limited to the size of the hash produced by the
+ digest used to drive it.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+
+ Construct a Pkcs 5 Scheme 1 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ the derived key function, the ith hash of the mPassword and the mSalt.
+
+
+ Generate a key parameter derived from the mPassword, mSalt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the mPassword, mSalt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the mPassword,
+ mSalt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 2.
+ This generator uses a SHA-1 HMac as the calculation function.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+ construct a Pkcs5 Scheme 2 Parameters generator.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+
+ Generates keys for the Poly1305 MAC.
+
+
+ Poly1305 keys are 256 bit keys consisting of a 128 bit secret key used for the underlying block
+ cipher followed by a 128 bit {@code r} value used for the polynomial portion of the Mac.
+ The {@code r} value has a specific format with some bits required to be cleared, resulting in an
+ effective 106 bit key.
+ A separately generated 256 bit key can be modified to fit the Poly1305 key format by using the
+ {@link #clamp(byte[])} method to clear the required bits.
+
+
+
+
+
+ Initialises the key generator.
+
+
+ Poly1305 keys are always 256 bits, so the key length in the provided parameters is ignored.
+
+
+
+
+ Generates a 256 bit key in the format required for Poly1305 - e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+
+
+
+ Modifies an existing 32 byte key value to comply with the requirements of the Poly1305 key by
+ clearing required bits in the r (second 16 bytes) portion of the key.
+ Specifically:
+
+ - r[3], r[7], r[11], r[15] have top four bits clear (i.e., are {0, 1, . . . , 15})
+ - r[4], r[8], r[12] have bottom two bits clear (i.e., are in {0, 4, 8, . . . , 252})
+
+
+ a 32 byte key value k[0] ... k[15], r[0] ... r[15]
+
+
+
+ Checks a 32 byte key for compliance with the Poly1305 key requirements, e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+ Key.
+ if the key is of the wrong length, or has invalid bits set
+ in the r portion of the key.
+
+
+ Generate a random factor suitable for use with RSA blind signatures
+ as outlined in Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475.
+
+
+ Initialise the factor generator
+
+ @param param the necessary RSA key parameters.
+
+
+ Generate a suitable blind factor for the public key the generator was initialised with.
+
+ @return a random blind factor
+
+
+ an RSA key pair generator.
+
+
+ Choose a random prime value for use with RSA
+ the bit-length of the returned prime
+ the RSA public exponent
+ a prime p, with (p-1) relatively prime to e
+
+
+ Implementation of the scrypt a password-based key derivation function.
+
+ Scrypt was created by Colin Percival and is specified in
+ draft-josefsson-scrypt-kd.
+
+
+
+ Generate a key using the scrypt key derivation function.
+ the bytes of the pass phrase.
+ the salt to use for this invocation.
+ CPU/Memory cost parameter. Must be larger than 1, a power of 2 and less than
+ 2^(128 * r / 8).
+ the block size, must be >= 1.
+ Parallelization parameter. Must be a positive integer less than or equal to
+ Int32.MaxValue / (128 * r * 8).
+ the length of the key to generate.
+ the generated key.
+
+
+ Base interface for a public/private key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The maximum size, in bytes, an input block may be.
+
+
+ The maximum size, in bytes, an output block will be.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The length of the input block.
+ Input decrypts improperly.
+ Input is too large for the cipher.
+
+
+ interface that a public/private key pair generator should conform to.
+
+
+ intialise the key pair generator.
+
+ @param the parameters the key pair is to be initialised with.
+
+
+ return an AsymmetricCipherKeyPair containing the Generated keys.
+
+ @return an AsymmetricCipherKeyPair containing the Generated keys.
+
+
+ The basic interface that basic Diffie-Hellman implementations
+ conforms to.
+
+
+ initialise the agreement engine.
+
+
+ return the field size for the agreement algorithm in bytes.
+
+
+ given a public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Base interface for a symmetric key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Indicates whether this cipher can handle partial blocks.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The output buffer.
+ The offset into outBuf to write the output block.
+ If input block is wrong size, or outBuf too small.
+ The number of bytes processed and produced.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to a single block return an object
+ of this type.
+
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ Block cipher engines are expected to conform to this interface.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+
+
+ Reset the cipher. After resetting the cipher is in the same state
+ as it was after the last init (if there was one).
+
+
+
+ all parameter classes implement this.
+
+
+ base interface for general purpose byte derivation functions.
+
+
+ return the message digest used as the basis for the function
+
+
+ Parameters for key/byte stream derivation classes
+
+
+ interface that a message digest conforms to.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ return the size, in bytes, of the internal buffer used by this digest.
+
+ @return the size, in bytes, of the internal buffer used by this digest.
+
+
+ update the message digest with a single byte.
+
+ @param inByte the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param input the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param output the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ interface for classes implementing the Digital Signature Algorithm
+
+
+ initialise the signer for signature generation or signature
+ verification.
+
+ @param forSigning true if we are generating a signature, false
+ otherwise.
+ @param param key parameters for signature generation.
+
+
+ sign the passed in message (usually the output of a hash function).
+
+ @param message the message to be signed.
+ @return two big integers representing the r and s values respectively.
+
+
+ verify the message message against the signature values r and s.
+
+ @param message the message that was supposed to have been signed.
+ @param r the r signature value.
+ @param s the s signature value.
+
+
+
+ Base interface describing an entropy source for a DRBG.
+
+
+
+
+ Return whether or not this entropy source is regarded as prediction resistant.
+
+ true if this instance is prediction resistant; otherwise, false.
+
+
+
+ Return a byte array of entropy.
+
+ The entropy bytes.
+
+
+
+ Return the number of bits of entropy this source can produce.
+
+ The size, in bits, of the return value of getEntropy.
+
+
+
+ Base interface describing a provider of entropy sources.
+
+
+
+
+ Return an entropy source providing a block of entropy.
+
+ The size of the block of entropy required.
+ An entropy source providing bitsRequired blocks of entropy.
+
+
+ The base interface for implementations of message authentication codes (MACs).
+
+
+ Initialise the MAC.
+
+ @param param the key and other data required by the MAC.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Return the name of the algorithm the MAC implements.
+
+ @return the name of the algorithm the MAC implements.
+
+
+ Return the block size for this MAC (in bytes).
+
+ @return the block size for this MAC in bytes.
+
+
+ add a single byte to the mac for processing.
+
+ @param in the byte to be processed.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ @param in the array containing the input.
+ @param inOff the index in the array the data begins at.
+ @param len the length of the input starting at inOff.
+ @exception InvalidOperationException if the MAC is not initialised.
+ @exception DataLengthException if there isn't enough data in in.
+
+
+ Compute the final stage of the MAC writing the output to the out
+ parameter.
+
+ doFinal leaves the MAC in the same state it was after the last init.
+
+ @param out the array the MAC is to be output to.
+ @param outOff the offset into the out buffer the output is to start at.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ Reset the MAC. At the end of resetting the MAC should be in the
+ in the same state it was after the last init (if there was one).
+
+
+ this exception is thrown whenever we find something we don't expect in a
+ message.
+
+
+ base constructor.
+
+
+ create a InvalidCipherTextException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Base interface for operators that serve as stream-based signature calculators.
+
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ Return the name of the algorithm the signer implements.
+
+ @return the name of the algorithm the signer implements.
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ reset the internal state
+
+
+ Signer with message recovery.
+
+
+ Returns true if the signer has recovered the full message as
+ part of signature verification.
+
+ @return true if full message recovered.
+
+
+ Returns a reference to what message was recovered (if any).
+
+ @return full/partial message, null if nothing.
+
+
+ Perform an update with the recovered message before adding any other data. This must
+ be the first update method called, and calling it will result in the signer assuming
+ that further calls to update will include message content past what is recoverable.
+
+ @param signature the signature that we are in the process of verifying.
+ @throws IllegalStateException
+
+
+
+ Base interface for cryptographic operations such as Hashes, MACs, and Signatures which reduce a stream of data
+ to a single value.
+
+
+
+ Return a "sink" stream which only exists to update the implementing object.
+ A stream to write to in order to update the implementing object.
+
+
+
+ Return the result of processing the stream. This value is only available once the stream
+ has been closed.
+
+ The result of processing the stream.
+
+
+ The interface stream ciphers conform to.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+ If the parameters argument is inappropriate.
+
+
+
+ encrypt/decrypt a single byte returning the result.
+ the byte to be processed.
+ the result of processing the input byte.
+
+
+
+ Process a block of bytes from input putting the result into output.
+
+ The input byte array.
+
+ The offset into input where the data to be processed starts.
+
+ The number of bytes to be processed.
+ The output buffer the processed bytes go into.
+
+ The offset into output the processed data starts at.
+
+ If the output buffer is too small.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to the validation of a signature produce this type.
+
+
+
+
+ Return true if the passed in data matches what is expected by the verification result.
+
+ The bytes representing the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Return true if the length bytes from off in the source array match the signature
+ expected by the verification result.
+
+ Byte array containing the signature.
+ The offset into the source array where the signature starts.
+ The number of bytes in source making up the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Base interface for operators that serve as stream-based signature verifiers.
+
+
+
+ The algorithm details object for this verifier.
+
+
+
+ Create a stream calculator for this verifier. The stream
+ calculator is used for the actual operation of entering the data to be verified
+ and producing a result which can be used to verify the original signature.
+
+ A calculator producing an IVerifier which can verify the signature.
+
+
+
+ Base interface for a provider to support the dynamic creation of signature verifiers.
+
+
+
+
+ Return a signature verfier for signature algorithm described in the passed in algorithm details object.
+
+ The details of the signature algorithm verification is required for.
+ A new signature verifier.
+
+
+ The name of the algorithm this cipher implements.
+
+
+
+ With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.
+ This interface provides the extra method required to support variable output on a digest implementation.
+
+
+
+
+ Output the results of the final calculation for this digest to outLen number of bytes.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+
+ Start outputting the results of the final calculation for this digest. Unlike DoFinal, this method
+ will continue producing output until the Xof is explicitly reset, or signals otherwise.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+ The base class for parameters to key generators.
+
+
+ initialise the generator with a source of randomness
+ and a strength (in bits).
+
+ @param random the random byte source.
+ @param strength the size, in bits, of the keys we want to produce.
+
+
+ return the random source associated with this
+ generator.
+
+ @return the generators random source.
+
+
+ return the bit strength for keys produced by this generator,
+
+ @return the strength of the keys this generator produces (in bits).
+
+
+ standard CBC Block Cipher MAC - if no padding is specified the default of
+ pad of zeroes is used.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding a padding to be used.
+
+
+ Reset the mac generator.
+
+
+ CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
+
+ CMAC is analogous to OMAC1 - see also en.wikipedia.org/wiki/CMAC
+
+ CMAC is a NIST recomendation - see
+ csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38B.pdf
+
+ CMAC/OMAC1 is a blockcipher-based message authentication code designed and
+ analyzed by Tetsu Iwata and Kaoru Kurosawa.
+
+ CMAC/OMAC1 is a simple variant of the CBC MAC (Cipher Block Chaining Message
+ Authentication Code). OMAC stands for One-Key CBC MAC.
+
+ It supports 128- or 64-bits block ciphers, with any key size, and returns
+ a MAC with dimension less or equal to the block size of the underlying
+ cipher.
+
+
+
+ create a standard MAC based on a CBC block cipher (64 or 128 bit block).
+ This will produce an authentication code the length of the block size
+ of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8 and @lt;= 128.
+
+
+ Reset the mac generator.
+
+
+
+ Implementation of DSTU7564 mac mode
+
+
+
+ implementation of DSTU 7624 MAC
+
+
+
+ The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication
+ 800-38D.
+
+
+ GMac is an invocation of the GCM mode where no data is encrypted (i.e. all input data to the Mac
+ is processed as additional authenticated data with the underlying GCM block cipher).
+
+
+
+
+ Creates a GMAC based on the operation of a block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+
+
+
+ Creates a GMAC based on the operation of a 128 bit block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+ the mac size to generate, in bits. Must be a multiple of 8, between 32 and 128 (inclusive).
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ Initialises the GMAC - requires a
+ providing a and a nonce.
+
+
+
+ implementation of GOST 28147-89 MAC
+
+
+ HMAC implementation based on RFC2104
+
+ H(K XOR opad, H(K XOR ipad, text))
+
+
+ Reset the mac generator.
+
+
+ DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC)
+
+ This could as well be derived from CBCBlockCipherMac, but then the property mac in the base
+ class must be changed to protected
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation. This must
+ be DESEngine.
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a Retail-MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation. The final block is decrypted and then encrypted using the
+ middle and right part of the key.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+
+ Poly1305 message authentication code, designed by D. J. Bernstein.
+
+
+ Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key
+ consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106
+ effective key bits) used in the authenticator.
+
+ The polynomial calculation in this implementation is adapted from the public domain poly1305-donna-unrolled C implementation
+ by Andrew M (@floodyberry).
+
+
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Current block of buffered input
+
+
+ Current offset in input buffer
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Constructs a Poly1305 MAC, where the key passed to init() will be used directly.
+
+
+ Constructs a Poly1305 MAC, using a 128 bit block cipher.
+
+
+
+ Initialises the Poly1305 MAC.
+
+ a {@link ParametersWithIV} containing a 128 bit nonce and a {@link KeyParameter} with
+ a 256 bit key complying to the {@link Poly1305KeyGenerator Poly1305 key format}.
+
+
+
+ Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe
+ Aumasson and Daniel J. Bernstein (https://131002.net/siphash/siphash.pdf).
+
+
+ "SipHash is a family of PRFs SipHash-c-d where the integer parameters c and d are the number of
+ compression rounds and the number of finalization rounds. A compression round is identical to a
+ finalization round and this round function is called SipRound. Given a 128-bit key k and a
+ (possibly empty) byte string m, SipHash-c-d returns a 64-bit value..."
+
+
+
+ SipHash-2-4
+
+
+ SipHash-c-d
+ the number of compression rounds
+ the number of finalization rounds
+
+
+
+ Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein MAC with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/MAC size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ This exception is thrown whenever a cipher requires a change of key, iv
+ or similar after x amount of bytes enciphered
+
+
+
+ implements Cipher-Block-Chaining (CBC) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of chaining.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CBC".
+
+
+ return the block size of the underlying cipher.
+
+ @return the block size of the underlying cipher.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Do the appropriate chaining step for CBC mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate chaining step for CBC mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the decrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Counter with Cipher Block Chaining mode (CCM) detailed in
+ NIST Special Publication 800-38C.
+
+ Note: this mode is a packet mode - it needs all the data up front.
+
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Returns a byte array containing the mac calculated as part of the
+ last encrypt or decrypt operation.
+
+ @return the last mac calculated.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @return a byte array containing the processed input..
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @param output output array.
+ @param outOff offset into output array to start putting processed bytes.
+ @return the number of bytes added to output.
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+ @throws DataLengthException if output buffer too short.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ A Cipher Text Stealing (CTS) mode cipher. CTS allows block ciphers to
+ be used to produce cipher text which is the same outLength as the plain text.
+
+
+ Create a buffered block cipher that uses Cipher Text Stealing
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ return the size of the output buffer required for an update of 'length' bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update
+ with length bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of length bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with length bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param length the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if cipher text decrypts wrongly (in
+ case the exception will never Get thrown).
+
+
+ A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and
+ Efficiency - by M. Bellare, P. Rogaway, D. Wagner.
+
+ http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf
+
+ EAX is an AEAD scheme based on CTR and OMAC1/CMAC, that uses a single block
+ cipher to encrypt and authenticate data. It's on-line (the length of a
+ message isn't needed to begin processing it), has good performances, it's
+ simple and provably secure (provided the underlying block cipher is secure).
+
+ Of course, this implementations is NOT thread-safe.
+
+
+ Constructor that accepts an instance of a block cipher engine.
+
+ @param cipher the engine to use
+
+
+
+ Implements the Galois/Counter mode (GCM) detailed in
+ NIST Special Publication 800-38D.
+
+
+
+
+ MAC sizes from 32 bits to 128 bits (must be a multiple of 8) are supported. The default is 128 bits.
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ implements the GOST 28147 OFB counter mode (GCTR).
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ counter mode (must have a 64 bit block size).
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param encrypting if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/GCTR"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+
+ A block cipher mode that includes authenticated encryption with a streaming mode
+ and optional associated data.
+
+
+
+ The name of the algorithm this cipher implements.
+
+
+ The block cipher underlying this algorithm.
+
+
+ Initialise the cipher.
+ Parameter can either be an AeadParameters or a ParametersWithIV object.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Add a single byte to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The byte to be processed.
+
+
+ Add a sequence of bytes to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The input byte array.
+ The offset into the input array where the data to be processed starts.
+ The number of bytes to be processed.
+
+
+ Encrypt/decrypt a single byte.
+
+ @param input the byte to be processed.
+ @param outBytes the output buffer the processed byte goes into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Process a block of bytes from in putting the result into out.
+
+ @param inBytes the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param outBytes the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Finish the operation either appending or verifying the MAC at the end of the data.
+
+ @param outBytes space for any resulting output data.
+ @param outOff offset into out to start copying the data at.
+ @return number of bytes written into out.
+ @throws InvalidOperationException if the cipher is in an inappropriate state.
+ @throws InvalidCipherTextException if the MAC fails to match.
+
+
+ Return the value of the MAC associated with the last stream processed.
+
+ @return MAC for plaintext data.
+
+
+ Return the size of the output buffer required for a ProcessBytes
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes
+ with len bytes of input.
+
+
+ Return the size of the output buffer required for a ProcessBytes plus a
+ DoFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes and DoFinal
+ with len bytes of input.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Base constructor. Nb value is set to 4.
+
+ base cipher to use under CCM.
+
+
+
+ Constructor allowing Nb configuration.
+
+ Nb is a parameter specified in CCM mode of DSTU7624 standard.
+ This parameter specifies maximum possible length of input.It should
+ be calculated as follows: Nb = 1 / 8 * (-3 + log[2]Nmax) + 1,
+ where Nmax - length of input message in bits.For practical reasons
+ Nmax usually less than 4Gb, e.g. for Nmax = 2^32 - 1, Nb = 4.
+
+ base cipher to use under CCM.
+ Nb value to use.
+
+
+ Implements a Gamming or Counter (CTR) mode on top of a DSTU 7624 block cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/KCTR"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ An implementation of RFC 7253 on The OCB
+ Authenticated-Encryption Algorithm, licensed per:
+
+ License for
+ Open-Source Software Implementations of OCB (Jan 9, 2013) - 'License 1'
+ Under this license, you are authorized to make, use, and distribute open-source software
+ implementations of OCB. This license terminates for you if you sue someone over their open-source
+ software implementation of OCB claiming that you have a patent covering their implementation.
+
+ This is a non-binding summary of a legal document (the link above). The parameters of the license
+ are specified in the license document and that document is controlling.
+
+
+ implements a Output-FeedBack (OFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/OFB"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ * Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode
+ * on top of a simple cipher. This class assumes the IV has been prepended
+ * to the data stream already, and just accomodates the reset after
+ * (blockSize + 2) bytes have been read.
+ *
+ * For further info see RFC 2440.
+ *
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/PGPCFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt one byte of data according to CFB mode.
+ @param data the byte to encrypt
+ @param blockOff offset in the current block
+ @returns the encrypted byte
+
+
+ Do the appropriate processing for CFB IV mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB IV mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Segmented Integer Counter (SIC) mode on top of a simple
+ block cipher.
+
+
+ Basic constructor.
+
+ @param c the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Calculator factory class for signature generation in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+
+
+
+ Constructor which also specifies a source of randomness to be used if one is required.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+ The source of randomness to be used in signature calculation.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+
+ Verifier class for signature verification in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The public key to be used in the verification operation.
+
+
+
+ Provider class which supports dynamic creation of signature verifiers.
+
+
+
+
+ Base constructor - specify the public key to be used in verification.
+
+ The public key to be used in creating verifiers provided by this object.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+ Block cipher padders are expected to conform to this interface
+
+
+ Initialise the padder.
+
+ @param param parameters, if any required.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+ @exception InvalidCipherTextException if the padding is badly formed
+ or invalid.
+
+
+ A padder that adds ISO10126-2 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds the padding according to the scheme referenced in
+ ISO 7814-4 - scheme 2 from ISO 9797-1. The first byte is 0x80, rest is 0x00
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the padder implements.
+
+ @return the name of the algorithm the padder implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion with padding. The PaddedBufferedBlockCipher
+ outputs a block only when the buffer is full and more data is being added,
+ or on a doFinal (unless the current block in the buffer is a pad block).
+ The default padding mechanism used is the one outlined in Pkcs5/Pkcs7.
+
+
+ Create a buffered block cipher with the desired padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ @param padding the padding type.
+
+
+ Create a buffered block cipher Pkcs7 padding
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the minimum size of the output buffer required for an update
+ plus a doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer. If the buffer is currently
+ full and padding needs to be added a call to doFinal will produce
+ 2 * GetBlockSize() bytes.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output or we are decrypting and the input is not block size aligned.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+
+
+ A padder that adds Pkcs7/Pkcs5 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Trailing-Bit-Compliment padding to a block.
+
+ This padding pads the block out compliment of the last bit
+ of the plain text.
+
+
+
+
+ Return the name of the algorithm the cipher implements.
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+ Note: this assumes that the last block of plain text is always
+ passed to it inside in. i.e. if inOff is zero, indicating the
+ entire block is to be overwritten with padding the value of in
+ should be the same as the last block of plain text.
+
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds X9.23 padding to a block - if a SecureRandom is
+ passed in random padding is assumed, otherwise padding with zeros is used.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if one is available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Null byte padding to a block.
+
+
+ Return the name of the algorithm the cipher implements.
+
+
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+
+
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+ @param length number of bytes making up the key
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2/3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ DES has 16 weak keys. This method will check
+ if the given DES key material is weak or semi-weak.
+ Key material that is too short is regarded as weak.
+
+ See "Applied
+ Cryptography" by Bruce Schneier for more information.
+
+ @return true if the given DES key material is weak or semi-weak,
+ false otherwise.
+
+
+ DES Keys use the LSB as the odd parity bit. This can
+ be used to check for corrupt keys.
+
+ @param bytes the byte array to set the parity on.
+
+
+ The minimum bitlength of the private value.
+
+
+ The bitlength of the private value.
+
+
+ Construct without a usage index, this will do a random construction of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+
+
+ Construct for a specific usage index - this has the effect of using verifiable canonical generation of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+ @param usageIndex a valid usage index.
+
+
+ return the generator - g
+
+
+ return private value limit - l
+
+
+ Parameter class for the HkdfBytesGenerator class.
+
+
+ Generates parameters for HKDF, specifying both the optional salt and
+ optional info. Step 1: Extract won't be skipped.
+
+ @param ikm the input keying material or seed
+ @param salt the salt to use, may be null for a salt for hashLen zeros
+ @param info the info to use, may be null for an info field of zero bytes
+
+
+ Factory method that makes the HKDF skip the extract part of the key
+ derivation function.
+
+ @param ikm the input keying material or seed, directly used for step 2:
+ Expand
+ @param info the info to use, may be null for an info field of zero bytes
+ @return HKDFParameters that makes the implementation skip step 1
+
+
+ Returns the input keying material or seed.
+
+ @return the keying material
+
+
+ Returns if step 1: extract has to be skipped or not
+
+ @return true for skipping, false for no skipping of step 1
+
+
+ Returns the salt, or null if the salt should be generated as a byte array
+ of HashLen zeros.
+
+ @return the salt, or null
+
+
+ Returns the info field, which may be empty (null is converted to empty).
+
+ @return the info field, never null
+
+
+ parameters for using an integrated cipher in stream mode.
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+ @param cipherKeySize the size of the associated Cipher key (in bits).
+
+
+ parameters for Key derivation functions for ISO-18033
+
+
+ parameters for Key derivation functions for IEEE P1363a
+
+
+ Parameters for mask derivation functions.
+
+
+ Parameters for NaccacheStern public private key generation. For details on
+ this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Parameters for generating a NaccacheStern KeyPair.
+
+ @param random
+ The source of randomness
+ @param strength
+ The desired strength of the Key in Bits
+ @param certainty
+ the probability that the generated primes are not really prime
+ as integer: 2^(-certainty) is then the probability
+ @param countSmallPrimes
+ How many small key factors are desired
+
+
+ * Parameters for a NaccacheStern KeyPair.
+ *
+ * @param random
+ * The source of randomness
+ * @param strength
+ * The desired strength of the Key in Bits
+ * @param certainty
+ * the probability that the generated primes are not really prime
+ * as integer: 2^(-certainty) is then the probability
+ * @param cntSmallPrimes
+ * How many small key factors are desired
+ * @param debug
+ * Ignored
+
+
+ @return Returns the certainty.
+
+
+ @return Returns the countSmallPrimes.
+
+
+ Public key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ @param privateKey
+
+
+ @return Returns the g.
+
+
+ @return Returns the lowerSigmaBound.
+
+
+ @return Returns the n.
+
+
+ Private key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Constructs a NaccacheSternPrivateKey
+
+ @param g
+ the public enryption parameter g
+ @param n
+ the public modulus n = p*q
+ @param lowerSigmaBound
+ the public lower sigma bound up to which data can be encrypted
+ @param smallPrimes
+ the small primes, of which sigma is constructed in the right
+ order
+ @param phi_n
+ the private modulus phi(n) = (p-1)(q-1)
+
+
+ Cipher parameters with a fixed salt value associated with them.
+
+
+
+ Parameters for the Skein hash function - a series of byte[] strings identified by integer tags.
+
+
+ Parameterised Skein can be used for:
+
+ - MAC generation, by providing a key.
+ - Randomised hashing, by providing a nonce.
+ - A hash function for digital signatures, associating a
+ public key with the message digest.
+ - A key derivation function, by providing a
+ key identifier.
+ - Personalised hashing, by providing a
+ recommended format or
+ arbitrary personalisation string.
+
+
+
+
+
+
+
+
+ The parameter type for a secret key, supporting MAC or KDF functions: 0
+
+
+
+
+ The parameter type for the Skein configuration block: 4
+
+
+
+
+ The parameter type for a personalisation string: 8
+
+
+
+
+ The parameter type for a public key: 12
+
+
+
+
+ The parameter type for a key identifier string: 16
+
+
+
+
+ The parameter type for a nonce: 20
+
+
+
+
+ The parameter type for the message: 48
+
+
+
+
+ The parameter type for the output transformation: 63
+
+
+
+
+ Obtains a map of type (int) to value (byte[]) for the parameters tracked in this object.
+
+
+
+
+ Obtains the value of the key parameter, or null if not
+ set.
+
+ The key.
+
+
+
+ Obtains the value of the personalisation parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the public key parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the key identifier parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the nonce parameter, or null if
+ not set.
+
+
+
+
+ A builder for .
+
+
+
+
+ Sets a parameters to apply to the Skein hash function.
+
+
+ Parameter types must be in the range 0,5..62, and cannot use the value 48
+ (reserved for message body).
+
+ Parameters with type < 48 are processed before
+ the message content, parameters with type > 48
+ are processed after the message and prior to output.
+
+ the type of the parameter, in the range 5..62.
+ the byte sequence of the parameter.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Implements the recommended personalisation format for Skein defined in Section 4.11 of
+ the Skein 1.3 specification.
+
+
+ The format is YYYYMMDD email@address distinguisher, encoded to a byte
+ sequence using UTF-8 encoding.
+
+ the date the personalised application of the Skein was defined.
+ the email address of the creation of the personalised application.
+ an arbitrary personalisation string distinguishing the application.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Constructs a new instance with the parameters provided to this
+ builder.
+
+
+
+ Private parameters for an SM2 key exchange.
+ The ephemeralPrivateKey is used to calculate the random point used in the algorithm.
+
+
+ Public parameters for an SM2 key exchange.
+ In this case the ephemeralPublicKey provides the random point used in the algorithm.
+
+
+
+ Parameters for tweakable block ciphers.
+
+
+
+
+ Gets the key.
+
+ the key to use, or null to use the current key.
+
+
+
+ Gets the tweak value.
+
+ The tweak to use, or null to use the current tweak.
+
+
+ super class for all Password Based Encyrption (Pbe) parameter generator classes.
+
+
+ base constructor.
+
+
+ initialise the Pbe generator.
+
+ @param password the password converted into bytes (see below).
+ @param salt the salt to be mixed with the password.
+ @param iterationCount the number of iterations the "mixing" function
+ is to be applied for.
+
+
+ return the password byte array.
+
+ @return the password byte array.
+
+
+ return the salt byte array.
+
+ @return the salt byte array.
+
+
+ return the iteration count.
+
+ @return the iteration count.
+
+
+ Generate derived parameters for a key of length keySize.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ Generate derived parameters for a key of length keySize, and
+ an initialisation vector (IV) of length ivSize.
+
+ @param keySize the length, in bits, of the key required.
+ @param ivSize the length, in bits, of the iv required.
+ @return a parameters object representing a key and an IV.
+
+
+ Generate derived parameters for a key of length keySize, specifically
+ for use with a MAC.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs5 (ascii, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ PKCS5 (UTF-8, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs12 (unicode, big endian, 2 zero pad bytes at the end).
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ An EntropySourceProvider where entropy generation is based on a SecureRandom output using SecureRandom.generateSeed().
+
+
+ Create a entropy source provider based on the passed in SecureRandom.
+
+ @param secureRandom the SecureRandom to base EntropySource construction on.
+ @param isPredictionResistant boolean indicating if the SecureRandom is based on prediction resistant entropy or not (true if it is).
+
+
+ Return an entropy source that will create bitsRequired bits of entropy on
+ each invocation of getEntropy().
+
+ @param bitsRequired size (in bits) of entropy to be created by the provided source.
+ @return an EntropySource that generates bitsRequired bits of entropy on each call to its getEntropy() method.
+
+
+
+ Uses RandomNumberGenerator.Create() to get randomness generator
+
+
+
+ Random generation based on the digest with counter. Calling AddSeedMaterial will
+ always increase the entropy of the hash.
+
+ Internal access to the digest is synchronized so a single one of these can be shared.
+
+
+
+ A SP800-90A CTR DRBG.
+
+
+ Construct a SP800-90A CTR DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param engine underlying block cipher to use to support DRBG
+ @param keySizeInBits size of the key to use with the block cipher.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Pad out a key for TDEA, setting odd parity for each byte.
+
+ @param keyMaster
+ @param keyOff
+ @param tmp
+ @param tmpOff
+
+
+ Used by both Dual EC and Hash.
+
+
+ A SP800-90A Hash DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param digest source digest to use for DRB stream.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ A SP800-90A HMAC DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param hMac Hash MAC to base the DRBG on.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Interface to SP800-90A deterministic random bit generators.
+
+
+ Return the block size of the DRBG.
+
+ @return the block size (in bits) produced by each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Generate numBytes worth of entropy from the passed in entropy source.
+
+ @param entropySource the entropy source to request the data from.
+ @param numBytes the number of bytes of entropy requested.
+ @return a byte array populated with the random data.
+
+
+ Generic interface for objects generating random bytes.
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+
+ Takes bytes generated by an underling RandomGenerator and reverses the order in
+ each small window (of configurable size).
+
+ Access to internals is synchronized so a single one of these can be shared.
+
+
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+ Force a reseed of the DRBG.
+ optional additional input
+
+
+ Builder class for making SecureRandom objects based on SP 800-90A Deterministic Random Bit Generators (DRBG).
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Set the personalization string for DRBG SecureRandoms created by this builder
+ @param personalizationString the personalisation string for the underlying DRBG.
+ @return the current builder.
+
+
+ Set the security strength required for DRBGs used in building SecureRandom objects.
+
+ @param securityStrength the security strength (in bits)
+ @return the current builder.
+
+
+ Set the amount of entropy bits required for seeding and reseeding DRBGs used in building SecureRandom objects.
+
+ @param entropyBitsRequired the number of bits of entropy to be requested from the entropy source on each seed/reseed.
+ @return the current builder.
+
+
+ Build a SecureRandom based on a SP 800-90A Hash DRBG.
+
+ @param digest digest algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a Hash DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A CTR DRBG.
+
+ @param cipher the block cipher to base the DRBG on.
+ @param keySizeInBits key size in bits to be used with the block cipher.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a CTR DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A HMAC DRBG.
+
+ @param hMac HMAC algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a HMAC DRBG.
+
+
+ A thread based seed generator - one source of randomness.
+
+ Based on an idea from Marcus Lippert.
+
+
+
+ Generate seed bytes. Set fast to false for best quality.
+
+ If fast is set to true, the code should be round about 8 times faster when
+ generating a long sequence of random bytes. 20 bytes of random values using
+ the fast mode take less than half a second on a Nokia e70. If fast is set to false,
+ it takes round about 2500 ms.
+
+ @param numBytes the number of bytes to generate
+ @param fast true if fast mode should be used
+
+
+
+ Permutation generated by code:
+
+ // First 1850 fractional digit of Pi number.
+ byte[] key = new BigInteger("14159265358979323846...5068006422512520511").ToByteArray();
+ s = 0;
+ P = new byte[256];
+ for (int i = 0; i < 256; i++)
+ {
+ P[i] = (byte) i;
+ }
+ for (int m = 0; m < 768; m++)
+ {
+ s = P[(s + P[m & 0xff] + key[m % key.length]) & 0xff];
+ byte temp = P[m & 0xff];
+ P[m & 0xff] = P[s & 0xff];
+ P[s & 0xff] = temp;
+ }
+
+
+
+ Value generated in the same way as P.
+
+
+
+ @param engine
+ @param entropySource
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the RNG.
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Construct a X9.31 secure random generator using the passed in engine and key. If predictionResistant is true the
+ generator will be reseeded on each request.
+
+ @param engine a block cipher to use as the operator.
+ @param key the block cipher key to initialise engine with.
+ @param predictionResistant true if engine to be reseeded on each use, false otherwise.
+ @return a SecureRandom.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ The Digital Signature Algorithm - as described in "Handbook of Applied
+ Cryptography", pages 452 - 453.
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message for standard DSA the message should be a
+ SHA-1 hash of the real message to be verified.
+
+
+ EC-DSA as described in X9.62
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message (for standard DSA the message should be
+ a SHA-1 hash of the real message to be verified).
+
+
+ GOST R 34.10-2001 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional GOST3410 the message should be a GOST3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a GOST3410 signature for
+ the passed in message (for standard GOST3410 the message should be
+ a GOST3411 hash of the real message to be verified).
+
+
+ EC-NR as described in IEEE 1363-2000
+
+
+ generate a signature for the given message using the key we were
+ initialised with. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR it *must* be at least as long.
+
+ @param digest the digest to be signed.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ return true if the value r and s represent a signature for the
+ message passed in. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR, it *must* be at least as long. But just in case the signer
+ applied mod(n) to the longer digest, this implementation will
+ apply mod(n) during verification.
+
+ @param digest the digest to be verified.
+ @param r the r value of the signature.
+ @param s the s value of the signature.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ initialise the signer for signing or verification.
+
+ @param forSigning
+ true if for signing, false otherwise
+ @param parameters
+ necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using the key
+ we were initialised with.
+
+
+ return true if the internal state represents the signature described in
+ the passed in array.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ Gost R 34.10-94 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional Gost3410 the message should be a Gost3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a Gost3410 signature for
+ the passed in message for standard Gost3410 the message should be a
+ Gost3411 hash of the real message to be verified.
+
+
+ A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979.
+
+
+ Base constructor.
+
+ @param digest digest to build the HMAC on.
+
+
+ Interface define calculators of K values for DSA/ECDSA.
+
+
+ Return true if this calculator is deterministic, false otherwise.
+
+ @return true if deterministic, otherwise false.
+
+
+ Non-deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param random a source of randomness.
+
+
+ Deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param d the DSA private value.
+ @param message the message being signed.
+
+
+ Return the next valid value of K.
+
+ @return a K value.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
+
+ Note: the usual length for the salt is the length of the hash
+ function used in bytes.
+
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ length of salt in bytes.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+ length of salt in bytes.
+
+
+
+ Initialise the signer.
+ true if for signing, false if for verification.
+ parameters for signature generation/verification. If the
+ parameters are for generation they should be a ParametersWithRandom,
+ a ParametersWithSalt, or just an RsaKeyParameters object. If RsaKeyParameters
+ are passed in a SecureRandom will be created.
+
+ if wrong parameter type or a fixed
+ salt is passed in which is the wrong length.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise, or if not sure.
+
+
+
+ int to octet string.
+ int to octet string.
+
+
+ long to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 1)
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise.
+
+
+
+ RSA-PSS as described in Pkcs# 1 v 2.1.
+
+ Note: the usual value for the salt length is the number of
+ bytes in the hash function.
+
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the length of the salt to use (in bytes).
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the fixed salt to be used.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+
+ int to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+
+ Load oid table.
+
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ The SM2 Digital Signature algorithm.
+
+
+ X9.31-1998 - signing using a hash.
+
+ The message digest hash, H, is encapsulated to form a byte string as follows
+
+
+ EB = 06 || PS || 0xBA || H || TRAILER
+
+ where PS is a string of bytes all of value 0xBB of length such that |EB|=|n|, and TRAILER is the ISO/IEC 10118 part number†for the digest. The byte string, EB, is converted to an integer value, the message representative, f.
+
+
+ Generate a signer with either implicit or explicit trailers for X9.31.
+
+ @param cipher base cipher to use for signature creation/verification
+ @param digest digest to use.
+ @param implicit whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+ @param cipher cipher to use.
+ @param digest digest to sign with.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+ a wrapper for block ciphers with a single byte block size, so that they
+ can be treated like stream ciphers.
+
+
+ basic constructor.
+
+ @param cipher the block cipher to be wrapped.
+ @exception ArgumentException if the cipher has a block size other than
+ one.
+
+
+ initialise the underlying cipher.
+
+ @param forEncryption true if we are setting up for encryption, false otherwise.
+ @param param the necessary parameters for the underlying cipher to be initialised.
+
+
+ return the name of the algorithm we are wrapping.
+
+ @return the name of the algorithm we are wrapping.
+
+
+ encrypt/decrypt a single byte returning the result.
+
+ @param in the byte to be processed.
+ @return the result of processing the input byte.
+
+
+ process a block of bytes from in putting the result into out.
+
+ @param in the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param out the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data stars at.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ reset the underlying cipher. This leaves it in the same state
+ it was at after the last init (if there was one).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.2
+
+
+
+ This message notifies the recipient that the sender will not send any more messages on this
+ connection. Note that as of TLS 1.1, failure to properly close a connection no longer
+ requires that a session not be resumed. This is a change from TLS 1.0 ("The session becomes
+ unresumable if any connection is terminated without proper close_notify messages with level
+ equal to warning.") to conform with widespread implementation practice.
+
+
+ An inappropriate message was received. This alert is always fatal and should never be
+ observed in communication between proper implementations.
+
+
+ This alert is returned if a record is received with an incorrect MAC. This alert also MUST be
+ returned if an alert is sent because a TLSCiphertext decrypted in an invalid way: either it
+ wasn't an even multiple of the block length, or its padding values, when checked, weren't
+ correct. This message is always fatal and should never be observed in communication between
+ proper implementations (except when messages were corrupted in the network).
+
+
+ This alert was used in some earlier versions of TLS, and may have permitted certain attacks
+ against the CBC mode [CBCATT]. It MUST NOT be sent by compliant implementations.
+
+
+ A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record
+ decrypted to a TLSCompressed record with more than 2^14+1024 bytes. This message is always
+ fatal and should never be observed in communication between proper implementations (except
+ when messages were corrupted in the network).
+
+
+ The decompression function received improper input (e.g., data that would expand to excessive
+ length). This message is always fatal and should never be observed in communication between
+ proper implementations.
+
+
+ Reception of a handshake_failure alert message indicates that the sender was unable to
+ negotiate an acceptable set of security parameters given the options available. This is a
+ fatal error.
+
+
+ This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ A certificate was corrupt, contained signatures that did not verify correctly, etc.
+
+
+ A certificate was of an unsupported type.
+
+
+ A certificate was revoked by its signer.
+
+
+ A certificate has expired or is not currently valid.
+
+
+ Some other (unspecified) issue arose in processing the certificate, rendering it
+ unacceptable.
+
+
+ A field in the handshake was out of range or inconsistent with other fields. This message is
+ always fatal.
+
+
+ A valid certificate chain or partial chain was received, but the certificate was not accepted
+ because the CA certificate could not be located or couldn't be matched with a known, trusted
+ CA. This message is always fatal.
+
+
+ A valid certificate was received, but when access control was applied, the sender decided not
+ to proceed with negotiation. This message is always fatal.
+
+
+ A message could not be decoded because some field was out of the specified range or the
+ length of the message was incorrect. This message is always fatal and should never be
+ observed in communication between proper implementations (except when messages were corrupted
+ in the network).
+
+
+ A handshake cryptographic operation failed, including being unable to correctly verify a
+ signature or validate a Finished message. This message is always fatal.
+
+
+ This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ The protocol version the client has attempted to negotiate is recognized but not supported.
+ (For example, old protocol versions might be avoided for security reasons.) This message is
+ always fatal.
+
+
+ Returned instead of handshake_failure when a negotiation has failed specifically because the
+ server requires ciphers more secure than those supported by the client. This message is
+ always fatal.
+
+
+ An internal error unrelated to the peer or the correctness of the protocol (such as a memory
+ allocation failure) makes it impossible to continue. This message is always fatal.
+
+
+ This handshake is being canceled for some reason unrelated to a protocol failure. If the user
+ cancels an operation after the handshake is complete, just closing the connection by sending
+ a close_notify is more appropriate. This alert should be followed by a close_notify. This
+ message is generally a warning.
+
+
+ Sent by the client in response to a hello request or by the server in response to a client
+ hello after initial handshaking. Either of these would normally lead to renegotiation; when
+ that is not appropriate, the recipient should respond with this alert. At that point, the
+ original requester can decide whether to proceed with the connection. One case where this
+ would be appropriate is where a server has spawned a process to satisfy a request; the
+ process might receive security parameters (key length, authentication, etc.) at startup, and
+ it might be difficult to communicate changes to these parameters after that point. This
+ message is always a warning.
+
+
+ Sent by clients that receive an extended server hello containing an extension that they did
+ not put in the corresponding client hello. This message is always fatal.
+
+
+ This alert is sent by servers who are unable to retrieve a certificate chain from the URL
+ supplied by the client (see Section 3.3). This message MAY be fatal - for example if client
+ authentication is required by the server for the handshake to continue and the server is
+ unable to retrieve the certificate chain, it may send a fatal alert.
+
+
+ This alert is sent by servers that receive a server_name extension request, but do not
+ recognize the server name. This message MAY be fatal.
+
+
+ This alert is sent by clients that receive an invalid certificate status response (see
+ Section 3.6). This message is always fatal.
+
+
+ This alert is sent by servers when a certificate hash does not match a client provided
+ certificate_hash. This message is always fatal.
+
+
+ If the server does not recognize the PSK identity, it MAY respond with an
+ "unknown_psk_identity" alert message.
+
+
+ If TLS_FALLBACK_SCSV appears in ClientHello.cipher_suites and the highest protocol version
+ supported by the server is higher than the version indicated in ClientHello.client_version,
+ the server MUST respond with a fatal inappropriate_fallback alert [..].
+
+
+
+ RFC 5246 7.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ A queue for bytes.
+
+ This file could be more optimized.
+
+
+
+
+ The smallest number which can be written as 2^x which is bigger than i.
+
+
+ The initial size for our buffer.
+
+
+ The buffer where we store our data.
+
+
+ How many bytes at the beginning of the buffer are skipped.
+
+
+ How many bytes in the buffer are valid data.
+
+
+ Add some data to our buffer.
+ A byte-array to read data from.
+ How many bytes to skip at the beginning of the array.
+ How many bytes to read from the array.
+
+
+ The number of bytes which are available in this buffer.
+
+
+ Copy some bytes from the beginning of the data to the provided Stream.
+ The Stream to copy the bytes to.
+ How many bytes to copy.
+ If insufficient data is available.
+ If there is a problem copying the data.
+
+
+ Read data from the buffer.
+ The buffer where the read data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ Return a MemoryStream over some bytes at the beginning of the data.
+ How many bytes will be readable.
+ A MemoryStream over the data.
+ If insufficient data is available.
+
+
+ Remove some bytes from our data from the beginning.
+ How many bytes to remove.
+
+
+ Parsing and encoding of a Certificate struct from RFC 4346.
+
+
+ opaque ASN.1Cert<2^24-1>;
+
+ struct {
+ ASN.1Cert certificate_list<0..2^24-1>;
+ } Certificate;
+
+
+ @see Org.BouncyCastle.Asn1.X509.X509CertificateStructure
+
+
+ The certificates.
+
+
+ @return an array of {@link org.bouncycastle.asn1.x509.Certificate} representing a certificate
+ chain.
+
+
+ @return true if this certificate chain contains no certificates, or
+ false otherwise.
+
+
+ Encode this {@link Certificate} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link Certificate} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link Certificate} object.
+ @throws IOException
+
+
+ Parsing and encoding of a CertificateRequest struct from RFC 4346.
+
+
+ struct {
+ ClientCertificateType certificate_types<1..2^8-1>;
+ DistinguishedName certificate_authorities<3..2^16-1>
+ } CertificateRequest;
+
+
+ @see ClientCertificateType
+ @see X509Name
+
+
+ @param certificateTypes see {@link ClientCertificateType} for valid constants.
+ @param certificateAuthorities an {@link IList} of {@link X509Name}.
+
+
+ @return an array of certificate types
+ @see {@link ClientCertificateType}
+
+
+ @return an {@link IList} of {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ @return an {@link IList} of {@link X509Name}
+
+
+ Encode this {@link CertificateRequest} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateRequest} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateRequest} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatus} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatus} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatus} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatusRequest} object.
+ @throws IOException
+
+
+ RFC 6091
+
+
+ @param type
+ see {@link CertChainType} for valid constants.
+ @param urlAndHashList
+ a {@link IList} of {@link UrlAndHash}.
+
+
+ @return {@link CertChainType}
+
+
+ @return an {@link IList} of {@link UrlAndHash}
+
+
+ Encode this {@link CertificateUrl} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateUrl} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateUrl} object.
+ @throws IOException
+
+
+ draft-ietf-tls-chacha20-poly1305-04
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 2246 A.5
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ A combined hash, which implements md5(m) || sha1(m).
+
+
+ @see org.bouncycastle.crypto.Digest#update(byte[], int, int)
+
+
+ @see org.bouncycastle.crypto.Digest#doFinal(byte[], int)
+
+
+ @see org.bouncycastle.crypto.Digest#reset()
+
+
+
+ RFC 2246 6.1
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246 6.2.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Accept only the group parameters specified in RFC 5054 Appendix A.
+
+
+ Specify a custom set of acceptable group parameters.
+
+ @param groups a {@link Vector} of acceptable {@link SRP6GroupParameters}
+
+
+ Buffers input until the hash algorithm is determined.
+
+
+ @return a {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ Encode this {@link DigitallySigned} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link DigitallySigned} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link DigitallySigned} object.
+ @throws IOException
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check that there are no "extra" messages left in the current inbound flight
+
+
+ RFC 4347 4.1.2.5 Anti-replay
+
+ Support fast rejection of duplicate records by maintaining a sliding receive window
+
+
+ Check whether a received record with the given sequence number should be rejected as a duplicate.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of a received record.
+ @return true if the record should be discarded without further processing.
+
+
+ Report that a received record with the given sequence number passed authentication checks.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of an authenticated record.
+
+
+ When a new epoch begins, sequence numbers begin again at 0
+
+
+ RFC 4492 5.4. (Errata ID: 2389)
+
+
+
+ RFC 4492 5.4
+
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a prime field.
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a characteristic-2 field.
+
+
+ Indicates that a named curve is used. This option SHOULD be used when applicable.
+
+
+
+ RFC 4492 5.1.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 5705
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ Encode this {@link HeartbeatExtension} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatExtension} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatExtension} object.
+ @throws IOException
+
+
+ Encode this {@link HeartbeatMessage} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatMessage} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatMessage} object.
+ @throws IOException
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ RFC 4492 5.1.1
+ The named curves defined here are those specified in SEC 2 [13]. Note that many of
+ these curves are also recommended in ANSI X9.62 [7] and FIPS 186-2 [11]. Values 0xFE00
+ through 0xFEFF are reserved for private use. Values 0xFF01 and 0xFF02 indicate that the
+ client supports arbitrary prime and characteristic-2 curves, respectively (the curve
+ parameters must be encoded explicitly in ECParameters).
+
+
+
+ Encode this {@link NewSessionTicket} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link NewSessionTicket} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link NewSessionTicket} object.
+ @throws IOException
+
+
+ RFC 3546 3.6
+
+
+ @param responderIDList
+ an {@link IList} of {@link ResponderID}, specifying the list of trusted OCSP
+ responders. An empty list has the special meaning that the responders are
+ implicitly known to the server - e.g., by prior arrangement.
+ @param requestExtensions
+ OCSP request extensions. A null value means that there are no extensions.
+
+
+ @return an {@link IList} of {@link ResponderID}
+
+
+ @return OCSP request extensions
+
+
+ Encode this {@link OcspStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link OcspStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return an {@link OcspStatusRequest} object.
+ @throws IOException
+
+
+ RFC 5246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+
+
+ An implementation of the TLS 1.0/1.1/1.2 record layer, allowing downgrade to SSLv3.
+
+
+ RFC 5246 E.1. "Earlier versions of the TLS specification were not fully clear on what the
+ record layer version number (TLSPlaintext.version) should contain when sending ClientHello
+ (i.e., before it is known which version of the protocol will be employed). Thus, TLS servers
+ compliant with this specification MUST accept any value {03,XX} as the record layer version
+ number for ClientHello."
+
+
+ @return {@link ConnectionEnd}
+
+
+ @return {@link CipherSuite}
+
+
+ @return {@link CompressionMethod}
+
+
+ @return {@link PRFAlgorithm}
+
+
+ Encode this {@link ServerDHParams} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerDHParams} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerDHParams} object.
+ @throws IOException
+
+
+ Encode this {@link ServerName} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerName} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerName} object.
+ @throws IOException
+
+
+ @param serverNameList an {@link IList} of {@link ServerName}.
+
+
+ @return an {@link IList} of {@link ServerName}.
+
+
+ Encode this {@link ServerNameList} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerNameList} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerNameList} object.
+ @throws IOException
+
+
+ Encode this {@link ServerSRPParams} to an {@link OutputStream}.
+
+ @param output
+ the {@link OutputStream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerSRPParams} from an {@link InputStream}.
+
+ @param input
+ the {@link InputStream} to parse from.
+ @return a {@link ServerSRPParams} object.
+ @throws IOException
+
+
+ RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned)
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ @param hash {@link HashAlgorithm}
+ @param signature {@link SignatureAlgorithm}
+
+
+ @return {@link HashAlgorithm}
+
+
+ @return {@link SignatureAlgorithm}
+
+
+ Encode this {@link SignatureAndHashAlgorithm} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link SignatureAndHashAlgorithm} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link SignatureAndHashAlgorithm} object.
+ @throws IOException
+
+
+ An implementation of {@link TlsSRPIdentityManager} that simulates the existence of "unknown" identities
+ to obscure the fact that there is no verifier for them.
+
+
+ Create a {@link SimulatedTlsSRPIdentityManager} that implements the algorithm from RFC 5054 2.5.1.3
+
+ @param group the {@link SRP6GroupParameters} defining the group that SRP is operating in
+ @param seedKey the secret "seed key" referred to in RFC 5054 2.5.1.3
+ @return an instance of {@link SimulatedTlsSRPIdentityManager}
+
+
+ HMAC implementation based on original internet draft for HMAC (RFC 2104)
+
+ The difference is that padding is concatentated versus XORed with the key
+
+ H(K + opad, H(K + ipad, text))
+
+
+ Base constructor for one of the standard digest algorithms that the byteLength of
+ the algorithm is know for. Behaviour is undefined for digests other than MD5 or SHA1.
+
+ @param digest the digest.
+
+
+ Reset the mac generator.
+
+
+ RFC 4680
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called by the protocol handler to report the server certificate.
+
+
+ This method is responsible for certificate verification and validation
+
+ The server received
+
+
+
+
+ Return client credentials in response to server's certificate request
+
+
+ A containing server certificate request details
+
+
+ A to be used for client authentication
+ (or null for no client authentication)
+
+
+
+
+
+ A generic TLS 1.0-1.2 / SSLv3 block cipher. This can be used for AES or 3DES for example.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called at the start of a new TLS session, before any other methods.
+
+
+ A
+
+
+
+ Return the session this client wants to resume, if any.
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ A representing the resumable session to be used for this connection,
+ or null to use a new session.
+
+
+
+
+ Return the to use for the TLSPlaintext.version field prior to
+ receiving the server version. NOTE: This method is not called for DTLS.
+
+
+ See RFC 5246 E.1.: "TLS clients that wish to negotiate with older servers MAY send any value
+ {03,XX} as the record layer version number. Typical values would be {03,00}, the lowest
+ version number supported by the client, and the value of ClientHello.client_version. No
+ single value will guarantee interoperability with all old servers, but this is a complex
+ topic beyond the scope of this document."
+
+ The to use.
+
+
+
+ Get the list of cipher suites that this client supports.
+
+
+ An array of values, each specifying a supported cipher suite.
+
+
+
+
+ Get the list of compression methods that this client supports.
+
+
+ An array of values, each specifying a supported compression method.
+
+
+
+
+ Get the (optional) table of client extensions to be included in (extended) client hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+
+
+
+ Notifies the client of the session_id sent in the ServerHello.
+
+ An array of
+
+
+
+ Report the cipher suite that was selected by the server.
+
+
+ The protocol handler validates this value against the offered cipher suites
+
+
+
+ A
+
+
+
+
+ Report the compression method that was selected by the server.
+
+
+ The protocol handler validates this value against the offered compression methods
+
+
+
+ A
+
+
+
+
+ Report the extensions from an extended server hello.
+
+
+ Will only be called if we returned a non-null result from .
+
+
+ A (Int32 -> byte[])
+
+
+
+ A list of
+
+
+
+
+ Return an implementation of to negotiate the key exchange
+ part of the protocol.
+
+
+ A
+
+
+
+
+
+ Return an implementation of to handle authentication
+ part of the protocol.
+
+
+
+
+ A list of
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message
+
+ This method will be called (only) when a NewSessionTicket handshake message is received. The
+ ticket is opaque to the client and clients MUST NOT examine the ticket under the assumption
+ that it complies with e.g. RFC 5077 4. Recommended Ticket Construction.
+
+ The ticket
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the server
+ @param output The stream of data to the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Initiates a TLS handshake in the role of client.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#NotifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsClient The {@link TlsClient} to use for the handshake.
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+ Used to get the resumable session, if any, used by this connection. Only available after the
+ handshake has successfully completed.
+
+ @return A {@link TlsSession} representing the resumable session used by this connection, or
+ null if no resumable session available.
+ @see TlsPeer#NotifyHandshakeComplete()
+
+
+ Export keying material according to RFC 5705: "Keying Material Exporters for TLS".
+
+ @param asciiLabel indicates which application will use the exported keys.
+ @param context_value allows the application using the exporter to mix its own data with the TLS PRF for
+ the exporter output.
+ @param length the number of bytes to generate
+ @return a pseudorandom bit string of 'length' bytes generated from the master_secret.
+
+
+ (D)TLS DH key exchange.
+
+
+ (D)TLS ECDHE key exchange (see RFC 4492).
+
+
+ (D)TLS ECDH key exchange (see RFC 4492).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic interface for key exchange implementations in (D)TLS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
+
+
+
+ Generate a new instance of an TlsMac.
+
+ @param context the TLS client context
+ @param digest The digest to use.
+ @param key A byte-array where the key for this MAC is located.
+ @param keyOff The number of bytes to skip, before the key starts in the buffer.
+ @param keyLen The length of the key.
+
+
+ @return the MAC write secret
+
+
+ @return The output length of this MAC.
+
+
+ Calculate the MAC for some given data.
+
+ @param type The message type of the message.
+ @param message A byte-buffer containing the message.
+ @param offset The number of bytes to skip, before the message starts.
+ @param length The length of the message.
+ @return A new byte-buffer containing the MAC value.
+
+
+
+ This exception will be thrown(only) when the connection is closed by the peer without sending a
+ close_notify warning alert.
+
+
+ If this happens, the TLS protocol cannot rule out truncation of the connection data (potentially
+ malicious). It may be possible to check for truncation via some property of a higher level protocol
+ built upon TLS, e.g.the Content-Length header for HTTPS.
+
+
+
+
+ A NULL CipherSuite, with optional MAC.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on
+ gmt_unix_time containing the current time, we recommend that implementors MAY provide the
+ ability to set gmt_unix_time as an option only, off by default."
+
+
+ true if the current time should be used in the gmt_unix_time field of
+ Random, or false if gmt_unix_time should contain a cryptographically
+ random value.
+
+
+
+
+ Report whether the server supports secure renegotiation
+
+
+ The protocol handler automatically processes the relevant extensions
+
+
+ A , true if the server supports secure renegotiation
+
+
+
+
+
+ Return an implementation of to handle record compression.
+
+ A
+
+
+
+
+ Return an implementation of to use for encryption/decryption.
+
+ A
+
+
+
+ This method will be called when an alert is raised by the protocol.
+
+
+ A human-readable message explaining what caused this alert. May be null.
+ The Exception that caused this alert to be raised. May be null.
+
+
+ This method will be called when an alert is received from the remote peer.
+
+
+
+
+ Notifies the peer that the handshake has been successfully completed.
+
+
+
+ This method is called, when a change cipher spec message is received.
+
+ @throws IOException If the message has an invalid content or the handshake is not in the correct
+ state.
+
+
+ Read data from the network. The method will return immediately, if there is still some data
+ left in the buffer, or block until some application data has been read from the network.
+
+ @param buf The buffer where the data will be copied to.
+ @param offset The position where the data will be placed in the buffer.
+ @param len The maximum number of bytes to read.
+ @return The number of bytes read.
+ @throws IOException If something goes wrong during reading data.
+
+
+ Send some application data to the remote system.
+
+ The method will handle fragmentation internally.
+
+ @param buf The buffer with the data.
+ @param offset The position in the buffer where the data is placed.
+ @param len The length of the data.
+ @throws IOException If something goes wrong during sending.
+
+
+ The secure bidirectional stream for this connection
+ Only allowed in blocking mode.
+
+
+ Should be called in non-blocking mode when the input data reaches EOF.
+
+
+ Offer input from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the input buffer is "owned" by this object. Other code
+ must not attempt to do anything with it.
+
+ This method will decrypt and process all records that are fully available.
+ If only part of a record is available, the buffer will be retained until the
+ remainder of the record is offered.
+
+ If any records containing application data were processed, the decrypted data
+ can be obtained using {@link #readInput(byte[], int, int)}. If any records
+ containing protocol data were processed, a response may have been generated.
+ You should always check to see if there is any available output after calling
+ this method by calling {@link #getAvailableOutputBytes()}.
+ @param input The input buffer to offer
+ @throws IOException If an error occurs while decrypting or processing a record
+
+
+ Gets the amount of received application data. A call to {@link #readInput(byte[], int, int)}
+ is guaranteed to be able to return at least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available application data
+
+
+ Retrieves received application data. Use {@link #getAvailableInputBytes()} to check
+ how much application data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the application data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Offer output from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the specified section of the buffer will have been
+ processed. Use {@link #readOutput(byte[], int, int)} to get the bytes to
+ transmit to the other peer.
+
+ This method must not be called until after the handshake is complete! Attempting
+ to call it before the handshake is complete will result in an exception.
+ @param buffer The buffer containing application data to encrypt
+ @param offset The offset at which to begin reading data
+ @param length The number of bytes of data to read
+ @throws IOException If an error occurs encrypting the data, or the handshake is not complete
+
+
+ Gets the amount of encrypted data available to be sent. A call to
+ {@link #readOutput(byte[], int, int)} is guaranteed to be able to return at
+ least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available encrypted data
+
+
+ Retrieves encrypted data to be sent. Use {@link #getAvailableOutputBytes()} to check
+ how much encrypted data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the encrypted data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Closes this connection.
+
+ @throws IOException If something goes wrong during closing.
+
+
+ Make sure the InputStream 'buf' now empty. Fail otherwise.
+
+ @param buf The InputStream to check.
+ @throws IOException If 'buf' is not empty.
+
+
+ 'sender' only relevant to SSLv3
+
+
+ Both streams can be the same object
+
+
+ (D)TLS PSK key exchange (RFC 4279).
+
+
+ (D)TLS and SSLv3 RSA key exchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A (Int32 -> byte[]). Will never be null.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the (optional) table of server extensions to be included in (extended) server hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+ A (). May be null.
+
+
+
+
+
+
+
+
+ This method will be called (only) if the server included an extension of type
+ "status_request" with empty "extension_data" in the extended server hello. See RFC 3546
+ 3.6. Certificate Status Request. If a non-null is returned, it
+ is sent to the client as a handshake message of type "certificate_status".
+
+ A to be sent to the client (or null for none).
+
+
+
+
+
+
+
+
+
+ ()
+
+
+
+
+ Called by the protocol handler to report the client certificate, only if GetCertificateRequest
+ returned non-null.
+
+ Note: this method is responsible for certificate verification and validation.
+ the effective client certificate (may be an empty chain).
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message.
+
+ This method will be called (only) if a NewSessionTicket extension was sent by the server. See
+ RFC 5077 4. Recommended Ticket Construction for recommended format and protection.
+
+ The ticket)
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Receives a TLS handshake in the role of server.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#notifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsServer
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+
+
+
+ Check whether the given SRP group parameters are acceptable for use.
+
+ @param group the {@link SRP6GroupParameters} to check
+ @return true if (and only if) the specified group parameters are acceptable
+
+
+ Lookup the {@link TlsSRPLoginParameters} corresponding to the specified identity.
+
+ NOTE: To avoid "identity probing", unknown identities SHOULD be handled as recommended in RFC
+ 5054 2.5.1.3. {@link SimulatedTlsSRPIdentityManager} is provided for this purpose.
+
+ @param identity
+ the SRP identity sent by the connecting client
+ @return the {@link TlsSRPLoginParameters} for the specified identity, or else 'simulated'
+ parameters if the identity is not recognized. A null value is also allowed, but not
+ recommended.
+
+
+ (D)TLS SRP key exchange (RFC 5054).
+
+
+ RFC 5764 DTLS Extension to Establish Keys for SRTP.
+
+
+
+
+
+
+
+
+
+
+
+ Some helper functions for MicroTLS.
+
+
+ Add a 'signature_algorithms' extension to existing extensions.
+
+ @param extensions A {@link Hashtable} to add the extension to.
+ @param supportedSignatureAlgorithms {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ Get a 'signature_algorithms' extension from extensions.
+
+ @param extensions A {@link Hashtable} to get the extension from, if it is present.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}, or null.
+ @throws IOException
+
+
+ Create a 'signature_algorithms' extension value.
+
+ @param supportedSignatureAlgorithms A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @return A byte array suitable for use as an extension value.
+ @throws IOException
+
+
+ Read 'signature_algorithms' extension data.
+
+ @param extensionData The extension data.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ RFC 6066 5.
+
+
+ Encode this {@link UrlAndHash} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link UrlAndHash} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link UrlAndHash} object.
+ @throws IOException
+
+
+ RFC 4681
+
+
+ RFC 5764 4.1.1
+
+
+ @param protectionProfiles see {@link SrtpProtectionProfile} for valid constants.
+ @param mki valid lengths from 0 to 255.
+
+
+ @return see {@link SrtpProtectionProfile} for valid constants.
+
+
+ @return valid lengths from 0 to 255.
+
+
+ return a = a + b - b preserved.
+
+
+ unsigned comparison on two arrays - note the arrays may
+ start with leading zeros.
+
+
+ return z = x / y - done in place (z value preserved, x contains the
+ remainder)
+
+
+ return whether or not a BigInteger is probably prime with a
+ probability of 1 - (1/2)**certainty.
+ From Knuth Vol 2, pg 395.
+
+
+ Calculate the numbers u1, u2, and u3 such that:
+
+ u1 * a + u2 * b = u3
+
+ where u3 is the greatest common divider of a and b.
+ a and b using the extended Euclid algorithm (refer p. 323
+ of The Art of Computer Programming vol 2, 2nd ed).
+ This also seems to have the side effect of calculating
+ some form of multiplicative inverse.
+
+ @param a First number to calculate gcd for
+ @param b Second number to calculate gcd for
+ @param u1Out the return object for the u1 value
+ @return The greatest common divisor of a and b
+
+
+ return w with w = x * x - w is assumed to have enough space.
+
+
+ return x with x = y * z - x is assumed to have enough space.
+
+
+ Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size)
+
+
+ Montgomery multiplication: a = x * y * R^(-1) mod m
+
+ Based algorithm 14.36 of Handbook of Applied Cryptography.
+
+ m, x, y should have length n
+ a should have length (n + 1)
+ b = 2^32, R = b^n
+
+ The result is put in x
+
+ NOTE: the indices of x, y, m, a different in HAC and in Java
+
+
+ return x = x % y - done in place (y value preserved)
+
+
+ do a left shift - this returns a new array.
+
+
+ do a right shift - this does it in place.
+
+
+ do a right shift by one - this does it in place.
+
+
+ returns x = x - y - we assume x is >= y
+
+
+ Class representing a simple version of a big decimal. A
+ SimpleBigDecimal is basically a
+ {@link java.math.BigInteger BigInteger} with a few digits on the right of
+ the decimal point. The number of (binary) digits on the right of the decimal
+ point is called the scale of the SimpleBigDecimal.
+ Unlike in {@link java.math.BigDecimal BigDecimal}, the scale is not adjusted
+ automatically, but must be set manually. All SimpleBigDecimals
+ taking part in the same arithmetic operation must have equal scale. The
+ result of a multiplication of two SimpleBigDecimals returns a
+ SimpleBigDecimal with double scale.
+
+
+ Returns a SimpleBigDecimal representing the same numerical
+ value as value.
+ @param value The value of the SimpleBigDecimal to be
+ created.
+ @param scale The scale of the SimpleBigDecimal to be
+ created.
+ @return The such created SimpleBigDecimal.
+
+
+ Constructor for SimpleBigDecimal. The value of the
+ constructed SimpleBigDecimal Equals bigInt /
+ 2scale.
+ @param bigInt The bigInt value parameter.
+ @param scale The scale of the constructed SimpleBigDecimal.
+
+
+ Class holding methods for point multiplication based on the window
+ τ-adic nonadjacent form (WTNAF). The algorithms are based on the
+ paper "Improved Algorithms for Arithmetic on Anomalous Binary Curves"
+ by Jerome A. Solinas. The paper first appeared in the Proceedings of
+ Crypto 1997.
+
+
+ The window width of WTNAF. The standard value of 4 is slightly less
+ than optimal for running time, but keeps space requirements for
+ precomputation low. For typical curves, a value of 5 or 6 results in
+ a better running time. When changing this value, the
+ αu's must be computed differently, see
+ e.g. "Guide to Elliptic Curve Cryptography", Darrel Hankerson,
+ Alfred Menezes, Scott Vanstone, Springer-Verlag New York Inc., 2004,
+ p. 121-122
+
+
+ 24
+
+
+ The αu's for a=0 as an array
+ of ZTauElements.
+
+
+ The αu's for a=0 as an array
+ of TNAFs.
+
+
+ The αu's for a=1 as an array
+ of ZTauElements.
+
+
+ The αu's for a=1 as an array
+ of TNAFs.
+
+
+ Computes the norm of an element λ of
+ Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The norm of λ.
+
+
+ Computes the norm of an element λ of
+ R[τ], where λ = u + vτ
+ and u and u are real numbers (elements of
+ R).
+ @param mu The parameter μ of the elliptic curve.
+ @param u The real part of the element λ of
+ R[τ].
+ @param v The τ-adic part of the element
+ λ of R[τ].
+ @return The norm of λ.
+
+
+ Rounds an element λ of R[τ]
+ to an element of Z[τ], such that their difference
+ has minimal norm. λ is given as
+ λ = λ0 + λ1τ.
+ @param lambda0 The component λ0.
+ @param lambda1 The component λ1.
+ @param mu The parameter μ of the elliptic curve. Must
+ equal 1 or -1.
+ @return The rounded element of Z[τ].
+ @throws ArgumentException if lambda0 and
+ lambda1 do not have same scale.
+
+
+ Approximate division by n. For an integer
+ k, the value λ = s k / n is
+ computed to c bits of accuracy.
+ @param k The parameter k.
+ @param s The curve parameter s0 or
+ s1.
+ @param vm The Lucas Sequence element Vm.
+ @param a The parameter a of the elliptic curve.
+ @param m The bit length of the finite field
+ Fm.
+ @param c The number of bits of accuracy, i.e. the scale of the returned
+ SimpleBigDecimal.
+ @return The value λ = s k / n computed to
+ c bits of accuracy.
+
+
+ Computes the τ-adic NAF (non-adjacent form) of an
+ element λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The τ-adic NAF of λ.
+
+
+ Applies the operation τ() to an
+ AbstractF2mPoint.
+ @param p The AbstractF2mPoint to which τ() is applied.
+ @return τ(p)
+
+
+ Returns the parameter μ of the elliptic curve.
+ @param curve The elliptic curve from which to obtain μ.
+ The curve must be a Koblitz curve, i.e. a Equals
+ 0 or 1 and b Equals
+ 1.
+ @return μ of the elliptic curve.
+ @throws ArgumentException if the given ECCurve is not a Koblitz
+ curve.
+
+
+ Calculates the Lucas Sequence elements Uk-1 and
+ Uk or Vk-1 and
+ Vk.
+ @param mu The parameter μ of the elliptic curve.
+ @param k The index of the second element of the Lucas Sequence to be
+ returned.
+ @param doV If set to true, computes Vk-1 and
+ Vk, otherwise Uk-1 and
+ Uk.
+ @return An array with 2 elements, containing Uk-1
+ and Uk or Vk-1
+ and Vk.
+
+
+ Computes the auxiliary value tw. If the width is
+ 4, then for mu = 1, tw = 6 and for
+ mu = -1, tw = 10
+ @param mu The parameter μ of the elliptic curve.
+ @param w The window width of the WTNAF.
+ @return the auxiliary value tw
+
+
+ Computes the auxiliary values s0 and
+ s1 used for partial modular reduction.
+ @param curve The elliptic curve for which to compute
+ s0 and s1.
+ @throws ArgumentException if curve is not a
+ Koblitz curve (Anomalous Binary Curve, ABC).
+
+
+ Partial modular reduction modulo
+ (τm - 1)/(τ - 1).
+ @param k The integer to be reduced.
+ @param m The bitlength of the underlying finite field.
+ @param a The parameter a of the elliptic curve.
+ @param s The auxiliary values s0 and
+ s1.
+ @param mu The parameter μ of the elliptic curve.
+ @param c The precision (number of bits of accuracy) of the partial
+ modular reduction.
+ @return ρ := k partmod (τm - 1)/(τ - 1)
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by a BigInteger using the reduced τ-adic
+ NAF (RTNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param k The BigInteger by which to Multiply p.
+ @return k * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param lambda The element λ of
+ Z[τ].
+ @return λ * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method, given the TNAF
+ of λ.
+ @param p The AbstractF2mPoint to Multiply.
+ @param u The the TNAF of λ..
+ @return λ * p
+
+
+ Computes the [τ]-adic window NAF of an element
+ λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @param width The window width of the resulting WNAF.
+ @param pow2w 2width.
+ @param tw The auxiliary value tw.
+ @param alpha The αu's for the window width.
+ @return The [τ]-adic window NAF of
+ λ.
+
+
+ Does the precomputation for WTNAF multiplication.
+ @param p The ECPoint for which to do the precomputation.
+ @param a The parameter a of the elliptic curve.
+ @return The precomputation array for p.
+
+
+ Class representing an element of Z[τ]. Let
+ λ be an element of Z[τ]. Then
+ λ is given as λ = u + vτ. The
+ components u and v may be used directly, there
+ are no accessor methods.
+ Immutable class.
+
+
+ The "real" part of λ.
+
+
+ The "τ-adic" part of λ.
+
+
+ Constructor for an element λ of
+ Z[τ].
+ @param u The "real" part of λ.
+ @param v The "τ-adic" part of
+ λ.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(boolean)}
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ Simple shift-and-add multiplication. Serves as reference implementation
+ to verify (possibly faster) implementations, and for very small scalars.
+
+ @param p
+ The point to multiply.
+ @param k
+ The multiplier.
+ @return The result of the point multiplication kP.
+
+
+ Base class for an elliptic curve.
+
+
+ Adds PreCompInfo for a point on this curve, under a given name. Used by
+ ECMultipliers to save the precomputation for this ECPoint for use
+ by subsequent multiplication.
+
+ @param point
+ The ECPoint to store precomputations for.
+ @param name
+ A String used to index precomputations of different types.
+ @param preCompInfo
+ The values precomputed by the ECMultiplier.
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately.
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately. An (optional) z-scaling factor can be applied; effectively
+ each z coordinate is scaled by this value prior to normalization (but only one
+ actual multiplication is needed).
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+ @param off
+ The start of the range of points to normalize
+ @param len
+ The length of the range of points to normalize
+ @param iso
+ The (optional) z-scaling factor - can be null
+
+
+ Sets the default ECMultiplier, unless already set.
+
+
+ Decode a point on this curve from its ASN.1 encoding. The different
+ encodings are taken account of, including point compression for
+ Fp (X9.62 s 4.2.1 pg 17).
+ @return The decoded point.
+
+
+ Elliptic curve over Fp
+
+
+ The auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Solves a quadratic equation z2 + z = beta(X9.62
+ D.1.6) The other solution is z + 1.
+
+ @param beta
+ The value to solve the qradratic equation for.
+ @return the solution for z2 + z = beta or
+ null if no solution exists.
+
+
+ @return the auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Returns true if this is a Koblitz curve (ABC curve).
+ @return true if this is a Koblitz curve (ABC curve), false otherwise
+
+
+ Elliptic curves over F2m. The Weierstrass equation is given by
+ y2 + xy = x3 + ax2 + b.
+
+
+ The exponent m of F2m.
+
+
+ TPB: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ PPB: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ The point at infinity on this curve.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Return true if curve uses a Trinomial basis.
+
+ @return true if curve Trinomial, false otherwise.
+
+
+ return the field name for this field.
+
+ @return the string "Fp".
+
+
+ return a sqrt root - the routine verifies that the calculation
+ returns the right value - if none exists it returns null.
+
+
+ Class representing the Elements of the finite field
+ F2m in polynomial basis (PB)
+ representation. Both trinomial (Tpb) and pentanomial (Ppb) polynomial
+ basis representations are supported. Gaussian normal basis (GNB)
+ representation is not supported.
+
+
+ Indicates gaussian normal basis representation (GNB). Number chosen
+ according to X9.62. GNB is not implemented at present.
+
+
+ Indicates trinomial basis representation (Tpb). Number chosen
+ according to X9.62.
+
+
+ Indicates pentanomial basis representation (Ppb). Number chosen
+ according to X9.62.
+
+
+ Tpb or Ppb.
+
+
+ The exponent m of F2m.
+
+
+ The LongArray holding the bits.
+
+
+ Constructor for Ppb.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Constructor for Tpb.
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Checks, if the ECFieldElements a and b
+ are elements of the same field F2m
+ (having the same representation).
+ @param a field element.
+ @param b field element to be compared.
+ @throws ArgumentException if a and b
+ are not elements of the same field
+ F2m (having the same
+ representation).
+
+
+ @return the representation of the field
+ F2m, either of
+ {@link F2mFieldElement.Tpb} (trinomial
+ basis representation) or
+ {@link F2mFieldElement.Ppb} (pentanomial
+ basis representation).
+
+
+ @return the degree m of the reduction polynomial
+ f(z).
+
+
+ @return Tpb: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ Ppb: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always returns 0
+ Ppb: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always set to 0
+ Ppb: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ base class for points on elliptic curves.
+
+
+ Normalizes this point, and then returns the affine x-coordinate.
+
+ Note: normalization can be expensive, this method is deprecated in favour
+ of caller-controlled normalization.
+
+
+ Normalizes this point, and then returns the affine y-coordinate.
+
+ Note: normalization can be expensive, this method is deprecated in favour
+ of caller-controlled normalization.
+
+
+ Returns the affine x-coordinate after checking that this point is normalized.
+
+ @return The affine x-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the affine y-coordinate after checking that this point is normalized
+
+ @return The affine y-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the x-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineXCoord if you expect the point to already have been normalized.
+
+ @return the x-coordinate of this point
+
+
+ Returns the y-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineYCoord if you expect the point to already have been normalized.
+
+ @return the y-coordinate of this point
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system.
+
+ @return a new ECPoint instance representing the same point, but with normalized coordinates
+
+
+ return the field element encoded with point compression. (S 4.3.6)
+
+
+ Multiplies this ECPoint by the given number.
+ @param k The multiplicator.
+ @return k * this.
+
+
+ Elliptic curve points over Fp
+
+
+ Create a point which encodes without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+
+ Create a point that encodes with or without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+
+ Elliptic curve points over F2m
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+ @param withCompression true if encode with point compression.
+
+
+ Constructor for point at infinity
+
+
+ Joye's double-add algorithm.
+
+
+ Interface for classes encapsulating a point multiplication algorithm
+ for ECPoints.
+
+
+ Multiplies the ECPoint p by k, i.e.
+ p is added k times to itself.
+ @param p The ECPoint to be multiplied.
+ @param k The factor by which p is multiplied.
+ @return p multiplied by k.
+
+
+ Class holding precomputation data for fixed-point multiplications.
+
+
+ Array holding the precomputed ECPoints used for a fixed
+ point multiplication.
+
+
+ The width used for the precomputation. If a larger width precomputation
+ is already available this may be larger than was requested, so calling
+ code should refer to the actual width.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left) using
+ mixed coordinates.
+
+
+ By default, addition will be done in Jacobian coordinates, and doubling will be done in
+ Modified Jacobian coordinates (independent of the original coordinate system of each point).
+
+
+ Montgomery ladder.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (left-to-right).
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left).
+
+
+ Interface for classes storing precomputation data for multiplication
+ algorithms. Used as a Memento (see GOF patterns) for
+ WNafMultiplier.
+
+
+ Class implementing the WNAF (Window Non-Adjacent Form) multiplication
+ algorithm.
+
+
+ Multiplies this by an integer k using the
+ Window NAF method.
+ @param k The integer by which this is multiplied.
+ @return A new ECPoint which equals this
+ multiplied by k.
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Class holding precomputation data for the WNAF (Window Non-Adjacent Form)
+ algorithm.
+
+
+ Array holding the precomputed ECPoints used for a Window
+ NAF multiplication.
+
+
+ Array holding the negations of the precomputed ECPoints used
+ for a Window NAF multiplication.
+
+
+ Holds an ECPoint representing Twice(this). Used for the
+ Window NAF multiplication to create or extend the precomputed values.
+
+
+ Computes the Window NAF (non-adjacent Form) of an integer.
+ @param width The width w of the Window NAF. The width is
+ defined as the minimal number w, such that for any
+ w consecutive digits in the resulting representation, at
+ most one is non-zero.
+ @param k The integer of which the Window NAF is computed.
+ @return The Window NAF of the given width, such that the following holds:
+ k = ∑i=0l-1 ki2i
+ , where the ki denote the elements of the
+ returned byte[].
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @return the window size to use
+
+
+ Class implementing the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by k using the reduced τ-adic NAF (RTNAF)
+ method.
+ @param p The AbstractF2mPoint to multiply.
+ @param k The integer by which to multiply k.
+ @return p multiplied by k.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ] using
+ the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to multiply.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @return p multiplied by λ.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the window τ-adic NAF (TNAF) method, given the
+ WTNAF of λ.
+ @param p The AbstractF2mPoint to multiply.
+ @param u The the WTNAF of λ..
+ @return λ * p
+
+
+ Class holding precomputation data for the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Array holding the precomputed AbstractF2mPoints used for the
+ WTNAF multiplication in
+ {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
+ WTauNafMultiplier.multiply()}.
+
+
+ 'Zeroless' Signed Digit Left-to-Right.
+
+
+ 'Zeroless' Signed Digit Right-to-Left.
+
+
+ Utility methods for generating primes and testing for primality.
+
+
+ Used to return the output from the
+ {@linkplain Primes#enhancedMRProbablePrimeTest(BigInteger, SecureRandom, int) Enhanced
+ Miller-Rabin Probabilistic Primality Test}
+
+
+ Used to return the output from the {@linkplain Primes#generateSTRandomPrime(Digest, int, byte[]) Shawe-Taylor Random_Prime Routine}
+
+
+ FIPS 186-4 C.6 Shawe-Taylor Random_Prime Routine
+
+ Construct a provable prime number using a hash function.
+
+ @param hash
+ the {@link Digest} instance to use (as "Hash()"). Cannot be null.
+ @param length
+ the length (in bits) of the prime to be generated. Must be at least 2.
+ @param inputSeed
+ the seed to be used for the generation of the requested prime. Cannot be null or
+ empty.
+ @return an {@link STOutput} instance containing the requested prime.
+
+
+ FIPS 186-4 C.3.2 Enhanced Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases. This is an
+ alternative to {@link #isMRProbablePrime(BigInteger, SecureRandom, int)} that provides more
+ information about a composite candidate, which may be useful when generating or validating
+ RSA moduli.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return an {@link MROutput} instance that can be further queried for details.
+
+
+ A fast check for small divisors, up to some implementation-specific limit.
+
+ @param candidate
+ the {@link BigInteger} instance to test for division by small factors.
+
+ @return true if the candidate is found to have any small factors,
+ false otherwise.
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return false if any witness to compositeness is found amongst the chosen bases
+ (so candidate is definitely NOT prime), or else true
+ (indicating primality with some probability dependent on the number of iterations
+ that were performed).
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test (to a fixed base).
+
+ Run a single iteration of the Miller-Rabin algorithm against the specified base.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param baseValue
+ the base value to use for this iteration.
+ @return false if the specified base is a witness to compositeness (so
+ candidate is definitely NOT prime), or else true.
+
+
+
+
+ BasicOcspResponse ::= SEQUENCE {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL
+ }
+
+
+
+
+ The DER encoding of the tbsResponseData field.
+ In the event of an encoding error.
+
+
+ The certificates, if any, associated with the response.
+ In the event of an encoding error.
+
+
+
+ Verify the signature against the tbsResponseData object we contain.
+
+
+
+ The ASN.1 encoded representation of this object.
+
+
+ Generator for basic OCSP response objects.
+
+
+ basic constructor
+
+
+ construct with the responderID to be the SHA-1 keyHash of the passed in public key.
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param thisUpdate date this response was valid on
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Set the extensions for the response.
+
+ @param responseExtensions the extension object to carry.
+
+
+
+ Generate the signed response using the passed in signature calculator.
+
+ Implementation of signing calculator factory.
+ The certificate chain associated with the response signer.
+ "produced at" date.
+
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ create from an issuer certificate and the serial number of the
+ certificate it signed.
+ @exception OcspException if any problems occur creating the id fields.
+
+
+ return the serial number for the certificate associated
+ with this request.
+
+
+ Create a new CertificateID for a new serial number derived from a previous one
+ calculated for the same CA certificate.
+
+ @param original the previously calculated CertificateID for the CA.
+ @param newSerialNumber the serial number for the new certificate of interest.
+
+ @return a new CertificateID for newSerialNumber
+
+
+
+ OcspRequest ::= SEQUENCE {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+ TBSRequest ::= SEQUENCE {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList SEQUENCE OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+ Signature ::= SEQUENCE {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL}
+
+ Version ::= INTEGER { v1(0) }
+
+ Request ::= SEQUENCE {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+ CertID ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ Return the DER encoding of the tbsRequest field.
+ @return DER encoding of tbsRequest
+ @throws OcspException in the event of an encoding error.
+
+
+ return the object identifier representing the signature algorithm
+
+
+ If the request is signed return a possibly empty CertStore containing the certificates in the
+ request. If the request is not signed the method returns null.
+
+ @return null if not signed, a CertStore otherwise
+ @throws OcspException
+
+
+ Return whether or not this request is signed.
+
+ @return true if signed false otherwise.
+
+
+ Verify the signature against the TBSRequest object we contain.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Add a request for the given CertificateID.
+
+ @param certId certificate ID of interest
+
+
+ Add a request with extensions
+
+ @param certId certificate ID of interest
+ @param singleRequestExtensions the extensions to attach to the request
+
+
+ Set the requestor name to the passed in X509Principal
+
+ @param requestorName a X509Principal representing the requestor name.
+
+
+ Generate an unsigned request
+
+ @return the OcspReq
+ @throws OcspException
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ base generator for an OCSP response - at the moment this only supports the
+ generation of responses containing BasicOCSP responses.
+
+
+ note 4 is not used.
+
+
+ Carrier for a ResponderID.
+
+
+ wrapper for the RevokedInfo object
+
+
+ return the revocation reason. Note: this field is optional, test for it
+ with hasRevocationReason() first.
+ @exception InvalidOperationException if a reason is asked for and none is avaliable
+
+
+ Return the status object for the response - null indicates good.
+
+ @return the status object for the response, null if it is good.
+
+
+ return the NextUpdate value - note: this is an optional field so may
+ be returned as null.
+
+ @return nextUpdate, or null if not present.
+
+
+ wrapper for the UnknownInfo object
+
+
+
+ Utility class for creating IBasicAgreement objects from their names/Oids
+
+
+
+
+ Cipher Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Utility class for creating IDigest objects from their names/Oids
+
+
+
+
+ Returns a ObjectIdentifier for a given digest mechanism.
+
+ A string representation of the digest meanism.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ A class containing methods to interface the BouncyCastle world to the .NET Crypto world.
+
+
+
+
+ Create an System.Security.Cryptography.X509Certificate from an X509Certificate Structure.
+
+
+ A System.Security.Cryptography.X509Certificate.
+
+
+
+ Utility class for creating HMac object from their names/Oids
+
+
+
+
+
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Create and auto-seed an instance based on the given algorithm.
+
+ Equivalent to GetInstance(algorithm, true)
+ e.g. "SHA256PRNG"
+
+
+
+ Create an instance based on the given algorithm, with optional auto-seeding
+
+ e.g. "SHA256PRNG"
+ If true, the instance will be auto-seeded.
+
+
+
+ To replicate existing predictable output, replace with GetInstance("SHA1PRNG", false), followed by SetSeed(seed)
+
+
+
+ Use the specified instance of IRandomGenerator as random source.
+
+ This constructor performs no seeding of either the IRandomGenerator or the
+ constructed SecureRandom. It is the responsibility of the client to provide
+ proper seed material as necessary/appropriate for the given IRandomGenerator
+ implementation.
+
+ The source to generate all random bytes from.
+
+
+ base constructor.
+
+
+ create a SecurityUtilityException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Signer Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns an ObjectIdentifier for a given encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the OID is not available.
+
+
+
+ Utility class for creating IWrapper objects from their names/Oids
+
+
+
+ PEM generator for the original set of PEM objects used in Open SSL.
+
+
+ Class for reading OpenSSL PEM encoded streams containing
+ X509 certificates, PKCS8 encoded keys and PKCS7 objects.
+
+ In the case of PKCS7 objects the reader will return a CMS ContentInfo object. Keys and
+ Certificates will be returned using the appropriate java.security type.
+
+
+ Create a new PemReader
+
+ @param reader the Reader
+
+
+ Create a new PemReader with a password finder
+
+ @param reader the Reader
+ @param pFinder the password finder
+
+
+ Reads in a X509Certificate.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509CRL.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS10 certification request.
+
+ @return the certificate request.
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509 Attribute Certificate.
+
+ @return the X509 Attribute Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS7 object. This returns a ContentInfo object suitable for use with the CMS
+ API.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Read a Key Pair
+
+
+ General purpose writer for OpenSSL PEM objects.
+
+
+ The TextWriter object to write the output to.
+
+
+ Constructor for an unencrypted private key PEM object.
+
+ @param key private key to be encoded.
+
+
+ Constructor for an encrypted private key PEM object.
+
+ @param key private key to be encoded
+ @param algorithm encryption algorithm to use
+ @param provider provider to use
+ @throws NoSuchAlgorithmException if algorithm/mode cannot be found
+
+
+
+ A class for verifying and creating Pkcs10 Certification requests.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ The factory for signature calculators to sign the PKCS#10 request with.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Get the public key.
+
+ The public key.
+
+
+
+ Verify Pkcs10 Cert Request is valid.
+
+ true = valid.
+
+
+
+ A class for creating and verifying Pkcs10 Certification requests (this is an extension on ).
+ The requests are made using delay signing. This is useful for situations where
+ the private key is in another environment and not directly accessible (e.g. HSM)
+ So the first step creates the request, then the signing is done outside this
+ object and the signature is then used to complete the request.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+ After the object is constructed use the and finally the
+ SignRequest methods to finalize the request.
+
+
+
+ simply return the cert entry for the private key
+
+
+ Utility class for reencoding PKCS#12 files to definite length.
+
+
+ Just re-encode the outer layer of the PKCS#12 file to definite length encoding.
+
+ @param berPKCS12File - original PKCS#12 file
+ @return a byte array representing the DER encoding of the PFX structure
+ @throws IOException
+
+
+ Re-encode the PKCS#12 structure to definite length encoding at the inner layer
+ as well, recomputing the MAC accordingly.
+
+ @param berPKCS12File - original PKCS12 file.
+ @param provider - provider to use for MAC calculation.
+ @return a byte array representing the DER encoding of the PFX structure.
+ @throws IOException on parsing, encoding errors.
+
+
+
+ Returns the revocationDate.
+
+
+
+
+ Returns the certStatus.
+
+
+
+ Returns an immutable Set of X.509 attribute certificate
+ extensions that this PkixAttrCertChecker supports or
+ null if no extensions are supported.
+
+ Each element of the set is a String representing the
+ Object Identifier (OID) of the X.509 extension that is supported.
+
+
+ All X.509 attribute certificate extensions that a
+ PkixAttrCertChecker might possibly be able to process
+ should be included in the set.
+
+
+ @return an immutable Set of X.509 extension OIDs (in
+ String format) supported by this
+ PkixAttrCertChecker, or null if no
+ extensions are supported
+
+
+ Performs checks on the specified attribute certificate. Every handled
+ extension is rmeoved from the unresolvedCritExts
+ collection.
+
+ @param attrCert The attribute certificate to be checked.
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param holderCertPath The certificate path which belongs to the holder
+ certificate.
+ @param unresolvedCritExts a Collection of OID strings
+ representing the current set of unresolved critical extensions
+ @throws CertPathValidatorException if the specified attribute certificate
+ does not pass the check.
+
+
+ Returns a clone of this object.
+
+ @return a copy of this PkixAttrCertChecker
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ CertPathValidatorSpi implementation for X.509 Attribute Certificates la RFC 3281.
+
+ @see org.bouncycastle.x509.ExtendedPkixParameters
+
+
+ Validates an attribute certificate with the given certificate path.
+
+
+ params must be an instance of
+ ExtendedPkixParameters.
+
+ The target constraints in the params must be an
+ X509AttrCertStoreSelector with at least the attribute
+ certificate criterion set. Obey that also target informations may be
+ necessary to correctly validate this attribute certificate.
+
+ The attribute certificate issuer must be added to the trusted attribute
+ issuers with {@link ExtendedPkixParameters#setTrustedACIssuers(Set)}.
+
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param params The PKIX parameters.
+ @return A PKIXCertPathValidatorResult of the result of
+ validating the certPath.
+ @throws InvalidAlgorithmParameterException if params is
+ inappropriate for this validator.
+ @throws CertPathValidatorException if the verification fails.
+
+
+
+ Summary description for PkixBuilderParameters.
+
+
+
+ Returns an instance of PkixBuilderParameters.
+
+ This method can be used to get a copy from other
+ PKIXBuilderParameters, PKIXParameters,
+ and ExtendedPKIXParameters instances.
+
+
+ @param pkixParams The PKIX parameters to create a copy of.
+ @return An PkixBuilderParameters instance.
+
+
+
+ Excluded certificates are not used for building a certification path.
+
+ the excluded certificates.
+
+
+
+ Sets the excluded certificates which are not used for building a
+ certification path. If the ISet is null an
+ empty set is assumed.
+
+
+ The given set is cloned to protect it against subsequent modifications.
+
+ The excluded certificates to set.
+
+
+ Can alse handle ExtendedPKIXBuilderParameters and
+ PKIXBuilderParameters.
+
+ @param params Parameters to set.
+ @see org.bouncycastle.x509.ExtendedPKIXParameters#setParams(java.security.cert.PKIXParameters)
+
+
+ Makes a copy of this PKIXParameters object. Changes to the
+ copy will not affect the original and vice versa.
+
+ @return a copy of this PKIXParameters object
+
+
+ An immutable sequence of certificates (a certification path).
+
+ This is an abstract class that defines the methods common to all CertPaths.
+ Subclasses can handle different kinds of certificates (X.509, PGP, etc.).
+
+ All CertPath objects have a type, a list of Certificates, and one or more
+ supported encodings. Because the CertPath class is immutable, a CertPath
+ cannot change in any externally visible way after being constructed. This
+ stipulation applies to all public fields and methods of this class and any
+ added or overridden by subclasses.
+
+ The type is a string that identifies the type of Certificates in the
+ certification path. For each certificate cert in a certification path
+ certPath, cert.getType().equals(certPath.getType()) must be true.
+
+ The list of Certificates is an ordered List of zero or more Certificates.
+ This List and all of the Certificates contained in it must be immutable.
+
+ Each CertPath object must support one or more encodings so that the object
+ can be translated into a byte array for storage or transmission to other
+ parties. Preferably, these encodings should be well-documented standards
+ (such as PKCS#7). One of the encodings supported by a CertPath is considered
+ the default encoding. This encoding is used if no encoding is explicitly
+ requested (for the {@link #getEncoded()} method, for instance).
+
+ All CertPath objects are also Serializable. CertPath objects are resolved
+ into an alternate {@link CertPathRep} object during serialization. This
+ allows a CertPath object to be serialized into an equivalent representation
+ regardless of its underlying implementation.
+
+ CertPath objects can be created with a CertificateFactory or they can be
+ returned by other classes, such as a CertPathBuilder.
+
+ By convention, X.509 CertPaths (consisting of X509Certificates), are ordered
+ starting with the target certificate and ending with a certificate issued by
+ the trust anchor. That is, the issuer of one certificate is the subject of
+ the following one. The certificate representing the
+ {@link TrustAnchor TrustAnchor} should not be included in the certification
+ path. Unvalidated X.509 CertPaths may not follow these conventions. PKIX
+ CertPathValidators will detect any departure from these conventions that
+ cause the certification path to be invalid and throw a
+ CertPathValidatorException.
+
+ Concurrent Access
+
+ All CertPath objects must be thread-safe. That is, multiple threads may
+ concurrently invoke the methods defined in this class on a single CertPath
+ object (or more than one) with no ill effects. This is also true for the List
+ returned by CertPath.getCertificates.
+
+ Requiring CertPath objects to be immutable and thread-safe allows them to be
+ passed around to various pieces of code without worrying about coordinating
+ access. Providing this thread-safety is generally not difficult, since the
+ CertPath and List objects in question are immutable.
+
+ @see CertificateFactory
+ @see CertPathBuilder
+
+ CertPath implementation for X.509 certificates.
+
+
+
+ @param certs
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Returns an iteration of the encodings supported by this
+ certification path, with the default encoding
+ first. Attempts to modify the returned Iterator via its
+ remove method result in an UnsupportedOperationException.
+
+ @return an Iterator over the names of the supported encodings (as Strings)
+
+
+
+ Compares this certification path for equality with the specified object.
+ Two CertPaths are equal if and only if their types are equal and their
+ certificate Lists (and by implication the Certificates in those Lists)
+ are equal. A CertPath is never equal to an object that is not a CertPath.
+
+ This algorithm is implemented by this method. If it is overridden, the
+ behavior specified here must be maintained.
+
+ @param other
+ the object to test for equality with this certification path
+
+ @return true if the specified object is equal to this certification path,
+ false otherwise
+
+ @see Object#hashCode() Object.hashCode()
+
+
+ Returns the encoded form of this certification path, using
+ the default encoding.
+
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error occurs
+
+
+
+ Returns the encoded form of this certification path, using
+ the specified encoding.
+
+ @param encoding the name of the encoding to use
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error
+ occurs or the encoding requested is not supported
+
+
+
+
+ Returns the list of certificates in this certification
+ path.
+
+
+
+ Return a DERObject containing the encoded certificate.
+
+ @param cert the X509Certificate object to be encoded
+
+ @return the DERObject
+
+
+
+ Implements the PKIX CertPathBuilding algorithm for BouncyCastle.
+
+ @see CertPathBuilderSpi
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+
+ Summary description for PkixCertPathBuilderException.
+
+
+
+
+ Summary description for PkixCertPathBuilderResult.
+
+
+
+ * Initializes the internal state of this PKIXCertPathChecker.
+ *
+ * The forward flag specifies the order that certificates
+ * will be passed to the {@link #check check} method (forward or reverse). A
+ * PKIXCertPathChecker must support reverse checking
+ * and may support forward checking.
+ *
+ *
+ * @param forward
+ * the order that certificates are presented to the
+ * check method. If true,
+ * certificates are presented from target to most-trusted CA
+ * (forward); if false, from most-trusted CA to
+ * target (reverse).
+ * @exception CertPathValidatorException
+ * if this PKIXCertPathChecker is unable to
+ * check certificates in the specified order; it should never
+ * be thrown if the forward flag is false since reverse
+ * checking must be supported
+
+
+ Indicates if forward checking is supported. Forward checking refers to
+ the ability of the PKIXCertPathChecker to perform its
+ checks when certificates are presented to the check method
+ in the forward direction (from target to most-trusted CA).
+
+ @return true if forward checking is supported,
+ false otherwise
+
+
+ * Returns an immutable Set of X.509 certificate extensions
+ * that this PKIXCertPathChecker supports (i.e. recognizes,
+ * is able to process), or null if no extensions are
+ * supported.
+ *
+ * Each element of the set is a String representing the
+ * Object Identifier (OID) of the X.509 extension that is supported. The OID
+ * is represented by a set of nonnegative integers separated by periods.
+ *
+ * All X.509 certificate extensions that a PKIXCertPathChecker
+ * might possibly be able to process should be included in the set.
+ *
+ *
+ * @return an immutable Set of X.509 extension OIDs (in
+ * String format) supported by this
+ * PKIXCertPathChecker, or null if no
+ * extensions are supported
+
+
+ Performs the check(s) on the specified certificate using its internal
+ state and removes any critical extensions that it processes from the
+ specified collection of OID strings that represent the unresolved
+ critical extensions. The certificates are presented in the order
+ specified by the init method.
+
+ @param cert
+ the Certificate to be checked
+ @param unresolvedCritExts
+ a Collection of OID strings representing the
+ current set of unresolved critical extensions
+ @exception CertPathValidatorException
+ if the specified certificate does not pass the check
+
+
+ Returns a clone of this object. Calls the Object.clone()
+ method. All subclasses which maintain state must support and override
+ this method, if necessary.
+
+ @return a copy of this PKIXCertPathChecker
+
+
+ The Service Provider Interface (SPI)
+ for the {@link CertPathValidator CertPathValidator} class. All
+ CertPathValidator implementations must include a class (the
+ SPI class) that extends this class (CertPathValidatorSpi)
+ and implements all of its methods. In general, instances of this class
+ should only be accessed through the CertPathValidator class.
+ For details, see the Java Cryptography Architecture.
+
+ Concurrent Access
+
+ Instances of this class need not be protected against concurrent
+ access from multiple threads. Threads that need to access a single
+ CertPathValidatorSpi instance concurrently should synchronize
+ amongst themselves and provide the necessary locking before calling the
+ wrapping CertPathValidator object.
+
+ However, implementations of CertPathValidatorSpi may still
+ encounter concurrency issues, since multiple threads each
+ manipulating a different CertPathValidatorSpi instance need not
+ synchronize.
+
+ CertPathValidatorSpi implementation for X.509 Certificate validation a la RFC
+ 3280.
+
+
+
+ An exception indicating one of a variety of problems encountered when
+ validating a certification path.
+
+ A CertPathValidatorException provides support for wrapping
+ exceptions. The {@link #getCause getCause} method returns the throwable,
+ if any, that caused this exception to be thrown.
+
+ A CertPathValidatorException may also include the
+ certification path that was being validated when the exception was thrown
+ and the index of the certificate in the certification path that caused the
+ exception to be thrown. Use the {@link #getCertPath getCertPath} and
+ {@link #getIndex getIndex} methods to retrieve this information.
+
+ Concurrent Access
+
+ Unless otherwise specified, the methods defined in this class are not
+ thread-safe. Multiple threads that need to access a single
+ object concurrently should synchronize amongst themselves and
+ provide the necessary locking. Multiple threads each manipulating
+ separate objects need not synchronize.
+
+ @see CertPathValidator
+
+
+
+
+ Creates a PkixCertPathValidatorException with the given detail
+ message. A detail message is a String that describes this
+ particular exception.
+
+ the detail message
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message and cause.
+
+ the detail message
+ the cause (which is saved for later retrieval by the
+ {@link #getCause getCause()} method). (A null
+ value is permitted, and indicates that the cause is
+ nonexistent or unknown.)
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message, cause, certification path, and index.
+
+ the detail message (or null if none)
+ the cause (or null if none)
+ the certification path that was in the process of being
+ validated when the error was encountered
+ the index of the certificate in the certification path that *
+
+
+
+ Returns the detail message for this CertPathValidatorException.
+
+ the detail message, or null if neither the message nor cause were specified
+
+
+ Returns the certification path that was being validated when the
+ exception was thrown.
+
+ @return the CertPath that was being validated when the
+ exception was thrown (or null if not specified)
+
+
+ Returns the index of the certificate in the certification path that
+ caused the exception to be thrown. Note that the list of certificates in
+ a CertPath is zero based. If no index has been set, -1 is
+ returned.
+
+ @return the index that has been set, or -1 if none has been set
+
+
+
+ Summary description for PkixCertPathValidatorResult.
+
+
+
+
+ Summary description for PkixCertPathValidatorUtilities.
+
+
+
+
+ key usage bits
+
+
+
+
+ Search the given Set of TrustAnchor's for one that is the
+ issuer of the given X509 certificate.
+
+ the X509 certificate
+ a Set of TrustAnchor's
+ the TrustAnchor object if found or
+ null if not.
+
+ @exception
+
+
+
+ Returns the issuer of an attribute certificate or certificate.
+
+ The attribute certificate or certificate.
+ The issuer as X500Principal.
+
+
+ Return the next working key inheriting DSA parameters if necessary.
+
+ This methods inherits DSA parameters from the indexed certificate or
+ previous certificates in the certificate chain to the returned
+ PublicKey. The list is searched upwards, meaning the end
+ certificate is at position 0 and previous certificates are following.
+
+
+ If the indexed certificate does not contain a DSA key this method simply
+ returns the public key. If the DSA key already contains DSA parameters
+ the key is also only returned.
+
+
+ @param certs The certification path.
+ @param index The index of the certificate which contains the public key
+ which should be extended with DSA parameters.
+ @return The public key of the certificate in list position
+ index extended with DSA parameters if applicable.
+ @throws Exception if DSA parameters cannot be inherited.
+
+
+
+ Return a Collection of all certificates or attribute certificates found
+ in the X509Store's that are matching the certSelect criteriums.
+
+ a {@link Selector} object that will be used to select
+ the certificates
+ a List containing only X509Store objects. These
+ are used to search for certificates.
+ a Collection of all found or
+ objects.
+ May be empty but never null.
+
+
+
+ Add the CRL issuers from the cRLIssuer field of the distribution point or
+ from the certificate if not given to the issuer criterion of the
+ selector.
+
+ The issuerPrincipals are a collection with a single
+ X500Principal for X509Certificates. For
+ {@link X509AttributeCertificate}s the issuer may contain more than one
+ X500Principal.
+
+
+ @param dp The distribution point.
+ @param issuerPrincipals The issuers of the certificate or attribute
+ certificate which contains the distribution point.
+ @param selector The CRL selector.
+ @param pkixParams The PKIX parameters containing the cert stores.
+ @throws Exception if an exception occurs while processing.
+ @throws ClassCastException if issuerPrincipals does not
+ contain only X500Principals.
+
+
+ Fetches complete CRLs according to RFC 3280.
+
+ @param dp The distribution point for which the complete CRL
+ @param cert The X509Certificate or
+ {@link org.bouncycastle.x509.X509AttributeCertificate} for
+ which the CRL should be searched.
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @return A Set of X509CRLs with complete
+ CRLs.
+ @throws Exception if an exception occurs while picking the CRLs
+ or no CRLs are found.
+
+
+ Fetches delta CRLs according to RFC 3280 section 5.2.4.
+
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @param completeCRL The complete CRL the delta CRL is for.
+ @return A Set of X509CRLs with delta CRLs.
+ @throws Exception if an exception occurs while picking the delta
+ CRLs.
+
+
+ Find the issuer certificates of a given certificate.
+
+ @param cert
+ The certificate for which an issuer should be found.
+ @param pkixParams
+ @return A Collection object containing the issuer
+ X509Certificates. Never null.
+
+ @exception Exception
+ if an error occurs.
+
+
+
+ Extract the value of the given extension, if it exists.
+
+ The extension object.
+ The object identifier to obtain.
+ Asn1Object
+ if the extension cannot be read.
+
+
+
+ crl checking
+ Return a Collection of all CRLs found in the X509Store's that are
+ matching the crlSelect criteriums.
+
+ a {@link X509CRLStoreSelector} object that will be used
+ to select the CRLs
+ a List containing only {@link org.bouncycastle.x509.X509Store
+ X509Store} objects. These are used to search for CRLs
+ a Collection of all found {@link X509CRL X509CRL} objects. May be
+ empty but never null.
+
+
+
+ Returns the intersection of the permitted IP ranges in
+ permitted with ip.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ips The IP address with its subnet mask.
+ @return The Set of permitted IP ranges intersected with
+ ip.
+
+
+ Returns the union of the excluded IP ranges in excluded
+ with ip.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address with its subnet mask.
+ @return The Set of excluded IP ranges unified with
+ ip as byte arrays.
+
+
+ Calculates the union if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the union of both addresses.
+
+
+ Calculates the interesction if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the single IP address with its subnet
+ mask as a byte array or an empty Set.
+
+
+ Concatenates the IP address with its subnet mask.
+
+ @param ip The IP address.
+ @param subnetMask Its subnet mask.
+ @return The concatenated IP address with its subnet mask.
+
+
+ Splits the IP addresses and their subnet mask.
+
+ @param ipWithSubmask1 The first IP address with the subnet mask.
+ @param ipWithSubmask2 The second IP address with the subnet mask.
+ @return An array with two elements. Each element contains the IP address
+ and the subnet mask in this order.
+
+
+ Based on the two IP addresses and their subnet masks the IP range is
+ computed for each IP address - subnet mask pair and returned as the
+ minimum IP address and the maximum address of the range.
+
+ @param ip1 The first IP address.
+ @param subnetmask1 The subnet mask of the first IP address.
+ @param ip2 The second IP address.
+ @param subnetmask2 The subnet mask of the second IP address.
+ @return A array with two elements. The first/second element contains the
+ min and max IP address of the first/second IP address and its
+ subnet mask.
+
+
+ Checks if the IP ip is included in the permitted ISet
+ permitted.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is not permitted.
+
+
+ Checks if the IP ip is included in the excluded ISet
+ excluded.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is excluded.
+
+
+ Checks if the IP address ip is constrained by
+ constraint.
+
+ @param ip The IP address.
+ @param constraint The constraint. This is an IP address concatenated with
+ its subnetmask.
+ @return true if constrained, false
+ otherwise.
+
+
+ The common part of email1 and email2 is
+ added to the union union. If email1 and
+ email2 have nothing in common they are added both.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param union The union.
+
+
+ The most restricting part from email1 and
+ email2 is added to the intersection intersect.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param intersect The intersection.
+
+
+ Checks if the given GeneralName is in the permitted ISet.
+
+ @param name The GeneralName
+ @throws PkixNameConstraintValidatorException
+ If the name
+
+
+ Check if the given GeneralName is contained in the excluded ISet.
+
+ @param name The GeneralName.
+ @throws PkixNameConstraintValidatorException
+ If the name is
+ excluded.
+
+
+ Updates the permitted ISet of these name constraints with the intersection
+ with the given subtree.
+
+ @param permitted The permitted subtrees
+
+
+ Adds a subtree to the excluded ISet of these name constraints.
+
+ @param subtree A subtree with an excluded GeneralName.
+
+
+ Returns the maximum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The maximum IP address.
+
+
+ Returns the minimum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The minimum IP address.
+
+
+ Compares IP address ip1 with ip2. If ip1
+ is equal to ip2 0 is returned. If ip1 is bigger 1 is returned, -1
+ otherwise.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return 0 if ip1 is equal to ip2, 1 if ip1 is bigger, -1 otherwise.
+
+
+ Returns the logical OR of the IP addresses ip1 and
+ ip2.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The OR of ip1 and ip2.
+
+
+ Stringifies an IPv4 or v6 address with subnet mask.
+
+ @param ip The IP with subnet mask.
+ @return The stringified IP address.
+
+
+
+ Summary description for PkixParameters.
+
+
+
+ This is the default PKIX validity model. Actually there are two variants
+ of this: The PKIX model and the modified PKIX model. The PKIX model
+ verifies that all involved certificates must have been valid at the
+ current time. The modified PKIX model verifies that all involved
+ certificates were valid at the signing time. Both are indirectly choosen
+ with the {@link PKIXParameters#setDate(java.util.Date)} method, so this
+ methods sets the Date when all certificates must have been
+ valid.
+
+
+ This model uses the following validity model. Each certificate must have
+ been valid at the moment where is was used. That means the end
+ certificate must have been valid at the time the signature was done. The
+ CA certificate which signed the end certificate must have been valid,
+ when the end certificate was signed. The CA (or Root CA) certificate must
+ have been valid, when the CA certificate was signed and so on. So the
+ {@link PKIXParameters#setDate(java.util.Date)} method sets the time, when
+ the end certificate must have been valid. It is used e.g.
+ in the German signature law.
+
+
+ Creates an instance of PKIXParameters with the specified Set of
+ most-trusted CAs. Each element of the set is a TrustAnchor.
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+ @param trustAnchors
+ a Set of TrustAnchors
+
+ @exception InvalidAlgorithmParameterException
+ if the specified Set is empty
+ (trustAnchors.isEmpty() == true)
+ @exception NullPointerException
+ if the specified Set is null
+ @exception ClassCastException
+ if any of the elements in the Set are not of type
+ java.security.cert.TrustAnchor
+
+
+ Returns the required constraints on the target certificate. The
+ constraints are returned as an instance of CertSelector. If
+ null, no constraints are defined.
+
+ Note that the CertSelector returned is cloned to protect against
+ subsequent modifications.
+
+ @return a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #setTargetCertConstraints(CertSelector)
+
+
+ Sets the required constraints on the target certificate. The constraints
+ are specified as an instance of CertSelector. If null, no constraints are
+ defined.
+
+ Note that the CertSelector specified is cloned to protect against
+ subsequent modifications.
+
+ @param selector
+ a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #getTargetCertConstraints()
+
+
+ Returns an immutable Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. The
+ default return value is an empty Set, which is
+ interpreted as meaning that any policy would be acceptable.
+
+ @return an immutable Set of initial policy OIDs in String
+ format, or an empty Set (implying any policy is
+ acceptable). Never returns null.
+
+ @see #setInitialPolicies(java.util.Set)
+
+
+ Sets the Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. By
+ default, any policy is acceptable (i.e. all policies), so a user that
+ wants to allow any policy as acceptable does not need to call this
+ method, or can call it with an empty Set (or
+ null).
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+
+ @param initialPolicies
+ a Set of initial policy OIDs in String format (or
+ null)
+
+ @exception ClassCastException
+ if any of the elements in the set are not of type String
+
+ @see #getInitialPolicies()
+
+
+ Sets a List of additional certification path checkers. If
+ the specified List contains an object that is not a PKIXCertPathChecker,
+ it is ignored.
+
+ Each PKIXCertPathChecker specified implements additional
+ checks on a certificate. Typically, these are checks to process and
+ verify private extensions contained in certificates. Each
+ PKIXCertPathChecker should be instantiated with any
+ initialization parameters needed to execute the check.
+
+ This method allows sophisticated applications to extend a PKIX
+ CertPathValidator or CertPathBuilder. Each
+ of the specified PKIXCertPathCheckers will be called, in turn, by a PKIX
+ CertPathValidator or CertPathBuilder for
+ each certificate processed or validated.
+
+ Regardless of whether these additional PKIXCertPathCheckers are set, a
+ PKIX CertPathValidator or CertPathBuilder
+ must perform all of the required PKIX checks on each certificate. The one
+ exception to this rule is if the RevocationEnabled flag is set to false
+ (see the {@link #setRevocationEnabled(boolean) setRevocationEnabled}
+ method).
+
+ Note that the List supplied here is copied and each PKIXCertPathChecker
+ in the list is cloned to protect against subsequent modifications.
+
+ @param checkers
+ a List of PKIXCertPathCheckers. May be null, in which case no
+ additional checkers will be used.
+ @exception ClassCastException
+ if any of the elements in the list are not of type
+ java.security.cert.PKIXCertPathChecker
+ @see #getCertPathCheckers()
+
+
+ Returns the List of certification path checkers. Each PKIXCertPathChecker
+ in the returned IList is cloned to protect against subsequent modifications.
+
+ @return an immutable List of PKIXCertPathCheckers (may be empty, but not
+ null)
+
+ @see #setCertPathCheckers(java.util.List)
+
+
+ Adds a PKIXCertPathChecker to the list of certification
+ path checkers. See the {@link #setCertPathCheckers setCertPathCheckers}
+ method for more details.
+
+ Note that the PKIXCertPathChecker is cloned to protect
+ against subsequent modifications.
+
+ @param checker a PKIXCertPathChecker to add to the list of
+ checks. If null, the checker is ignored (not added to list).
+
+
+ Method to support Clone() under J2ME.
+ super.Clone() does not exist and fields are not copied.
+
+ @param params Parameters to set. If this are
+ ExtendedPkixParameters they are copied to.
+
+
+ Whether delta CRLs should be used for checking the revocation status.
+ Defaults to false.
+
+
+ The validity model.
+ @see #CHAIN_VALIDITY_MODEL
+ @see #PKIX_VALIDITY_MODEL
+
+
+ Sets the Bouncy Castle Stores for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ The IList is cloned.
+
+
+ @param stores A list of stores to use.
+ @see #getStores
+ @throws ClassCastException if an element of stores is not
+ a {@link Store}.
+
+
+ Adds a Bouncy Castle {@link Store} to find CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ This method should be used to add local stores, like collection based
+ X.509 stores, if available. Local stores should be considered first,
+ before trying to use additional (remote) locations, because they do not
+ need possible additional network traffic.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores
+
+
+ Adds an additional Bouncy Castle {@link Store} to find CRLs, certificates,
+ attribute certificates or cross certificates.
+
+ You should not use this method. This method is used for adding additional
+ X.509 stores, which are used to add (remote) locations, e.g. LDAP, found
+ during X.509 object processing, e.g. in certificates or CRLs. This method
+ is used in PKIX certification path processing.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores()
+
+
+ Returns an IList of additional Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of additional Bouncy Castle
+ Stores. Never null.
+
+ @see #addAddionalStore(Store)
+
+
+ Returns an IList of Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of Bouncy Castle
+ Stores. Never null.
+
+ @see #setStores(IList)
+
+
+ Returns if additional {@link X509Store}s for locations like LDAP found
+ in certificates or CRLs should be used.
+
+ @return Returns true if additional stores are used.
+
+
+ Sets if additional {@link X509Store}s for locations like LDAP found in
+ certificates or CRLs should be used.
+
+ @param enabled true if additional stores are used.
+
+
+ Returns the required constraints on the target certificate or attribute
+ certificate. The constraints are returned as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector returned is cloned to protect
+ against subsequent modifications.
+
+ @return a IX509Selector specifying the constraints on the
+ target certificate or attribute certificate (or null)
+ @see #setTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Sets the required constraints on the target certificate or attribute
+ certificate. The constraints are specified as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector specified is cloned to protect
+ against subsequent modifications.
+
+
+ @param selector a IX509Selector specifying the constraints on
+ the target certificate or attribute certificate (or
+ null)
+ @see #getTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Returns the trusted attribute certificate issuers. If attribute
+ certificates is verified the trusted AC issuers must be set.
+
+ The returned ISet consists of TrustAnchors.
+
+ The returned ISet is immutable. Never null
+
+
+ @return Returns an immutable set of the trusted AC issuers.
+
+
+ Sets the trusted attribute certificate issuers. If attribute certificates
+ is verified the trusted AC issuers must be set.
+
+ The trustedACIssuers must be a ISet of
+ TrustAnchor
+
+ The given set is cloned.
+
+
+ @param trustedACIssuers The trusted AC issuers to set. Is never
+ null.
+ @throws ClassCastException if an element of stores is not
+ a TrustAnchor.
+
+
+ Returns the necessary attributes which must be contained in an attribute
+ certificate.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the necessary AC attributes.
+
+
+ Sets the necessary which must be contained in an attribute certificate.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param necessaryACAttributes The necessary AC attributes to set.
+ @throws ClassCastException if an element of
+ necessaryACAttributes is not a
+ String.
+
+
+ Returns the attribute certificates which are not allowed.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the prohibited AC attributes. Is never null.
+
+
+ Sets the attribute certificates which are not allowed.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param prohibitedACAttributes The prohibited AC attributes to set.
+ @throws ClassCastException if an element of
+ prohibitedACAttributes is not a
+ String.
+
+
+ Returns the attribute certificate checker. The returned set contains
+ {@link PKIXAttrCertChecker}s and is immutable.
+
+ @return Returns the attribute certificate checker. Is never
+ null.
+
+
+ Sets the attribute certificate checkers.
+
+ All elements in the ISet must a {@link PKIXAttrCertChecker}.
+
+
+ The given set is cloned.
+
+
+ @param attrCertCheckers The attribute certificate checkers to set. Is
+ never null.
+ @throws ClassCastException if an element of attrCertCheckers
+ is not a PKIXAttrCertChecker.
+
+
+
+ Summary description for PkixPolicyNode.
+
+
+
+ Constructors
+
+
+
+ This class helps to handle CRL revocation reasons mask. Each CRL handles a
+ certain set of revocation reasons.
+
+
+
+
+ Constructs are reason mask with the reasons.
+
+ The reasons.
+
+
+
+ A reason mask with no reason.
+
+
+
+
+ A mask with all revocation reasons.
+
+
+
+ Adds all reasons from the reasons mask to this mask.
+
+ @param mask The reasons mask to add.
+
+
+
+ Returns true if this reasons mask contains all possible
+ reasons.
+
+ true if this reasons mask contains all possible reasons.
+
+
+
+
+ Intersects this mask with the given reasons mask.
+
+ mask The mask to intersect with.
+ The intersection of this and teh given mask.
+
+
+
+ Returns true if the passed reasons mask has new reasons.
+
+ The reasons mask which should be tested for new reasons.
+ true if the passed reasons mask has new reasons.
+
+
+
+ Returns the reasons in this mask.
+
+
+
+ If the complete CRL includes an issuing distribution point (IDP) CRL
+ extension check the following:
+
+ (i) If the distribution point name is present in the IDP CRL extension
+ and the distribution field is present in the DP, then verify that one of
+ the names in the IDP matches one of the names in the DP. If the
+ distribution point name is present in the IDP CRL extension and the
+ distribution field is omitted from the DP, then verify that one of the
+ names in the IDP matches one of the names in the cRLIssuer field of the
+ DP.
+
+
+ (ii) If the onlyContainsUserCerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate does not include the basic
+ constraints extension with the cA boolean asserted.
+
+
+ (iii) If the onlyContainsCACerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate includes the basic constraints
+ extension with the cA boolean asserted.
+
+
+ (iv) Verify that the onlyContainsAttributeCerts boolean is not asserted.
+
+
+ @param dp The distribution point.
+ @param cert The certificate.
+ @param crl The CRL.
+ @throws AnnotatedException if one of the conditions is not met or an error occurs.
+
+
+ If the DP includes cRLIssuer, then verify that the issuer field in the
+ complete CRL matches cRLIssuer in the DP and that the complete CRL
+ contains an
+ g distribution point extension with the indirectCRL
+ boolean asserted. Otherwise, verify that the CRL issuer matches the
+ certificate issuer.
+
+ @param dp The distribution point.
+ @param cert The certificate ot attribute certificate.
+ @param crl The CRL for cert.
+ @throws AnnotatedException if one of the above conditions does not apply or an error
+ occurs.
+
+
+ Obtain and validate the certification path for the complete CRL issuer.
+ If a key usage extension is present in the CRL issuer's certificate,
+ verify that the cRLSign bit is set.
+
+ @param crl CRL which contains revocation information for the certificate
+ cert.
+ @param cert The attribute certificate or certificate to check if it is
+ revoked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param paramsPKIX paramsPKIX PKIX parameters.
+ @param certPathCerts The certificates on the certification path.
+ @return A Set with all keys of possible CRL issuer
+ certificates.
+ @throws AnnotatedException if the CRL is not valid or the status cannot be checked or
+ some error occurs.
+
+
+ Checks a distribution point for revocation information for the
+ certificate cert.
+
+ @param dp The distribution point to consider.
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param certStatus The current certificate revocation status.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ Checks a certificate if it is revoked.
+
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param sign The issuer certificate of the certificate cert.
+ @param workingPublicKey The public key of the issuer certificate sign.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ If use-deltas is set, verify the issuer and scope of the delta CRL.
+
+ @param deltaCRL The delta CRL.
+ @param completeCRL The complete CRL.
+ @param pkixParams The PKIX paramaters.
+ @throws AnnotatedException if an exception occurs.
+
+
+ Checks if an attribute certificate is revoked.
+
+ @param attrCert Attribute certificate to check if it is revoked.
+ @param paramsPKIX PKIX parameters.
+ @param issuerCert The issuer certificate of the attribute certificate
+ attrCert.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+
+ @throws CertPathValidatorException if the certificate is revoked or the
+ status cannot be checked or some error occurs.
+
+
+ Searches for a holder public key certificate and verifies its
+ certification path.
+
+ @param attrCert the attribute certificate.
+ @param pkixParams The PKIX parameters.
+ @return The certificate path of the holder certificate.
+ @throws Exception if
+
+ - no public key certificate can be found although holder
+ information is given by an entity name or a base certificate
+ ID
+ - support classes cannot be created
+ - no certification path for the public key certificate can
+ be built
+
+
+
+
+ Checks a distribution point for revocation information for the
+ certificate attrCert.
+
+ @param dp The distribution point to consider.
+ @param attrCert The attribute certificate which should be checked.
+ @param paramsPKIX PKIX parameters.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param issuerCert Certificate to check if it is revoked.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+ @throws Exception if the certificate is revoked or the status
+ cannot be checked or some error occurs.
+
+
+
+ A trust anchor or most-trusted Certification Authority (CA).
+
+ This class represents a "most-trusted CA", which is used as a trust anchor
+ for validating X.509 certification paths. A most-trusted CA includes the
+ public key of the CA, the CA's name, and any constraints upon the set of
+ paths which may be validated using this key. These parameters can be
+ specified in the form of a trusted X509Certificate or as individual
+ parameters.
+
+
+
+
+ Creates an instance of TrustAnchor with the specified X509Certificate and
+ optional name constraints, which are intended to be used as additional
+ constraints when validating an X.509 certification path.
+ The name constraints are specified as a byte array. This byte array
+ should contain the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459 and
+ X.509. The ASN.1 definition of this structure appears below.
+
+
+ NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+ GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+ GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+ BaseDistance ::= INTEGER (0..MAX)
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+
+ Note that the name constraints byte array supplied is cloned to protect
+ against subsequent modifications.
+
+ a trusted X509Certificate
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ if the specified X509Certificate is null
+
+
+
+ Creates an instance of TrustAnchor where the
+ most-trusted CA is specified as an X500Principal and public key.
+
+
+
+ Name constraints are an optional parameter, and are intended to be used
+ as additional constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459
+ and X.509. The ASN.1 notation for this structure is supplied in the
+ documentation for the other constructors.
+
+ Note that the name constraints byte array supplied here is cloned to
+ protect against subsequent modifications.
+
+
+ the name of the most-trusted CA as X509Name
+ the public key of the most-trusted CA
+
+ a byte array containing the ASN.1 DER encoding of a NameConstraints extension to
+ be used for checking name constraints. Only the value of the extension is included,
+ not the OID or criticality flag. Specify null to omit the parameter.
+
+
+ if caPrincipal or pubKey is null
+
+
+
+
+ Creates an instance of TrustAnchor where the most-trusted
+ CA is specified as a distinguished name and public key. Name constraints
+ are an optional parameter, and are intended to be used as additional
+ constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they would
+ appear in the NameConstraints structure defined in RFC 2459 and X.509.
+
+ the X.500 distinguished name of the most-trusted CA in RFC
+ 2253 string format
+ the public key of the most-trusted CA
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ throws NullPointerException, IllegalArgumentException
+
+
+
+ Returns the most-trusted CA certificate.
+
+
+
+
+ Returns the name of the most-trusted CA as an X509Name.
+
+
+
+
+ Returns the name of the most-trusted CA in RFC 2253 string format.
+
+
+
+
+ Returns the public key of the most-trusted CA.
+
+
+
+
+ Decode the name constraints and clone them if not null.
+
+
+
+
+ Returns a formatted string describing the TrustAnchor.
+
+ a formatted string describing the TrustAnchor
+
+
+ Base class for an RFC 3161 Time Stamp Request.
+
+
+ Create a TimeStampRequest from the past in byte array.
+
+ @param req byte array containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Create a TimeStampRequest from the past in input stream.
+
+ @param in input stream containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Validate the timestamp request, checking the digest to see if it is of an
+ accepted type and whether it is of the correct length for the algorithm specified.
+
+ @param algorithms a set of string OIDS giving accepted algorithms.
+ @param policies if non-null a set of policies we are willing to sign under.
+ @param extensions if non-null a set of extensions we are willing to accept.
+ @throws TspException if the request is invalid, or processing fails.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Request objects.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ Base class for an RFC 3161 Time Stamp Response object.
+
+
+ Create a TimeStampResponse from a byte array containing an ASN.1 encoding.
+
+ @param resp the byte array containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the byte array doesn't represent an ASN.1 encoding.
+
+
+ Create a TimeStampResponse from an input stream containing an ASN.1 encoding.
+
+ @param input the input stream containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the stream doesn't represent an ASN.1 encoding.
+
+
+ Check this response against to see if it a well formed response for
+ the passed in request. Validation will include checking the time stamp
+ token if the response status is GRANTED or GRANTED_WITH_MODS.
+
+ @param request the request to be checked against
+ @throws TspException if the request can not match this response.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Responses.
+
+
+ Return an appropriate TimeStampResponse.
+
+ If genTime is null a timeNotAvailable error response will be returned.
+
+ @param request the request this response is for.
+ @param serialNumber serial number for the response token.
+ @param genTime generation time for the response token.
+ @param provider provider to use for signature calculation.
+ @return
+ @throws NoSuchAlgorithmException
+ @throws NoSuchProviderException
+ @throws TSPException
+
+
+
+ Generate a TimeStampResponse with chosen status and FailInfoField.
+
+ @param status the PKIStatus to set.
+ @param failInfoField the FailInfoField to set.
+ @param statusString an optional string describing the failure.
+ @return a TimeStampResponse with a failInfoField and optional statusString
+ @throws TSPException in case the response could not be created
+
+
+ Validate the time stamp token.
+
+ To be valid the token must be signed by the passed in certificate and
+ the certificate must be the one referred to by the SigningCertificate
+ attribute included in the hashed attributes of the token. The
+ certificate must also have the ExtendedKeyUsageExtension with only
+ KeyPurposeID.IdKPTimeStamping and have been valid at the time the
+ timestamp was created.
+
+
+ A successful call to validate means all the above are true.
+
+
+
+ Return the underlying CmsSignedData object.
+
+ @return the underlying CMS structure.
+
+
+ Return a ASN.1 encoded byte stream representing the encoded object.
+
+ @throws IOException if encoding fails.
+
+
+ basic creation - only the default attributes will be included here.
+
+
+ create with a signer with extra signed/unsigned attributes.
+
+
+ @return the nonce value, null if there isn't one.
+
+
+ Recognised hash algorithms for the time stamp protocol.
+
+
+ Fetches the signature time-stamp attributes from a SignerInformation object.
+ Checks that the MessageImprint for each time-stamp matches the signature field.
+ (see RFC 3161 Appendix A).
+
+ @param signerInfo a SignerInformation to search for time-stamps
+ @return a collection of TimeStampToken objects
+ @throws TSPValidationException
+
+
+ Validate the passed in certificate as being of the correct type to be used
+ for time stamping. To be valid it must have an ExtendedKeyUsage extension
+ which has a key purpose identifier of id-kp-timeStamping.
+
+ @param cert the certificate of interest.
+ @throws TspValidationException if the certicate fails on one of the check points.
+
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Exception thrown if a TSP request or response fails to validate.
+
+ If a failure code is associated with the exception it can be retrieved using
+ the getFailureCode() method.
+
+
+ Return the failure code associated with this exception - if one is set.
+
+ @return the failure code if set, -1 otherwise.
+
+
+ General array utilities.
+
+
+
+ Are two arrays equal.
+
+ Left side.
+ Right side.
+ True if equal.
+
+
+
+ A constant time equals comparison - does not terminate early if
+ test will fail.
+
+ first array
+ second array
+ true if arrays equal, false otherwise.
+
+
+ Make a copy of a range of bytes from the passed in data array. The range can
+ extend beyond the end of the input array, in which case the return array will
+ be padded with zeroes.
+
+ @param data the array from which the data is to be copied.
+ @param from the start index at which the copying should take place.
+ @param to the final index of the range (exclusive).
+
+ @return a new byte array containing the range given.
+
+
+ BigInteger utilities.
+
+
+ Return the passed in value as an unsigned byte array.
+
+ @param value value to be converted.
+ @return a byte array without a leading zero byte if present in the signed encoding.
+
+
+ Return the passed in value as an unsigned byte array of specified length, zero-extended as necessary.
+
+ @param length desired length of result array.
+ @param n value to be converted.
+ @return a byte array of specified length, with leading zeroes as necessary given the size of n.
+
+
+ Return a random BigInteger not less than 'min' and not greater than 'max'
+
+ @param min the least value that may be generated
+ @param max the greatest value that may be generated
+ @param random the source of randomness
+ @return a random BigInteger value in the range [min,max]
+
+
+
+ Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value.
+
+ A UTC DateTime value not before epoch.
+ Number of whole milliseconds after epoch.
+ 'dateTime' is before epoch.
+
+
+
+ Create a DateTime value from the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+ Number of milliseconds since the epoch.
+ A UTC DateTime value
+
+
+
+ Return the current number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a base 64 output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A buffering class to allow translation from one format to another to
+ be done in discrete chunks.
+
+
+
+
+ Create a buffered Decoder.
+
+ The translater to use.
+ The size of the buffer.
+
+
+
+ Process one byte of data.
+
+ Data in.
+ Byte array for the output.
+ The offset in the output byte array to start writing from.
+ The amount of output bytes.
+
+
+
+ Process data from a byte array.
+
+ The input data.
+ Start position within input data array.
+ Amount of data to process from input data array.
+ Array to store output.
+ Position in output array to start writing from.
+ The amount of output bytes.
+
+
+
+ A class that allows encoding of data using a specific encoder to be processed in chunks.
+
+
+
+
+ Create.
+
+ The translator to use.
+ Size of the chunks.
+
+
+
+ Process one byte of data.
+
+ The byte.
+ An array to store output in.
+ Offset within output array to start writing from.
+
+
+
+
+ Process data from a byte array.
+
+ Input data Byte array containing data to be processed.
+ Start position within input data array.
+ Amount of input data to be processed.
+ Output data array.
+ Offset within output data array to start writing to.
+ The amount of data written.
+
+
+
+ Class to decode and encode Hex.
+
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a Hex output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A hex translator.
+
+
+
+
+ Return encoded block size.
+
+ 2
+
+
+
+ Encode some data.
+
+ Input data array.
+ Start position within input data array.
+ The amount of data to process.
+ The output data array.
+ The offset within the output data array to start writing from.
+ Amount of data encoded.
+
+
+
+ Returns the decoded block size.
+
+ 1
+
+
+
+ Decode data from a byte array.
+
+ The input data array.
+ Start position within input data array.
+ The amounty of data to process.
+ The output data array.
+ The position within the output data array to start writing from.
+ The amount of data written.
+
+
+ Encode and decode byte arrays (typically from binary to 7-bit ASCII
+ encodings).
+
+
+
+ Translator interface.
+
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Encode the input data producing a URL safe base 64 encoded byte array.
+
+ @return a byte array containing the URL safe base 64 encoded data.
+
+
+ Encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Decode the URL safe base 64 encoded input data - white space will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the URL safe base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the URL safe base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the URL safe base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+
+ Produce a copy of this object with its configuration and in its current state.
+
+
+ The returned object may be used simply to store the state, or may be used as a similar object
+ starting from the copied state.
+
+
+
+
+ Restore a copied object state into this object.
+
+
+ Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
+
+ an object originally {@link #copy() copied} from an object of the same type as this instance.
+ if the provided object is not of the correct type.
+ if the other parameter is in some other way invalid.
+
+
+
+ A
+
+
+
+
+
+ A
+
+
+ A
+
+
+
+
+
+ A
+
+
+
+
+ A generic PEM writer, based on RFC 1421
+
+
+ Base constructor.
+
+ @param out output stream to use.
+
+
+ Return the number of bytes or characters required to contain the
+ passed in object if it is PEM encoded.
+
+ @param obj pem object to be output
+ @return an estimate of the number of bytes
+
+
+
+ Pipe all bytes from inStr to outStr, throwing StreamFlowException if greater
+ than limit bytes in inStr.
+
+
+ A
+
+
+ A
+
+
+ A
+
+ The number of bytes actually transferred, if not greater than limit
+
+
+
+
+
+
+ Exception to be thrown on a failure to reset an object implementing Memoable.
+
+ The exception extends InvalidCastException to enable users to have a single handling case,
+ only introducing specific handling of this one if required.
+
+
+
+ Basic Constructor.
+
+ @param msg message to be associated with this exception.
+
+
+ Validate the given IPv4 or IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address, false otherwise
+
+
+ Validate the given IPv4 or IPv6 address and netmask.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address with netmask, false otherwise
+
+
+ Validate the given IPv4 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ Validate the given IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ General string utilities.
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ The Holder object.
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+
+ Constructs a holder for v2 attribute certificates with a hash value for
+ some type of object.
+
+ digestedObjectType can be one of the following:
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+ This cannot be used if a v1 attribute certificate is used.
+
+ @param digestedObjectType The digest object type.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param otherObjectTypeID The object type ID if
+ digestedObjectType is
+ otherObjectDigest.
+ @param objectDigest The hash value.
+
+
+ Returns the digest object type if an object digest info is used.
+
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+
+ @return The digest object type or -1 if no object digest info is set.
+
+
+ Returns the other object type ID if an object digest info is used.
+
+ @return The other object type ID or null if no object
+ digest info is set.
+
+
+ Returns the hash if an object digest info is used.
+
+ @return The hash or null if no object digest info is set.
+
+
+ Returns the digest algorithm ID if an object digest info is used.
+
+ @return The digest algorithm ID or null if no object
+ digest info is set.
+
+
+ Return any principal objects inside the attribute certificate holder entity names field.
+
+ @return an array of IPrincipal objects (usually X509Name), null if no entity names field is set.
+
+
+ Return the principals associated with the issuer attached to this holder
+
+ @return an array of principals, null if no BaseCertificateID is set.
+
+
+ Return the serial number associated with the issuer attached to this holder.
+
+ @return the certificate serial number, null if no BaseCertificateID is set.
+
+
+ Carrying class for an attribute certificate issuer.
+
+
+ Set the issuer directly with the ASN.1 structure.
+
+ @param issuer The issuer
+
+
+ Return any principal objects inside the attribute certificate issuer object.
+ An array of IPrincipal objects (usually X509Principal).
+
+
+ A high level authority key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Create an AuthorityKeyIdentifier using the passed in certificate's public
+ key, issuer and serial number.
+
+ @param certificate the certificate providing the information.
+ @throws CertificateParsingException if there is a problem processing the certificate
+
+
+ Create an AuthorityKeyIdentifier using just the hash of the
+ public key.
+
+ @param pubKey the key to generate the hash from.
+ @throws InvalidKeyException if there is a problem using the key.
+
+
+ A high level subject key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Interface for an X.509 Attribute Certificate.
+
+
+ The version number for the certificate.
+
+
+ The serial number for the certificate.
+
+
+ The UTC DateTime before which the certificate is not valid.
+
+
+ The UTC DateTime after which the certificate is not valid.
+
+
+ The holder of the certificate.
+
+
+ The issuer details for the certificate.
+
+
+ Return the attributes contained in the attribute block in the certificate.
+ An array of attributes.
+
+
+ Return the attributes with the same type as the passed in oid.
+ The object identifier we wish to match.
+ An array of matched attributes, null if there is no match.
+
+
+ Return an ASN.1 encoded byte array representing the attribute certificate.
+ An ASN.1 encoded byte array.
+ If the certificate cannot be encoded.
+
+
+
+ Get all critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ Get all non-critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ A utility class that will extract X509Principal objects from X.509 certificates.
+
+ Use this in preference to trying to recreate a principal from a string, not all
+ DNs are what they should be, so it's best to leave them encoded where they
+ can be.
+
+
+
+ Return the issuer of the given cert as an X509Principal.
+
+
+ Return the subject of the given cert as an X509Principal.
+
+
+ Return the issuer of the given CRL as an X509Principal.
+
+
+ This class is an Selector like implementation to select
+ attribute certificates from a given set of criteria.
+
+ @see org.bouncycastle.x509.X509AttributeCertificate
+ @see org.bouncycastle.x509.X509Store
+
+
+
+ Decides if the given attribute certificate should be selected.
+
+ The attribute certificate to be checked.
+ true if the object matches this selector.
+
+
+ The attribute certificate which must be matched.
+ If null is given, any will do.
+
+
+ The criteria for validity
+ If null is given any will do.
+
+
+ The holder.
+ If null is given any will do.
+
+
+ The issuer.
+ If null is given any will do.
+
+
+ The serial number.
+ If null is given any will do.
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name The name as a GeneralName (not null)
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the name in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target names criteria. If null is
+ given any will do.
+
+ The collection consists of either GeneralName objects or byte[] arrays representing
+ DER encoded GeneralName structures.
+
+
+ @param names A collection of target names.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetName(byte[])
+ @see #AddTargetName(GeneralName)
+
+
+ Gets the target names. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target names
+ @see #setTargetNames(Collection)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param group The group as GeneralName form (not null)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the group in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target groups criteria. If null is
+ given any will do.
+
+ The collection consists of GeneralName objects or byte[]
+ representing DER encoded GeneralNames.
+
+
+ @param names A collection of target groups.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetGroup(byte[])
+ @see #AddTargetGroup(GeneralName)
+
+
+ Gets the target groups. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target groups.
+ @see #setTargetGroups(Collection)
+
+
+
+ This class is an IX509Selector implementation to select
+ certificate pairs, which are e.g. used for cross certificates. The set of
+ criteria is given from two X509CertStoreSelector objects,
+ each of which, if present, must match the respective component of a pair.
+
+
+
+ The certificate pair which is used for testing on equality.
+
+
+ The certificate selector for the forward part.
+
+
+ The certificate selector for the reverse part.
+
+
+
+ Decides if the given certificate pair should be selected. If
+ obj is not a X509CertificatePair, this method
+ returns false.
+
+ The X509CertificatePair to be tested.
+ true if the object matches this selector.
+
+
+
+ An ISet of DerObjectIdentifier objects.
+
+
+
+ A simple collection backed store.
+
+
+ Basic constructor.
+
+ @param collection - initial contents for the store, this is copied.
+
+
+ Return the matches in the collection for the passed in selector.
+
+ @param selector the selector to match against.
+ @return a possibly empty collection of matching objects.
+
+
+ This class contains a collection for collection based X509Stores.
+
+
+
+ Constructor.
+
+ The collection is copied.
+
+
+ The collection containing X.509 object types.
+ If collection is null.
+
+
+ Returns a copy of the ICollection.
+
+
+ Returns a formatted string describing the parameters.
+
+
+
+ An ICollection of X509Name objects
+
+
+
+ The attribute certificate being checked. This is not a criterion.
+ Rather, it is optional information that may help a {@link X509Store} find
+ CRLs that would be relevant when checking revocation for the specified
+ attribute certificate. If null is specified, then no such
+ optional information is provided.
+
+ @param attrCert the IX509AttributeCertificate being checked (or
+ null)
+ @see #getAttrCertificateChecking()
+
+
+ If true only complete CRLs are returned. Defaults to
+ false.
+
+ @return true if only complete CRLs are returned.
+
+
+ Returns if this selector must match CRLs with the delta CRL indicator
+ extension set. Defaults to false.
+
+ @return Returns true if only CRLs with the delta CRL
+ indicator extension are selected.
+
+
+ The issuing distribution point.
+
+ The issuing distribution point extension is a CRL extension which
+ identifies the scope and the distribution point of a CRL. The scope
+ contains among others information about revocation reasons contained in
+ the CRL. Delta CRLs and complete CRLs must have matching issuing
+ distribution points.
+
+ The byte array is cloned to protect against subsequent modifications.
+
+ You must also enable or disable this criteria with
+ {@link #setIssuingDistributionPointEnabled(bool)}.
+
+ @param issuingDistributionPoint The issuing distribution point to set.
+ This is the DER encoded OCTET STRING extension value.
+ @see #getIssuingDistributionPoint()
+
+
+ Whether the issuing distribution point criteria should be applied.
+ Defaults to false.
+
+ You may also set the issuing distribution point criteria if not a missing
+ issuing distribution point should be assumed.
+
+ @return Returns if the issuing distribution point check is enabled.
+
+
+ The maximum base CRL number. Defaults to null.
+
+ @return Returns the maximum base CRL number.
+ @see #setMaxBaseCRLNumber(BigInteger)
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+ Class for carrying the values in an X.509 Attribute.
+
+
+ @param at an object representing an attribute.
+
+
+ Create an X.509 Attribute with the type given by the passed in oid and
+ the value represented by an ASN.1 Set containing value.
+
+ @param oid type of the attribute
+ @param value value object to go into the atribute's value set.
+
+
+ Create an X.59 Attribute with the type given by the passed in oid and the
+ value represented by an ASN.1 Set containing the objects in value.
+
+ @param oid type of the attribute
+ @param value vector of values to go in the attribute's value set.
+
+
+
+ An Object representing an X509 Certificate.
+ Has static methods for loading Certificates encoded in many forms that return X509Certificate Objects.
+
+
+
+
+ Return true if the current time is within the start and end times nominated on the certificate.
+
+ true id certificate is valid for the current time.
+
+
+
+ Return true if the nominated time is within the start and end times nominated on the certificate.
+
+ The time to test validity against.
+ True if certificate is valid for nominated time.
+
+
+
+ Checks if the current date is within certificate's validity period.
+
+
+
+
+ Checks if the given date is within certificate's validity period.
+
+ if the certificate is expired by given date
+ if the certificate is not yet valid on given date
+
+
+
+ Return the certificate's version.
+
+ An integer whose value Equals the version of the cerficate.
+
+
+
+ Return a BigInteger containing the serial number.
+
+ The Serial number.
+
+
+
+ Get the Issuer Distinguished Name. (Who signed the certificate.)
+
+ And X509Object containing name and value pairs.
+
+
+
+ Get the subject of this certificate.
+
+ An X509Name object containing name and value pairs.
+
+
+
+ The time that this certificate is valid from.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ The time that this certificate is valid up to.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ Return the Der encoded TbsCertificate data.
+ This is the certificate component less the signature.
+ To Get the whole certificate call the GetEncoded() member.
+
+ A byte array containing the Der encoded Certificate component.
+
+
+
+ The signature.
+
+ A byte array containg the signature of the certificate.
+
+
+
+ A meaningful version of the Signature Algorithm. (EG SHA1WITHRSA)
+
+ A sting representing the signature algorithm.
+
+
+
+ Get the Signature Algorithms Object ID.
+
+ A string containg a '.' separated object id.
+
+
+
+ Get the signature algorithms parameters. (EG DSA Parameters)
+
+ A byte array containing the Der encoded version of the parameters or null if there are none.
+
+
+
+ Get the issuers UID.
+
+ A DerBitString.
+
+
+
+ Get the subjects UID.
+
+ A DerBitString.
+
+
+
+ Get a key usage guidlines.
+
+
+
+
+ Get the public key of the subject of the certificate.
+
+ The public key parameters.
+
+
+
+ Return a Der encoded version of this certificate.
+
+ A byte array.
+
+
+
+ Verify the certificate's signature using the nominated public key.
+
+ An appropriate public key parameter object, RsaPublicKeyParameters, DsaPublicKeyParameters or ECDsaPublicKeyParameters
+ True if the signature is valid.
+ If key submitted is not of the above nominated types.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+
+ This class contains a cross certificate pair. Cross certificates pairs may
+ contain two cross signed certificates from two CAs. A certificate from the
+ other CA to this CA is contained in the forward certificate, the certificate
+ from this CA to the other CA is contained in the reverse certificate.
+
+
+
+ Constructor
+ Certificate from the other CA to this CA.
+ Certificate from this CA to the other CA.
+
+
+ Constructor from a ASN.1 CertificatePair structure.
+ The CertificatePair ASN.1 object.
+
+
+ Returns the certificate from the other CA to this CA.
+
+
+ Returns the certificate from this CA to the other CA.
+
+
+ class for dealing with X509 certificates.
+
+ At the moment this will deal with "-----BEGIN CERTIFICATE-----" to "-----END CERTIFICATE-----"
+ base 64 encoded certs, as well as the BER binaries of certificates and some classes of PKCS#7
+ objects.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRLs
+
+ Authority Key Identifier
+ Issuer Alternative Name
+ CRL Number
+ Delta CRL Indicator (critical)
+ Issuing Distribution Point (critical)
+
+
+
+ Verify the CRL's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the CRL's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the CRL algorithm is invalid.
+
+
+ Returns a string representation of this CRL.
+
+ @return a string representation of this CRL.
+
+
+ Checks whether the given certificate is on this CRL.
+
+ @param cert the certificate to check for.
+ @return true if the given certificate is on this CRL,
+ false otherwise.
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRL Entries
+
+ ReasonCode Hode Instruction Code Invalidity Date Certificate Issuer
+ (critical)
+
+
+ Constructor for CRLEntries of indirect CRLs. If isIndirect
+ is false {@link #getCertificateIssuer()} will always
+ return null, previousCertificateIssuer is
+ ignored. If this isIndirect is specified and this CrlEntry
+ has no certificate issuer CRL entry extension
+ previousCertificateIssuer is returned by
+ {@link #getCertificateIssuer()}.
+
+ @param c
+ TbsCertificateList.CrlEntry object.
+ @param isIndirect
+ true if the corresponding CRL is a indirect
+ CRL.
+ @param previousCertificateIssuer
+ Certificate issuer of the previous CrlEntry.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate revocation list (CRL) object and initializes
+ it with the data read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the CRLs read from
+ the given input stream inStream.
+
+ The inStream may contain a sequence of DER-encoded CRLs, or
+ a PKCS#7 CRL set. This is a PKCS#7 SignedData object, with the
+ only significant field being crls. In particular the signature
+ and the contents are ignored.
+
+
+
+ Get non critical extensions.
+
+ A set of non critical extension oids.
+
+
+
+ Get any critical extensions.
+
+ A sorted list of critical entension.
+
+
+
+ Get the value of a given extension.
+
+ The object ID of the extension.
+ An Asn1OctetString object if that extension is found or null if not.
+
+
+ A holding class for constructing an X509 Key Usage extension.
+
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509KeyUsage.keyEncipherment | X509KeyUsage.dataEncipherment)
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Class to Generate X509V1 Certificates.
+
+
+
+
+ Default Constructor.
+
+
+
+
+ Reset the generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can get.
+ The serial number.
+
+
+
+ Set the issuer distinguished name.
+ The issuer is the entity whose private key is used to sign the certificate.
+
+ The issuers DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the subject distinguished name.
+ The subject describes the entity associated with the public key.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+ This can be either a name or an OID, names are treated as case insensitive.
+
+ string representation of the algorithm name
+
+
+
+ Generate a new X509Certificate.
+
+ The private key of the issuer used to sign this certificate.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate specifying a SecureRandom instance that you would like to use.
+
+ The private key of the issuer used to sign this certificate.
+ The Secure Random you want to use.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ An implementation of a version 2 X.509 Attribute Certificate.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+ Class to produce an X.509 Version 2 AttributeCertificate.
+
+
+ Reset the generator
+
+
+ Set the Holder of this Attribute Certificate.
+
+
+ Set the issuer.
+
+
+ Set the serial number for the certificate.
+
+
+
+ Set the signature algorithm. This can be either a name or an OID, names
+ are treated as case insensitive.
+
+ The algorithm name.
+
+
+ Add an attribute.
+
+
+ Add a given extension field for the standard extensions tag.
+
+
+
+ Add a given extension field for the standard extensions tag.
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject,
+ using the supplied source of randomness, if required.
+
+
+
+
+ Generate a new X.509 Attribute Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An IX509AttributeCertificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ class to produce an X.509 Version 2 CRL.
+
+
+ reset the generator
+
+
+ Set the issuer distinguished name - the issuer is the entity whose private key is used to sign the
+ certificate.
+
+
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with an Invalidity Date extension as well as a CrlReason extension.
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with extensions.
+
+
+
+ Add the CRLEntry objects contained in a previous CRL.
+
+ @param other the X509Crl to source the other entries from.
+
+
+
+ Set the signature algorithm that will be used to sign this CRL.
+
+
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Crl.
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject using the specified secure random.
+
+ The private key of the issuer that is signing this certificate.
+ Your Secure Random instance.
+ An X509Crl.
+
+
+
+ Generate a new X509Crl using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Crl.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
+ A class to Generate Version 3 X509Certificates.
+
+
+
+
+ Reset the Generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can Get.
+ The serial number.
+
+
+
+ Set the distinguished name of the issuer.
+ The issuer is the entity which is signing the certificate.
+
+ The issuer's DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the DN of the entity that this certificate is about.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+
+
+
+
+
+ Set the subject unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Set the issuer unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3).
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension using a string with a dotted decimal OID.
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3),
+ copying the extension value from another certificate.
+
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ copying the extension value from another certificate.
+ @throws CertificateParsingException if the extension cannot be extracted.
+
+
+
+ Generate an X509Certificate.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Certificate.
+
+
+
+ Generate an X509Certificate using your own SecureRandom.
+
+ The private key of the issuer that is signing this certificate.
+ You Secure Random instance.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ Base class for both the compress and decompress classes.
+ Holds common arrays, and static data.
+
+ @author Keiron Liddle
+
+
+ An input stream that decompresses from the BZip2 format (with the file
+ header chars) to be read as any other stream.
+
+ @author Keiron Liddle
+
+ NB: note this class has been modified to read the leading BZ from the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+ An output stream that compresses into the BZip2 format (with the file
+ header chars) into another stream.
+
+ @author Keiron Liddle
+
+ TODO: Update to BZip2 1.0.1
+ NB: note this class has been modified to add a leading BZ to the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+
+ modified by Oliver Merkel, 010128
+
+
+
+ A simple class the hold and calculate the CRC for sanity checking
+ of the data.
+
+ @author Keiron Liddle
+
+
+
diff --git a/packages/Portable.BouncyCastle.1.8.2/lib/netstandard1.0/BouncyCastle.Crypto.dll b/packages/Portable.BouncyCastle.1.8.2/lib/netstandard1.0/BouncyCastle.Crypto.dll
new file mode 100644
index 0000000..38c78c1
Binary files /dev/null and b/packages/Portable.BouncyCastle.1.8.2/lib/netstandard1.0/BouncyCastle.Crypto.dll differ
diff --git a/packages/Portable.BouncyCastle.1.8.2/lib/netstandard1.0/BouncyCastle.Crypto.xml b/packages/Portable.BouncyCastle.1.8.2/lib/netstandard1.0/BouncyCastle.Crypto.xml
new file mode 100644
index 0000000..9d71ac3
--- /dev/null
+++ b/packages/Portable.BouncyCastle.1.8.2/lib/netstandard1.0/BouncyCastle.Crypto.xml
@@ -0,0 +1,25040 @@
+
+
+
+ BouncyCastle.Crypto
+
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ Return the DER encoding of the object, null if the DER encoding can not be made.
+
+ @return a DER byte array, null otherwise.
+
+
+ a general purpose ASN.1 decoder - note: this class differs from the
+ others in that it returns null after it has read the last object in
+ the stream. If an ASN.1 Null is encountered a Der/BER Null object is
+ returned.
+
+
+ Create an ASN1InputStream where no DER object will be longer than limit.
+
+ @param input stream containing ASN.1 encoded data.
+ @param limit maximum size of a DER encoded object.
+
+
+ Create an ASN1InputStream based on the input byte array. The length of DER objects in
+ the stream is automatically limited to the length of the input array.
+
+ @param input array containing ASN.1 encoded data.
+
+
+ build an object given its tag and the number of bytes to construct it from.
+
+
+ A Null object.
+
+
+ Create a base ASN.1 object from a byte array.
+ The byte array to parse.
+ The base ASN.1 object represented by the byte array.
+
+ If there is a problem parsing the data, or parsing an object did not exhaust the available data.
+
+
+
+ Read a base ASN.1 object from a stream.
+ The stream to parse.
+ The base ASN.1 object represented by the byte array.
+ If there is a problem parsing the data.
+
+
+ return an Octet string from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return an Octet string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ @param string the octets making up the octet string.
+
+
+ return an Asn1Sequence from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 sequence from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ sequence - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sequences you really should
+ be using this method.
+
+ @param obj the tagged object.
+ @param explicitly true if the object is meant to be explicitly tagged,
+ false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return the object at the sequence position indicated by index.
+
+ @param index the sequence number (starting at zero) of the object
+ @return the object at the sequence position indicated by index.
+
+
+ return an ASN1Set from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 set from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ set - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sets you really should
+ be using this method.
+
+ @param obj the tagged object.
+ @param explicitly true if the object is meant to be explicitly tagged
+ false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return the object at the set position indicated by index.
+
+ @param index the set number (starting at zero) of the object
+ @return the object at the set position indicated by index.
+
+
+ ASN.1 TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if the object is explicitly tagged.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ return whether or not the object may be explicitly tagged.
+
+ Note: if the object has been read from an input stream, the only
+ time you can be sure if isExplicit is returning the true state of
+ affairs is if it returns false. An implicitly tagged object may appear
+ to be explicitly tagged, so you need to understand the context under
+ which the reading was done as well, see GetObject below.
+
+
+ return whatever was following the tag.
+
+ Note: tagged objects are generally context dependent if you're
+ trying to extract a tagged object you should be going via the
+ appropriate GetInstance method.
+
+
+ Return the object held in this tagged object as a parser assuming it has
+ the type of the passed in tag. If the object doesn't have a parser
+ associated with it, the base object is returned.
+
+
+
+
+
+ SHA-2.SHA-256; 1.3.6.1.4.1.22554.1.2.1
+
+
+ SHA-2.SHA-384; 1.3.6.1.4.1.22554.1.2.2
+
+
+ SHA-2.SHA-512; 1.3.6.1.4.1.22554.1.2.3
+
+
+ SHA-2.SHA-224; 1.3.6.1.4.1.22554.1.2.4
+
+
+ PKCS-5(1)|PKCS-12(2)
+ SHA-1.PKCS5; 1.3.6.1.4.1.22554.1.1.1
+
+
+ SHA-1.PKCS12; 1.3.6.1.4.1.22554.1.1.2
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.1
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.2
+
+
+ AES(1) . (CBC-128(2)|CBC-192(22)|CBC-256(42))
+ 1.3.6.1.4.1.22554.1.1.2.1.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.42
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.42
+
+
+ signature(2) algorithms
+
+
+ Sphincs-256
+
+
+ XMSS
+
+
+ XMSS^MT
+
+
+ key_exchange(3) algorithms
+
+
+ NewHope
+
+
+ A BER Null object.
+
+
+ convert a vector of octet strings into a single byte string
+
+
+ The octets making up the octet string.
+
+
+ return the DER octets that make up this string.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty sequence
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ BER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+
+ CAKeyUpdAnnContent ::= SEQUENCE {
+ oldWithNew CmpCertificate, -- old pub signed with new priv
+ newWithOld CmpCertificate, -- new pub signed with old priv
+ newWithNew CmpCertificate -- new pub signed with new priv
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertConfirmContent ::= SEQUENCE OF CertStatus
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertifiedKeyPair ::= SEQUENCE {
+ certOrEncCert CertOrEncCert,
+ privateKey [0] EncryptedValue OPTIONAL,
+ -- see [CRMF] for comment on encoding
+ publicationInfo [1] PKIPublicationInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertOrEncCert ::= CHOICE {
+ certificate [0] CMPCertificate,
+ encryptedCert [1] EncryptedValue
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRepMessage ::= SEQUENCE {
+ caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL,
+ response SEQUENCE OF CertResponse
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertResponse ::= SEQUENCE {
+ certReqId INTEGER,
+ -- to match this response with corresponding request (a value
+ -- of -1 is to be used if certReqId is not specified in the
+ -- corresponding request)
+ status PKIStatusInfo,
+ certifiedKeyPair CertifiedKeyPair OPTIONAL,
+ rspInfo OCTET STRING OPTIONAL
+ -- analogous to the id-regInfo-utf8Pairs string defined
+ -- for regInfo in CertReqMsg [CRMF]
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertStatus ::= SEQUENCE {
+ certHash OCTET STRING,
+ -- the hash of the certificate, using the same hash algorithm
+ -- as is used to create and verify the certificate signature
+ certReqId INTEGER,
+ -- to match this confirmation with the corresponding req/rep
+ statusInfo PKIStatusInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Note: the addition of attribute certificates is a BC extension.
+
+
+
+ CMPCertificate ::= CHOICE {
+ x509v3PKCert Certificate
+ x509v2AttrCert [1] AttributeCertificate
+ }
+
+ Note: the addition of attribute certificates is a BC extension.
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CrlAnnContent ::= SEQUENCE OF CertificateList
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenRepContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+ Example InfoTypeAndValue contents include, but are not limited
+ to, the following (un-comment in this ASN.1 module and use as
+ appropriate for a given environment):
+
+ id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1}
+ CAProtEncCertValue ::= CMPCertificate
+ id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
+ SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3}
+ EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
+ PreferredSymmAlgValue ::= AlgorithmIdentifier
+ id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5}
+ CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent
+ id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6}
+ CurrentCRLValue ::= CertificateList
+ id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7}
+ UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER
+ id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10}
+ KeyPairParamReqValue ::= OBJECT IDENTIFIER
+ id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11}
+ KeyPairParamRepValue ::= AlgorithmIdentifer
+ id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12}
+ RevPassphraseValue ::= EncryptedValue
+ id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13}
+ ImplicitConfirmValue ::= NULL
+ id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14}
+ ConfirmWaitTimeValue ::= GeneralizedTime
+ id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15}
+ OrigPKIMessageValue ::= PKIMessages
+ id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16}
+ SuppLangTagsValue ::= SEQUENCE OF UTF8String
+
+ where
+
+ id-pkix OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
+ and
+ id-it OBJECT IDENTIFIER ::= {id-pkix 4}
+
+
+
+
+ InfoTypeAndValue ::= SEQUENCE {
+ infoType OBJECT IDENTIFIER,
+ infoValue ANY DEFINED BY infoType OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ KeyRecRepContent ::= SEQUENCE {
+ status PKIStatusInfo,
+ newSigCert [0] CMPCertificate OPTIONAL,
+ caCerts [1] SEQUENCE SIZE (1..MAX) OF
+ CMPCertificate OPTIONAL,
+ keyPairHist [2] SEQUENCE SIZE (1..MAX) OF
+ CertifiedKeyPair OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OobCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the Der encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PbmParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiBody.
+ @param type one of the TYPE_* constants
+ @param content message content
+
+
+
+ PkiBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiConfirmContent ::= NULL
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIFailureInfo ::= BIT STRING {
+ badAlg (0),
+ -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2),
+ -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5),
+ -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+ certRevoked (10),
+ certConfirmed (11),
+ wrongIntegrity (12),
+ badRecipientNonce (13),
+ timeNotAvailable (14),
+ -- the TSA's time source is not available
+ unacceptedPolicy (15),
+ -- the requested TSA policy is not supported by the TSA
+ unacceptedExtension (16),
+ -- the requested extension is not supported by the TSA
+ addInfoNotAvailable (17)
+ -- the additional information requested could not be understood
+ -- or is not available
+ badSenderNonce (18),
+ badCertTemplate (19),
+ signerNotTrusted (20),
+ transactionIdInUse (21),
+ unsupportedVersion (22),
+ notAuthorized (23),
+ systemUnavail (24),
+ systemFailure (25),
+ -- the request cannot be handled due to system failure
+ duplicateCertReq (26)
+
+
+
+ Basic constructor.
+
+
+ Return the number of string elements present.
+
+ @return number of elements present.
+
+
+ Return the UTF8STRING at index.
+
+ @param index index of the string of interest
+ @return the string at index.
+
+
+
+ PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
+
+
+
+ Value for a "null" recipient or sender.
+
+
+
+ PkiHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiMessage.
+
+ @param header message header
+ @param body message body
+ @param protection message protection (may be null)
+ @param extraCerts extra certificates (may be null)
+
+
+
+ PkiMessage ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody,
+ protection [0] PKIProtection OPTIONAL,
+ extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiMessages ::= SEQUENCE SIZE (1..MAX) OF PkiMessage
+
+ @return a basic ASN.1 object representation.
+
+
+ @param status
+
+
+ @param status
+ @param statusString
+
+
+
+ PkiStatusInfo ::= SEQUENCE {
+ status PKIStatus, (INTEGER)
+ statusString PkiFreeText OPTIONAL,
+ failInfo PkiFailureInfo OPTIONAL (BIT STRING)
+ }
+
+ PKIStatus:
+ granted (0), -- you got exactly what you asked for
+ grantedWithMods (1), -- you got something like what you asked for
+ rejection (2), -- you don't get it, more information elsewhere in the message
+ waiting (3), -- the request body part has not yet been processed, expect to hear more later
+ revocationWarning (4), -- this message contains a warning that a revocation is imminent
+ revocationNotification (5), -- notification that a revocation has occurred
+ keyUpdateWarning (6) -- update already done for the oldCertId specified in CertReqMsg
+
+ PkiFailureInfo:
+ badAlg (0), -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2), -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5), -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+
+
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PollReqContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyChallContent ::= SEQUENCE OF Challenge
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyRespContent ::= SEQUENCE OF INTEGER
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ProtectedPart ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevAnnContent ::= SEQUENCE {
+ status PKIStatus,
+ certId CertId,
+ willBeRevokedAt GeneralizedTime,
+ badSinceDate GeneralizedTime,
+ crlDetails Extensions OPTIONAL
+ -- extra CRL details (e.g., crl number, reason, location, etc.)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevReqContent ::= SEQUENCE OF RevDetails
+
+ @return a basic ASN.1 object representation.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attribute ::= SEQUENCE {
+ attrType OBJECT IDENTIFIER,
+ attrValues SET OF AttributeValue
+ }
+
+
+
+
+ Attributes ::=
+ SET SIZE(1..MAX) OF Attribute -- according to RFC 5652
+
+ @return
+
+
+ Return the first attribute matching the given OBJECT IDENTIFIER
+
+
+ Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be
+ empty if there are no attributes of the required type present.
+
+ @param oid type of attribute required.
+ @return a vector of all the attributes found of type oid.
+
+
+ Return a new table with the passed in attribute added.
+
+ @param attrType
+ @param attrValue
+ @return
+
+
+ return an AuthenticatedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthenticatedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ The other Revocation Info arc
+ id-ri OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7) ri(16) }
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= Sequence {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ return a CompressedData object from a tagged object.
+
+ @param ato the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a CompressedData object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= SEQUENCE {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ MQVuserKeyingMaterial ::= SEQUENCE {
+ ephemeralPublicKey OriginatorPublicKey,
+ addedukm [0] EXPLICIT UserKeyingMaterial OPTIONAL }
+
+
+
+ return an EncryptedContentInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedData ::= SEQUENCE {
+ version CMSVersion,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ return an EnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an EnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= Sequence {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ return a KekIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekIdentifier ::= Sequence {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+
+
+ return a KekRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 4
+ kekID KekIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return an KeyAgreeRecipientIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an KeyAgreeRecipientIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyAgreeRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ rKeyId [0] IMPLICIT RecipientKeyIdentifier
+ }
+
+
+
+ return a KeyAgreeRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KeyAgreeRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ * Produce an object suitable for an Asn1OutputStream.
+ *
+ * KeyAgreeRecipientInfo ::= Sequence {
+ * version CMSVersion, -- always set to 3
+ * originator [0] EXPLICIT OriginatorIdentifierOrKey,
+ * ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
+ * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ * recipientEncryptedKeys RecipientEncryptedKeys
+ * }
+ *
+ * UserKeyingMaterial ::= OCTET STRING
+ *
+
+
+ return a KeyTransRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyTransRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 0 or 2
+ rid RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+
+ MetaData ::= SEQUENCE {
+ hashProtected BOOLEAN,
+ fileName UTF8String OPTIONAL,
+ mediaType IA5String OPTIONAL,
+ otherMetaData Attributes OPTIONAL
+ }
+
+ @return
+
+
+ return an OriginatorIdentifierOrKey object from a tagged object.
+
+ @param o the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorIdentifierOrKey object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorKey [1] OriginatorPublicKey
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ return an OriginatorInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorInfo ::= Sequence {
+ certs [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL
+ }
+
+
+
+ return an OriginatorPublicKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorPublicKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorPublicKey ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+ }
+
+
+
+ return an OtherKeyAttribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherKeyAttribute ::= Sequence {
+ keyAttrId OBJECT IDENTIFIER,
+ keyAttr ANY DEFINED BY keyAttrId OPTIONAL
+ }
+
+
+
+ return a OtherRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherRecipientInfo ::= Sequence {
+ oriType OBJECT IDENTIFIER,
+ oriValue ANY DEFINED BY oriType }
+
+
+
+ return a OtherRevocationInfoFormat object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRevocationInfoFormat object from the given object.
+
+ @param obj the object we want converted.
+ @exception IllegalArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ OtherRevocationInfoFormat ::= SEQUENCE {
+ otherRevInfoFormat OBJECT IDENTIFIER,
+ otherRevInfo ANY DEFINED BY otherRevInfoFormat }
+
+
+
+ return a PasswordRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a PasswordRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ PasswordRecipientInfo ::= Sequence {
+ version CMSVersion, -- Always set to 0
+ keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
+ OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+
+
+ return an RecipientEncryptedKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientEncryptedKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientEncryptedKey ::= SEQUENCE {
+ rid KeyAgreeRecipientIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return a RecipientIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientInfo ::= CHOICE {
+ ktri KeyTransRecipientInfo,
+ kari [1] KeyAgreeRecipientInfo,
+ kekri [2] KekRecipientInfo,
+ pwri [3] PasswordRecipientInfo,
+ ori [4] OtherRecipientInfo }
+
+
+
+ return a RecipientKeyIdentifier object from a tagged object.
+
+ @param _ato the tagged object holding the object we want.
+ @param _explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientKeyIdentifier object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientKeyIdentifier ::= Sequence {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+
+ ScvpReqRes ::= SEQUENCE {
+ request [0] EXPLICIT ContentInfo OPTIONAL,
+ response ContentInfo }
+
+ @return the ASN.1 primitive representation.
+
+
+ a signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+
+ SignedData ::= SEQUENCE {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+ return a SignerIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ SignerIdentifier sid,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+
+ TimeStampAndCRL ::= SEQUENCE {
+ timeStamp TimeStampToken, -- according to RFC 3161
+ crl CertificateList OPTIONAL -- according to RFC 5280
+ }
+
+ @return
+
+
+
+ TimeStampedData ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ dataUri IA5String OPTIONAL,
+ metaData MetaData OPTIONAL,
+ content OCTET STRING OPTIONAL,
+ temporalEvidence Evidence
+ }
+
+ @return
+
+
+
+ TimeStampTokenEvidence ::=
+ SEQUENCE SIZE(1..MAX) OF TimeStampAndCrl
+
+ @return
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertId ::= SEQUENCE {
+ issuer GeneralName,
+ serialNumber INTEGER }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new CertReqMsg.
+ @param certReq CertRequest
+ @param popo may be null
+ @param regInfo may be null
+
+
+
+ CertReqMsg ::= SEQUENCE {
+ certReq CertRequest,
+ pop ProofOfPossession OPTIONAL,
+ -- content depends upon key type
+ regInfo SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRequest ::= SEQUENCE {
+ certReqId INTEGER, -- ID for matching request and reply
+ certTemplate CertTemplate, -- Selected fields of cert to be issued
+ controls Controls OPTIONAL } -- Attributes affecting issuance
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Sets the X.509 version. Note: for X509v3, use 2 here.
+
+
+ Sets the issuer unique ID (deprecated in X.509v3)
+
+
+ Sets the subject unique ID (deprecated in X.509v3)
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ EncKeyWithID ::= SEQUENCE {
+ privateKey PrivateKeyInfo,
+ identifier CHOICE {
+ string UTF8String,
+ generalName GeneralName
+ } OPTIONAL
+ }
+
+ @return
+
+
+
+ EncryptedKey ::= CHOICE {
+ encryptedValue EncryptedValue, -- deprecated
+ envelopedData [0] EnvelopedData }
+ -- The encrypted private key MUST be placed in the envelopedData
+ -- encryptedContentInfo encryptedContent OCTET STRING.
+
+
+
+
+ EncryptedValue ::= SEQUENCE {
+ intendedAlg [0] AlgorithmIdentifier OPTIONAL,
+ -- the intended algorithm for which the value will be used
+ symmAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- the symmetric algorithm used to encrypt the value
+ encSymmKey [2] BIT STRING OPTIONAL,
+ -- the (encrypted) symmetric key used to encrypt the value
+ keyAlg [3] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used to encrypt the symmetric key
+ valueHint [4] OCTET STRING OPTIONAL,
+ -- a brief description or identifier of the encValue content
+ -- (may be meaningful only to the sending entity, and used only
+ -- if EncryptedValue might be re-examined by the sending entity
+ -- in the future)
+ encValue BIT STRING }
+ -- the encrypted value itself
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OptionalValidity ::= SEQUENCE {
+ notBefore [0] Time OPTIONAL,
+ notAfter [1] Time OPTIONAL } --at least one MUST be present
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiArchiveOptions ::= CHOICE {
+ encryptedPrivKey [0] EncryptedKey,
+ -- the actual value of the private key
+ keyGenParameters [1] KeyGenParameters,
+ -- parameters which allow the private key to be re-generated
+ archiveRemGenPrivKey [2] BOOLEAN }
+ -- set to TRUE if sender wishes receiver to archive the private
+ -- key of a key pair that the receiver generates in response to
+ -- this request; set to FALSE if no archival is desired.
+
+
+
+
+ PkiPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+ @return a basic ASN.1 object representation.
+
+
+ Password-based MAC value for use with POPOSigningKeyInput.
+
+
+ Creates a new PKMACValue.
+ @param params parameters for password-based MAC
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+ Creates a new PKMACValue.
+ @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+
+ PKMACValue ::= SEQUENCE {
+ algId AlgorithmIdentifier,
+ -- algorithm value shall be PasswordBasedMac 1.2.840.113533.7.66.13
+ -- parameter value is PBMParameter
+ value BIT STRING }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoPrivKey ::= CHOICE {
+ thisMessage [0] BIT STRING, -- Deprecated
+ -- possession is proven in this message (which contains the private
+ -- key itself (encrypted for the CA))
+ subsequentMessage [1] SubsequentMessage,
+ -- possession will be proven in a subsequent message
+ dhMAC [2] BIT STRING, -- Deprecated
+ agreeMAC [3] PKMACValue,
+ encryptedKey [4] EnvelopedData }
+
+
+
+ Creates a new Proof of Possession object for a signing key.
+ @param poposkIn the PopoSigningKeyInput structure, or null if the
+ CertTemplate includes both subject and publicKey values.
+ @param aid the AlgorithmIdentifier used to sign the proof of possession.
+ @param signature a signature over the DER-encoded value of poposkIn,
+ or the DER-encoded value of certReq if poposkIn is null.
+
+
+
+ PopoSigningKey ::= SEQUENCE {
+ poposkInput [0] PopoSigningKeyInput OPTIONAL,
+ algorithmIdentifier AlgorithmIdentifier,
+ signature BIT STRING }
+ -- The signature (using "algorithmIdentifier") is on the
+ -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg
+ -- certReq CertTemplate contains the subject and publicKey values,
+ -- then poposkInput MUST be omitted and the signature MUST be
+ -- computed on the DER-encoded value of CertReqMsg certReq. If
+ -- the CertReqMsg certReq CertTemplate does not contain the public
+ -- key and subject values, then poposkInput MUST be present and
+ -- MUST be signed. This strategy ensures that the public key is
+ -- not present in both the poposkInput and CertReqMsg certReq
+ -- CertTemplate fields.
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PopoSigningKeyInput with sender name as authInfo.
+
+
+ Creates a new PopoSigningKeyInput using password-based MAC.
+
+
+ Returns the sender field, or null if authInfo is publicKeyMac
+
+
+ Returns the publicKeyMac field, or null if authInfo is sender
+
+
+
+ PopoSigningKeyInput ::= SEQUENCE {
+ authInfo CHOICE {
+ sender [0] GeneralName,
+ -- used only if an authenticated identity has been
+ -- established for the sender (e.g., a DN from a
+ -- previously-issued and currently-valid certificate
+ publicKeyMac PKMacValue },
+ -- used if no authenticated GeneralName currently exists for
+ -- the sender; publicKeyMac contains a password-based MAC
+ -- on the DER-encoded value of publicKey
+ publicKey SubjectPublicKeyInfo } -- from CertTemplate
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a ProofOfPossession with type raVerified.
+
+
+ Creates a ProofOfPossession for a signing key.
+
+
+ Creates a ProofOfPossession for key encipherment or agreement.
+ @param type one of TYPE_KEY_ENCIPHERMENT or TYPE_KEY_AGREEMENT
+
+
+
+ ProofOfPossession ::= CHOICE {
+ raVerified [0] NULL,
+ -- used if the RA has already verified that the requester is in
+ -- possession of the private key
+ signature [1] PopoSigningKey,
+ keyEncipherment [2] PopoPrivKey,
+ keyAgreement [3] PopoPrivKey }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ SinglePubInfo ::= SEQUENCE {
+ pubMethod INTEGER {
+ dontCare (0),
+ x500 (1),
+ web (2),
+ ldap (3) },
+ pubLocation GeneralName OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Table of the available named parameters for GOST 3410-2001 / 2012.
+
+
+
+ return the ECDomainParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+
+ Gost28147-89-Parameters ::=
+ SEQUENCE {
+ iv Gost28147-89-IV,
+ encryptionParamSet OBJECT IDENTIFIER
+ }
+
+ Gost28147-89-IV ::= OCTET STRING (SIZE (8))
+
+
+
+ table of the available named parameters for GOST 3410-94.
+
+
+ return the GOST3410ParamSetParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for parameters
+ contained in this structure.
+
+
+ Base class for an application specific object
+
+
+ Return the enclosed object assuming explicit tagging.
+
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ Return the enclosed object assuming implicit tagging.
+
+ @param derTagNo the type tag that should be applied to the object's contents.
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ return a Bit string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Bit string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ @param data the octets making up the bit string.
+ @param padBits the number of extra bits at the end of the string.
+
+
+ Return the octets contained in this BIT STRING, checking that this BIT STRING really
+ does represent an octet aligned string. Only use this method when the standard you are
+ following dictates that the BIT STRING will be octet aligned.
+
+ @return a copy of the octet aligned data.
+
+
+ @return the value of the bit string as an int (truncating if necessary)
+
+
+ Der BMPString object.
+
+
+ return a BMP string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a BMP string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a bool from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a DerBoolean from the passed in bool.
+
+
+ return a Boolean from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Enumerated from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Class representing the DER-type External
+
+
+ Creates a new instance of DerExternal
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param externalData The external data in its encoded form.
+
+
+ Creates a new instance of DerExternal.
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param encoding The encoding to be used for the external data
+ @param externalData The external data
+
+
+ The encoding of the content. Valid values are
+
+ 0 single-ASN1-type
+ 1 OCTET STRING
+ 2 BIT STRING
+
+
+
+ Generalized time object.
+
+
+ return a generalized time from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Generalized Time object from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYYYMMDDHHMMSS[.f]Z, or without the Z
+ for local time, or Z+-HHMM on the end, for difference between local
+ time and UTC time. The fractional second amount f must consist of at
+ least one number with trailing zeroes removed.
+
+ @param time the time string.
+ @exception ArgumentException if string is an illegal format.
+
+
+ base constructor from a local time object
+
+
+ Return the time.
+ @return The time string as it appeared in the encoded object.
+
+
+ return the time - always in the form of
+ YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyyyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+
+ return a Graphic String from the passed in object
+
+ @param obj a DerGraphicString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ return a Graphic String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der IA5String object - this is an ascii string.
+
+
+ return a IA5 string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an IA5 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in an IA5String.
+
+
+ return true if the passed in String can be represented without
+ loss as an IA5String, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Integer from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ in some cases positive values Get crammed into a space,
+ that's not quite big enough...
+
+
+ A Null object.
+
+
+ Der NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
+
+
+ return a Numeric string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Numeric string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation..
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a NumericString.
+
+
+ Return true if the string can be represented as a NumericString ('0'..'9', ' ')
+
+ @param str string to validate.
+ @return true if numeric, fale otherwise.
+
+
+ return an Oid from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an object Identifier from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Return true if this oid is an extension of the passed in branch, stem.
+ @param stem the arc or branch that is a possible parent.
+ @return true if the branch is on the passed in stem, false otherwise.
+
+
+ The octets making up the octet string.
+
+
+ Der PrintableString object.
+
+
+ return a printable string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Printable string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor - this does not validate the string
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a PrintableString.
+
+
+ return true if the passed in String can be represented without
+ loss as a PrintableString, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ A Der encoded set object
+
+
+ create an empty set
+
+
+ @param obj - a single object that makes up the set.
+
+
+ @param v - a vector of objects making up the set.
+
+
+ Der T61String (also the teletex string) - 8-bit characters
+
+
+ return a T61 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an T61 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - with string.
+
+
+ DER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+ Der UniversalString object.
+
+
+ return a Universal string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Universal string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ UTC time object.
+
+
+ return an UTC Time from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTC Time from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYMMDDHHMMSSZ (it used to be that seconds were
+ never encoded. When you're creating one of these objects from scratch, that's
+ what you want to use, otherwise we'll try to deal with whatever Gets read from
+ the input stream... (this is why the input format is different from the GetTime()
+ method output).
+
+ @param time the time string.
+
+
+ base constructor from a DateTime object
+
+
+ return the time as a date based on whatever a 2 digit year will return. For
+ standardised processing use ToAdjustedDateTime().
+
+ @return the resulting date
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time as an adjusted date
+ in the range of 1950 - 2049.
+
+ @return a date in the range of 1950 to 2049.
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time - always in the form of
+ YYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+ Note: In some cases, due to the local date processing, this
+ may lead to unexpected results. If you want to stick the normal
+ convention of 1950 to 2049 use the GetAdjustedTime() method.
+
+
+
+ Return a time string as an adjusted date with a 4 digit year.
+ This goes in the range of 1950 - 2049.
+
+
+
+ Der UTF8String object.
+
+
+ return an UTF8 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTF8 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a Videotex String from the passed in object
+
+ @param obj a DERVideotexString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ return a Videotex String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der VisibleString object.
+
+
+ return a Visible string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Visible string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+
+ RFC 3126: 4.3.1 Certificate Values Attribute Definition
+
+ CertificateValues ::= SEQUENCE OF Certificate
+
+
+
+
+
+ CommitmentTypeIndication ::= SEQUENCE {
+ commitmentTypeId CommitmentTypeIdentifier,
+ commitmentTypeQualifier SEQUENCE SIZE (1..MAX) OF
+ CommitmentTypeQualifier OPTIONAL }
+
+
+
+ Commitment type qualifiers, used in the Commitment-Type-Indication attribute (RFC3126).
+
+
+ CommitmentTypeQualifier ::= SEQUENCE {
+ commitmentTypeIdentifier CommitmentTypeIdentifier,
+ qualifier ANY DEFINED BY commitmentTypeIdentifier OPTIONAL }
+
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param as CommitmentTypeQualifier structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a DER-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+ RFC 3126: 4.2.1 Complete Certificate Refs Attribute Definition
+
+ CompleteCertificateRefs ::= SEQUENCE OF OtherCertID
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CompleteRevocationRefs ::= SEQUENCE OF CrlOcspRef
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlIdentifier ::= SEQUENCE
+ {
+ crlissuer Name,
+ crlIssuedTime UTCTime,
+ crlNumber INTEGER OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CRLListID ::= SEQUENCE
+ {
+ crls SEQUENCE OF CrlValidatedID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlOcspRef ::= SEQUENCE {
+ crlids [0] CRLListID OPTIONAL,
+ ocspids [1] OcspListID OPTIONAL,
+ otherRev [2] OtherRevRefs OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlValidatedID ::= SEQUENCE {
+ crlHash OtherHash,
+ crlIdentifier CrlIdentifier OPTIONAL}
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspIdentifier ::= SEQUENCE {
+ ocspResponderID ResponderID,
+ -- As in OCSP response data
+ producedAt GeneralizedTime
+ -- As in OCSP response data
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspListID ::= SEQUENCE {
+ ocspResponses SEQUENCE OF OcspResponsesID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspResponsesID ::= SEQUENCE {
+ ocspIdentifier OcspIdentifier,
+ ocspRepHash OtherHash OPTIONAL
+ }
+
+
+
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+
+
+
+
+
+ OtherHash ::= CHOICE {
+ sha1Hash OtherHashValue, -- This contains a SHA-1 hash
+ otherHash OtherHashAlgAndValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ Summary description for OtherHashAlgAndValue.
+
+
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OtherHashValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OtherRevRefs ::= SEQUENCE
+ {
+ otherRevRefType OtherRevRefType,
+ otherRevRefs ANY DEFINED BY otherRevRefType
+ }
+
+ OtherRevRefType ::= OBJECT IDENTIFIER
+
+
+
+
+
+ RFC 3126: 4.3.2 Revocation Values Attribute Definition
+
+ OtherRevVals ::= SEQUENCE
+ {
+ otherRevValType OtherRevValType,
+ otherRevVals ANY DEFINED BY otherRevValType
+ }
+
+ OtherRevValType ::= OBJECT IDENTIFIER
+
+
+
+
+
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+
+
+
+
+ RFC 5126: 6.3.4. revocation-values Attribute Definition
+
+ RevocationValues ::= SEQUENCE {
+ crlVals [0] SEQUENCE OF CertificateList OPTIONAL,
+ ocspVals [1] SEQUENCE OF BasicOCSPResponse OPTIONAL,
+ otherRevVals [2] OtherRevVals OPTIONAL
+ }
+
+
+
+
+
+
+ SignaturePolicyId ::= SEQUENCE {
+ sigPolicyIdentifier SigPolicyId,
+ sigPolicyHash SigPolicyHash,
+ sigPolicyQualifiers SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo OPTIONAL
+ }
+
+ SigPolicyId ::= OBJECT IDENTIFIER
+
+ SigPolicyHash ::= OtherHashAlgAndValue
+
+
+
+
+
+
+ SignaturePolicyIdentifier ::= CHOICE {
+ SignaturePolicyId SignaturePolicyId,
+ SignaturePolicyImplied SignaturePolicyImplied
+ }
+
+ SignaturePolicyImplied ::= NULL
+
+
+
+
+
+
+ SignerAttribute ::= SEQUENCE OF CHOICE {
+ claimedAttributes [0] ClaimedAttributes,
+ certifiedAttributes [1] CertifiedAttributes }
+
+ ClaimedAttributes ::= SEQUENCE OF Attribute
+ CertifiedAttributes ::= AttributeCertificate -- as defined in RFC 3281: see clause 4.1.
+
+
+
+ Signer-Location attribute (RFC3126).
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1.. MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+
+
+ SigPolicyQualifierInfo ::= SEQUENCE {
+ sigPolicyQualifierId SigPolicyQualifierId,
+ sigQualifier ANY DEFINED BY sigPolicyQualifierId
+ }
+
+ SigPolicyQualifierId ::= OBJECT IDENTIFIER
+
+
+
+
+ constructor
+
+
+
+ ContentHints ::= SEQUENCE {
+ contentDescription UTF8String (SIZE (1..MAX)) OPTIONAL,
+ contentType ContentType }
+
+
+
+ Create from OCTET STRING whose octets represent the identifier.
+
+
+ Create from byte array representing the identifier.
+
+
+ The definition of ContentIdentifier is
+
+ ContentIdentifier ::= OCTET STRING
+
+ id-aa-contentIdentifier OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 7 }
+
+
+ constructor
+
+
+
+ EssCertID ::= SEQUENCE {
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+
+
+
+ EssCertIDv2 ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier
+ DEFAULT {algorithm id-sha256},
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+ Hash ::= OCTET STRING
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serialNumber CertificateSerialNumber
+ }
+
+
+
+ constructor
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+ OtherHash ::= CHOICE {
+ sha1Hash OCTET STRING,
+ otherHash OtherHashAlgAndValue }
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OCTET STRING }
+
+
+
+
+ constructors
+
+
+ The definition of OtherSigningCertificate is
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-ets-otherSigCert OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 19 }
+
+
+ constructors
+
+
+ The definition of SigningCertificate is
+
+ SigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF EssCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 12 }
+
+
+ The definition of SigningCertificateV2 is
+
+ SigningCertificateV2 ::= SEQUENCE {
+ certs SEQUENCE OF EssCertIDv2,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 47 }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ 1.3.6.1.4.1.11591.15 - ellipticCurve
+
+
+ Marker interface for CHOICE objects - if you implement this in a roll-your-own
+ object, any attempt to tag the object implicitly will convert the tag to an
+ explicit one as the encoding rules require.
+
+ If you use this interface your class should also implement the getInstance
+ pattern which takes a tag object and the tagging mode used.
+
+
+
+ basic interface for Der string objects.
+
+
+ The CscaMasterList object. This object can be wrapped in a
+ CMSSignedData to be published in LDAP.
+
+
+ CscaMasterList ::= SEQUENCE {
+ version CscaMasterListVersion,
+ certList SET OF Certificate }
+
+ CscaMasterListVersion :: INTEGER {v0(0)}
+
+
+
+ The DataGroupHash object.
+
+ DataGroupHash ::= SEQUENCE {
+ dataGroupNumber DataGroupNumber,
+ dataGroupHashValue OCTET STRING }
+
+ DataGroupNumber ::= INTEGER {
+ dataGroup1 (1),
+ dataGroup1 (2),
+ dataGroup1 (3),
+ dataGroup1 (4),
+ dataGroup1 (5),
+ dataGroup1 (6),
+ dataGroup1 (7),
+ dataGroup1 (8),
+ dataGroup1 (9),
+ dataGroup1 (10),
+ dataGroup1 (11),
+ dataGroup1 (12),
+ dataGroup1 (13),
+ dataGroup1 (14),
+ dataGroup1 (15),
+ dataGroup1 (16) }
+
+
+
+
+ The LDSSecurityObject object (V1.8).
+
+ LDSSecurityObject ::= SEQUENCE {
+ version LDSSecurityObjectVersion,
+ hashAlgorithm DigestAlgorithmIdentifier,
+ dataGroupHashValues SEQUENCE SIZE (2..ub-DataGroups) OF DataHashGroup,
+ ldsVersionInfo LDSVersionInfo OPTIONAL
+ -- if present, version MUST be v1 }
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier,
+
+ LDSSecurityObjectVersion :: INTEGER {V0(0)}
+
+
+
+
+ LDSVersionInfo ::= SEQUENCE {
+ ldsVersion PRINTABLE STRING
+ unicodeVersion PRINTABLE STRING
+ }
+
+ @return
+
+
+ The id-isismtt-cp-accredited OID indicates that the certificate is a
+ qualified certificate according to Directive 1999/93/EC of the European
+ Parliament and of the Council of 13 December 1999 on a Community
+ Framework for Electronic Signatures, which additionally conforms the
+ special requirements of the SigG and has been issued by an accredited CA.
+
+
+ Certificate extensionDate of certificate generation
+
+
+ DateOfCertGenSyntax ::= GeneralizedTime
+
+
+
+ Attribute to indicate that the certificate holder may sign in the name of
+ a third person. May also be used as extension in a certificate.
+
+
+ Attribute to indicate admissions to certain professions. May be used as
+ attribute in attribute certificate or as extension in a certificate
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST
+ be used in new certificates in place of the extension/attribute
+ MonetaryLimit since January 1, 2004. For the sake of backward
+ compatibility with certificates already in use, SigG conforming
+ components MUST support MonetaryLimit (as well as QcEuLimitValue).
+
+
+ A declaration of majority. May be used as attribute in attribute
+ certificate or as extension in a certificate
+
+
+
+ Serial number of the smart card containing the corresponding private key
+
+
+ ICCSNSyntax ::= OCTET STRING (SIZE(8..20))
+
+
+
+
+ Reference for a file of a smartcard that stores the public key of this
+ certificate and that is used as �security anchor�.
+
+
+ PKReferenceSyntax ::= OCTET STRING (SIZE(20))
+
+
+
+ Some other restriction regarding the usage of this certificate. May be
+ used as attribute in attribute certificate or as extension in a
+ certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Restriction
+
+
+
+ (Single)Request extension: Clients may include this extension in a
+ (single) Request to request the responder to send the certificate in the
+ response message along with the status information. Besides the LDAP
+ service, this extension provides another mechanism for the distribution
+ of certificates, which MAY optionally be provided by certificate
+ repositories.
+
+
+ RetrieveIfAllowed ::= BOOLEAN
+
+
+
+ SingleOCSPResponse extension: The certificate requested by the client by
+ inserting the RetrieveIfAllowed extension in the request, will be
+ returned in this extension.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate
+
+
+ Base ObjectIdentifier for naming authorities
+
+
+ SingleOCSPResponse extension: Date, when certificate has been published
+ in the directory and status information has become available. Currently,
+ accrediting authorities enforce that SigG-conforming OCSP servers include
+ this extension in the responses.
+
+
+ CertInDirSince ::= GeneralizedTime
+
+
+
+ Hash of a certificate in OCSP.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.CertHash
+
+
+
+ NameAtBirth ::= DirectoryString(SIZE(1..64)
+
+
+ Used in
+ {@link Org.BouncyCastle.Asn1.X509.SubjectDirectoryAttributes SubjectDirectoryAttributes}
+
+
+ Some other information of non-restrictive nature regarding the usage of
+ this certificate. May be used as attribute in atribute certificate or as
+ extension in a certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdditionalInformationSyntax
+
+
+ Indicates that an attribute certificate exists, which limits the
+ usability of this public key certificate. Whenever verifying a signature
+ with the help of this certificate, the content of the corresponding
+ attribute certificate should be concerned. This extension MUST be
+ included in a PKC, if a corresponding attribute certificate (having the
+ PKC as base certificate) contains some attribute that restricts the
+ usability of the PKC too. Attribute certificates with restricting content
+ MUST always be included in the signed document.
+
+
+ LiabilityLimitationFlagSyntax ::= BOOLEAN
+
+
+
+ ISIS-MTT PROFILE: The responder may include this extension in a response to
+ send the hash of the requested certificate to the responder. This hash is
+ cryptographically bound to the certificate and serves as evidence that the
+ certificate is known to the responder (i.e. it has been issued and is present
+ in the directory). Hence, this extension is a means to provide a positive
+ statement of availability as described in T8.[8]. As explained in T13.[1],
+ clients may rely on this information to be able to validate signatures after
+ the expiry of the corresponding certificate. Hence, clients MUST support this
+ extension. If a positive statement of availability is to be delivered, this
+ extension syntax and OID MUST be used.
+
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertHash:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param hashAlgorithm The hash algorithm identifier.
+ @param certificateHash The hash of the whole DER encoding of the certificate.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ ISIS-MTT-Optional: The certificate requested by the client by inserting the
+ RetrieveIfAllowed extension in the request, will be returned in this
+ extension.
+
+ ISIS-MTT-SigG: The signature act allows publishing certificates only then,
+ when the certificate owner gives his isExplicit permission. Accordingly, there
+ may be �nondownloadable� certificates, about which the responder must provide
+ status information, but MUST NOT include them in the response. Clients may
+ get therefore the following three kind of answers on a single request
+ including the RetrieveIfAllowed extension:
+
+ - a) the responder supports the extension and is allowed to publish the
+ certificate: RequestedCertificate returned including the requested
+ certificate
+ - b) the responder supports the extension but is NOT allowed to publish
+ the certificate: RequestedCertificate returned including an empty OCTET
+ STRING
+ - c) the responder does not support the extension: RequestedCertificate is
+ not included in the response
+
+ Clients requesting RetrieveIfAllowed MUST be able to handle these cases. If
+ any of the OCTET STRING options is used, it MUST contain the DER encoding of
+ the requested certificate.
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+
+ Constructor from a given details.
+
+ Only one parameter can be given. All other must be null.
+
+ @param certificate Given as Certificate
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ Some other information of non-restrictive nature regarding the usage of this
+ certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+
+ Constructor from a given details.
+
+ @param information The describtion of the information.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @return an Asn1Object
+
+
+ An Admissions structure.
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ Parameter professionInfos is mandatory.
+
+ @param admissionAuthority The admission authority.
+ @param namingAuthority The naming authority.
+ @param professionInfos The profession infos.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate admissions to certain professions.
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+
+ ISIS-MTT PROFILE: The relatively complex structure of AdmissionSyntax
+ supports the following concepts and requirements:
+
+ - External institutions (e.g. professional associations, chambers, unions,
+ administrative bodies, companies, etc.), which are responsible for granting
+ and verifying professional admissions, are indicated by means of the data
+ field admissionAuthority. An admission authority is indicated by a
+ GeneralName object. Here an X.501 directory name (distinguished name) can be
+ indicated in the field directoryName, a URL address can be indicated in the
+ field uniformResourceIdentifier, and an object identifier can be indicated in
+ the field registeredId.
+ - The names of authorities which are responsible for the administration of
+ title registers are indicated in the data field namingAuthority. The name of
+ the authority can be identified by an object identifier in the field
+ namingAuthorityId, by means of a text string in the field
+ namingAuthorityText, by means of a URL address in the field
+ namingAuthorityUrl, or by a combination of them. For example, the text string
+ can contain the name of the authority, the country and the name of the title
+ register. The URL-option refers to a web page which contains lists with
+ officially registered professions (text and possibly OID) as well as
+ further information on these professions. Object identifiers for the
+ component namingAuthorityId are grouped under the OID-branch
+ id-isis-at-namingAuthorities and must be applied for.
+ - See http://www.teletrust.de/anwend.asp?Id=30200&Sprache=E_&HomePG=0
+ for an application form and http://www.teletrust.de/links.asp?id=30220,11
+ for an overview of registered naming authorities.
+ - By means of the data type ProfessionInfo certain professions,
+ specializations, disciplines, fields of activity, etc. are identified. A
+ profession is represented by one or more text strings, resp. profession OIDs
+ in the fields professionItems and professionOIDs and by a registration number
+ in the field registrationNumber. An indication in text form must always be
+ present, whereas the other indications are optional. The component
+ addProfessionInfo may contain additional applicationspecific information in
+ DER-encoded form.
+
+
+ By means of different namingAuthority-OIDs or profession OIDs hierarchies of
+ professions, specializations, disciplines, fields of activity, etc. can be
+ expressed. The issuing admission authority should always be indicated (field
+ admissionAuthority), whenever a registration number is presented. Still,
+ information on admissions can be given without indicating an admission or a
+ naming authority by the exclusive use of the component professionItems. In
+ this case the certification authority is responsible for the verification of
+ the admission information.
+
+
+
+ This attribute is single-valued. Still, several admissions can be captured in
+ the sequence structure of the component contentsOfAdmissions of
+ AdmissionSyntax or in the component professionInfos of Admissions. The
+ component admissionAuthority of AdmissionSyntax serves as default value for
+ the component admissionAuthority of Admissions. Within the latter component
+ the default value can be overwritten, in case that another authority is
+ responsible. The component namingAuthority of Admissions serves as a default
+ value for the component namingAuthority of ProfessionInfo. Within the latter
+ component the default value can be overwritten, in case that another naming
+ authority needs to be recorded.
+
+ The length of the string objects is limited to 128 characters. It is
+ recommended to indicate a namingAuthorityURL in all issued attribute
+ certificates. If a namingAuthorityURL is indicated, the field professionItems
+ of ProfessionInfo should contain only registered titles. If the field
+ professionOIDs exists, it has to contain the OIDs of the professions listed
+ in professionItems in the same order. In general, the field professionInfos
+ should contain only one entry, unless the admissions that are to be listed
+ are logically connected (e.g. they have been issued under the same admission
+ number).
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Admissions
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ @param admissionAuthority The admission authority.
+ @param contentsOfAdmissions The admissions.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the admissionAuthority if present, null otherwise.
+
+
+ @return Returns the contentsOfAdmissions.
+
+
+ A declaration of majority.
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ fullAgeAtCountry indicates the majority of the owner with respect to the laws
+ of a specific country.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ @return an Asn1Object
+
+
+ @return notYoungerThan if that's what we are, -1 otherwise
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST be
+ used in new certificates in place of the extension/attribute MonetaryLimit
+ since January 1, 2004. For the sake of backward compatibility with
+ certificates already in use, components SHOULD support MonetaryLimit (as well
+ as QcEuLimitValue).
+
+ Indicates a monetary limit within which the certificate holder is authorized
+ to act. (This value DOES NOT express a limit on the liability of the
+ certification authority).
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ currency must be the ISO code.
+
+ value = amount�10*exponent
+
+
+ Constructor from a given details.
+
+
+ value = amount�10^exponent
+
+ @param currency The currency. Must be the ISO code.
+ @param amount The amount
+ @param exponent The exponent
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ @return an Asn1Object
+
+
+ Names of authorities which are responsible for the administration of title
+ registers.
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+
+ Profession OIDs should always be defined under the OID branch of the
+ responsible naming authority. At the time of this writing, the work group
+ �Recht, Wirtschaft, Steuern� (�Law, Economy, Taxes�) is registered as the
+ first naming authority under the OID id-isismtt-at-namingAuthorities.
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ @return Returns the namingAuthorityID.
+
+
+ @return Returns the namingAuthorityText.
+
+
+ @return Returns the namingAuthorityUrl.
+
+
+ Constructor from given details.
+
+ All parameters can be combined.
+
+ @param namingAuthorityID ObjectIdentifier for naming authority.
+ @param namingAuthorityUrl URL for naming authority.
+ @param namingAuthorityText Textual representation of naming authority.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate that the certificate holder may sign in the name of a
+ third person.
+
+ ISIS-MTT PROFILE: The corresponding ProcurationSyntax contains either the
+ name of the person who is represented (subcomponent thirdPerson) or a
+ reference to his/her base certificate (in the component signingFor,
+ subcomponent certRef), furthermore the optional components country and
+ typeSubstitution to indicate the country whose laws apply, and respectively
+ the type of procuration (e.g. manager, procuration, custody).
+
+
+ ISIS-MTT PROFILE: The GeneralName MUST be of type directoryName and MAY only
+ contain: - RFC3039 attributes, except pseudonym (countryName, commonName,
+ surname, givenName, serialNumber, organizationName, organizationalUnitName,
+ stateOrProvincename, localityName, postalAddress) and - SubjectDirectoryName
+ attributes (title, dateOfBirth, placeOfBirth, gender, countryOfCitizenship,
+ countryOfResidence and NameAtBirth).
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param certRef Reference to certificate of the person who is represented.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param thirdPerson The GeneralName of the person who is represented.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @return an Asn1Object
+
+
+ Professions, specializations, disciplines, fields of activity, etc.
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+ Rechtsanw�ltin
+
+
+ Rechtsanwalt
+
+
+ Rechtsbeistand
+
+
+ Steuerberaterin
+
+
+ Steuerberater
+
+
+ Steuerbevollm�chtigte
+
+
+ Steuerbevollm�chtigter
+
+
+ Notarin
+
+
+ Notar
+
+
+ Notarvertreterin
+
+
+ Notarvertreter
+
+
+ Notariatsverwalterin
+
+
+ Notariatsverwalter
+
+
+ Wirtschaftspr�ferin
+
+
+ Wirtschaftspr�fer
+
+
+ Vereidigte Buchpr�ferin
+
+
+ Vereidigter Buchpr�fer
+
+
+ Patentanw�ltin
+
+
+ Patentanwalt
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ professionItems is mandatory, all other parameters are
+ optional.
+
+ @param namingAuthority The naming authority.
+ @param professionItems Directory strings of the profession.
+ @param professionOids DERObjectIdentfier objects for the
+ profession.
+ @param registrationNumber Registration number.
+ @param addProfessionInfo Additional infos in encoded form.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the addProfessionInfo.
+
+
+ @return Returns the namingAuthority.
+
+
+ @return Returns the professionItems.
+
+
+ @return Returns the professionOids.
+
+
+ @return Returns the registrationNumber.
+
+
+ Some other restriction regarding the usage of this certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ Constructor from DirectoryString.
+
+ The DirectoryString is of type RestrictionSyntax:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @param restriction A IAsn1String.
+
+
+ Constructor from a given details.
+
+ @param restriction The description of the restriction.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ @return an Asn1Object
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ cast5CBCParameters ::= Sequence {
+ iv OCTET STRING DEFAULT 0,
+ -- Initialization vector
+ keyLength Integer
+ -- Key length, in bits
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IDEA-CBCPar ::= Sequence {
+ iv OCTET STRING OPTIONAL -- exactly 8 octets
+ }
+
+
+
+ The NetscapeCertType object.
+
+ NetscapeCertType ::= BIT STRING {
+ SSLClient (0),
+ SSLServer (1),
+ S/MIME (2),
+ Object Signing (3),
+ Reserved (4),
+ SSL CA (5),
+ S/MIME CA (6),
+ Object Signing CA (7) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509NetscapeCertType.sslCA | X509NetscapeCertType.smimeCA)
+
+
+ This is designed to parse
+ the PublicKeyAndChallenge created by the KEYGEN tag included by
+ Mozilla based browsers.
+
+ PublicKeyAndChallenge ::= SEQUENCE {
+ spki SubjectPublicKeyInfo,
+ challenge IA5STRING
+ }
+
+
+
+
+ Utility class for fetching curves using their NIST names as published in FIPS-PUB 186-3
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ From RFC 3657
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicOcspResponse ::= Sequence {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertID ::= Sequence {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ create a CertStatus object with a tag of zero.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertStatus ::= CHOICE {
+ good [0] IMPLICIT Null,
+ revoked [1] IMPLICIT RevokedInfo,
+ unknown [2] IMPLICIT UnknownInfo }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlID ::= Sequence {
+ crlUrl [0] EXPLICIT IA5String OPTIONAL,
+ crlNum [1] EXPLICIT Integer OPTIONAL,
+ crlTime [2] EXPLICIT GeneralizedTime OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspRequest ::= Sequence {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspResponse ::= Sequence {
+ responseStatus OcspResponseStatus,
+ responseBytes [0] EXPLICIT ResponseBytes OPTIONAL }
+
+
+
+ The OcspResponseStatus enumeration.
+
+ OcspResponseStatus ::= Enumerated {
+ successful (0), --Response has valid confirmations
+ malformedRequest (1), --Illegal confirmation request
+ internalError (2), --Internal error in issuer
+ tryLater (3), --Try again later
+ --(4) is not used
+ sigRequired (5), --Must sign the request
+ unauthorized (6) --Request unauthorized
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Request ::= Sequence {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponderID ::= CHOICE {
+ byName [1] Name,
+ byKey [2] KeyHash }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseBytes ::= Sequence {
+ responseType OBJECT IDENTIFIER,
+ response OCTET STRING }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseData ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ responderID ResponderID,
+ producedAt GeneralizedTime,
+ responses Sequence OF SingleResponse,
+ responseExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RevokedInfo ::= Sequence {
+ revocationTime GeneralizedTime,
+ revocationReason [0] EXPLICIT CRLReason OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ServiceLocator ::= Sequence {
+ issuer Name,
+ locator AuthorityInfoAccessSyntax OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Signature ::= Sequence {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL}
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SingleResponse ::= Sequence {
+ certID CertID,
+ certStatus CertStatus,
+ thisUpdate GeneralizedTime,
+ nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL,
+ singleExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ TBSRequest ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList Sequence OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+
+
+ class for breaking up an Oid into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Pkcs10 Certfication request object.
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+
+
+ Pkcs10 CertificationRequestInfo object.
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ The EncryptedData object.
+
+ EncryptedData ::= Sequence {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo
+ }
+
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+ EncryptedContent ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedPrivateKeyInfo ::= Sequence {
+ encryptionAlgorithm AlgorithmIdentifier {{KeyEncryptionAlgorithms}},
+ encryptedData EncryptedData
+ }
+
+ EncryptedData ::= OCTET STRING
+
+ KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= {
+ ... -- For local profiles
+ }
+
+
+
+
+ MacData ::= SEQUENCE {
+ mac DigestInfo,
+ macSalt OCTET STRING,
+ iterations INTEGER DEFAULT 1
+ -- Note: The default is for historic reasons and its use is deprecated. A
+ -- higher value, like 1024 is recommended.
+
+ @return the basic DERObject construction.
+
+
+ the infamous Pfx from Pkcs12
+
+
+ PKCS#1: 1.2.840.113549.1.1.15
+
+
+ PKCS#1: 1.2.840.113549.1.1.16
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.6.2.37 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.6.2.38 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.54 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.43 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.40 RFC7030
+
+
+ write out an RSA private key with its associated information
+ as described in Pkcs8.
+
+ PrivateKeyInfo ::= Sequence {
+ version Version,
+ privateKeyAlgorithm AlgorithmIdentifier {{PrivateKeyAlgorithms}},
+ privateKey PrivateKey,
+ attributes [0] IMPLICIT Attributes OPTIONAL
+ }
+ Version ::= Integer {v1(0)} (v1,...)
+
+ PrivateKey ::= OCTET STRING
+
+ Attributes ::= Set OF Attr
+
+
+
+ The default version
+
+
+
+ RSAES-OAEP-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ pSourceAlgorithm [2] PKCS1PSourceAlgorithms DEFAULT pSpecifiedEmpty
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+ PKCS1PSourceAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-pSpecified PARAMETERS OCTET STRING },
+ ... -- Allows for future expansion --
+ }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RsaPrivateKey ::= Sequence {
+ version Version,
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ privateExponent Integer, -- d
+ prime1 Integer, -- p
+ prime2 Integer, -- q
+ exponent1 Integer, -- d mod (p-1)
+ exponent2 Integer, -- d mod (q-1)
+ coefficient Integer -- (inverse of q) mod p
+ }
+
+ Version ::= Integer
+
+ This routine is written to output Pkcs1 version 0, private keys.
+
+
+ The default version
+
+
+
+ RSASSA-PSS-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ saltLength [2] INTEGER DEFAULT 20,
+ trailerField [3] TrailerField DEFAULT trailerFieldBC
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+
+ TrailerField ::= INTEGER { trailerFieldBC(1) }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ a Pkcs#7 signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates
+ [0] IMPLICIT ExtendedCertificatesAndCertificates
+ OPTIONAL,
+ crls
+ [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos }
+
+
+
+ a Pkcs#7 signer info object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ the elliptic curve private key object from SEC 1
+
+
+ ECPrivateKey ::= SEQUENCE {
+ version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
+ privateKey OCTET STRING,
+ parameters [0] Parameters OPTIONAL,
+ publicKey [1] BIT STRING OPTIONAL }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ EllipticCurve OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0)
+ }
+
+
+ Handler class for dealing with S/MIME Capabilities
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ returns an ArrayList with 0 or more objects of all the capabilities
+ matching the passed in capability Oid. If the Oid passed is null the
+ entire set is returned.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapabilities ::= Sequence OF SMIMECapability
+
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapability ::= Sequence {
+ capabilityID OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY capabilityID OPTIONAL
+ }
+
+
+
+ Handler for creating a vector S/MIME Capabilities
+
+
+ The SmimeEncryptionKeyPreference object.
+
+ SmimeEncryptionKeyPreference ::= CHOICE {
+ issuerAndSerialNumber [0] IssuerAndSerialNumber,
+ receipentKeyId [1] RecipientKeyIdentifier,
+ subjectAltKeyIdentifier [2] SubjectKeyIdentifier
+ }
+
+
+
+ @param sKeyId the subjectKeyIdentifier value (normally the X.509 one)
+
+
+ elliptic curves defined in "ECC Brainpool Standard Curves and Curve Generation"
+ http://www.ecc-brainpool.org/download/draft_pkix_additional_ecc_dp.txt
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+
+ Accuracy ::= SEQUENCE {
+ seconds INTEGER OPTIONAL,
+ millis [0] INTEGER (1..999) OPTIONAL,
+ micros [1] INTEGER (1..999) OPTIONAL
+ }
+
+
+
+ @param o
+ @return a MessageImprint object.
+
+
+
+ MessageImprint ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashedMessage OCTET STRING }
+
+
+
+
+ TimeStampReq ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ messageImprint MessageImprint,
+ --a hash algorithm OID and the hash value of the data to be
+ --time-stamped
+ reqPolicy TSAPolicyId OPTIONAL,
+ nonce INTEGER OPTIONAL,
+ certReq BOOLEAN DEFAULT FALSE,
+ extensions [0] IMPLICIT Extensions OPTIONAL
+ }
+
+
+
+
+ TimeStampResp ::= SEQUENCE {
+ status PkiStatusInfo,
+ timeStampToken TimeStampToken OPTIONAL }
+
+
+
+
+
+ TstInfo ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ policy TSAPolicyId,
+ messageImprint MessageImprint,
+ -- MUST have the same value as the similar field in
+ -- TimeStampReq
+ serialNumber INTEGER,
+ -- Time-Stamping users MUST be ready to accommodate integers
+ -- up to 160 bits.
+ genTime GeneralizedTime,
+ accuracy Accuracy OPTIONAL,
+ ordering BOOLEAN DEFAULT FALSE,
+ nonce INTEGER OPTIONAL,
+ -- MUST be present if the similar field was present
+ -- in TimeStampReq. In that case it MUST have the same value.
+ tsa [0] GeneralName OPTIONAL,
+ extensions [1] IMPLICIT Extensions OPTIONAL }
+
+
+
+
+
+ Base OID: 1.2.804.2.1.1.1
+
+
+ DSTU4145 Little Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1
+
+
+ DSTU4145 Big Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1.1
+
+
+ DSTU7564 256-bit digest presentation.
+
+
+ DSTU7564 384-bit digest presentation.
+
+
+ DSTU7564 512-bit digest presentation.
+
+
+ DSTU7564 256-bit mac presentation.
+
+
+ DSTU7564 384-bit mac presentation.
+
+
+ DSTU7564 512-bit mac presentation.
+
+
+ DSTU7624 in ECB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 512 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 128 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 256 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 512 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 512 bit block/key presentation
+
+
+ dump a Der object as a formatted string with indentation
+
+ @param obj the Asn1Object to be dumped out.
+
+
+ dump out a DER object as a formatted string, in non-verbose mode
+
+ @param obj the Asn1Encodable to be dumped out.
+ @return the resulting string.
+
+
+ Dump out the object as a string
+
+ @param obj the Asn1Encodable to be dumped out.
+ @param verbose if true, dump out the contents of octet and bit strings.
+ @return the resulting string.
+
+
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+ The AccessDescription object.
+
+ AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+
+
+ create an AccessDescription with the oid and location provided.
+
+
+
+ @return the access method.
+
+
+
+ @return the access location
+
+
+
+ Return the OID in the Algorithm entry of this identifier.
+
+
+
+
+ Return the parameters structure in the Parameters entry of this identifier.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AlgorithmIdentifier ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+
+
+
+
+ Don't use this one if you are trying to be RFC 3281 compliant.
+ Use it for v1 attribute certificates only.
+
+ Our GeneralNames structure
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertValidityPeriod ::= Sequence {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ @param obj
+ @return
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificate ::= Sequence {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= Integer { v2(1) }
+
+
+
+ The AuthorityInformationAccess object.
+
+ id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+ AuthorityInfoAccessSyntax ::=
+ Sequence SIZE (1..MAX) OF AccessDescription
+ AccessDescription ::= Sequence {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+ id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+ id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+
+
+
+ create an AuthorityInformationAccess with the oid and location provided.
+
+
+ The AuthorityKeyIdentifier object.
+
+ id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+ AuthorityKeyIdentifier ::= Sequence {
+ keyIdentifier [0] IMPLICIT KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] IMPLICIT GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] IMPLICIT CertificateSerialNumber OPTIONAL }
+
+ KeyIdentifier ::= OCTET STRING
+
+
+
+
+ *
+ * Calulates the keyidentifier using a SHA1 hash over the BIT STRING
+ * from SubjectPublicKeyInfo as defined in RFC2459.
+ *
+ * Example of making a AuthorityKeyIdentifier:
+ *
+ * SubjectPublicKeyInfo apki = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(
+ * publicKey.getEncoded()).readObject());
+ * AuthorityKeyIdentifier aki = new AuthorityKeyIdentifier(apki);
+ *
+ *
+ *
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided as well.
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided.
+
+
+ create an AuthorityKeyIdentifier with a precomputed key identifier
+
+
+ create an AuthorityKeyIdentifier with a precomupted key identifier
+ and the GeneralNames tag and the serial number provided as well.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ create a cA=true object for the given path length constraint.
+
+ @param pathLenConstraint
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicConstraints := Sequence {
+ cA Boolean DEFAULT FALSE,
+ pathLenConstraint Integer (0..MAX) OPTIONAL
+ }
+
+
+
+ PKIX RFC-2459
+
+ The X.509 v2 CRL syntax is as follows. For signature calculation,
+ the data that is to be signed is ASN.1 Der encoded.
+
+
+ CertificateList ::= Sequence {
+ tbsCertList TbsCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING }
+
+
+
+ This class helps to support crossCerfificatePairs in a LDAP directory
+ according RFC 2587
+
+
+ crossCertificatePairATTRIBUTE::={
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID joint-iso-ccitt(2) ds(5) attributeType(4) crossCertificatePair(40)}
+
+
+ The forward elements of the crossCertificatePair attribute of a
+ CA's directory entry shall be used to store all, except self-issued
+ certificates issued to this CA. Optionally, the reverse elements of the
+ crossCertificatePair attribute, of a CA's directory entry may contain a
+ subset of certificates issued by this CA to other CAs. When both the forward
+ and the reverse elements are present in a single attribute value, issuer name
+ in one certificate shall match the subject name in the other and vice versa,
+ and the subject public key in one certificate shall be capable of verifying
+ the digital signature on the other certificate and vice versa.
+
+ When a reverse element is present, the forward element value and the reverse
+ element value need not be stored in the same attribute value; in other words,
+ they can be stored in either a single attribute value or two attribute
+ values.
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertificatePair:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param forward Certificates issued to this CA.
+ @param reverse Certificates issued by this CA to other CAs.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @return a DERObject
+
+
+ @return Returns the forward.
+
+
+ @return Returns the reverse.
+
+
+ Construct a CertificatePolicies object containing one PolicyInformation.
+
+ @param name the name to be contained.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation
+
+
+
+ CertPolicyId, used in the CertificatePolicies and PolicyMappings
+ X509V3 Extensions.
+
+
+ CertPolicyId ::= OBJECT IDENTIFIER
+
+
+
+ Return the distribution points making up the sequence.
+
+ @return DistributionPoint[]
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlDistPoint ::= Sequence SIZE {1..MAX} OF DistributionPoint
+
+
+
+ The CRLNumber object.
+
+ CRLNumber::= Integer(0..MAX)
+
+
+
+ The CRLReason enumeration.
+
+ CRLReason ::= Enumerated {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10)
+ }
+
+
+
+ The DigestInfo object.
+
+ DigestInfo::=Sequence{
+ digestAlgorithm AlgorithmIdentifier,
+ digest OCTET STRING }
+
+
+
+ DisplayText class, used in
+ CertificatePolicies X509 V3 extensions (in policy qualifiers).
+
+ It stores a string in a chosen encoding.
+
+ DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Constant corresponding to ia5String encoding.
+
+
+
+ Constant corresponding to bmpString encoding.
+
+
+
+ Constant corresponding to utf8String encoding.
+
+
+
+ Constant corresponding to visibleString encoding.
+
+
+
+ Describe constant DisplayTextMaximumSize here.
+
+
+
+ Creates a new DisplayText instance.
+
+ @param type the desired encoding type for the text.
+ @param text the text to store. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+
+ @param text the text to encapsulate. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+ Useful when reading back a DisplayText class
+ from it's Asn1Encodable form.
+
+ @param contents an Asn1Encodable instance.
+
+
+ Returns the stored string object.
+
+ @return the stored text as a string.
+
+
+ The DistributionPoint object.
+
+ DistributionPoint ::= Sequence {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+ }
+
+
+
+ The DistributionPointName object.
+
+ DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RDN
+ }
+
+
+
+ The extendedKeyUsage object.
+
+ extendedKeyUsage ::= Sequence SIZE (1..MAX) OF KeyPurposeId
+
+
+
+ Returns all extended key usages.
+ The returned ArrayList contains DerObjectIdentifier instances.
+ @return An ArrayList with all key purposes.
+
+
+ The GeneralName object.
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+ OtherName ::= Sequence {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+ EDIPartyName ::= Sequence {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+
+
+ When the subjectAltName extension contains an Internet mail address,
+ the address MUST be included as an rfc822Name. The format of an
+ rfc822Name is an "addr-spec" as defined in RFC 822 [RFC 822].
+
+ When the subjectAltName extension contains a domain name service
+ label, the domain name MUST be stored in the dNSName (an IA5String).
+ The name MUST be in the "preferred name syntax," as specified by RFC
+ 1034 [RFC 1034].
+
+ When the subjectAltName extension contains a URI, the name MUST be
+ stored in the uniformResourceIdentifier (an IA5String). The name MUST
+ be a non-relative URL, and MUST follow the URL syntax and encoding
+ rules specified in [RFC 1738]. The name must include both a scheme
+ (e.g., "http" or "ftp") and a scheme-specific-part. The scheme-
+ specific-part must include a fully qualified domain name or IP
+ address as the host.
+
+ When the subjectAltName extension contains a iPAddress, the address
+ MUST be stored in the octet string in "network byte order," as
+ specified in RFC 791 [RFC 791]. The least significant bit (LSB) of
+ each octet is the LSB of the corresponding byte in the network
+ address. For IP Version 4, as specified in RFC 791, the octet string
+ MUST contain exactly four octets. For IP Version 6, as specified in
+ RFC 1883, the octet string MUST contain exactly sixteen octets [RFC
+ 1883].
+
+
+ Create a GeneralName for the given tag from the passed in string.
+
+ This constructor can handle:
+
+ - rfc822Name
+ - iPAddress
+ - directoryName
+ - dNSName
+ - uniformResourceIdentifier
+ - registeredID
+
+ For x400Address, otherName and ediPartyName there is no common string
+ format defined.
+
+ Note: A directory name can be encoded in different ways into a byte
+ representation. Be aware of this if the byte representation is used for
+ comparing results.
+
+
+ @param tag tag number
+ @param name string representation of name
+ @throws ArgumentException if the string encoding is not correct or
+ not supported.
+
+
+ Construct a GeneralNames object containing one GeneralName.
+ The name to be contained.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ GeneralNames ::= Sequence SIZE {1..MAX} OF GeneralName
+
+
+
+ Class for containing a restriction object subtrees in NameConstraints. See
+ RFC 3280.
+
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.NameConstraints
+
+
+
+ Constructor from a given details.
+
+ According RFC 3280, the minimum and maximum fields are not used with any
+ name forms, thus minimum MUST be zero, and maximum MUST be absent.
+
+ If minimum is null, zero is assumed, if
+ maximum is null, maximum is absent.
+
+ @param baseName
+ A restriction.
+ @param minimum
+ Minimum
+
+ @param maximum
+ Maximum
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @return a DERObject
+
+
+ The Holder object.
+
+ For an v2 attribute certificate this is:
+
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ For an v1 attribute certificate this is:
+
+
+ subject CHOICE {
+ baseCertificateID [0] IssuerSerial,
+ -- associated with a Public Key Certificate
+ subjectName [1] GeneralNames },
+ -- associated with a name
+
+
+
+
+ Constructor for a holder for an v1 attribute certificate.
+
+ @param tagObj The ASN.1 tagged holder object.
+
+
+ Constructor for a holder for an v2 attribute certificate. *
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructs a holder from a IssuerSerial.
+ @param baseCertificateID The IssuerSerial.
+ @param version The version of the attribute certificate.
+
+
+ Returns 1 for v2 attribute certificates or 0 for v1 attribute
+ certificates.
+ @return The version of the attribute certificate.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+ @param version The version of the attribute certificate.
+
+
+ Constructs a holder from an object digest info.
+
+ @param objectDigestInfo The object digest info object.
+
+
+ Returns the entityName for an v2 attribute certificate or the subjectName
+ for an v1 attribute certificate.
+
+ @return The entityname or subjectname.
+
+
+ The Holder object.
+
+ Holder ::= Sequence {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ Implementation of IetfAttrSyntax as specified by RFC3281.
+
+
+
+
+
+
+
+
+ IetfAttrSyntax ::= Sequence {
+ policyAuthority [0] GeneralNames OPTIONAL,
+ values Sequence OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IssuerSerial ::= Sequence {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUid UniqueIdentifier OPTIONAL
+ }
+
+
+
+
+ IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+
+
+ Constructor from given details.
+
+ @param distributionPoint
+ May contain an URI as pointer to most current CRL.
+ @param onlyContainsUserCerts Covers revocation information for end certificates.
+ @param onlyContainsCACerts Covers revocation information for CA certificates.
+
+ @param onlySomeReasons
+ Which revocation reasons does this point cover.
+ @param indirectCRL
+ If true then the CRL contains revocation
+ information about certificates ssued by other CAs.
+ @param onlyContainsAttributeCerts Covers revocation information for attribute certificates.
+
+
+ Constructor from Asn1Sequence
+
+
+ @return Returns the distributionPoint.
+
+
+ @return Returns the onlySomeReasons.
+
+
+ The KeyPurposeID object.
+
+ KeyPurposeID ::= OBJECT IDENTIFIER
+
+
+
+ The KeyUsage object.
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (KeyUsage.keyEncipherment | KeyUsage.dataEncipherment)
+
+
+ Constructor from a given details.
+
+ permitted and excluded are Vectors of GeneralSubtree objects.
+
+ @param permitted Permitted subtrees
+ @param excluded Excluded subtrees
+
+
+ NoticeReference class, used in
+ CertificatePolicies X509 V3 extensions
+ (in policy qualifiers).
+
+
+ NoticeReference ::= Sequence {
+ organization DisplayText,
+ noticeNumbers Sequence OF Integer }
+
+
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param numbers a Vector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization displayText
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+ Useful for reconstructing a NoticeReference
+ instance from its encodable/encoded form.
+
+ @param as an Asn1Sequence value obtained from either
+ calling @{link ToAsn1Object()} for a NoticeReference
+ instance or from parsing it from a Der-encoded stream.
+
+
+ Describe ToAsn1Object method here.
+
+ @return a Asn1Object value
+
+
+ ObjectDigestInfo ASN.1 structure used in v2 attribute certificates.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+
+ The public key is hashed.
+
+
+ The public key certificate is hashed.
+
+
+ An other object is hashed.
+
+
+ Constructor from given details.
+
+ If digestedObjectType is not {@link #publicKeyCert} or
+ {@link #publicKey} otherObjectTypeID must be given,
+ otherwise it is ignored.
+
+ @param digestedObjectType The digest object type.
+ @param otherObjectTypeID The object type ID for
+ otherObjectDigest.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param objectDigest The hash value.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+ PolicyMappings V3 extension, described in RFC3280.
+
+ PolicyMappings ::= Sequence SIZE (1..MAX) OF Sequence {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+
+ @see RFC 3280, section 4.2.1.6
+
+
+ Creates a new PolicyMappings instance.
+
+ @param seq an Asn1Sequence constructed as specified
+ in RFC 3280
+
+
+ Creates a new PolicyMappings instance.
+
+ @param mappings a HashMap value that maps
+ string oids
+ to other string oids.
+
+
+ PolicyQualifierId, used in the CertificatePolicies
+ X509V3 extension.
+
+
+ id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+
+
+ Policy qualifiers, used in the X509V3 CertificatePolicies
+ extension.
+
+
+ PolicyQualifierInfo ::= Sequence {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param policyQualifierId a PolicyQualifierId value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new PolicyQualifierInfo containing a
+ cPSuri qualifier.
+
+ @param cps the CPS (certification practice statement) uri as a
+ string.
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param as PolicyQualifierInfo X509 structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a Der-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+
+ PrivateKeyUsagePeriod ::= SEQUENCE
+ {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+
+
+
+
+ The BiometricData object.
+
+ BiometricData ::= SEQUENCE {
+ typeOfBiometricData TypeOfBiometricData,
+ hashAlgorithm AlgorithmIdentifier,
+ biometricDataHash OCTET STRING,
+ sourceDataUri IA5String OPTIONAL }
+
+
+
+ The Iso4217CurrencyCode object.
+
+ Iso4217CurrencyCode ::= CHOICE {
+ alphabetic PrintableString (SIZE 3), --Recommended
+ numeric INTEGER (1..999) }
+ -- Alphabetic or numeric currency code as defined in ISO 4217
+ -- It is recommended that the Alphabetic form is used
+
+
+
+ The MonetaryValue object.
+
+ MonetaryValue ::= SEQUENCE {
+ currency Iso4217CurrencyCode,
+ amount INTEGER,
+ exponent INTEGER }
+ -- value = amount * 10^exponent
+
+
+
+ The QCStatement object.
+
+ QCStatement ::= SEQUENCE {
+ statementId OBJECT IDENTIFIER,
+ statementInfo ANY DEFINED BY statementId OPTIONAL}
+
+
+
+ The SemanticsInformation object.
+
+ SemanticsInformation ::= SEQUENCE {
+ semanticsIdentifier OBJECT IDENTIFIER OPTIONAL,
+ nameRegistrationAuthorities NameRegistrationAuthorities
+ OPTIONAL }
+ (WITH COMPONENTS {..., semanticsIdentifier PRESENT}|
+ WITH COMPONENTS {..., nameRegistrationAuthorities PRESENT})
+
+ NameRegistrationAuthorities ::= SEQUENCE SIZE (1..MAX) OF
+ GeneralName
+
+
+
+ The TypeOfBiometricData object.
+
+ TypeOfBiometricData ::= CHOICE {
+ predefinedBiometricType PredefinedBiometricType,
+ biometricDataOid OBJECT IDENTIFIER }
+
+ PredefinedBiometricType ::= INTEGER {
+ picture(0),handwritten-signature(1)}
+ (picture|handwritten-signature)
+
+
+
+ The ReasonFlags object.
+
+ ReasonFlags ::= BIT STRING {
+ unused(0),
+ keyCompromise(1),
+ cACompromise(2),
+ affiliationChanged(3),
+ superseded(4),
+ cessationOfOperation(5),
+ certficateHold(6)
+ }
+
+
+
+ @param reasons - the bitwise OR of the Key Reason flags giving the
+ allowed uses for the key.
+
+
+ Implementation of the RoleSyntax object as specified by the RFC3281.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ RoleSyntax factory method.
+ @param obj the object used to construct an instance of
+ RoleSyntax. It must be an instance of RoleSyntax
+ or Asn1Sequence.
+ @return the instance of RoleSyntax built from the
+ supplied object.
+ @throws java.lang.ArgumentException if the object passed
+ to the factory is not an instance of RoleSyntax or
+ Asn1Sequence.
+
+
+ Constructor.
+ @param roleAuthority the role authority of this RoleSyntax.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Constructor. Invoking this constructor is the same as invoking
+ new RoleSyntax(null, roleName).
+ @param roleName the role name of this RoleSyntax.
+
+
+ Utility constructor. Takes a string argument representing
+ the role name, builds a GeneralName to hold the role name
+ and calls the constructor that takes a GeneralName.
+ @param roleName
+
+
+ Constructor that builds an instance of RoleSyntax by
+ extracting the encoded elements from the Asn1Sequence
+ object supplied.
+ @param seq an instance of Asn1Sequence that holds
+ the encoded elements used to build this RoleSyntax.
+
+
+ Gets the role authority of this RoleSyntax.
+ @return an instance of GeneralNames holding the
+ role authority of this RoleSyntax.
+
+
+ Gets the role name of this RoleSyntax.
+ @return an instance of GeneralName holding the
+ role name of this RoleSyntax.
+
+
+ Gets the role name as a java.lang.string object.
+ @return the role name of this RoleSyntax represented as a
+ string object.
+
+
+ Gets the role authority as a string[] object.
+ @return the role authority of this RoleSyntax represented as a
+ string[] array.
+
+
+ Implementation of the method ToAsn1Object as
+ required by the superclass ASN1Encodable.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RSAPublicKey ::= Sequence {
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ }
+
+
+
+ Structure for a name or pseudonym.
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.PersonalData
+
+
+
+ Constructor from DERString.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+ @param pseudonym pseudonym value to use.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param pseudonym The pseudonym.
+
+
+ Constructor from a given details.
+
+ @param surname The surname.
+ @param givenName A sequence of directory strings making up the givenName
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @return an Asn1Object
+
+
+ Contains personal data for the otherName field in the subjectAltNames
+ extension.
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.NameOrPseudonym
+ @see org.bouncycastle.asn1.x509.sigi.SigIObjectIdentifiers
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param nameOrPseudonym Name or pseudonym.
+ @param nameDistinguisher Name distinguisher.
+ @param dateOfBirth Date of birth.
+ @param placeOfBirth Place of birth.
+ @param gender Gender.
+ @param postalAddress Postal Address.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Object Identifiers of SigI specifciation (German Signature Law
+ Interoperability specification).
+
+
+ Key purpose IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Certificate policy IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Other Name IDs for German SigI (Signature Interoperability Specification)
+
+
+ To be used for for the generation of directory service certificates.
+
+
+ ID for PersonalData
+
+
+ Certificate is conform to german signature law.
+
+
+ This extension may contain further X.500 attributes of the subject. See also
+ RFC 3039.
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @see org.bouncycastle.asn1.x509.X509Name for AttributeType ObjectIdentifiers.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type SubjectDirectoryAttributes:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @param seq
+ The ASN.1 sequence.
+
+
+ Constructor from an ArrayList of attributes.
+
+ The ArrayList consists of attributes of type {@link Attribute Attribute}
+
+ @param attributes The attributes.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @return a DERObject
+
+
+ @return Returns the attributes.
+
+
+ The SubjectKeyIdentifier object.
+
+ SubjectKeyIdentifier::= OCTET STRING
+
+
+
+ Calculates the keyIdentifier using a SHA1 hash over the BIT STRING
+ from SubjectPublicKeyInfo as defined in RFC3280.
+
+ @param spki the subject public key info.
+
+
+ Return a RFC 3280 type 1 key identifier. As in:
+
+ (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the
+ value of the BIT STRING subjectPublicKey (excluding the tag,
+ length, and number of unused bits).
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ Return a RFC 3280 type 2 key identifier. As in:
+
+ (2) The keyIdentifier is composed of a four bit type field with
+ the value 0100 followed by the least significant 60 bits of the
+ SHA-1 hash of the value of the BIT STRING subjectPublicKey.
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ The object that contains the public key stored in a certficate.
+
+ The GetEncoded() method in the public keys in the JCE produces a DER
+ encoded one of these.
+
+
+ for when the public key is an encoded object - if the bitstring
+ can't be decoded this routine raises an IOException.
+
+ @exception IOException - if the bit string doesn't represent a Der
+ encoded object.
+
+
+ for when the public key is raw bits...
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SubjectPublicKeyInfo ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING }
+
+
+
+ Target structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+
+ The targetCert field is currently not supported and must not be used
+ according to RFC 3281.
+
+
+ Creates an instance of a Target from the given object.
+
+ obj can be a Target or a {@link Asn1TaggedObject}
+
+ @param obj The object.
+ @return A Target instance.
+ @throws ArgumentException if the given object cannot be
+ interpreted as Target.
+
+
+ Constructor from Asn1TaggedObject.
+
+ @param tagObj The tagged object.
+ @throws ArgumentException if the encoding is wrong.
+
+
+ Constructor from given details.
+
+ Exactly one of the parameters must be not null.
+
+ @param type the choice type to apply to the name.
+ @param name the general name.
+ @throws ArgumentException if type is invalid.
+
+
+ @return Returns the targetGroup.
+
+
+ @return Returns the targetName.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+ @return an Asn1Object
+
+
+ Target information extension for attributes certificates according to RFC
+ 3281.
+
+
+ SEQUENCE OF Targets
+
+
+
+
+ Creates an instance of a TargetInformation from the given object.
+
+ obj can be a TargetInformation or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A TargetInformation instance.
+ @throws ArgumentException if the given object cannot be interpreted as TargetInformation.
+
+
+ Constructor from a Asn1Sequence.
+
+ @param seq The Asn1Sequence.
+ @throws ArgumentException if the sequence does not contain
+ correctly encoded Targets elements.
+
+
+ Returns the targets in this target information extension.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Constructs a target information from a single targets element.
+ According to RFC 3281 only one targets element must be produced.
+
+ @param targets A Targets instance.
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given they must be merged in
+ into one targets element.
+
+ @param targets An array with {@link Targets}.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SEQUENCE OF Targets
+
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given in the constructor they are merged into one
+ targets element. If this was produced from a
+ {@link Org.BouncyCastle.Asn1.Asn1Sequence} the encoding is kept.
+
+ @return an Asn1Object
+
+
+ Targets structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.Target
+ @see org.bouncycastle.asn1.x509.TargetInformation
+
+
+ Creates an instance of a Targets from the given object.
+
+ obj can be a Targets or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A Targets instance.
+ @throws ArgumentException if the given object cannot be interpreted as Target.
+
+
+ Constructor from Asn1Sequence.
+
+ @param targets The ASN.1 SEQUENCE.
+ @throws ArgumentException if the contents of the sequence are
+ invalid.
+
+
+ Constructor from given targets.
+
+ The ArrayList is copied.
+
+ @param targets An ArrayList of {@link Target}s.
+ @see Target
+ @throws ArgumentException if the ArrayList contains not only Targets.
+
+
+ Returns the targets in an ArrayList.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Targets ::= SEQUENCE OF Target
+
+
+ @return an Asn1Object
+
+
+ The TbsCertificate object.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+ Note: issuerUniqueID and subjectUniqueID are both deprecated by the IETF. This class
+ will parse them, but you really shouldn't be creating new ones.
+
+
+ PKIX RFC-2459 - TbsCertList object.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+
+ Return our time as DateTime.
+
+ A date time.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+ UserNotice class, used in
+ CertificatePolicies X509 extensions (in policy
+ qualifiers).
+
+ UserNotice ::= Sequence {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+
+
+ @see PolicyQualifierId
+ @see PolicyInformation
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param explicitText a DisplayText value
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param str the explicitText field as a string.
+
+
+ Creates a new UserNotice instance.
+ Useful from reconstructing a UserNotice instance
+ from its encodable/encoded form.
+
+ @param as an ASN1Sequence value obtained from either
+ calling @{link toASN1Object()} for a UserNotice
+ instance or from parsing it from a DER-encoded stream.
+
+
+ Generator for Version 1 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ }
+
+
+
+
+ Generator for Version 2 AttributeCertificateInfo
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+
+
+
+ @param attribute
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ V2Form ::= Sequence {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST NOT
+ -- be present in this profile
+ }
+
+
+
+ Generator for Version 2 TbsCertList structures.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+ Note: This class may be subject to change
+
+
+ Generator for Version 3 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+
+
+ an X509Certificate structure.
+
+ Certificate ::= Sequence {
+ tbsCertificate TbsCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+
+
+ The default converter for X509 DN entries when going from their
+ string value to ASN.1 strings.
+
+
+ Apply default conversion for the given value depending on the oid
+ and the character range of the value.
+
+ @param oid the object identifier for the DN entry
+ @param value the value associated with it
+ @return the ASN.1 equivalent for the string value.
+
+
+ an object for the elements in the X.509 V3 extension block.
+
+
+ Convert the value of the passed in extension to an object.
+ The extension to parse.
+ The object the value string contains.
+ If conversion is not possible.
+
+
+ Subject Directory Attributes
+
+
+ Subject Key Identifier
+
+
+ Key Usage
+
+
+ Private Key Usage Period
+
+
+ Subject Alternative Name
+
+
+ Issuer Alternative Name
+
+
+ Basic Constraints
+
+
+ CRL Number
+
+
+ Reason code
+
+
+ Hold Instruction Code
+
+
+ Invalidity Date
+
+
+ Delta CRL indicator
+
+
+ Issuing Distribution Point
+
+
+ Certificate Issuer
+
+
+ Name Constraints
+
+
+ CRL Distribution Points
+
+
+ Certificate Policies
+
+
+ Policy Mappings
+
+
+ Authority Key Identifier
+
+
+ Policy Constraints
+
+
+ Extended Key Usage
+
+
+ Freshest CRL
+
+
+ Inhibit Any Policy
+
+
+ Authority Info Access
+
+
+ Subject Info Access
+
+
+ Logo Type
+
+
+ BiometricInfo
+
+
+ QCStatements
+
+
+ Audit identity extension in attribute certificates.
+
+
+ NoRevAvail extension in attribute certificates.
+
+
+ TargetInformation extension in attribute certificates.
+
+
+ Expired Certificates on CRL extension
+
+
+ Constructor from Asn1Sequence.
+
+ the extensions are a list of constructed sequences, either with (Oid, OctetString) or (Oid, Boolean, OctetString)
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ return an Enumeration of the extension field's object ids.
+
+
+ return the extension represented by the object identifier
+ passed in.
+
+ @return the extension if it's present, null otherwise.
+
+
+
+ Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+ Extension ::= SEQUENCE {
+ extnId EXTENSION.&id ({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+
+
+ Generator for X.509 extensions
+
+
+ Reset the generator
+
+
+
+ Add an extension with the given oid and the passed in value to be included
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The ASN.1 object to be included in the extension.
+
+
+
+ Add an extension with the given oid and the passed in byte array to be wrapped
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The byte array to be wrapped.
+
+
+ Return true if there are no extension present in this generator.
+ True if empty, false otherwise
+
+
+ Generate an X509Extensions object based on the current state of the generator.
+ An X509Extensions object
+
+
+
+ RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+ RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY }
+
+
+
+ country code - StringType(SIZE(2))
+
+
+ organization - StringType(SIZE(1..64))
+
+
+ organizational unit name - StringType(SIZE(1..64))
+
+
+ Title
+
+
+ common name - StringType(SIZE(1..64))
+
+
+ street - StringType(SIZE(1..64))
+
+
+ device serial number name - StringType(SIZE(1..64))
+
+
+ locality name - StringType(SIZE(1..64))
+
+
+ state, or province name - StringType(SIZE(1..64))
+
+
+ Naming attributes of type X520name
+
+
+ businessCategory - DirectoryString(SIZE(1..128)
+
+
+ postalCode - DirectoryString(SIZE(1..40)
+
+
+ dnQualifier - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 Pseudonym - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Z
+
+
+ RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128)
+
+
+ RFC 3039 DateOfBirth - PrintableString (SIZE(1)) -- "M", "F", "m" or "f"
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF
+ DirectoryString(SIZE(1..30))
+
+
+ RFC 2256 dmdName
+
+
+ id-at-telephoneNumber
+
+
+ id-at-organizationIdentifier
+
+
+ id-at-name
+
+
+ Email address (RSA PKCS#9 extension) - IA5String.
+ Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.
+
+
+ more from PKCS#9
+
+
+ email address in Verisign certificates
+
+
+ LDAP User id.
+
+
+ determines whether or not strings should be processed and printed
+ from back to front.
+
+
+ default look up table translating OID values into their common symbols following
+ the convention in RFC 2253 with a few extras
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 2253
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 1779
+
+
+
+ look up table translating common symbols into their OIDS.
+
+
+ Return a X509Name based on the passed in tagged object.
+
+ @param obj tag object holding name.
+ @param explicitly true if explicitly tagged false otherwise.
+ @return the X509Name
+
+
+ Constructor from Asn1Sequence
+
+ the principal will be a list of constructed sets, each containing an (OID, string) pair.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. If reverse
+ is true, create the encoded version of the sequence starting from the
+ last element in the string.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter. If reverse is true the ASN.1 sequence representing the DN will
+ be built by starting at the end of the string, rather than the start.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically.
+
+ If reverse is true, create the encoded version of the sequence
+ starting from the last element in the string.
+ @param reverse true if we should start scanning from the end (RFC 2553).
+ @param lookUp table of names and their oids.
+ @param dirName the X.500 string to be parsed.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically. The passed in converter is used to convert the
+ string values to the right of each equals sign to their ASN.1 counterparts.
+
+ @param reverse true if we should start scanning from the end, false otherwise.
+ @param lookUp table of names and oids.
+ @param dirName the string dirName
+ @param converter the converter to convert string values into their ASN.1 equivalents
+
+
+ return an IList of the oids in the name, in the order they were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found, with the DN label corresponding to passed in oid.
+
+
+ The X509Name object to test equivalency against.
+ If true, the order of elements must be the same,
+ as well as the values associated with each element.
+
+
+ test for equivalence - note: case is ignored.
+
+
+ convert the structure to a string - if reverse is true the
+ oids and values are listed out starting with the last element
+ in the sequence (ala RFC 2253), otherwise the string will begin
+ with the first element of the structure. If no string definition
+ for the oid is found in oidSymbols the string value of the oid is
+ added. Two standard symbol tables are provided DefaultSymbols, and
+ RFC2253Symbols as part of this class.
+
+ @param reverse if true start at the end of the sequence and work back.
+ @param oidSymbols look up table strings for oids.
+
+
+ * It turns out that the number of standard ways the fields in a DN should be
+ * encoded into their ASN.1 counterparts is rapidly approaching the
+ * number of machines on the internet. By default the X509Name class
+ * will produce UTF8Strings in line with the current recommendations (RFC 3280).
+ *
+ * An example of an encoder look like below:
+ *
+ * public class X509DirEntryConverter
+ * : X509NameEntryConverter
+ * {
+ * public Asn1Object GetConvertedValue(
+ * DerObjectIdentifier oid,
+ * string value)
+ * {
+ * if (str.Length() != 0 && str.charAt(0) == '#')
+ * {
+ * return ConvertHexEncoded(str, 1);
+ * }
+ * if (oid.Equals(EmailAddress))
+ * {
+ * return new DerIA5String(str);
+ * }
+ * else if (CanBePrintable(str))
+ * {
+ * return new DerPrintableString(str);
+ * }
+ * else if (CanBeUTF8(str))
+ * {
+ * return new DerUtf8String(str);
+ * }
+ * else
+ * {
+ * return new DerBmpString(str);
+ * }
+ * }
+ * }
+ *
+ *
+
+
+ Convert an inline encoded hex string rendition of an ASN.1
+ object back into its corresponding ASN.1 object.
+
+ @param str the hex encoded object
+ @param off the index at which the encoding starts
+ @return the decoded object
+
+
+ return true if the passed in string can be represented without
+ loss as a PrintableString, false otherwise.
+
+
+ Convert the passed in string value into the appropriate ASN.1
+ encoded object.
+
+ @param oid the oid associated with the value in the DN.
+ @param value the value of the particular DN component.
+ @return the ASN.1 equivalent for the value.
+
+
+ class for breaking up an X500 Name into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ A general class that reads all X9.62 style EC curve tables.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve. The routine returns null if the curve is not present.
+
+ @param name the name of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve.
+
+ @param oid the object id of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return an enumeration of the names of the available curves.
+
+ @return an enumeration of the names of the available curves.
+
+
+ ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeySpecificInfo ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ counter OCTET STRING SIZE (4..4)
+ }
+
+
+
+ ANS.1 def for Diffie-Hellman key exchange OtherInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherInfo ::= Sequence {
+ keyInfo KeySpecificInfo,
+ partyAInfo [0] OCTET STRING OPTIONAL,
+ suppPubInfo [2] OCTET STRING
+ }
+
+
+
+ table of the current named curves defined in X.962 EC-DSA.
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Parameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve CURVES.&id({CurveNames}),
+ implicitlyCA Null
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve Curve structure. See
+ X9.62, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Curve ::= Sequence {
+ a FieldElement,
+ b FieldElement,
+ seed BIT STRING OPTIONAL
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve ECParameters structure. See
+ X9.62, for further details.
+
+
+ Return the ASN.1 entry representing the Curve.
+
+ @return the X9Curve for the curve in these parameters.
+
+
+ Return the ASN.1 entry representing the FieldID.
+
+ @return the X9FieldID for the FieldID in these parameters.
+
+
+ Return the ASN.1 entry representing the base point G.
+
+ @return the X9ECPoint for the base point in these parameters.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECParameters ::= Sequence {
+ version Integer { ecpVer1(1) } (ecpVer1),
+ fieldID FieldID {{FieldTypes}},
+ curve X9Curve,
+ base X9ECPoint,
+ order Integer,
+ cofactor Integer OPTIONAL
+ }
+
+
+
+ class for describing an ECPoint as a Der object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECPoint ::= OCTET STRING
+
+
+ Octet string produced using ECPoint.GetEncoded().
+
+
+ Class for processing an ECFieldElement as a DER object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ FieldElement ::= OCTET STRING
+
+
+
+ - if q is an odd prime then the field element is
+ processed as an Integer and converted to an octet string
+ according to x 9.62 4.3.1.
+ - if q is 2m then the bit string
+ contained in the field element is converted into an octet
+ string with the same ordering padded at the front if necessary.
+
+
+
+
+
+ ASN.1 def for Elliptic-Curve Field ID structure. See
+ X9.62, for further details.
+
+
+ Constructor for elliptic curves over prime fields
+ F2.
+ @param primeP The prime p defining the prime field.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)..
+
+
+ Produce a Der encoding of the following structure.
+
+ FieldID ::= Sequence {
+ fieldType FIELD-ID.&id({IOSet}),
+ parameters FIELD-ID.&Type({IOSet}{@fieldType})
+ }
+
+
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) x9-57 (10040) x9cm(4) 3 }
+
+
+ X9.63
+
+
+ X9.42
+
+
+ reader for Base64 armored objects - read the headers and then start returning
+ bytes when the data is reached. An IOException is thrown if the CRC check
+ fails.
+
+
+ decode the base 64 encoded input data.
+
+ @return the offset the data starts in out.
+
+
+ Create a stream for reading a PGP armoured message, parsing up to a header
+ and then reading the data that follows.
+
+ @param input
+
+
+ Create an armoured input stream which will assume the data starts
+ straight away, or parse for headers first depending on the value of
+ hasHeaders.
+
+ @param input
+ @param hasHeaders true if headers are to be looked for, false otherwise.
+
+
+ @return true if we are inside the clear text section of a PGP
+ signed message.
+
+
+ @return true if the stream is actually at end of file.
+
+
+ Return the armor header line (if there is one)
+ @return the armor header line, null if none present.
+
+
+ Return the armor headers (the lines after the armor header line),
+ @return an array of armor headers, null if there aren't any.
+
+
+ Basic output stream.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+
+ Set an additional header entry. A null value will clear the entry for name.
+
+ @param name the name of the header entry.
+ @param v the value of the header entry.
+
+
+ Reset the headers to only contain a Version string (if one is present).
+
+
+ Start a clear text signed message.
+ @param hashAlgorithm
+
+
+ Note: Close() does not close the underlying stream. So it is possible to write
+ multiple objects using armoring to a single stream.
+
+
+ Basic type for a image attribute packet.
+
+
+ Reader for PGP objects.
+
+
+ Returns the next packet tag in the stream.
+
+
+
+ A stream that overlays our input stream, allowing the user to only read a segment of it.
+ NB: dataLength will be negative if the segment length is in the upper range above 2**31.
+
+
+
+ Base class for a PGP object.
+
+
+ Basic output stream.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+
+
+ Create a stream representing an old style partial object.
+ Output stream to write to.
+ The packet tag for the object.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+ If true, the header is written out in old format.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Buffer to use for collecting chunks.
+
+
+ Flush the underlying stream.
+
+
+ Finish writing out the current packet without closing the underlying stream.
+
+
+ Generic compressed data object.
+
+
+ The algorithm tag value.
+
+
+ Basic tags for compression algorithms.
+
+
+ Basic type for a PGP packet.
+
+
+ Base class for a DSA public key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for a DSA secret key.
+
+
+ @param in
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ @return x
+
+
+ Base class for an ECDH Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an ECDSA Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an EC Public Key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an EC Secret Key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal public key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal secret key.
+
+
+ @param in
+
+
+ @param x
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Basic packet for an experimental packet.
+
+
+ Basic tags for hash algorithms.
+
+
+ Base interface for a PGP key.
+
+
+
+ The base format for this key - in the case of the symmetric keys it will generally
+ be raw indicating that the key is just a straight byte representation, for an asymmetric
+ key the format will be PGP, indicating the key is a string of MPIs encoded in PGP format.
+
+ "RAW" or "PGP".
+
+
+ Note: you can only read from this once...
+
+
+ Generic literal data packet.
+
+
+ The format tag value.
+
+
+ The modification time of the file in milli-seconds (since Jan 1, 1970 UTC)
+
+
+ Basic type for a marker packet.
+
+
+ Basic packet for a modification detection code packet.
+
+
+ A multiple precision integer
+
+
+ Generic signature object
+
+
+ The encryption algorithm tag.
+
+
+ The hash algorithm tag.
+
+
+ Basic PGP packet tag types.
+
+
+ Public Key Algorithm tag numbers.
+
+
+ Basic packet for a PGP public key.
+
+
+ Basic packet for a PGP public key.
+
+
+ Construct a version 4 public key packet.
+
+
+ Basic packet for a PGP public subkey
+
+
+ Construct a version 4 public subkey packet.
+
+
+ Base class for an RSA public key.
+
+
+ Construct an RSA public key from the passed in stream.
+
+
+ The modulus.
+ The public exponent.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an RSA secret (or priate) key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ The string to key specifier class.
+
+
+ The hash algorithm.
+
+
+ The IV for the key generation algorithm.
+
+
+ The iteration count
+
+
+ The protection mode - only if GnuDummyS2K
+
+
+ Basic packet for a PGP secret key.
+
+
+ Basic packet for a PGP secret key.
+
+
+ Generic signature packet.
+
+
+ Generate a version 4 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param hashedData
+ @param unhashedData
+ @param fingerprint
+ @param signature
+
+
+ Generate a version 2/3 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param fingerprint
+ @param signature
+
+
+ return the keyId
+ @return the keyId that created the signature.
+
+
+ return the signature trailer that must be included with the data
+ to reconstruct the signature
+
+ @return byte[]
+
+
+ * return the signature as a set of integers - note this is normalised to be the
+ * ASN.1 encoding of what appears in the signature packet.
+
+
+ Return the byte encoding of the signature section.
+ @return uninterpreted signature bytes.
+
+
+ Return the creation time in milliseconds since 1 Jan., 1970 UTC.
+
+
+ Basic type for a PGP Signature sub-packet.
+
+
+ Return the generic data making up the packet.
+
+
+ reader for signature sub-packets
+
+
+ Basic PGP signature sub-packet tag types.
+
+
+ Packet embedded signature
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ Identifier for the modification detection feature
+
+
+ Returns if modification detection is supported.
+
+
+ Returns if a particular feature is supported.
+
+
+ Sets support for a particular feature.
+
+
+ packet giving signature creation time.
+
+
+ packet giving time after creation at which the key expires.
+
+
+ Return the number of seconds after creation time a key is valid for.
+
+ @return second count for key validity.
+
+
+ Packet holding the key flag values.
+
+
+
+ Return the flag values contained in the first 4 octets (note: at the moment
+ the standard only uses the first one).
+
+
+
+ Class provided a NotationData object according to
+ RFC2440, Chapter 5.2.3.15. Notation Data
+
+
+ packet giving signature creation time.
+
+
+ packet giving whether or not the signature is signed using the primary user ID for the key.
+
+
+ packet giving whether or not is revocable.
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ return time in seconds before signature expires after creation time.
+
+
+ packet giving the User ID of the signer.
+
+
+ packet giving trust.
+
+
+
+ Represents revocation key OpenPGP signature sub packet.
+
+
+
+
+ Represents revocation reason OpenPGP signature sub packet.
+
+
+
+ Basic type for a symmetric key encrypted packet.
+
+
+ Basic tags for symmetric key algorithms
+
+
+ Basic type for a symmetric encrypted session key packet
+
+
+ @return int
+
+
+ @return S2k
+
+
+ @return byte[]
+
+
+ @return int
+
+
+ Basic type for a trust packet.
+
+
+ Basic type for a user attribute packet.
+
+
+ Basic type for a user attribute sub-packet.
+
+
+ return the generic data making up the packet.
+
+
+ reader for user attribute sub-packets
+
+
+ Basic PGP user attribute sub-packet tag types.
+
+
+ Basic type for a user ID packet.
+
+
+ Compressed data objects
+
+
+ The algorithm used for compression
+
+
+ Get the raw input stream contained in the object.
+
+
+ Return an uncompressed input stream which allows reading of the compressed data.
+
+
+ Class for producing compressed data packets.
+
+
+
+
+ Return an output stream which will save the data being written to
+ the compressed object.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Stream to be used for output.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+
+ Return an output stream which will compress the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+ Note: using this may break compatibility with RFC 1991 compliant tools.
+ Only recent OpenPGP implementations are capable of accepting these streams.
+
+
+ Stream to be used for output.
+ The buffer to use.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+ Close the compressed object.summary>
+
+
+
+ Thrown if the IV at the start of a data stream indicates the wrong key is being used.
+
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return true if the message is integrity protected.
+ True, if there is a modification detection code namespace associated
+ with this stream.
+
+
+ Note: This can only be called after the message has been read.
+ True, if the message verifies, false otherwise
+
+
+ Generator for encrypted objects.
+
+
+ Existing SecureRandom constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+
+
+ Creates a cipher stream which will have an integrity packet associated with it.
+
+
+ Base constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+ PGP 2.6.x compatibility required.
+
+
+
+ Add a PBE encryption method to the encrypted object using the default algorithm (S2K_SHA1).
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Add a public key encrypted session key to the encrypted object.
+
+
+
+
+ If buffer is non null stream assumed to be partial, otherwise the length will be used
+ to output a fixed length packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+
+
+
+
+ Close off the encrypted object - this is equivalent to calling Close() on the stream
+ returned by the Open() method.
+
+
+ Note: This does not close the underlying output stream, only the stream on top of
+ it created by the Open() method.
+
+
+
+
+ A holder for a list of PGP encryption method packets.
+
+
+ Generic exception class for PGP encoding/decoding problems.
+
+
+ Key flag values for the KeyFlags subpacket.
+
+
+
+ General class to handle JCA key pairs and convert them into OpenPGP ones.
+
+ A word for the unwary, the KeyId for an OpenPGP public key is calculated from
+ a hash that includes the time of creation, if you pass a different date to the
+ constructor below with the same public private key pair the KeyIs will not be the
+ same as for previous generations of the key, so ideally you only want to do
+ this once.
+
+
+
+
+ Create a key pair from a PgpPrivateKey and a PgpPublicKey.
+ The public key.
+ The private key.
+
+
+ The keyId associated with this key pair.
+
+
+
+ Generator for a PGP master and subkey ring.
+ This class will generate both the secret and public key rings
+
+
+
+
+ Create a new key ring generator using old style checksumming. It is recommended to use
+ SHA1 checksumming where possible.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+ The key pair.
+ The hash algorithm.
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ exception adding subkey:
+
+
+
+ Return the secret key ring.
+
+
+ Return the public key ring that corresponds to the secret key ring.
+
+
+
+ Thrown if the key checksum is invalid.
+
+
+
+ Class for processing literal data objects.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+ The format of the data stream - Binary or Text
+
+
+ The file name that's associated with the data stream.
+
+
+ Return the file name as an unintrepreted byte array.
+
+
+ The modification time for the file.
+
+
+ The raw input stream for the data stream.
+
+
+ The input stream representing the data stream.
+
+
+ Class for producing literal data packets.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+
+ Generates literal data objects in the old format.
+ This is important if you need compatibility with PGP 2.6.x.
+
+ If true, uses old format.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The length of the data we will write.
+ The time of last modification we want stored.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet,
+ as an indefinite length stream. The stream is written out as a series of partial
+ packets with a chunk size determined by the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The time of last modification we want stored.
+ The buffer to use for collecting data to put into chunks.
+
+
+
+ Close the literal data packet - this is equivalent to calling Close()
+ on the stream returned by the Open() method.
+
+
+
+
+ A PGP marker packet - in general these should be ignored other than where
+ the idea is to preserve the original input stream.
+
+
+
+
+ General class for reading a PGP object stream.
+
+ Note: if this class finds a PgpPublicKey or a PgpSecretKey it
+ will create a PgpPublicKeyRing, or a PgpSecretKeyRing for each
+ key found. If all you are trying to do is read a key ring file use
+ either PgpPublicKeyRingBundle or PgpSecretKeyRingBundle.
+
+
+
+ Return the next object in the stream, or null if the end is reached.
+ On a parse error
+
+
+
+ Return all available objects in a list.
+
+ An IList containing all objects from this factory, in order.
+
+
+ A one pass signature object.
+
+
+ Initialise the signature object for verification.
+
+
+ Verify the calculated signature against the passed in PgpSignature.
+
+
+ Holder for a list of PgpOnePassSignature objects.
+
+
+ Padding functions.
+
+
+ A password based encryption object.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ General class to contain a private key for use with other OpenPGP objects.
+
+
+
+ Create a PgpPrivateKey from a keyID, the associated public data packet, and a regular private key.
+
+ ID of the corresponding public key.
+ the public key data packet to be associated with this private key.
+ the private key data packet to be associated with this private key.
+
+
+ The keyId associated with the contained private key.
+
+
+ The public key packet associated with this private key, if available.
+
+
+ The contained private key.
+
+
+ General class to handle a PGP public key object.
+
+
+
+ Create a PgpPublicKey from the passed in lightweight one.
+
+
+ Note: the time passed in affects the value of the key's keyId, so you probably only want
+ to do this once for a lightweight key, or make sure you keep track of the time you used.
+
+ Asymmetric algorithm type representing the public key.
+ Actual public key to associate.
+ Date of creation.
+ If pubKey is not public.
+ On key creation problem.
+
+
+ Constructor for a sub-key.
+
+
+ Copy constructor.
+ The public key to copy.
+
+
+ The version of this key.
+
+
+ The creation time of this key.
+
+
+ The number of valid days from creation time - zero means no expiry.
+ WARNING: This method will return 1 for keys with version > 3 that expire in less than 1 day
+
+
+ Return the trust data associated with the public key, if present.
+ A byte array with trust data, null otherwise.
+
+
+ The number of valid seconds from creation time - zero means no expiry.
+
+
+ The keyId associated with the public key.
+
+
+ The fingerprint of the key
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for encryption.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for encryption.
+
+
+
+ True, if this is a master key.
+
+
+ The algorithm code associated with the public key.
+
+
+ The strength of the key in bits.
+
+
+ The public key contained in the object.
+ A lightweight public key.
+ If the key algorithm is not recognised.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of PgpUserAttributeSubpacketVector objects.
+
+
+ Allows enumeration of any signatures associated with the passed in id.
+ The ID to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures associated with the passed in user attributes.
+ The vector of user attributes to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures of the passed in type that are on this key.
+ The type of the signature to be returned.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of all signatures/certifications associated with this key.
+ An IEnumerable with all signatures/certifications.
+
+
+ Return all signatures/certifications directly associated with this key (ie, not to a user id).
+
+ @return an iterator (possibly empty) with all signatures/certifications.
+
+
+ Check whether this (sub)key has a revocation signature on it.
+ True, if this (sub)key has been revoked.
+
+
+ Add a certification for an id to the given public key.
+ The key the certification is to be added to.
+ The ID the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+ Add a certification for the given UserAttributeSubpackets to the given public key.
+ The key the certification is to be added to.
+ The attributes the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+
+ Remove any certifications associated with a user attribute subpacket on a key.
+
+ The key the certifications are to be removed from.
+ The attributes to be removed.
+
+ The re-certified key, or null if the user attribute subpacket was not found on the key.
+
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from.
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given user attributes on a key.
+ The key the certifications are to be removed from.
+ The user attributes that the certfication is to be removed from.
+ The certification to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Add a revocation or some other key certification to a key.
+ The key the revocation is to be added to.
+ The key signature to be added.
+ The new changed public key object.
+
+
+ Remove a certification from the key.
+ The key the certifications are to be removed from.
+ The certfication to be removed.
+ The modified key, null if the certification was not found.
+
+
+ A public key encrypted data object.
+
+
+ The key ID for the key used to encrypt the data.
+
+
+
+ Return the algorithm code for the symmetric algorithm used to encrypt the data.
+
+
+
+ Return the decrypted data stream for the packet.
+
+
+
+ Class to hold a single master public key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpPublicKeyRingBundle class.
+
+
+
+
+ Return the first public key in the ring.
+
+
+ Return the public key referred to by the passed in key ID if it is present.
+
+
+ Allows enumeration of all the public keys.
+ An IEnumerable of PgpPublicKey objects.
+
+
+
+ Returns a new key ring with the public key passed in either added or
+ replacing an existing one.
+
+ The public key ring to be modified.
+ The public key to be inserted.
+ A new PgpPublicKeyRing
+
+
+ Returns a new key ring with the public key passed in removed from the key ring.
+ The public key ring to be modified.
+ The public key to be removed.
+ A new PgpPublicKeyRing, or null if pubKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire public key file in one hit this is the class for you.
+
+
+
+ Build a PgpPublicKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpPublicKeyRing.
+
+
+ Return the number of key rings in this collection.
+
+
+ Allow enumeration of the public key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP public key associated with the given key id.
+ The ID of the public key to return.
+
+
+ Return the public key ring which contains the key referred to by keyId
+ key ID to match against
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in public key ring.
+
+ The PgpPublicKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpPublicKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in public key ring removed.
+
+ The PgpPublicKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpPublicKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ General class to handle a PGP secret key object.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for signing.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for use with signing.
+
+
+
+ True, if this is a master key.
+
+
+ Detect if the Secret Key's Private Key is empty or not
+
+
+ The algorithm the key is encrypted with.
+
+
+ The key ID of the public key associated with this key.
+
+
+ Return the S2K usage associated with this key.
+
+
+ Return the S2K used to process this key.
+
+
+ The public key associated with this key.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of string objects.
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+ Replace the passed the public key on the passed in secret key.
+ Secret key to change.
+ New public key.
+ A new secret key.
+ If KeyId's do not match.
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+
+
+ Class to hold a single master secret key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpSecretKeyRingBundle class.
+
+
+
+
+ Return the public key for the master key.
+
+
+ Return the master private key.
+
+
+ Allows enumeration of the secret keys.
+ An IEnumerable of PgpSecretKey objects.
+
+
+
+ Return an iterator of the public keys in the secret key ring that
+ have no matching private key. At the moment only personal certificate data
+ appears in this fashion.
+
+ An IEnumerable of unattached, or extra, public keys.
+
+
+
+ Replace the public key set on the secret ring with the corresponding key off the public ring.
+
+ Secret ring to be changed.
+ Public ring containing the new public key set.
+
+
+
+ Return a copy of the passed in secret key ring, with the master key and sub keys encrypted
+ using a new password and the passed in algorithm.
+
+ The PgpSecretKeyRing to be copied.
+ The current password for key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Returns a new key ring with the secret key passed in either added or
+ replacing an existing one with the same key ID.
+
+ The secret key ring to be modified.
+ The secret key to be inserted.
+ A new PgpSecretKeyRing
+
+
+ Returns a new key ring with the secret key passed in removed from the key ring.
+ The secret key ring to be modified.
+ The secret key to be removed.
+ A new PgpSecretKeyRing, or null if secKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire secret key file in one hit this is the class for you.
+
+
+
+ Build a PgpSecretKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpSecretKeyRing.
+
+
+ Return the number of rings in this collection.
+
+
+ Allow enumeration of the secret key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP secret key associated with the given key id.
+ The ID of the secret key to return.
+
+
+ Return the secret key ring which contains the key referred to by keyId
+ The ID of the secret key
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in secret key ring.
+
+ The PgpSecretKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpSecretKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in secret key ring removed.
+
+ The PgpSecretKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpSecretKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ A PGP signature object.
+
+
+ The OpenPGP version number for this signature.
+
+
+ The key algorithm associated with this signature.
+
+
+ The hash algorithm associated with this signature.
+
+
+ Return true if this signature represents a certification.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in user attributes.
+
+ User attributes the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in ID.
+
+ ID the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+ Verify a certification for the passed in key against the passed in master key.
+ The key we are verifying against.
+ The key we are verifying.
+ True, if the certification is valid, false otherwise.
+
+
+ Verify a key certification, such as revocation, for the passed in key.
+ The key we are checking.
+ True, if the certification is valid, false otherwise.
+
+
+ The ID of the key that created the signature.
+
+
+ The creation time of this signature.
+
+
+
+ Return true if the signature has either hashed or unhashed subpackets.
+
+
+
+
+ Return true if the passed in signature type represents a certification, false if the signature type is not.
+
+
+ true if signatureType is a certification, false otherwise.
+
+
+ Generator for PGP signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a signature object containing the current signature state.
+
+
+ Generate a certification for the passed in ID and key.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in userAttributes.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in key against the passed in master key.
+ The key we are certifying against.
+ The key we are certifying.
+ The certification.
+
+
+ Generate a certification, such as a revocation, for the passed in key.
+ The key we are certifying.
+ The certification.
+
+
+ A list of PGP signatures - normally in the signature block after literal data.
+
+
+ Generator for signature subpackets.
+
+
+
+ Add a TrustSignature packet to the signature. The values for depth and trust are largely
+ installation dependent but there are some guidelines in RFC 4880 - 5.2.3.13.
+
+ true if the packet is critical.
+ depth level.
+ trust amount.
+
+
+
+ Set the number of seconds a key is valid for after the time of its creation.
+ A value of zero means the key never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the key is valid, or zero if no expiry.
+
+
+
+ Set the number of seconds a signature is valid for after the time of its creation.
+ A value of zero means the signature never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the signature is valid, or zero if no expiry.
+
+
+
+ Set the creation time for the signature.
+
+ Note: this overrides the generation of a creation time when the signature
+ is generated.
+
+
+
+
+ Sets revocation reason sub packet
+
+
+
+
+ Sets revocation key sub packet
+
+
+
+
+ Sets issuer key sub packet
+
+
+
+ Container for a list of signature subpackets.
+
+
+ Return true if a particular subpacket type exists.
+
+ @param type type to look for.
+ @return true if present, false otherwise.
+
+
+ Return all signature subpackets of the passed in type.
+ @param type subpacket type code
+ @return an array of zero or more matching subpackets.
+
+
+
+ Return the number of seconds a signature is valid for after its creation date.
+ A value of zero means the signature never expires.
+
+ Seconds a signature is valid for.
+
+
+
+ Return the number of seconds a key is valid for after its creation date.
+ A value of zero means the key never expires.
+
+ Seconds a signature is valid for.
+
+
+ Return the number of packets this vector contains.
+
+
+ Container for a list of user attribute subpackets.
+
+
+ Basic utility class.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Return either an ArmoredInputStream or a BcpgInputStream based on whether
+ the initial characters of the stream are binary PGP encodings or not.
+
+
+
+ Generator for old style PGP V3 Signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a V3 signature object containing the current signature state.
+
+
+ Utility functions for looking a S-expression keys. This class will move when it finds a better home!
+
+ Format documented here:
+ http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=agent/keyformat.txt;h=42c4b1f06faf1bbe71ffadc2fee0fad6bec91a97;hb=refs/heads/master
+
+
+
+
+ The 'Signature' parameter is only available when generating unsigned attributes.
+
+
+
+ containing class for an CMS Authenticated Data object
+
+
+ return the object identifier for the content MAC algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the digested attributes indexed by
+ the OID of the attribute.
+
+
+ return a table of the undigested attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ General class for generating a CMS authenticated-data message.
+
+ A simple example of usage.
+
+
+ CMSAuthenticatedDataGenerator fact = new CMSAuthenticatedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSAuthenticatedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+
+
+ generate an authenticated object that contains an CMS Authenticated Data object
+
+
+ Parsing class for an CMS Authenticated Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CMSAuthenticatedDataParser ad = new CMSAuthenticatedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ad.getRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey, "BC");
+
+ processDataStream(recData.getContentStream());
+
+ if (!Arrays.equals(ad.getMac(), recipient.getMac())
+ {
+ System.err.println("Data corrupted!!!!");
+ }
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSAuthenticatedDataParser ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the mac algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ General class for generating a CMS authenticated-data message stream.
+
+ A simple example of usage.
+
+ CMSAuthenticatedDataStreamGenerator edGen = new CMSAuthenticatedDataStreamGenerator();
+
+ edGen.addKeyTransRecipient(cert);
+
+ ByteArrayOutputStream bOut = new ByteArrayOutputStream();
+
+ OutputStream out = edGen.open(
+ bOut, CMSAuthenticatedDataGenerator.AES128_CBC, "BC");*
+ out.write(data);
+
+ out.close();
+
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+ @throws java.io.IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+
+ @param rand instance of SecureRandom to use
+
+
+ containing class for an CMS AuthEnveloped Data object
+
+
+ containing class for an CMS Compressed Data object
+
+
+ Return the uncompressed content.
+
+ @return the uncompressed content
+ @throws CmsException if there is an exception uncompressing the data.
+
+
+ Return the uncompressed content, throwing an exception if the data size
+ is greater than the passed in limit. If the content is exceeded getCause()
+ on the CMSException will contain a StreamOverflowException
+
+ @param limit maximum number of bytes to read
+ @return the content read
+ @throws CMSException if there is an exception uncompressing the data.
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ * General class for generating a compressed CMS message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * CMSCompressedDataGenerator fact = new CMSCompressedDataGenerator();
+ * CMSCompressedData data = fact.Generate(content, algorithm);
+ *
+ *
+
+
+ Generate an object that contains an CMS Compressed Data
+
+
+ Class for reading a CMS Compressed Data stream.
+
+ CMSCompressedDataParser cp = new CMSCompressedDataParser(inputStream);
+
+ process(cp.GetContent().GetContentStream());
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSCompressedDataParser ep = new CMSCompressedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ General class for generating a compressed CMS message stream.
+
+ A simple example of usage.
+
+
+ CMSCompressedDataStreamGenerator gen = new CMSCompressedDataStreamGenerator();
+
+ Stream cOut = gen.Open(outputStream, CMSCompressedDataStreamGenerator.ZLIB);
+
+ cOut.Write(data);
+
+ cOut.Close();
+
+
+
+ base constructor
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Close the underlying data stream.
+ @throws IOException if the close fails.
+
+
+ containing class for an CMS Enveloped Data object
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CmsEnvelopedDataGenerator fact = new CmsEnvelopedDataGenerator();
+
+ fact.AddKeyTransRecipient(cert);
+
+ CmsEnvelopedData data = fact.Generate(content, algorithm);
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+
+ Generate an enveloped object that contains a CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Parsing class for an CMS Enveloped Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ep.GetRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey);
+
+ processDataStream(recData.getContentStream());
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message stream.
+
+ A simple example of usage.
+
+ CmsEnvelopedDataStreamGenerator edGen = new CmsEnvelopedDataStreamGenerator();
+
+ edGen.AddKeyTransRecipient(cert);
+
+ MemoryStream bOut = new MemoryStream();
+
+ Stream out = edGen.Open(
+ bOut, CMSEnvelopedDataGenerator.AES128_CBC);*
+ out.Write(data);
+
+ out.Close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data.
+ Length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CMSEnvelopedDataGenerator fact = new CMSEnvelopedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSEnvelopedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ add a recipient.
+
+ @param cert recipient's public key certificate
+ @exception ArgumentException if there is a problem with the certificate
+
+
+ add a recipient
+
+ @param key the public key used by the recipient
+ @param subKeyId the identifier for the recipient's public key
+ @exception ArgumentException if there is a problem with the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ Add a key agreement based recipient.
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCert recipient's public key certificate.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+ Add multiple key agreement based recipients (sharing a single KeyAgreeRecipientInfo structure).
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCerts recipients' public key certificates.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+
+ Generic routine to copy out the data we want processed.
+
+
+ This routine may be called multiple times.
+
+
+
+ a holding class for a byte array of data to be processed.
+
+
+ A clone of the byte array
+
+
+ general class for handling a pkcs7-signature message.
+
+ A simple example of usage - note, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer...
+
+
+ IX509Store certs = s.GetCertificates();
+ SignerInformationStore signers = s.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ if (signer.Verify(cert.GetPublicKey()))
+ {
+ verified++;
+ }
+ }
+
+
+
+ Content with detached signature, digests precomputed
+
+ @param hashes a map of precomputed digests for content indexed by name of hash.
+ @param sigBlock the signature object.
+
+
+ base constructor - content with detached signature.
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ base constructor - with encapsulated content
+
+
+ Return the version number for this object.
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Replace the signerinformation store associated with this
+ CmsSignedData object with the new one passed in. You would
+ probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ @param signedData the signed data object to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @return a new signed data object.
+
+
+ Replace the certificate and CRL information associated with this
+ CmsSignedData object with the new one passed in.
+
+ @param signedData the signed data object to be used as a base.
+ @param x509Certs the new certificates to be used.
+ @param x509Crls the new CRLs to be used.
+ @return a new signed data object.
+ @exception CmsException if there is an error processing the stores
+
+
+ * general class for generating a pkcs7-signature message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * IX509Store certs...
+ * IX509Store crls...
+ * CmsSignedDataGenerator gen = new CmsSignedDataGenerator();
+ *
+ * gen.AddSigner(privKey, cert, CmsSignedGenerator.DigestSha1);
+ * gen.AddCertificates(certs);
+ * gen.AddCrls(crls);
+ *
+ * CmsSignedData data = gen.Generate(content);
+ *
+ *
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ * add a signer - no attributes other than the default ones will be
+ * provided here.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param subjectKeyID subjectKeyID of corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param subjectKeyID subjectKeyID of corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a set of one or more SignerInformation objects representing counter signatures on
+ the passed in SignerInformation object.
+
+ @param signer the signer to be countersigned
+ @param sigProvider the provider to be used for counter signing.
+ @return a store containing the signers.
+
+
+ Parsing class for an CMS Signed Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one signer can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ A simple example of usage for an encapsulated signature.
+
+
+ Two notes: first, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer, and, second, because we are in a streaming
+ mode the order of the operations is important.
+
+
+ CmsSignedDataParser sp = new CmsSignedDataParser(encapSigData);
+
+ sp.GetSignedContent().Drain();
+
+ IX509Store certs = sp.GetCertificates();
+ SignerInformationStore signers = sp.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ Console.WriteLine("verify returns: " + signer.Verify(cert));
+ }
+
+ Note also: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsSignedDataParser ep = new CmsSignedDataParser(new BufferedInputStream(encapSigData, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ base constructor - with encapsulated content
+
+
+ base constructor
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ Return the version number for the SignedData object
+
+ @return the version number
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+ @throws CmsException
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception org.bouncycastle.x509.NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ Replace the signerinformation store associated with the passed
+ in message contained in the stream original with the new one passed in.
+ You would probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+
+
+ Replace the certificate and CRL information associated with this
+ CMSSignedData object with the new one passed in.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param certsAndCrls the new certificates and CRLs to be used.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+ @exception CmsException if there is an error processing the CertStore
+
+
+ General class for generating a pkcs7-signature message stream.
+
+ A simple example of usage.
+
+
+ IX509Store certs...
+ CmsSignedDataStreamGenerator gen = new CmsSignedDataStreamGenerator();
+
+ gen.AddSigner(privateKey, cert, CmsSignedDataStreamGenerator.DIGEST_SHA1);
+
+ gen.AddCertificates(certs);
+
+ Stream sigOut = gen.Open(bOut);
+
+ sigOut.Write(Encoding.UTF8.GetBytes("Hello World!"));
+
+ sigOut.Close();
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer, specifying the digest encryption algorithm - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes - specifying digest
+ encryption algorithm.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data". If dataOutputStream is non null the data
+ being signed will be written to the stream as it is processed.
+ @param out stream the CMS object is to be written to.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+ @param out stream the CMS object is to be written to.
+ @param signedContentType OID for data to be signed.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ Default type for the signed data.
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Add the attribute certificates contained in the passed in store to the
+ generator.
+
+ @param store a store of Version 2 attribute certificates
+ @throws CmsException if an error occurse processing the store.
+
+
+ Add a store of precalculated signers to the generator.
+
+ @param signerStore store of signers
+
+
+ Return a map of oids and byte arrays representing the digests calculated on the content during
+ the last generate.
+
+ @return a map of oids (as String objects) and byte[] representing digests.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+ Return the digest encryption algorithm using one of the standard
+ JCA string representations rather than the algorithm identifier (if
+ possible).
+
+
+ Default authenticated attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in IDictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ Default signed attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType, signingTime, and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType, signingTime, and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in Hashtable of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a secret key known to the other side.
+
+
+ decrypt the content and return an input stream.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using key agreement.
+
+
+ decrypt the content and return an input stream.
+
+
+ the KeyTransRecipientInformation class for a recipient who has been sent a secret
+ key encrypted using their public key that needs to be used to
+ extract the message.
+
+
+ decrypt the content and return it as a byte array.
+
+
+ a basic index for an originator.
+
+
+ Return the certificates stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CertificateHolder objects.
+
+
+ Return the CRLs stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CRLHolder objects.
+
+
+ Return the underlying ASN.1 object defining this SignerInformation object.
+
+ @return a OriginatorInfo.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a password.
+
+
+ return the object identifier for the key derivation algorithm, or null
+ if there is none present.
+
+ @return OID for key derivation algorithm, if present.
+
+
+ decrypt the content and return an input stream.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes assuming ASCII.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes using UTF-8.
+
+
+
+ Generate a RecipientInfo object for the given key.
+
+
+ A
+
+
+ A
+
+
+ A
+
+
+
+
+ * return the object identifier for the key encryption algorithm.
+ *
+ * @return OID for key encryption algorithm.
+
+
+ * return the ASN.1 encoded key encryption algorithm parameters, or null if
+ * there aren't any.
+ *
+ * @return ASN.1 encoding of key encryption algorithm parameters.
+
+
+ Return the MAC calculated for the content stream. Note: this call is only meaningful once all
+ the content has been read.
+
+ @return byte array containing the mac.
+
+
+ Return the first RecipientInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a recipient
+ @return a single RecipientInformation object. Null if none matches.
+
+
+ Return the number of recipients in the collection.
+
+ @return number of recipients identified.
+
+
+ Return all recipients in the collection
+
+ @return a collection of recipients.
+
+
+ Return possible empty collection with recipients matching the passed in RecipientID
+
+ @param selector a recipient id to select against.
+ @return a collection of RecipientInformation objects.
+
+
+ a basic index for a signer.
+
+
+ If the passed in flag is true, the signer signature will be based on the data, not
+ a collection of signed attributes, and no signed attributes will be included.
+
+ @return the builder object
+
+
+ Provide a custom signed attribute generator.
+
+ @param signedGen a generator of signed attributes.
+ @return the builder object
+
+
+ Provide a generator of unsigned attributes.
+
+ @param unsignedGen a generator for signed attributes.
+ @return the builder object
+
+
+ Build a generator with the passed in certHolder issuer and serial number as the signerIdentifier.
+
+ @param contentSigner operator for generating the final signature in the SignerInfo with.
+ @param certHolder carrier for the X.509 certificate related to the contentSigner.
+ @return a SignerInfoGenerator
+ @throws OperatorCreationException if the generator cannot be built.
+
+
+ Build a generator with the passed in subjectKeyIdentifier as the signerIdentifier. If used you should
+ try to follow the calculation described in RFC 5280 section 4.2.1.2.
+
+ @param signerFactory operator factory for generating the final signature in the SignerInfo with.
+ @param subjectKeyIdentifier key identifier to identify the public key for verifying the signature.
+ @return a SignerInfoGenerator
+
+
+ an expanded SignerInfo block from a CMS Signed message
+
+
+ return the version number for this objects underlying SignerInfo structure.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature parameters, or null if there aren't any.
+
+
+ return the content digest that was calculated during verification.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature/encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a table of the signed attributes - indexed by
+ the OID of the attribute.
+
+
+ return a table of the unsigned attributes indexed by
+ the OID of the attribute.
+
+
+ return the encoded signature
+
+
+ Return a SignerInformationStore containing the counter signatures attached to this
+ signer. If no counter signatures are present an empty store is returned.
+
+
+ return the DER encoding of the signed attributes.
+ @throws IOException if an encoding error occurs.
+
+
+ verify that the given public key successfully handles and confirms the
+ signature associated with this signer.
+
+
+ verify that the given certificate successfully handles and confirms
+ the signature associated with this signer and, if a signingTime
+ attribute is available, that the certificate was valid at the time the
+ signature was generated.
+
+
+ Return the base ASN.1 CMS structure that this object contains.
+
+ @return an object containing a CMS SignerInfo structure.
+
+
+ Return a signer information object with the passed in unsigned
+ attributes replacing the ones that are current associated with
+ the object passed in.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param unsignedAttributes the unsigned attributes to add.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Return a signer information object with passed in SignerInformationStore representing counter
+ signatures attached as an unsigned attribute.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param counterSigners signer info objects carrying counter signature.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Create a store containing a single SignerInformation object.
+
+ @param signerInfo the signer information to contain.
+
+
+ Create a store containing a collection of SignerInformation objects.
+
+ @param signerInfos a collection signer information objects to contain.
+
+
+ Return the first SignerInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a signer
+ @return a single SignerInformation object. Null if none matches.
+
+
+ The number of signers in the collection.
+
+
+ An ICollection of all signers in the collection
+
+
+ Return possible empty collection with signers matching the passed in SignerID
+
+ @param selector a signer id to select against.
+ @return a collection of SignerInformation objects.
+
+
+ Basic generator that just returns a preconstructed attribute table
+
+
+ a Diffie-Hellman key exchange engine.
+
+ note: This uses MTI/A0 key agreement in order to make the key agreement
+ secure against passive attacks. If you're doing Diffie-Hellman and both
+ parties have long term public keys you should look at using this. For
+ further information have a look at RFC 2631.
+
+ It's possible to extend this to more than two parties as well, for the moment
+ that is left as an exercise for the reader.
+
+
+ calculate our initial message.
+
+
+ given a message from a given party and the corresponding public key
+ calculate the next message in the agreement sequence. In this case
+ this will represent the shared secret.
+
+
+ a Diffie-Hellman key agreement class.
+
+ note: This is only the basic algorithm, it doesn't take advantage of
+ long term public keys if they are available. See the DHAgreement class
+ for a "better" implementation.
+
+
+ given a short term public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+ P1363 7.2.1 ECSVDP-DH
+
+ ECSVDP-DH is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version. It is based on the work of [DH76], [Mil86],
+ and [Kob87]. This primitive derives a shared secret value from one
+ party's private key and another party's public key, where both have
+ the same set of EC domain parameters. If two parties correctly
+ execute this primitive, they will produce the same output. This
+ primitive can be invoked by a scheme to derive a shared secret key;
+ specifically, it may be used with the schemes ECKAS-DH1 and
+ DL/ECKAS-DH2. It assumes that the input keys are valid (see also
+ Section 7.2.2).
+
+
+ P1363 7.2.2 ECSVDP-DHC
+
+ ECSVDP-DHC is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version with cofactor multiplication. It is based on
+ the work of [DH76], [Mil86], [Kob87], [LMQ98] and [Kal98a]. This
+ primitive derives a shared secret value from one party's private key
+ and another party's public key, where both have the same set of EC
+ domain parameters. If two parties correctly execute this primitive,
+ they will produce the same output. This primitive can be invoked by a
+ scheme to derive a shared secret key; specifically, it may be used
+ with the schemes ECKAS-DH1 and DL/ECKAS-DH2. It does not assume the
+ validity of the input public key (see also Section 7.2.1).
+
+ Note: As stated P1363 compatibility mode with ECDH can be preset, and
+ in this case the implementation doesn't have a ECDH compatibility mode
+ (if you want that just use ECDHBasicAgreement and note they both implement
+ BasicAgreement!).
+
+
+
+ A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange.
+
+ The J-PAKE exchange is defined by Feng Hao and Peter Ryan in the paper
+
+ "Password Authenticated Key Exchange by Juggling, 2008."
+
+ The J-PAKE protocol is symmetric.
+ There is no notion of a client or server, but rather just two participants.
+ An instance of JPakeParticipant represents one participant, and
+ is the primary interface for executing the exchange.
+
+ To execute an exchange, construct a JPakeParticipant on each end,
+ and call the following 7 methods
+ (once and only once, in the given order, for each participant, sending messages between them as described):
+
+ CreateRound1PayloadToSend() - and send the payload to the other participant
+ ValidateRound1PayloadReceived(JPakeRound1Payload) - use the payload received from the other participant
+ CreateRound2PayloadToSend() - and send the payload to the other participant
+ ValidateRound2PayloadReceived(JPakeRound2Payload) - use the payload received from the other participant
+ CalculateKeyingMaterial()
+ CreateRound3PayloadToSend(BigInteger) - and send the payload to the other participant
+ ValidateRound3PayloadReceived(JPakeRound3Payload, BigInteger) - use the payload received from the other participant
+
+ Each side should derive a session key from the keying material returned by CalculateKeyingMaterial().
+ The caller is responsible for deriving the session key using a secure key derivation function (KDF).
+
+ Round 3 is an optional key confirmation process.
+ If you do not execute round 3, then there is no assurance that both participants are using the same key.
+ (i.e. if the participants used different passwords, then their session keys will differ.)
+
+ If the round 3 validation succeeds, then the keys are guaranteed to be the same on both sides.
+
+ The symmetric design can easily support the asymmetric cases when one party initiates the communication.
+ e.g. Sometimes the round1 payload and round2 payload may be sent in one pass.
+ Also, in some cases, the key confirmation payload can be sent together with the round2 payload.
+ These are the trivial techniques to optimize the communication.
+
+ The key confirmation process is implemented as specified in
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ This class is stateful and NOT threadsafe.
+ Each instance should only be used for ONE complete J-PAKE exchange
+ (i.e. a new JPakeParticipant should be constructed for each new J-PAKE exchange).
+
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ the JPakePrimeOrderGroups#NIST_3072 prime order group,
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+
+
+
+ Constructor for a new JPakeParticipant.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+ Digest to use during zero knowledge proofs and key confirmation
+ (SHA-256 or stronger preferred).
+ Source of secure random data for x1 and x2, and for the zero knowledge proofs.
+
+
+
+ Gets the current state of this participant.
+ See the STATE_* constants for possible values.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 1.
+
+ After execution, the State state} will be STATE_ROUND_1_CREATED}.
+
+
+
+
+ Validates the payload received from the other participant during round 1.
+
+ Must be called prior to CreateRound2PayloadToSend().
+
+ After execution, the State state will be STATE_ROUND_1_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException
+ if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 2.
+
+ ValidateRound1PayloadReceived(JPakeRound1Payload) must be called prior to this method.
+
+ After execution, the State state will be STATE_ROUND_2_CREATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Validates the payload received from the other participant during round 2.
+ Note that this DOES NOT detect a non-common password.
+ The only indication of a non-common password is through derivation
+ of different keys (which can be detected explicitly by executing round 3 and round 4)
+
+ Must be called prior to CalculateKeyingMaterial().
+
+ After execution, the State state will be STATE_ROUND_2_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws
+ InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Calculates and returns the key material.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPakeParticipant).
+
+ The keying material will be identical for each participant if and only if
+ each participant's password is the same. i.e. If the participants do not
+ share the same password, then each participant will derive a different key.
+ Therefore, if you immediately start using a key derived from
+ the keying material, then you must handle detection of incorrect keys.
+ If you want to handle this detection explicitly, you can optionally perform
+ rounds 3 and 4. See JPakeParticipant for details on how to execute
+ rounds 3 and 4.
+
+ The keying material will be in the range [0, p-1].
+
+ ValidateRound2PayloadReceived(JPakeRound2Payload) must be called prior to this method.
+
+ As a side effect, the internal password array is cleared, since it is no longer needed.
+
+ After execution, the State state will be STATE_KEY_CALCULATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound2PayloadReceived(JPakeRound2Payload),
+ or if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state} will be STATE_ROUND_3_CREATED.
+ Throws InvalidOperationException if called prior to CalculateKeyingMaterial, or multiple
+ times.
+
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ Validates the payload received from the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state will be STATE_ROUND_3_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException if called prior to
+ CalculateKeyingMaterial or multiple times
+
+ The round 3 payload received from the other participant.
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ A pre-computed prime order group for use during a J-PAKE exchange.
+
+ Typically a Schnorr group is used. In general, J-PAKE can use any prime order group
+ that is suitable for public key cryptography, including elliptic curve cryptography.
+
+ See JPakePrimeOrderGroups for convenient standard groups.
+
+ NIST publishes
+ many groups that can be used for the desired level of security.
+
+
+
+
+ Constructs a new JPakePrimeOrderGroup.
+
+ In general, you should use one of the pre-approved groups from
+ JPakePrimeOrderGroups, rather than manually constructing one.
+
+ The following basic checks are performed:
+
+ p-1 must be evenly divisible by q
+ g must be in [2, p-1]
+ g^q mod p must equal 1
+ p must be prime (within reasonably certainty)
+ q must be prime (within reasonably certainty)
+
+ The prime checks are performed using BigInteger#isProbablePrime(int),
+ and are therefore subject to the same probability guarantees.
+
+ These checks prevent trivial mistakes.
+ However, due to the small uncertainties if p and q are not prime,
+ advanced attacks are not prevented.
+ Use it at your own risk.
+
+ Throws NullReferenceException if any argument is null. Throws
+ InvalidOperationException is any of the above validations fail.
+
+
+
+
+ Constructor used by the pre-approved groups in JPakePrimeOrderGroups.
+ These pre-approved groups can avoid the expensive checks.
+ User-specified groups should not use this constructor.
+
+
+
+
+ Standard pre-computed prime order groups for use by J-PAKE.
+ (J-PAKE can use pre-computed prime order groups, same as DSA and Diffie-Hellman.)
+
+ This class contains some convenient constants for use as input for
+ constructing {@link JPAKEParticipant}s.
+
+ The prime order groups below are taken from Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB),
+ and from the prime order groups
+ published by NIST.
+
+
+
+
+ From Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB)
+ 1024-bit p, 160-bit q and 1024-bit g for 80-bit security.
+
+
+
+
+ From NIST.
+ 2048-bit p, 224-bit q and 2048-bit g for 112-bit security.
+
+
+
+
+ From NIST.
+ 3072-bit p, 256-bit q and 3072-bit g for 128-bit security.
+
+
+
+
+ The payload sent/received during the first round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance of this payload to
+ the other. The payload to send should be created via
+ JPAKEParticipant.CreateRound1PayloadToSend().
+
+ Each participant must also validate the payload received from the other.
+ The received payload should be validated via
+ JPAKEParticipant.ValidateRound1PayloadReceived(JPakeRound1Payload).
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of g^x1
+
+
+
+
+ The value of g^x2
+
+
+
+
+ The zero knowledge proof for x1.
+
+ This is a two element array, containing {g^v, r} for x1.
+
+
+
+
+ The zero knowledge proof for x2.
+
+ This is a two element array, containing {g^v, r} for x2.
+
+
+
+
+ The payload sent/received during the second round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound2PayloadToSend()
+
+ Each JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound2PayloadReceived(JPakeRound2Payload)
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of A, as computed during round 2.
+
+
+
+
+ The zero knowledge proof for x2 * s.
+
+ This is a two element array, containing {g^v, r} for x2 * s.
+
+
+
+
+ The payload sent/received during the optional third round of a J-PAKE exchange,
+ which is for explicit key confirmation.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound3PayloadToSend(BigInteger)
+
+ Eeach JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound3PayloadReceived(JPakeRound3Payload, BigInteger)
+
+
+
+
+ The id of the {@link JPAKEParticipant} who created/sent this payload.
+
+
+
+
+ The value of MacTag, as computed by round 3.
+
+ See JPAKEUtil#calculateMacTag(string, string, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, org.bouncycastle.crypto.Digest)
+
+
+
+
+ Primitives needed for a J-PAKE exchange.
+
+ The recommended way to perform a J-PAKE exchange is by using
+ two JPAKEParticipants. Internally, those participants
+ call these primitive operations in JPakeUtilities.
+
+ The primitives, however, can be used without a JPAKEParticipant if needed.
+
+
+
+
+ Return a value that can be used as x1 or x3 during round 1.
+ The returned value is a random value in the range [0, q-1].
+
+
+
+
+ Return a value that can be used as x2 or x4 during round 1.
+ The returned value is a random value in the range [1, q-1].
+
+
+
+
+ Converts the given password to a BigInteger
+ for use in arithmetic calculations.
+
+
+
+
+ Calculate g^x mod p as done in round 1.
+
+
+
+
+ Calculate ga as done in round 2.
+
+
+
+
+ Calculate x2 * s as done in round 2.
+
+
+
+
+ Calculate A as done in round 2.
+
+
+
+
+ Calculate a zero knowledge proof of x using Schnorr's signature.
+ The returned array has two elements {g^v, r = v-x*h} for x.
+
+
+
+
+ Validates that g^x4 is not 1.
+ throws CryptoException if g^x4 is 1
+
+
+
+
+ Validates that ga is not 1.
+
+ As described by Feng Hao...
+ Alice could simply check ga != 1 to ensure it is a generator.
+ In fact, as we will explain in Section 3, (x1 + x3 + x4 ) is random over Zq even in the face of active attacks.
+ Hence, the probability for ga = 1 is extremely small - on the order of 2^160 for 160-bit q.
+
+ throws CryptoException if ga is 1
+
+
+
+
+ Validates the zero knowledge proof (generated by
+ calculateZeroKnowledgeProof(BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, string, Digest, SecureRandom)
+ is correct.
+
+ throws CryptoException if the zero knowledge proof is not correct
+
+
+
+
+ Calculates the keying material, which can be done after round 2 has completed.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPAKEParticipant).
+
+ KeyingMaterial = (B/g^{x2*x4*s})^x2
+
+
+
+
+ Validates that the given participant ids are not equal.
+ (For the J-PAKE exchange, each participant must use a unique id.)
+
+ Throws CryptoException if the participantId strings are equal.
+
+
+
+
+ Validates that the given participant ids are equal.
+ This is used to ensure that the payloads received from
+ each round all come from the same participant.
+
+
+
+
+ Validates that the given object is not null.
+ throws NullReferenceException if the object is null.
+
+ object in question
+ name of the object (to be used in exception message)
+
+
+
+ Calculates the MacTag (to be used for key confirmation), as defined by
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ MacTag = HMAC(MacKey, MacLen, MacData)
+ MacKey = H(K || "JPAKE_KC")
+ MacData = "KC_1_U" || participantId || partnerParticipantId || gx1 || gx2 || gx3 || gx4
+
+ Note that both participants use "KC_1_U" because the sender of the round 3 message
+ is always the initiator for key confirmation.
+
+ HMAC = {@link HMac} used with the given {@link Digest}
+ H = The given {@link Digest}
+ MacLen = length of MacTag
+
+
+
+
+ Calculates the MacKey (i.e. the key to use when calculating the MagTag for key confirmation).
+
+ MacKey = H(K || "JPAKE_KC")
+
+
+
+
+ Validates the MacTag received from the partner participant.
+
+ throws CryptoException if the participantId strings are equal.
+
+
+
+ Generator for Concatenation Key Derivation Function defined in NIST SP 800-56A, Sect 5.8.1
+
+
+ @param digest the digest to be used as the source of generated bytes
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ RFC 2631 Diffie-hellman KEK derivation function.
+
+
+ X9.63 based key derivation function for ECDH CMS.
+
+
+
+ SM2 Key Exchange protocol - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
+
+
+
+ Implements the client side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the client to begin new authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates client's credentials given the client's salt, identity and password
+ @param salt The salt used in the client's verifier.
+ @param identity The user's identity (eg. username)
+ @param password The user's password
+ @return Client's public value to send to server
+
+
+ Generates client's verification message given the server's credentials
+ @param serverB The server's credentials
+ @return Client's verification message for the server
+ @throws CryptoException If server's credentials are invalid
+
+
+ Computes the client evidence message M1 using the previously received values.
+ To be called after calculating the secret S.
+ @return M1: the client side generated evidence message
+ @throws CryptoException
+
+
+ Authenticates the server evidence message M2 received and saves it only if correct.
+ @param M2: the server side generated evidence message
+ @return A boolean indicating if the server message M2 was the expected one.
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after verifying the server evidence message M2.
+ @return Key: the mutually authenticated symmetric session key
+ @throws CryptoException
+
+
+ Implements the server side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the server to accept a new client authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param v The client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates the server's credentials that are to be sent to the client.
+ @return The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+ @param clientA The client's credentials
+ @return A shared secret BigInteger
+ @throws CryptoException If client's credentials are invalid
+
+
+ Authenticates the received client evidence message M1 and saves it only if correct.
+ To be called after calculating the secret S.
+ @param M1: the client side generated evidence message
+ @return A boolean indicating if the client message M1 was the expected one.
+ @throws CryptoException
+
+
+ Computes the server evidence message M2 using the previously verified values.
+ To be called after successfully verifying the client evidence message M1.
+ @return M2: the server side generated evidence message
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after calculating the server evidence message M2.
+ @return Key: the mutual authenticated symmetric session key
+ @throws CryptoException
+
+
+ Computes the client evidence message (M1) according to the standard routine:
+ M1 = H( A | B | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param B The public server value
+ @param S The secret calculated by both sides
+ @return M1 The calculated client evidence message
+
+
+ Computes the server evidence message (M2) according to the standard routine:
+ M2 = H( A | M1 | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param M1 The client evidence message
+ @param S The secret calculated by both sides
+ @return M2 The calculated server evidence message
+
+
+ Computes the final Key according to the standard routine: Key = H(S)
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param S The secret calculated by both sides
+ @return
+
+
+ Generates new SRP verifier for user
+
+
+ Initialises generator to create new verifiers
+ @param N The safe prime to use (see DHParametersGenerator)
+ @param g The group parameter to use (see DHParametersGenerator)
+ @param digest The digest to use. The same digest type will need to be used later for the actual authentication
+ attempt. Also note that the final session key size is dependent on the chosen digest.
+
+
+ Creates a new SRP verifier
+ @param salt The salt to use, generally should be large and random
+ @param identity The user's identifying information (eg. username)
+ @param password The user's password
+ @return A new verifier for use in future SRP authentication
+
+
+ a holding class for public/private parameter pairs.
+
+
+ basic constructor.
+
+ @param publicParam a public key parameters object.
+ @param privateParam the corresponding private key parameters.
+
+
+ return the public key parameters.
+
+ @return the public key parameters.
+
+
+ return the private key parameters.
+
+ @return the private key parameters.
+
+
+ The AEAD block ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ a buffer wrapper for an asymmetric block cipher, allowing input
+ to be accumulated in a piecemeal fashion until final processing.
+
+
+ base constructor.
+
+ @param cipher the cipher this buffering object wraps.
+
+
+ return the amount of data sitting in the buffer.
+
+ @return the amount of data sitting in the buffer.
+
+
+ initialise the buffer and the underlying cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+
+
+ process the contents of the buffer using the underlying
+ cipher.
+
+ @return the result of the encryption/decryption process on the
+ buffer.
+ @exception InvalidCipherTextException if we are given a garbage block.
+
+
+ Reset the buffer
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion. The BufferedBlockCipher outputs a block only when the
+ buffer is full and more data is being added, or on a doFinal.
+
+ Note: in the case where the underlying cipher is either a CFB cipher or an
+ OFB one the last block may not be a multiple of the block size.
+
+
+
+ constructor for subclasses
+
+
+ Create a buffered block cipher without padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ false otherwise.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The base class for symmetric, or secret, cipher key generators.
+
+
+ initialise the key generator.
+
+ @param param the parameters to be used for key generation
+
+
+ Generate a secret key.
+
+ @return a byte array containing the key value.
+
+
+ this exception is thrown if a buffer that is meant to have output
+ copied into it turns out to be too short, or if we've been given
+ insufficient input. In general this exception will Get thrown rather
+ than an ArrayOutOfBounds exception.
+
+
+ base constructor.
+
+
+ create a DataLengthException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Basic sized constructor - size in bits.
+
+ @param digestSize size of the digest in bits
+
+
+ Blake2b for authentication ("Prefix-MAC mode").
+ After calling the doFinal() method, the key will
+ remain to be used for further computations of
+ this instance.
+ The key can be overwritten using the clearKey() method.
+
+ @param key A key up to 64 bytes or null
+
+
+ Blake2b with key, required digest length (in bytes), salt and personalization.
+ After calling the doFinal() method, the key, the salt and the personal string
+ will remain and might be used for further computations with this instance.
+ The key can be overwritten using the clearKey() method, the salt (pepper)
+ can be overwritten using the clearSalt() method.
+
+ @param key A key up to 64 bytes or null
+ @param digestLength from 1 up to 64 bytes
+ @param salt 16 bytes or null
+ @param personalization 16 bytes or null
+
+
+ update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+ Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to it's initial state.
+ The key, the salt and the personal string will
+ remain for further computations.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies it's compression
+ function to.
+
+ @return byte length of the digests internal buffer.
+
+
+ Overwrite the key
+ if it is no longer used (zeroization)
+
+
+ Overwrite the salt (pepper) if it
+ is secret and no longer used (zeroization)
+
+
+ Implementation of the cryptographic hash function BLAKE2s.
+
+ BLAKE2s offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2s offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2s is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 32 bytes.
+
+
+ BLAKE2s Initialization Vector
+
+
+
+ Message word permutations
+
+
+
+ Whenever this buffer overflows, it will be processed in the Compress()
+ function. For performance issues, long messages will not use this buffer.
+
+
+ Position of last inserted byte
+
+
+
+ Internal state, in the BLAKE2 paper it is called v
+
+
+
+ State vector, in the BLAKE2 paper it is called h
+
+
+
+ holds least significant bits of counter
+
+
+
+ holds most significant bits of counter
+
+
+
+ finalization flag, for last block: ~0
+
+
+
+ BLAKE2s-256 for hashing.
+
+
+ BLAKE2s for hashing.
+
+ @param digestBits the desired digest length in bits. Must be one of
+ [128, 160, 224, 256].
+
+
+ BLAKE2s for authentication ("Prefix-MAC mode").
+
+ After calling the doFinal() method, the key will remain to be used for
+ further computations of this instance. The key can be overwritten using
+ the clearKey() method.
+
+ @param key a key up to 32 bytes or null
+
+
+ BLAKE2s with key, required digest length, salt and personalization.
+
+ After calling the doFinal() method, the key, the salt and the personal
+ string will remain and might be used for further computations with this
+ instance. The key can be overwritten using the clearKey() method, the
+ salt (pepper) can be overwritten using the clearSalt() method.
+
+ @param key a key up to 32 bytes or null
+ @param digestBytes from 1 up to 32 bytes
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Overwrite the key if it is no longer used (zeroization).
+
+
+ Overwrite the salt (pepper) if it is secret and no longer used
+ (zeroization).
+
+
+ implementation of Ukrainian DSTU 7564 hash function
+
+
+ base implementation of MD4 family style digest as outlined in
+ "Handbook of Applied Cryptography", pages 344 - 347.
+
+
+ implementation of GOST R 34.11-94
+
+
+ Standard constructor
+
+
+ Constructor to allow use of a particular sbox with GOST28147
+ @see GOST28147Engine#getSBox(String)
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Return the size of block that the compression function is applied to in bytes.
+
+ @return internal byte length of a block.
+
+
+ Base class for SHA-384 and SHA-512.
+
+
+ Constructor for variable length word
+
+
+ Copy constructor. We are using copy constructors in place
+ of the object.Clone() interface as this interface is not
+ supported by J2ME.
+
+
+ adjust the byte counts so that byteCount2 represents the
+ upper long (less 3 bits) word of the byte count.
+
+
+ implementation of MD2
+ as outlined in RFC1319 by B.Kaliski from RSA Laboratories April 1992
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param out the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ implementation of MD4 as RFC 1320 by R. Rivest, MIT Laboratory for
+ Computer Science and RSA Data Security, Inc.
+
+ NOTE: This algorithm is only included for backwards compatibility
+ with legacy applications, it's not secure, don't use it for anything new!
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ Wrapper removes exposure to the IMemoable interface on an IDigest implementation.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @exception IllegalArgumentException if baseDigest is null
+
+
+ implementation of RipeMD128
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of RipeMD see,
+ http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD256.
+ Note: this algorithm offers the same level of security as RipeMD128.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD 320.
+ Note: this algorithm offers the same level of security as RipeMD160.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349.
+
+ It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5
+ is the "endianness" of the word processing!
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ SHA-224 as described in RFC 3874
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-224 512 32 224
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-256. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-384. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHA-3 based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Draft FIPS 180-2 implementation of SHA-512. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ FIPS 180-4 implementation of SHA-512/t
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHAKE based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Wrapper class that reduces the output length of a particular digest to
+ only the first n bytes of the digest function.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @param length length in bytes of the output of doFinal.
+ @exception ArgumentException if baseDigest is null, or length is greater than baseDigest.GetDigestSize().
+
+
+
+ Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block
+ sizes, based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation is the basis for and , implementing the
+ parameter based configuration system that allows Skein to be adapted to multiple applications.
+ Initialising the engine with allows standard and arbitrary parameters to
+ be applied during the Skein hash function.
+
+ Implemented:
+
+ - 256, 512 and 1024 bit internal states.
+ - Full 96 bit input length.
+ - Parameters defined in the Skein specification, and arbitrary other pre and post message
+ parameters.
+ - Arbitrary output size in 1 byte intervals.
+
+
+ Not implemented:
+
+ - Sub-byte length input (bit padding).
+ - Tree hashing.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+ The parameter type for the Skein key.
+
+
+ The parameter type for the Skein configuration block.
+
+
+ The parameter type for the message.
+
+
+ The parameter type for the output transformation.
+
+
+ Precalculated UBI(CFG) states for common state/output combinations without key or other
+ pre-message params.
+
+
+ Point at which position might overflow long, so switch to add with carry logic
+
+
+ Bit 127 = final
+
+
+ Bit 126 = first
+
+
+ UBI uses a 128 bit tweak
+
+
+ Whether 64 bit position exceeded
+
+
+ Advances the position in the tweak by the specified value.
+
+
+ The Unique Block Iteration chaining mode.
+
+
+ Buffer for the current block of message data
+
+
+ Offset into the current message block
+
+
+ Buffer for message words for feedback into encrypted block
+
+
+ Underlying Threefish tweakable block cipher
+
+
+ Size of the digest output, in bytes
+
+
+ The current chaining/state value
+
+
+ The initial state value
+
+
+ The (optional) key parameter
+
+
+ Parameters to apply prior to the message
+
+
+ Parameters to apply after the message, but prior to output
+
+
+ The current UBI operation
+
+
+ Buffer for single byte update method
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Creates a SkeinEngine as an exact copy of an existing instance.
+
+
+
+
+ Initialises the Skein engine with the provided parameters. See for
+ details on the parameterisation of the Skein hash function.
+
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+ Calculate the initial (pre message block) chaining state.
+
+
+
+ Reset the engine to the initial state (with the key and any pre-message parameters , ready to
+ accept message input.
+
+
+
+
+ Implementation of Chinese SM3 digest as described at
+ http://tools.ietf.org/html/draft-shen-sm3-hash-00
+ and at .... ( Chinese PDF )
+
+
+ The specification says "process a bit stream",
+ but this is written to process bytes in blocks of 4,
+ meaning this will process 32-bit word groups.
+ But so do also most other digest specifications,
+ including the SHA-256 which was a origin for
+ this specification.
+
+
+
+
+ Standard constructor
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+
+ reset the chaining variables
+
+
+
+ implementation of Tiger based on:
+
+ http://www.cs.technion.ac.il/~biham/Reports/Tiger
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Implementation of WhirlpoolDigest, based on Java source published by Barreto
+ and Rijmen.
+
+
+
+ Copy constructor. This will copy the state of the provided message
+ digest.
+
+
+ Reset the chaining variables
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ ISO 9796-1 padding. Note in the light of recent results you should
+ only use this with RSA (rather than the "simpler" Rabin keys) and you
+ should never use it with anything other than a hash (ie. even if the
+ message is small don't sign the message, sign it's hash) or some "random"
+ value. See your favorite search engine for details.
+
+
+ return the input block size. The largest message we can process
+ is (key_size_in_bits + 3)/16, which in our world comes to
+ key_size_in_bytes / 2.
+
+
+ return the maximum possible size for the output.
+
+
+ set the number of bits in the next message to be treated as
+ pad bits.
+
+
+ retrieve the number of pad bits in the last decoded message.
+
+
+ @exception InvalidCipherTextException if the decrypted block is not a valid ISO 9796 bit string
+
+
+ Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2.
+
+
+ @exception InvalidCipherTextException if the decrypted block turns out to
+ be badly formatted.
+
+
+ int to octet string.
+
+
+ mask generator function, as described in PKCS1v2.
+
+
+ this does your basic Pkcs 1 v1.5 padding - whether or not you should be using this
+ depends on your application - see Pkcs1 Version 2 for details.
+
+
+ some providers fail to include the leading zero in PKCS1 encoded blocks. If you need to
+ work with one of these set the system property Org.BouncyCastle.Pkcs1.Strict to false.
+
+
+ The same effect can be achieved by setting the static property directly
+
+ The static property is checked during construction of the encoding object, it is set to
+ true by default.
+
+
+
+ Basic constructor.
+
+ @param cipher
+
+
+ Constructor for decryption with a fixed plaintext length.
+
+ @param cipher The cipher to use for cryptographic operation.
+ @param pLen Length of the expected plaintext.
+
+
+ Constructor for decryption with a fixed plaintext length and a fallback
+ value that is returned, if the padding is incorrect.
+
+ @param cipher
+ The cipher to use for cryptographic operation.
+ @param fallback
+ The fallback value, we don't to a arraycopy here.
+
+
+ Checks if the argument is a correctly PKCS#1.5 encoded Plaintext
+ for encryption.
+
+ @param encoded The Plaintext.
+ @param pLen Expected length of the plaintext.
+ @return Either 0, if the encoding is correct, or -1, if it is incorrect.
+
+
+ Decode PKCS#1.5 encoding, and return a random value if the padding is not correct.
+
+ @param in The encrypted block.
+ @param inOff Offset in the encrypted block.
+ @param inLen Length of the encrypted block.
+ @param pLen Length of the desired output.
+ @return The plaintext without padding, or a random value if the padding was incorrect.
+ @throws InvalidCipherTextException
+
+
+ @exception InvalidCipherTextException if the decrypted block is not in Pkcs1 format.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first.
+
+ The slowest version uses no static tables at all and computes the values in each round.
+
+
+ This file contains the middle performance version with 2Kbytes of static tables for round precomputation.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael)), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor), they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations), 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each), for a total of 2Kbytes),
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values in each round
+
+
+ This file contains the fast version with 8Kbytes of static tables for round precomputation
+
+
+ Unfortunately this class has a few side channel issues.
+ In an environment where encryption/decryption may be closely observed it should not be used.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values
+ in each round.
+
+
+ This file contains the slowest performance version with no static tables
+ for round precomputation, but it has the smallest foot print.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ A class that provides Blowfish key encryption operations,
+ such as encoding data and generating keys.
+ All the algorithms herein are from Applied Cryptography
+ and implement a simplified cryptography interface.
+
+
+ initialise a Blowfish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ apply the encryption cycle to each value pair in the table.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Camellia - based on RFC 3713.
+
+
+ Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.
+
+
+
+ An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3657.txt.
+
+
+
+ A class that provides CAST key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC's
+
+ RFC2144 - Cast5 (64bit block, 40-128bit key)
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ initialise a CAST cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ The first of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The second of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The third of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ Does the 16 rounds to encrypt the block.
+
+ @param L0 the LH-32bits of the plaintext block
+ @param R0 the RH-32bits of the plaintext block
+
+
+ A class that provides CAST6 key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC
+
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Does the 12 quad rounds rounds to encrypt the block.
+
+ @param A the 00-31 bits of the plaintext block
+ @param B the 32-63 bits of the plaintext block
+ @param C the 64-95 bits of the plaintext block
+ @param D the 96-127 bits of the plaintext block
+ @param result the resulting ciphertext
+
+
+ Does the 12 quad rounds rounds to decrypt the block.
+
+ @param A the 00-31 bits of the ciphertext block
+ @param B the 32-63 bits of the ciphertext block
+ @param C the 64-95 bits of the ciphertext block
+ @param D the 96-127 bits of the ciphertext block
+ @param result the resulting plaintext
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Creates a ChaCha engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+
+ ChaCha function.
+
+ The number of ChaCha rounds to execute
+ The input words.
+ The ChaCha state to modify.
+
+
+ A class that provides a basic DESede (or Triple DES) engine.
+
+
+ initialise a DESede cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ * Wrap keys according to
+ *
+ * draft-ietf-smime-key-wrap-01.txt.
+ *
+ * Note:
+ *
+ * - this is based on a draft, and as such is subject to change - don't use this class for anything requiring long term storage.
+ * - if you are using this to wrap triple-des keys you need to set the
+ * parity bits on the key and, if it's a two-key triple-des key, pad it
+ * yourself.
+ *
+ *
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ A class that provides a basic DES engine.
+
+
+ initialise a DES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ what follows is mainly taken from "Applied Cryptography", by
+ Bruce Schneier, however it also bears great resemblance to Richard
+ Outerbridge's D3DES...
+
+
+ Generate an integer based working key based on our secret key
+ and what we processing we are planning to do.
+
+ Acknowledgements for this routine go to James Gillogly and Phil Karn.
+ (whoever, and wherever they are!).
+
+
+ the DES engine.
+
+
+ implementation of DSTU 7624 (Kalyna)
+
+
+ this does your basic ElGamal algorithm.
+
+
+ initialise the ElGamal engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary ElGamal key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ encryption, and twice the length as the size of P on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ decryption, and twice the length as the size of P on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic ElGamal algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param length the length of the data to be processed.
+ @return the result of the ElGamal process.
+ @exception DataLengthException the input block is too large.
+
+
+ implementation of GOST 28147-89
+
+
+ standard constructor.
+
+
+ initialise an Gost28147 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ Return the S-Box associated with SBoxName
+ @param sBoxName name of the S-Box
+ @return byte array representing the S-Box
+
+
+ HC-128 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 128-bit secret key and a 128-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc128_p3.pdf
+
+ It is a third phase candidate in the eStream contest, and is patent-free.
+ No attacks are known as of today (April 2007). See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-128 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 128 bit long).
+
+
+ HC-256 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 256-bit secret key and a 256-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc256_p3.pdf
+
+ Its brother, HC-128, is a third phase candidate in the eStream contest.
+ The algorithm is patent-free. No attacks are known as of today (April 2007).
+ See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-256 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 256 bit long).
+
+
+ A class that provides a basic International Data Encryption Algorithm (IDEA) engine.
+
+ This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM"
+ implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (baring 1 typo at the
+ end of the mulinv function!).
+
+
+ It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/
+
+
+ Note 1: This algorithm is patented in the USA, Japan, and Europe including
+ at least Austria, France, Germany, Italy, Netherlands, Spain, Sweden, Switzerland
+ and the United Kingdom. Non-commercial use is free, however any commercial
+ products are liable for royalties. Please see
+ www.mediacrypt.com for
+ further details. This announcement has been included at the request of
+ the patent holders.
+
+
+ Note 2: Due to the requests concerning the above, this algorithm is now only
+ included in the extended assembly. It is not included in the default distributions.
+
+
+
+ standard constructor.
+
+
+ initialise an IDEA cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return x = x * y where the multiplication is done modulo
+ 65537 (0x10001) (as defined in the IDEA specification) and
+ a zero input is taken to be 65536 (0x10000).
+
+ @param x the x value
+ @param y the y value
+ @return x = x * y
+
+
+ The following function is used to expand the user key to the encryption
+ subkey. The first 16 bytes are the user key, and the rest of the subkey
+ is calculated by rotating the previous 16 bytes by 25 bits to the left,
+ and so on until the subkey is completed.
+
+
+ This function computes multiplicative inverse using Euclid's Greatest
+ Common Divisor algorithm. Zero and one are self inverse.
+
+ i.e. x * MulInv(x) == 1 (modulo BASE)
+
+
+
+ Return the additive inverse of x.
+
+ i.e. x + AddInv(x) == 0
+
+
+
+ The function to invert the encryption subkey to the decryption subkey.
+ It also involves the multiplicative inverse and the additive inverse functions.
+
+
+ support class for constructing intergrated encryption ciphers
+ for doing basic message exchanges on top of key agreement ciphers
+
+
+ set up for use with stream mode, where the key derivation function
+ is used to provide a stream of bytes to xor with the message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+
+
+ set up for use in conjunction with a block cipher to handle the
+ message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+ @param cipher the cipher to used for encrypting the message
+
+
+ Initialise the encryptor.
+
+ @param forEncryption whether or not this is encryption/decryption.
+ @param privParam our private key parameters
+ @param pubParam the recipient's/sender's public key parameters
+ @param param encoding and derivation parameters.
+
+
+ Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count).
+ see: http://www.burtleburtle.net/bob/rand/isaacafa.html
+
+
+ initialise an ISAAC cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ NaccacheStern Engine. For details on this cipher, please see
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Initializes this algorithm. Must be called before all other Functions.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#init(bool,
+ org.bouncycastle.crypto.CipherParameters)
+
+
+ Returns the input block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetInputBlockSize()
+
+
+ Returns the output block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetOutputBlockSize()
+
+
+ Process a single Block using the Naccache-Stern algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#ProcessBlock(byte[],
+ int, int)
+
+
+ Encrypts a BigInteger aka Plaintext with the public key.
+
+ @param plain
+ The BigInteger to encrypt
+ @return The byte[] representation of the encrypted BigInteger (i.e.
+ crypted.toByteArray())
+
+
+ Adds the contents of two encrypted blocks mod sigma
+
+ @param block1
+ the first encrypted block
+ @param block2
+ the second encrypted block
+ @return encrypt((block1 + block2) mod sigma)
+ @throws InvalidCipherTextException
+
+
+ Convenience Method for data exchange with the cipher.
+
+ Determines blocksize and splits data to blocksize.
+
+ @param data the data to be processed
+ @return the data after it went through the NaccacheSternEngine.
+ @throws InvalidCipherTextException
+
+
+ Computes the integer x that is expressed through the given primes and the
+ congruences with the chinese remainder theorem (CRT).
+
+ @param congruences
+ the congruences c_i
+ @param primes
+ the primes p_i
+ @return an integer x for that x % p_i == c_i
+
+
+ A Noekeon engine, using direct-key mode.
+
+
+ Create an instance of the Noekeon encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ The no-op engine that just copies bytes through, irrespective of whether encrypting and decrypting.
+ Provided for the sake of completeness.
+
+
+ an implementation of RC2 as described in RFC 2268
+ "A Description of the RC2(r) Encryption Algorithm" R. Rivest.
+
+
+ initialise a RC2 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the result rotating the 16 bit number in x left by y
+
+
+ Wrap keys according to RFC 3217 - RC2 mechanism
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ initialise a RC4 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation has a word size of 32 bits.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation is set to work with a 64 bit word size.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-64 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ An RC6 engine.
+
+
+ Create an instance of the RC6 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param inKey the key to be used
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ an implementation of the RFC 3211 Key Wrap
+ Specification.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap
+ Specification as described in RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3394.txt
+ and http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ an implementation of Rijndael, based on the documentation and reference implementation
+ by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.
+
+ Note: this implementation is based on information prior to readonly NIST publication.
+
+
+
+ multiply two elements of GF(2^m)
+ needed for MixColumn and InvMixColumn
+
+
+ xor corresponding text input and round key input bytes
+
+
+ Row 0 remains unchanged
+ The other three rows are shifted a variable amount
+
+
+ Replace every byte of the input by the byte at that place
+ in the nonlinear S-box
+
+
+ Mix the bytes of every column in a linear way
+
+
+ Mix the bytes of every column in a linear way
+ This is the opposite operation of Mixcolumn
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on keyBits and blockBits
+
+
+ default constructor - 128 bit block size.
+
+
+ basic constructor - set the cipher up for a given blocksize
+
+ @param blocksize the blocksize in bits, must be 128, 192, or 256.
+
+
+ initialise a Rijndael cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ this does your basic RSA algorithm with blinding
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+ This does your basic RSA Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475. You need to use this if you are
+ trying to get another party to generate signatures without them being aware
+ of the message they are signing.
+
+
+ Initialise the blinding engine.
+
+ @param forEncryption true if we are encrypting (blinding), false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the RSA blinding algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @throws DataLengthException the input block is too large.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+
+ Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005
+
+
+
+ Constants
+
+
+
+ Creates a 20 round Salsa20 engine.
+
+
+
+
+ Creates a Salsa20 engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ Rotate left
+
+ @param x value to rotate
+ @param y amount to rotate x
+
+ @return rotated x
+
+
+ Implementation of the SEED algorithm as described in RFC 4009
+
+
+
+ An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc4010.txt.
+
+
+
+ * Serpent is a 128-bit 32-round block cipher with variable key lengths,
+ * including 128, 192 and 256 bit keys conjectured to be at least as
+ * secure as three-key triple-DES.
+ *
+ * Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ * candidate algorithm for the NIST AES Quest.
+ *
+ *
+ * For full details see The Serpent home page
+ *
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ initialise a Serpent cipher.
+
+ @param encrypting whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @throws IllegalArgumentException if the params argument is
+ inappropriate.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @return the number of bytes processed and produced.
+ @throws DataLengthException if there isn't enough data in in, or
+ space in out.
+ @throws IllegalStateException if the cipher isn't initialised.
+
+
+ InvSO - {13, 3,11, 0,10, 6, 5,12, 1,14, 4, 7,15, 9, 8, 2 } - 15 terms.
+
+
+ S1 - {15,12, 2, 7, 9, 0, 5,10, 1,11,14, 8, 6,13, 3, 4 } - 14 terms.
+
+
+ InvS1 - { 5, 8, 2,14,15, 6,12, 3,11, 4, 7, 9, 1,13,10, 0 } - 14 steps.
+
+
+ S2 - { 8, 6, 7, 9, 3,12,10,15,13, 1,14, 4, 0,11, 5, 2 } - 16 terms.
+
+
+ InvS2 - {12, 9,15, 4,11,14, 1, 2, 0, 3, 6,13, 5, 8,10, 7 } - 16 steps.
+
+
+ S3 - { 0,15,11, 8,12, 9, 6, 3,13, 1, 2, 4,10, 7, 5,14 } - 16 terms.
+
+
+ InvS3 - { 0, 9,10, 7,11,14, 6,13, 3, 5,12, 2, 4, 8,15, 1 } - 15 terms
+
+
+ S4 - { 1,15, 8, 3,12, 0,11, 6, 2, 5, 4,10, 9,14, 7,13 } - 15 terms.
+
+
+ InvS4 - { 5, 0, 8, 3,10, 9, 7,14, 2,12,11, 6, 4,15,13, 1 } - 15 terms.
+
+
+ S5 - {15, 5, 2,11, 4,10, 9,12, 0, 3,14, 8,13, 6, 7, 1 } - 16 terms.
+
+
+ InvS5 - { 8,15, 2, 9, 4, 1,13,14,11, 6, 5, 3, 7,12,10, 0 } - 16 terms.
+
+
+ S6 - { 7, 2,12, 5, 8, 4, 6,11,14, 9, 1,15,13, 3,10, 0 } - 15 terms.
+
+
+ InvS6 - {15,10, 1,13, 5, 3, 6, 0, 4, 9,14, 7, 2,12, 8,11 } - 15 terms.
+
+
+ S7 - { 1,13,15, 0,14, 8, 2,11, 7, 4,12,10, 9, 3, 5, 6 } - 16 terms.
+
+
+ InvS7 - { 3, 0, 6,13, 9,14,15, 8, 5,12,11, 7,10, 1, 4, 2 } - 17 terms.
+
+
+ Apply the linear transformation to the register set.
+
+
+ Apply the inverse of the linear transformation to the register set.
+
+
+ a class that provides a basic SKIPJACK engine.
+
+
+ initialise a SKIPJACK cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The G permutation
+
+
+ the inverse of the G permutation.
+
+
+
+ SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.
+
+
+
+ An TEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+
+ Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block
+ sizes.
+
+
+ This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST
+ SHA-3 competition in October 2010.
+
+ Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables
+ to speed up key schedule injection.
+ 2 x block size state is retained by each cipher instance.
+
+
+
+
+ 256 bit block size - Threefish-256
+
+
+
+
+ 512 bit block size - Threefish-512
+
+
+
+
+ 1024 bit block size - Threefish-1024
+
+
+
+ Size of the tweak in bytes (always 128 bit/16 bytes)
+
+
+ Rounds in Threefish-256
+
+
+ Rounds in Threefish-512
+
+
+ Rounds in Threefish-1024
+
+
+ Max rounds of any of the variants
+
+
+ Key schedule parity constant
+
+
+ Block size in bytes
+
+
+ Block size in 64 bit words
+
+
+ Buffer for byte oriented processBytes to call internal word API
+
+
+ Tweak bytes (2 byte t1,t2, calculated t3 and repeat of t1,t2 for modulo free lookup
+
+
+ Key schedule words
+
+
+ The internal cipher implementation (varies by blocksize)
+
+
+
+ Constructs a new Threefish cipher, with a specified block size.
+
+ the block size in bits, one of , ,
+ .
+
+
+
+ Initialise the engine.
+
+ Initialise for encryption if true, for decryption if false.
+ an instance of or (to
+ use a 0 tweak)
+
+
+
+ Initialise the engine, specifying the key and tweak directly.
+
+ the cipher mode.
+ the words of the key, or null to use the current key.
+ the 2 word (128 bit) tweak, or null to use the current tweak.
+
+
+
+ Process a block of data represented as 64 bit words.
+
+ the number of 8 byte words processed (which will be the same as the block size).
+ a block sized buffer of words to process.
+ a block sized buffer of words to receive the output of the operation.
+ if either the input or output is not block sized
+ if this engine is not initialised
+
+
+
+ Read a single 64 bit word from input in LSB first order.
+
+
+
+
+ Write a 64 bit word to output in LSB first order.
+
+
+
+ Rotate left + xor part of the mix operation.
+
+
+ Rotate xor + rotate right part of the unmix operation.
+
+
+ The extended + repeated tweak words
+
+
+ The extended + repeated key words
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Tnepres is a 128-bit 32-round block cipher with variable key lengths,
+ including 128, 192 and 256 bit keys conjectured to be at least as
+ secure as three-key triple-DES.
+
+ Tnepres is based on Serpent which was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ candidate algorithm for the NIST AES Quest. Unfortunately there was an endianness issue
+ with test vectors in the AES submission and the resulting confusion lead to the Tnepres cipher
+ as well, which is a byte swapped version of Serpent.
+
+
+ For full details see The Serpent home page
+
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ A class that provides Twofish encryption operations.
+
+ This Java implementation is based on the Java reference
+ implementation provided by Bruce Schneier and developed
+ by Raif S. Naffah.
+
+
+ Define the fixed p0/p1 permutations used in keyed S-box lookup.
+ By changing the following constant definitions, the S-boxes will
+ automatically Get changed in the Twofish engine.
+
+
+ gSubKeys[] and gSBox[] are eventually used in the
+ encryption and decryption methods.
+
+
+ initialise a Twofish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+ encryptBlock uses the pre-calculated gSBox[] and subKey[]
+ arrays.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Use (12, 8) Reed-Solomon code over GF(256) to produce
+ a key S-box 32-bit entity from 2 key material 32-bit
+ entities.
+
+ @param k0 first 32-bit entity
+ @param k1 second 32-bit entity
+ @return Remainder polynomial Generated using RS code
+
+
+ * Reed-Solomon code parameters: (12,8) reversible code:
+ *
+ *
+ * G(x) = x^4 + (a+1/a)x^3 + ax^2 + (a+1/a)x + 1
+ *
+ * where a = primitive root of field generator 0x14D
+ *
+
+
+ initialise a VMPC cipher.
+
+ @param forEncryption
+ whether or not we are for encryption.
+ @param params
+ the parameters required to set up the cipher.
+ @exception ArgumentException
+ if the params argument is inappropriate.
+
+
+
+ Implementation of Daniel J. Bernstein's XSalsa20 stream cipher - Salsa20 with an extended nonce.
+
+
+ XSalsa20 requires a 256 bit key, and a 192 bit nonce.
+
+
+
+
+ XSalsa20 key generation: process 256 bit input key and 128 bits of the input nonce
+ using a core Salsa20 function without input addition to produce 256 bit working key
+ and use that with the remaining 64 bits of nonce to initialize a standard Salsa20 engine state.
+
+
+
+ An XTEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on ISO 18033/P1363a.
+
+
+ Construct a KDF Parameters generator.
+
+ @param counterStart value of counter.
+ @param digest the digest to be used as the source of derived keys.
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws ArgumentException if the size of the request will cause an overflow.
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Core of password hashing scheme Bcrypt,
+ designed by Niels Provos and David Mazières,
+ corresponds to the C reference implementation.
+
+ This implementation does not correspondent to the 1999 published paper
+ "A Future-Adaptable Password Scheme" of Niels Provos and David Mazières,
+ see: https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html.
+ In contrast to the paper, the order of key setup and salt setup is reversed:
+ state <- ExpandKey(state, 0, key)
+ state %lt;- ExpandKey(state, 0, salt)
+ This corresponds to the OpenBSD reference implementation of Bcrypt.
+
+ Note:
+ There is no successful cryptanalysis (status 2015), but
+ the amount of memory and the band width of Bcrypt
+ may be insufficient to effectively prevent attacks
+ with custom hardware like FPGAs, ASICs
+
+ This implementation uses some parts of Bouncy Castle's BlowfishEngine.
+
+
+
+ Derives a raw 192 bit Bcrypt key
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param psw the password
+ @return a 192 bit key
+
+
+ Size of the salt parameter in bytes
+
+
+ Minimum value of cost parameter, equal to log2(bytes of salt)
+
+
+ Maximum value of cost parameter (31 == 2,147,483,648)
+
+
+ Maximum size of password == max (unrestricted) size of Blowfish key
+
+
+ Calculates the bcrypt hash of a password.
+
+ This implements the raw bcrypt function as defined in the bcrypt specification, not
+ the crypt encoded version implemented in OpenBSD.
+
+ @param password the password bytes (up to 72 bytes) to use for this invocation.
+ @param salt the 128 bit salt to use for this invocation.
+ @param cost the bcrypt cost parameter. The cost of the bcrypt function grows as
+ 2^cost. Legal values are 4..31 inclusive.
+ @return the output of the raw bcrypt operation: a 192 bit (24 byte) hash.
+
+
+ initialise the key generator - if strength is set to zero
+ the key Generated will be 192 bits in size, otherwise
+ strength can be 128 or 192 (or 112 or 168 if you don't count
+ parity bits), depending on whether you wish to do 2-key or 3-key
+ triple DES.
+
+ @param param the parameters to be used for key generation
+
+
+ initialise the key generator - if strength is set to zero
+ the key generated will be 64 bits in size, otherwise
+ strength can be 64 or 56 bits (if you don't count the parity bits).
+
+ @param param the parameters to be used for key generation
+
+
+ a basic Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use with the basic algorithm for
+ Diffie-Hellman.
+
+
+ a Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use in the MTI/A0 key agreement protocol
+ as described in "Handbook of Applied Cryptography", Pages 516-519.
+
+
+ which Generates the p and g values from the given parameters,
+ returning the DHParameters object.
+
+ Note: can take a while...
+
+
+ a DSA key pair generator.
+
+ This Generates DSA keys in line with the method described
+ in FIPS 186-3 B.1 FFC Key Pair Generation.
+
+
+ Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3.
+
+
+ Initialise the generator
+ This form can only be used for older DSA (pre-DSA2) parameters
+ the size of keys in bits (from 512 up to 1024, and a multiple of 64)
+ measure of robustness of primes (at least 80 for FIPS 186-2 compliance)
+ the source of randomness to use
+
+
+ Initialise the generator for DSA 2
+ You must use this Init method if you need to generate parameters for DSA 2 keys
+ An instance of DsaParameterGenerationParameters used to configure this generator
+
+
+ Generates a set of DsaParameters
+ Can take a while...
+
+
+ generate suitable parameters for DSA, in line with
+ FIPS 186-3 A.1 Generation of the FFC Primes p and q.
+
+
+ Given the domain parameters this routine generates an EC key
+ pair in accordance with X9.62 section 5.2.1 pages 26, 27.
+
+
+ a ElGamal key pair generator.
+
+ This Generates keys consistent for use with ElGamal as described in
+ page 164 of "Handbook of Applied Cryptography".
+
+
+ * which Generates the p and g values from the given parameters,
+ * returning the ElGamalParameters object.
+ *
+ * Note: can take a while...
+ *
+
+
+ a GOST3410 key pair generator.
+ This generates GOST3410 keys in line with the method described
+ in GOST R 34.10-94.
+
+
+ generate suitable parameters for GOST3410.
+
+
+ initialise the key generator.
+
+ @param size size of the key
+ @param typeProcedure type procedure A,B = 1; A',B' - else
+ @param random random byte source.
+
+
+ Procedure C
+ procedure generates the a value from the given p,q,
+ returning the a value.
+
+
+ which generates the p , q and a values from the given parameters,
+ returning the Gost3410Parameters object.
+
+
+ HMAC-based Extract-and-Expand Key Derivation Function (HKDF) implemented
+ according to IETF RFC 5869, May 2010 as specified by H. Krawczyk, IBM
+ Research & P. Eronen, Nokia. It uses a HMac internally to compute de OKM
+ (output keying material) and is likely to have better security properties
+ than KDF's based on just a hash function.
+
+
+ Creates a HKDFBytesGenerator based on the given hash function.
+
+ @param hash the digest to be used as the source of generatedBytes bytes
+
+
+ Performs the extract part of the key derivation function.
+
+ @param salt the salt to use
+ @param ikm the input keying material
+ @return the PRK as KeyParameter
+
+
+ Performs the expand part of the key derivation function, using currentT
+ as input and output buffer.
+
+ @throws DataLengthException if the total number of bytes generated is larger than the one
+ specified by RFC 5869 (255 * HashLen)
+
+
+ KFD2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF1 byte generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ KDF2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF2 bytes generator. Generates key material
+ according to IEEE P1363 or ISO 18033 depending on the initialisation.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ Generator for MGF1 as defined in Pkcs 1v2
+
+
+ @param digest the digest to be used as the source of Generated bytes
+
+
+ return the underlying digest.
+
+
+ int to octet string.
+
+
+ fill len bytes of the output buffer with bytes Generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Key generation parameters for NaccacheStern cipher. For details on this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Generates a permuted ArrayList from the original one. The original List
+ is not modified
+
+ @param arr
+ the ArrayList to be permuted
+ @param rand
+ the source of Randomness for permutation
+ @return a new IList with the permuted elements.
+
+
+ Finds the first 'count' primes starting with 3
+
+ @param count
+ the number of primes to find
+ @return a vector containing the found primes as Integer
+
+
+ Password hashing scheme BCrypt,
+ designed by Niels Provos and David Mazières, using the
+ String format and the Base64 encoding
+ of the reference implementation on OpenBSD
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Checks if a password corresponds to a 60 character Bcrypt String
+
+ @param bcryptString a 60 character Bcrypt String, including
+ version, cost factor, salt and hash,
+ separated by '$'
+ @param password the password as an array of chars
+ @return true if the password corresponds to the
+ Bcrypt String, otherwise false
+
+
+ Generator for PBE derived keys and ivs as usd by OpenSSL.
+
+ The scheme is a simple extension of PKCS 5 V2.0 Scheme 1 using MD5 with an
+ iteration count of 1.
+
+
+
+ Construct a OpenSSL Parameters generator.
+
+
+ Initialise - note the iteration count for this algorithm is fixed at 1.
+
+ @param password password to use.
+ @param salt salt to use.
+
+
+ the derived key function, the ith hash of the password and the salt.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 12 V1.0.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs12 Page
+
+
+
+ Construct a Pkcs 12 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+ @exception ArgumentException if an unknown digest is passed in.
+
+
+ add a + b + 1, returning the result in a. The a value is treated
+ as a BigInteger of length (b.Length * 8) bits. The result is
+ modulo 2^b.Length in case of overflow.
+
+
+ generation of a derived key ala Pkcs12 V1.0.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 1.
+ Note this generator is limited to the size of the hash produced by the
+ digest used to drive it.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+
+ Construct a Pkcs 5 Scheme 1 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ the derived key function, the ith hash of the mPassword and the mSalt.
+
+
+ Generate a key parameter derived from the mPassword, mSalt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the mPassword, mSalt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the mPassword,
+ mSalt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 2.
+ This generator uses a SHA-1 HMac as the calculation function.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+ construct a Pkcs5 Scheme 2 Parameters generator.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+
+ Generates keys for the Poly1305 MAC.
+
+
+ Poly1305 keys are 256 bit keys consisting of a 128 bit secret key used for the underlying block
+ cipher followed by a 128 bit {@code r} value used for the polynomial portion of the Mac.
+ The {@code r} value has a specific format with some bits required to be cleared, resulting in an
+ effective 106 bit key.
+ A separately generated 256 bit key can be modified to fit the Poly1305 key format by using the
+ {@link #clamp(byte[])} method to clear the required bits.
+
+
+
+
+
+ Initialises the key generator.
+
+
+ Poly1305 keys are always 256 bits, so the key length in the provided parameters is ignored.
+
+
+
+
+ Generates a 256 bit key in the format required for Poly1305 - e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+
+
+
+ Modifies an existing 32 byte key value to comply with the requirements of the Poly1305 key by
+ clearing required bits in the r (second 16 bytes) portion of the key.
+ Specifically:
+
+ - r[3], r[7], r[11], r[15] have top four bits clear (i.e., are {0, 1, . . . , 15})
+ - r[4], r[8], r[12] have bottom two bits clear (i.e., are in {0, 4, 8, . . . , 252})
+
+
+ a 32 byte key value k[0] ... k[15], r[0] ... r[15]
+
+
+
+ Checks a 32 byte key for compliance with the Poly1305 key requirements, e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+ Key.
+ if the key is of the wrong length, or has invalid bits set
+ in the r portion of the key.
+
+
+ Generate a random factor suitable for use with RSA blind signatures
+ as outlined in Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475.
+
+
+ Initialise the factor generator
+
+ @param param the necessary RSA key parameters.
+
+
+ Generate a suitable blind factor for the public key the generator was initialised with.
+
+ @return a random blind factor
+
+
+ an RSA key pair generator.
+
+
+ Choose a random prime value for use with RSA
+ the bit-length of the returned prime
+ the RSA public exponent
+ a prime p, with (p-1) relatively prime to e
+
+
+ Implementation of the scrypt a password-based key derivation function.
+
+ Scrypt was created by Colin Percival and is specified in
+ draft-josefsson-scrypt-kd.
+
+
+
+ Generate a key using the scrypt key derivation function.
+ the bytes of the pass phrase.
+ the salt to use for this invocation.
+ CPU/Memory cost parameter. Must be larger than 1, a power of 2 and less than
+ 2^(128 * r / 8).
+ the block size, must be >= 1.
+ Parallelization parameter. Must be a positive integer less than or equal to
+ Int32.MaxValue / (128 * r * 8).
+ the length of the key to generate.
+ the generated key.
+
+
+ Base interface for a public/private key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The maximum size, in bytes, an input block may be.
+
+
+ The maximum size, in bytes, an output block will be.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The length of the input block.
+ Input decrypts improperly.
+ Input is too large for the cipher.
+
+
+ interface that a public/private key pair generator should conform to.
+
+
+ intialise the key pair generator.
+
+ @param the parameters the key pair is to be initialised with.
+
+
+ return an AsymmetricCipherKeyPair containing the Generated keys.
+
+ @return an AsymmetricCipherKeyPair containing the Generated keys.
+
+
+ The basic interface that basic Diffie-Hellman implementations
+ conforms to.
+
+
+ initialise the agreement engine.
+
+
+ return the field size for the agreement algorithm in bytes.
+
+
+ given a public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Base interface for a symmetric key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Indicates whether this cipher can handle partial blocks.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The output buffer.
+ The offset into outBuf to write the output block.
+ If input block is wrong size, or outBuf too small.
+ The number of bytes processed and produced.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to a single block return an object
+ of this type.
+
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ Block cipher engines are expected to conform to this interface.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+
+
+ Reset the cipher. After resetting the cipher is in the same state
+ as it was after the last init (if there was one).
+
+
+
+ all parameter classes implement this.
+
+
+ base interface for general purpose byte derivation functions.
+
+
+ return the message digest used as the basis for the function
+
+
+ Parameters for key/byte stream derivation classes
+
+
+ interface that a message digest conforms to.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ return the size, in bytes, of the internal buffer used by this digest.
+
+ @return the size, in bytes, of the internal buffer used by this digest.
+
+
+ update the message digest with a single byte.
+
+ @param inByte the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param input the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param output the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ interface for classes implementing the Digital Signature Algorithm
+
+
+ initialise the signer for signature generation or signature
+ verification.
+
+ @param forSigning true if we are generating a signature, false
+ otherwise.
+ @param param key parameters for signature generation.
+
+
+ sign the passed in message (usually the output of a hash function).
+
+ @param message the message to be signed.
+ @return two big integers representing the r and s values respectively.
+
+
+ verify the message message against the signature values r and s.
+
+ @param message the message that was supposed to have been signed.
+ @param r the r signature value.
+ @param s the s signature value.
+
+
+
+ Base interface describing an entropy source for a DRBG.
+
+
+
+
+ Return whether or not this entropy source is regarded as prediction resistant.
+
+ true if this instance is prediction resistant; otherwise, false.
+
+
+
+ Return a byte array of entropy.
+
+ The entropy bytes.
+
+
+
+ Return the number of bits of entropy this source can produce.
+
+ The size, in bits, of the return value of getEntropy.
+
+
+
+ Base interface describing a provider of entropy sources.
+
+
+
+
+ Return an entropy source providing a block of entropy.
+
+ The size of the block of entropy required.
+ An entropy source providing bitsRequired blocks of entropy.
+
+
+ The base interface for implementations of message authentication codes (MACs).
+
+
+ Initialise the MAC.
+
+ @param param the key and other data required by the MAC.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Return the name of the algorithm the MAC implements.
+
+ @return the name of the algorithm the MAC implements.
+
+
+ Return the block size for this MAC (in bytes).
+
+ @return the block size for this MAC in bytes.
+
+
+ add a single byte to the mac for processing.
+
+ @param in the byte to be processed.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ @param in the array containing the input.
+ @param inOff the index in the array the data begins at.
+ @param len the length of the input starting at inOff.
+ @exception InvalidOperationException if the MAC is not initialised.
+ @exception DataLengthException if there isn't enough data in in.
+
+
+ Compute the final stage of the MAC writing the output to the out
+ parameter.
+
+ doFinal leaves the MAC in the same state it was after the last init.
+
+ @param out the array the MAC is to be output to.
+ @param outOff the offset into the out buffer the output is to start at.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ Reset the MAC. At the end of resetting the MAC should be in the
+ in the same state it was after the last init (if there was one).
+
+
+ this exception is thrown whenever we find something we don't expect in a
+ message.
+
+
+ base constructor.
+
+
+ create a InvalidCipherTextException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Base interface for operators that serve as stream-based signature calculators.
+
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ Return the name of the algorithm the signer implements.
+
+ @return the name of the algorithm the signer implements.
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ reset the internal state
+
+
+ Signer with message recovery.
+
+
+ Returns true if the signer has recovered the full message as
+ part of signature verification.
+
+ @return true if full message recovered.
+
+
+ Returns a reference to what message was recovered (if any).
+
+ @return full/partial message, null if nothing.
+
+
+ Perform an update with the recovered message before adding any other data. This must
+ be the first update method called, and calling it will result in the signer assuming
+ that further calls to update will include message content past what is recoverable.
+
+ @param signature the signature that we are in the process of verifying.
+ @throws IllegalStateException
+
+
+
+ Base interface for cryptographic operations such as Hashes, MACs, and Signatures which reduce a stream of data
+ to a single value.
+
+
+
+ Return a "sink" stream which only exists to update the implementing object.
+ A stream to write to in order to update the implementing object.
+
+
+
+ Return the result of processing the stream. This value is only available once the stream
+ has been closed.
+
+ The result of processing the stream.
+
+
+ The interface stream ciphers conform to.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+ If the parameters argument is inappropriate.
+
+
+
+ encrypt/decrypt a single byte returning the result.
+ the byte to be processed.
+ the result of processing the input byte.
+
+
+
+ Process a block of bytes from input putting the result into output.
+
+ The input byte array.
+
+ The offset into input where the data to be processed starts.
+
+ The number of bytes to be processed.
+ The output buffer the processed bytes go into.
+
+ The offset into output the processed data starts at.
+
+ If the output buffer is too small.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to the validation of a signature produce this type.
+
+
+
+
+ Return true if the passed in data matches what is expected by the verification result.
+
+ The bytes representing the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Return true if the length bytes from off in the source array match the signature
+ expected by the verification result.
+
+ Byte array containing the signature.
+ The offset into the source array where the signature starts.
+ The number of bytes in source making up the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Base interface for operators that serve as stream-based signature verifiers.
+
+
+
+ The algorithm details object for this verifier.
+
+
+
+ Create a stream calculator for this verifier. The stream
+ calculator is used for the actual operation of entering the data to be verified
+ and producing a result which can be used to verify the original signature.
+
+ A calculator producing an IVerifier which can verify the signature.
+
+
+
+ Base interface for a provider to support the dynamic creation of signature verifiers.
+
+
+
+
+ Return a signature verfier for signature algorithm described in the passed in algorithm details object.
+
+ The details of the signature algorithm verification is required for.
+ A new signature verifier.
+
+
+ The name of the algorithm this cipher implements.
+
+
+
+ With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.
+ This interface provides the extra method required to support variable output on a digest implementation.
+
+
+
+
+ Output the results of the final calculation for this digest to outLen number of bytes.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+
+ Start outputting the results of the final calculation for this digest. Unlike DoFinal, this method
+ will continue producing output until the Xof is explicitly reset, or signals otherwise.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+ The base class for parameters to key generators.
+
+
+ initialise the generator with a source of randomness
+ and a strength (in bits).
+
+ @param random the random byte source.
+ @param strength the size, in bits, of the keys we want to produce.
+
+
+ return the random source associated with this
+ generator.
+
+ @return the generators random source.
+
+
+ return the bit strength for keys produced by this generator,
+
+ @return the strength of the keys this generator produces (in bits).
+
+
+ standard CBC Block Cipher MAC - if no padding is specified the default of
+ pad of zeroes is used.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding a padding to be used.
+
+
+ Reset the mac generator.
+
+
+ CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
+
+ CMAC is analogous to OMAC1 - see also en.wikipedia.org/wiki/CMAC
+
+ CMAC is a NIST recomendation - see
+ csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38B.pdf
+
+ CMAC/OMAC1 is a blockcipher-based message authentication code designed and
+ analyzed by Tetsu Iwata and Kaoru Kurosawa.
+
+ CMAC/OMAC1 is a simple variant of the CBC MAC (Cipher Block Chaining Message
+ Authentication Code). OMAC stands for One-Key CBC MAC.
+
+ It supports 128- or 64-bits block ciphers, with any key size, and returns
+ a MAC with dimension less or equal to the block size of the underlying
+ cipher.
+
+
+
+ create a standard MAC based on a CBC block cipher (64 or 128 bit block).
+ This will produce an authentication code the length of the block size
+ of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8 and @lt;= 128.
+
+
+ Reset the mac generator.
+
+
+
+ Implementation of DSTU7564 mac mode
+
+
+
+ implementation of DSTU 7624 MAC
+
+
+
+ The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication
+ 800-38D.
+
+
+ GMac is an invocation of the GCM mode where no data is encrypted (i.e. all input data to the Mac
+ is processed as additional authenticated data with the underlying GCM block cipher).
+
+
+
+
+ Creates a GMAC based on the operation of a block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+
+
+
+ Creates a GMAC based on the operation of a 128 bit block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+ the mac size to generate, in bits. Must be a multiple of 8, between 32 and 128 (inclusive).
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ Initialises the GMAC - requires a
+ providing a and a nonce.
+
+
+
+ implementation of GOST 28147-89 MAC
+
+
+ HMAC implementation based on RFC2104
+
+ H(K XOR opad, H(K XOR ipad, text))
+
+
+ Reset the mac generator.
+
+
+ DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC)
+
+ This could as well be derived from CBCBlockCipherMac, but then the property mac in the base
+ class must be changed to protected
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation. This must
+ be DESEngine.
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a Retail-MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation. The final block is decrypted and then encrypted using the
+ middle and right part of the key.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+
+ Poly1305 message authentication code, designed by D. J. Bernstein.
+
+
+ Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key
+ consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106
+ effective key bits) used in the authenticator.
+
+ The polynomial calculation in this implementation is adapted from the public domain poly1305-donna-unrolled C implementation
+ by Andrew M (@floodyberry).
+
+
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Current block of buffered input
+
+
+ Current offset in input buffer
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Constructs a Poly1305 MAC, where the key passed to init() will be used directly.
+
+
+ Constructs a Poly1305 MAC, using a 128 bit block cipher.
+
+
+
+ Initialises the Poly1305 MAC.
+
+ a {@link ParametersWithIV} containing a 128 bit nonce and a {@link KeyParameter} with
+ a 256 bit key complying to the {@link Poly1305KeyGenerator Poly1305 key format}.
+
+
+
+ Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe
+ Aumasson and Daniel J. Bernstein (https://131002.net/siphash/siphash.pdf).
+
+
+ "SipHash is a family of PRFs SipHash-c-d where the integer parameters c and d are the number of
+ compression rounds and the number of finalization rounds. A compression round is identical to a
+ finalization round and this round function is called SipRound. Given a 128-bit key k and a
+ (possibly empty) byte string m, SipHash-c-d returns a 64-bit value..."
+
+
+
+ SipHash-2-4
+
+
+ SipHash-c-d
+ the number of compression rounds
+ the number of finalization rounds
+
+
+
+ Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein MAC with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/MAC size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ This exception is thrown whenever a cipher requires a change of key, iv
+ or similar after x amount of bytes enciphered
+
+
+
+ implements Cipher-Block-Chaining (CBC) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of chaining.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CBC".
+
+
+ return the block size of the underlying cipher.
+
+ @return the block size of the underlying cipher.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Do the appropriate chaining step for CBC mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate chaining step for CBC mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the decrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Counter with Cipher Block Chaining mode (CCM) detailed in
+ NIST Special Publication 800-38C.
+
+ Note: this mode is a packet mode - it needs all the data up front.
+
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Returns a byte array containing the mac calculated as part of the
+ last encrypt or decrypt operation.
+
+ @return the last mac calculated.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @return a byte array containing the processed input..
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @param output output array.
+ @param outOff offset into output array to start putting processed bytes.
+ @return the number of bytes added to output.
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+ @throws DataLengthException if output buffer too short.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ A Cipher Text Stealing (CTS) mode cipher. CTS allows block ciphers to
+ be used to produce cipher text which is the same outLength as the plain text.
+
+
+ Create a buffered block cipher that uses Cipher Text Stealing
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ return the size of the output buffer required for an update of 'length' bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update
+ with length bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of length bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with length bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param length the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if cipher text decrypts wrongly (in
+ case the exception will never Get thrown).
+
+
+ A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and
+ Efficiency - by M. Bellare, P. Rogaway, D. Wagner.
+
+ http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf
+
+ EAX is an AEAD scheme based on CTR and OMAC1/CMAC, that uses a single block
+ cipher to encrypt and authenticate data. It's on-line (the length of a
+ message isn't needed to begin processing it), has good performances, it's
+ simple and provably secure (provided the underlying block cipher is secure).
+
+ Of course, this implementations is NOT thread-safe.
+
+
+ Constructor that accepts an instance of a block cipher engine.
+
+ @param cipher the engine to use
+
+
+
+ Implements the Galois/Counter mode (GCM) detailed in
+ NIST Special Publication 800-38D.
+
+
+
+
+ MAC sizes from 32 bits to 128 bits (must be a multiple of 8) are supported. The default is 128 bits.
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ implements the GOST 28147 OFB counter mode (GCTR).
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ counter mode (must have a 64 bit block size).
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param encrypting if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/GCTR"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+
+ A block cipher mode that includes authenticated encryption with a streaming mode
+ and optional associated data.
+
+
+
+ The name of the algorithm this cipher implements.
+
+
+ The block cipher underlying this algorithm.
+
+
+ Initialise the cipher.
+ Parameter can either be an AeadParameters or a ParametersWithIV object.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Add a single byte to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The byte to be processed.
+
+
+ Add a sequence of bytes to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The input byte array.
+ The offset into the input array where the data to be processed starts.
+ The number of bytes to be processed.
+
+
+ Encrypt/decrypt a single byte.
+
+ @param input the byte to be processed.
+ @param outBytes the output buffer the processed byte goes into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Process a block of bytes from in putting the result into out.
+
+ @param inBytes the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param outBytes the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Finish the operation either appending or verifying the MAC at the end of the data.
+
+ @param outBytes space for any resulting output data.
+ @param outOff offset into out to start copying the data at.
+ @return number of bytes written into out.
+ @throws InvalidOperationException if the cipher is in an inappropriate state.
+ @throws InvalidCipherTextException if the MAC fails to match.
+
+
+ Return the value of the MAC associated with the last stream processed.
+
+ @return MAC for plaintext data.
+
+
+ Return the size of the output buffer required for a ProcessBytes
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes
+ with len bytes of input.
+
+
+ Return the size of the output buffer required for a ProcessBytes plus a
+ DoFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes and DoFinal
+ with len bytes of input.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Base constructor. Nb value is set to 4.
+
+ base cipher to use under CCM.
+
+
+
+ Constructor allowing Nb configuration.
+
+ Nb is a parameter specified in CCM mode of DSTU7624 standard.
+ This parameter specifies maximum possible length of input.It should
+ be calculated as follows: Nb = 1 / 8 * (-3 + log[2]Nmax) + 1,
+ where Nmax - length of input message in bits.For practical reasons
+ Nmax usually less than 4Gb, e.g. for Nmax = 2^32 - 1, Nb = 4.
+
+ base cipher to use under CCM.
+ Nb value to use.
+
+
+ Implements a Gamming or Counter (CTR) mode on top of a DSTU 7624 block cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/KCTR"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ An implementation of RFC 7253 on The OCB
+ Authenticated-Encryption Algorithm, licensed per:
+
+ License for
+ Open-Source Software Implementations of OCB (Jan 9, 2013) - 'License 1'
+ Under this license, you are authorized to make, use, and distribute open-source software
+ implementations of OCB. This license terminates for you if you sue someone over their open-source
+ software implementation of OCB claiming that you have a patent covering their implementation.
+
+ This is a non-binding summary of a legal document (the link above). The parameters of the license
+ are specified in the license document and that document is controlling.
+
+
+ implements a Output-FeedBack (OFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/OFB"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ * Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode
+ * on top of a simple cipher. This class assumes the IV has been prepended
+ * to the data stream already, and just accomodates the reset after
+ * (blockSize + 2) bytes have been read.
+ *
+ * For further info see RFC 2440.
+ *
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/PGPCFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt one byte of data according to CFB mode.
+ @param data the byte to encrypt
+ @param blockOff offset in the current block
+ @returns the encrypted byte
+
+
+ Do the appropriate processing for CFB IV mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB IV mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Segmented Integer Counter (SIC) mode on top of a simple
+ block cipher.
+
+
+ Basic constructor.
+
+ @param c the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Calculator factory class for signature generation in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+
+
+
+ Constructor which also specifies a source of randomness to be used if one is required.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+ The source of randomness to be used in signature calculation.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+
+ Verifier class for signature verification in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The public key to be used in the verification operation.
+
+
+
+ Provider class which supports dynamic creation of signature verifiers.
+
+
+
+
+ Base constructor - specify the public key to be used in verification.
+
+ The public key to be used in creating verifiers provided by this object.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+ Block cipher padders are expected to conform to this interface
+
+
+ Initialise the padder.
+
+ @param param parameters, if any required.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+ @exception InvalidCipherTextException if the padding is badly formed
+ or invalid.
+
+
+ A padder that adds ISO10126-2 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds the padding according to the scheme referenced in
+ ISO 7814-4 - scheme 2 from ISO 9797-1. The first byte is 0x80, rest is 0x00
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the padder implements.
+
+ @return the name of the algorithm the padder implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion with padding. The PaddedBufferedBlockCipher
+ outputs a block only when the buffer is full and more data is being added,
+ or on a doFinal (unless the current block in the buffer is a pad block).
+ The default padding mechanism used is the one outlined in Pkcs5/Pkcs7.
+
+
+ Create a buffered block cipher with the desired padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ @param padding the padding type.
+
+
+ Create a buffered block cipher Pkcs7 padding
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the minimum size of the output buffer required for an update
+ plus a doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer. If the buffer is currently
+ full and padding needs to be added a call to doFinal will produce
+ 2 * GetBlockSize() bytes.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output or we are decrypting and the input is not block size aligned.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+
+
+ A padder that adds Pkcs7/Pkcs5 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Trailing-Bit-Compliment padding to a block.
+
+ This padding pads the block out compliment of the last bit
+ of the plain text.
+
+
+
+
+ Return the name of the algorithm the cipher implements.
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+ Note: this assumes that the last block of plain text is always
+ passed to it inside in. i.e. if inOff is zero, indicating the
+ entire block is to be overwritten with padding the value of in
+ should be the same as the last block of plain text.
+
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds X9.23 padding to a block - if a SecureRandom is
+ passed in random padding is assumed, otherwise padding with zeros is used.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if one is available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Null byte padding to a block.
+
+
+ Return the name of the algorithm the cipher implements.
+
+
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+
+
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+ @param length number of bytes making up the key
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2/3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ DES has 16 weak keys. This method will check
+ if the given DES key material is weak or semi-weak.
+ Key material that is too short is regarded as weak.
+
+ See "Applied
+ Cryptography" by Bruce Schneier for more information.
+
+ @return true if the given DES key material is weak or semi-weak,
+ false otherwise.
+
+
+ DES Keys use the LSB as the odd parity bit. This can
+ be used to check for corrupt keys.
+
+ @param bytes the byte array to set the parity on.
+
+
+ The minimum bitlength of the private value.
+
+
+ The bitlength of the private value.
+
+
+ Construct without a usage index, this will do a random construction of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+
+
+ Construct for a specific usage index - this has the effect of using verifiable canonical generation of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+ @param usageIndex a valid usage index.
+
+
+ return the generator - g
+
+
+ return private value limit - l
+
+
+ Parameter class for the HkdfBytesGenerator class.
+
+
+ Generates parameters for HKDF, specifying both the optional salt and
+ optional info. Step 1: Extract won't be skipped.
+
+ @param ikm the input keying material or seed
+ @param salt the salt to use, may be null for a salt for hashLen zeros
+ @param info the info to use, may be null for an info field of zero bytes
+
+
+ Factory method that makes the HKDF skip the extract part of the key
+ derivation function.
+
+ @param ikm the input keying material or seed, directly used for step 2:
+ Expand
+ @param info the info to use, may be null for an info field of zero bytes
+ @return HKDFParameters that makes the implementation skip step 1
+
+
+ Returns the input keying material or seed.
+
+ @return the keying material
+
+
+ Returns if step 1: extract has to be skipped or not
+
+ @return true for skipping, false for no skipping of step 1
+
+
+ Returns the salt, or null if the salt should be generated as a byte array
+ of HashLen zeros.
+
+ @return the salt, or null
+
+
+ Returns the info field, which may be empty (null is converted to empty).
+
+ @return the info field, never null
+
+
+ parameters for using an integrated cipher in stream mode.
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+ @param cipherKeySize the size of the associated Cipher key (in bits).
+
+
+ parameters for Key derivation functions for ISO-18033
+
+
+ parameters for Key derivation functions for IEEE P1363a
+
+
+ Parameters for mask derivation functions.
+
+
+ Parameters for NaccacheStern public private key generation. For details on
+ this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Parameters for generating a NaccacheStern KeyPair.
+
+ @param random
+ The source of randomness
+ @param strength
+ The desired strength of the Key in Bits
+ @param certainty
+ the probability that the generated primes are not really prime
+ as integer: 2^(-certainty) is then the probability
+ @param countSmallPrimes
+ How many small key factors are desired
+
+
+ * Parameters for a NaccacheStern KeyPair.
+ *
+ * @param random
+ * The source of randomness
+ * @param strength
+ * The desired strength of the Key in Bits
+ * @param certainty
+ * the probability that the generated primes are not really prime
+ * as integer: 2^(-certainty) is then the probability
+ * @param cntSmallPrimes
+ * How many small key factors are desired
+ * @param debug
+ * Ignored
+
+
+ @return Returns the certainty.
+
+
+ @return Returns the countSmallPrimes.
+
+
+ Public key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ @param privateKey
+
+
+ @return Returns the g.
+
+
+ @return Returns the lowerSigmaBound.
+
+
+ @return Returns the n.
+
+
+ Private key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Constructs a NaccacheSternPrivateKey
+
+ @param g
+ the public enryption parameter g
+ @param n
+ the public modulus n = p*q
+ @param lowerSigmaBound
+ the public lower sigma bound up to which data can be encrypted
+ @param smallPrimes
+ the small primes, of which sigma is constructed in the right
+ order
+ @param phi_n
+ the private modulus phi(n) = (p-1)(q-1)
+
+
+ Cipher parameters with a fixed salt value associated with them.
+
+
+
+ Parameters for the Skein hash function - a series of byte[] strings identified by integer tags.
+
+
+ Parameterised Skein can be used for:
+
+ - MAC generation, by providing a key.
+ - Randomised hashing, by providing a nonce.
+ - A hash function for digital signatures, associating a
+ public key with the message digest.
+ - A key derivation function, by providing a
+ key identifier.
+ - Personalised hashing, by providing a
+ recommended format or
+ arbitrary personalisation string.
+
+
+
+
+
+
+
+
+ The parameter type for a secret key, supporting MAC or KDF functions: 0
+
+
+
+
+ The parameter type for the Skein configuration block: 4
+
+
+
+
+ The parameter type for a personalisation string: 8
+
+
+
+
+ The parameter type for a public key: 12
+
+
+
+
+ The parameter type for a key identifier string: 16
+
+
+
+
+ The parameter type for a nonce: 20
+
+
+
+
+ The parameter type for the message: 48
+
+
+
+
+ The parameter type for the output transformation: 63
+
+
+
+
+ Obtains a map of type (int) to value (byte[]) for the parameters tracked in this object.
+
+
+
+
+ Obtains the value of the key parameter, or null if not
+ set.
+
+ The key.
+
+
+
+ Obtains the value of the personalisation parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the public key parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the key identifier parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the nonce parameter, or null if
+ not set.
+
+
+
+
+ A builder for .
+
+
+
+
+ Sets a parameters to apply to the Skein hash function.
+
+
+ Parameter types must be in the range 0,5..62, and cannot use the value 48
+ (reserved for message body).
+
+ Parameters with type < 48 are processed before
+ the message content, parameters with type > 48
+ are processed after the message and prior to output.
+
+ the type of the parameter, in the range 5..62.
+ the byte sequence of the parameter.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Implements the recommended personalisation format for Skein defined in Section 4.11 of
+ the Skein 1.3 specification.
+
+
+ The format is YYYYMMDD email@address distinguisher, encoded to a byte
+ sequence using UTF-8 encoding.
+
+ the date the personalised application of the Skein was defined.
+ the email address of the creation of the personalised application.
+ an arbitrary personalisation string distinguishing the application.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Constructs a new instance with the parameters provided to this
+ builder.
+
+
+
+ Private parameters for an SM2 key exchange.
+ The ephemeralPrivateKey is used to calculate the random point used in the algorithm.
+
+
+ Public parameters for an SM2 key exchange.
+ In this case the ephemeralPublicKey provides the random point used in the algorithm.
+
+
+
+ Parameters for tweakable block ciphers.
+
+
+
+
+ Gets the key.
+
+ the key to use, or null to use the current key.
+
+
+
+ Gets the tweak value.
+
+ The tweak to use, or null to use the current tweak.
+
+
+ super class for all Password Based Encyrption (Pbe) parameter generator classes.
+
+
+ base constructor.
+
+
+ initialise the Pbe generator.
+
+ @param password the password converted into bytes (see below).
+ @param salt the salt to be mixed with the password.
+ @param iterationCount the number of iterations the "mixing" function
+ is to be applied for.
+
+
+ return the password byte array.
+
+ @return the password byte array.
+
+
+ return the salt byte array.
+
+ @return the salt byte array.
+
+
+ return the iteration count.
+
+ @return the iteration count.
+
+
+ Generate derived parameters for a key of length keySize.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ Generate derived parameters for a key of length keySize, and
+ an initialisation vector (IV) of length ivSize.
+
+ @param keySize the length, in bits, of the key required.
+ @param ivSize the length, in bits, of the iv required.
+ @return a parameters object representing a key and an IV.
+
+
+ Generate derived parameters for a key of length keySize, specifically
+ for use with a MAC.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs5 (ascii, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ PKCS5 (UTF-8, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs12 (unicode, big endian, 2 zero pad bytes at the end).
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ An EntropySourceProvider where entropy generation is based on a SecureRandom output using SecureRandom.generateSeed().
+
+
+ Create a entropy source provider based on the passed in SecureRandom.
+
+ @param secureRandom the SecureRandom to base EntropySource construction on.
+ @param isPredictionResistant boolean indicating if the SecureRandom is based on prediction resistant entropy or not (true if it is).
+
+
+ Return an entropy source that will create bitsRequired bits of entropy on
+ each invocation of getEntropy().
+
+ @param bitsRequired size (in bits) of entropy to be created by the provided source.
+ @return an EntropySource that generates bitsRequired bits of entropy on each call to its getEntropy() method.
+
+
+ Random generation based on the digest with counter. Calling AddSeedMaterial will
+ always increase the entropy of the hash.
+
+ Internal access to the digest is synchronized so a single one of these can be shared.
+
+
+
+ A SP800-90A CTR DRBG.
+
+
+ Construct a SP800-90A CTR DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param engine underlying block cipher to use to support DRBG
+ @param keySizeInBits size of the key to use with the block cipher.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Pad out a key for TDEA, setting odd parity for each byte.
+
+ @param keyMaster
+ @param keyOff
+ @param tmp
+ @param tmpOff
+
+
+ Used by both Dual EC and Hash.
+
+
+ A SP800-90A Hash DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param digest source digest to use for DRB stream.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ A SP800-90A HMAC DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param hMac Hash MAC to base the DRBG on.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Interface to SP800-90A deterministic random bit generators.
+
+
+ Return the block size of the DRBG.
+
+ @return the block size (in bits) produced by each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Generate numBytes worth of entropy from the passed in entropy source.
+
+ @param entropySource the entropy source to request the data from.
+ @param numBytes the number of bytes of entropy requested.
+ @return a byte array populated with the random data.
+
+
+ Generic interface for objects generating random bytes.
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+
+ Takes bytes generated by an underling RandomGenerator and reverses the order in
+ each small window (of configurable size).
+
+ Access to internals is synchronized so a single one of these can be shared.
+
+
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+ Force a reseed of the DRBG.
+ optional additional input
+
+
+ Builder class for making SecureRandom objects based on SP 800-90A Deterministic Random Bit Generators (DRBG).
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Set the personalization string for DRBG SecureRandoms created by this builder
+ @param personalizationString the personalisation string for the underlying DRBG.
+ @return the current builder.
+
+
+ Set the security strength required for DRBGs used in building SecureRandom objects.
+
+ @param securityStrength the security strength (in bits)
+ @return the current builder.
+
+
+ Set the amount of entropy bits required for seeding and reseeding DRBGs used in building SecureRandom objects.
+
+ @param entropyBitsRequired the number of bits of entropy to be requested from the entropy source on each seed/reseed.
+ @return the current builder.
+
+
+ Build a SecureRandom based on a SP 800-90A Hash DRBG.
+
+ @param digest digest algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a Hash DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A CTR DRBG.
+
+ @param cipher the block cipher to base the DRBG on.
+ @param keySizeInBits key size in bits to be used with the block cipher.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a CTR DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A HMAC DRBG.
+
+ @param hMac HMAC algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a HMAC DRBG.
+
+
+ A thread based seed generator - one source of randomness.
+
+ Based on an idea from Marcus Lippert.
+
+
+
+ Generate seed bytes. Set fast to false for best quality.
+
+ If fast is set to true, the code should be round about 8 times faster when
+ generating a long sequence of random bytes. 20 bytes of random values using
+ the fast mode take less than half a second on a Nokia e70. If fast is set to false,
+ it takes round about 2500 ms.
+
+ @param numBytes the number of bytes to generate
+ @param fast true if fast mode should be used
+
+
+
+ Permutation generated by code:
+
+ // First 1850 fractional digit of Pi number.
+ byte[] key = new BigInteger("14159265358979323846...5068006422512520511").ToByteArray();
+ s = 0;
+ P = new byte[256];
+ for (int i = 0; i < 256; i++)
+ {
+ P[i] = (byte) i;
+ }
+ for (int m = 0; m < 768; m++)
+ {
+ s = P[(s + P[m & 0xff] + key[m % key.length]) & 0xff];
+ byte temp = P[m & 0xff];
+ P[m & 0xff] = P[s & 0xff];
+ P[s & 0xff] = temp;
+ }
+
+
+
+ Value generated in the same way as P.
+
+
+
+ @param engine
+ @param entropySource
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the RNG.
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Construct a X9.31 secure random generator using the passed in engine and key. If predictionResistant is true the
+ generator will be reseeded on each request.
+
+ @param engine a block cipher to use as the operator.
+ @param key the block cipher key to initialise engine with.
+ @param predictionResistant true if engine to be reseeded on each use, false otherwise.
+ @return a SecureRandom.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ The Digital Signature Algorithm - as described in "Handbook of Applied
+ Cryptography", pages 452 - 453.
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message for standard DSA the message should be a
+ SHA-1 hash of the real message to be verified.
+
+
+ EC-DSA as described in X9.62
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message (for standard DSA the message should be
+ a SHA-1 hash of the real message to be verified).
+
+
+ GOST R 34.10-2001 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional GOST3410 the message should be a GOST3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a GOST3410 signature for
+ the passed in message (for standard GOST3410 the message should be
+ a GOST3411 hash of the real message to be verified).
+
+
+ EC-NR as described in IEEE 1363-2000
+
+
+ generate a signature for the given message using the key we were
+ initialised with. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR it *must* be at least as long.
+
+ @param digest the digest to be signed.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ return true if the value r and s represent a signature for the
+ message passed in. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR, it *must* be at least as long. But just in case the signer
+ applied mod(n) to the longer digest, this implementation will
+ apply mod(n) during verification.
+
+ @param digest the digest to be verified.
+ @param r the r value of the signature.
+ @param s the s value of the signature.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ initialise the signer for signing or verification.
+
+ @param forSigning
+ true if for signing, false otherwise
+ @param parameters
+ necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using the key
+ we were initialised with.
+
+
+ return true if the internal state represents the signature described in
+ the passed in array.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ Gost R 34.10-94 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional Gost3410 the message should be a Gost3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a Gost3410 signature for
+ the passed in message for standard Gost3410 the message should be a
+ Gost3411 hash of the real message to be verified.
+
+
+ A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979.
+
+
+ Base constructor.
+
+ @param digest digest to build the HMAC on.
+
+
+ Interface define calculators of K values for DSA/ECDSA.
+
+
+ Return true if this calculator is deterministic, false otherwise.
+
+ @return true if deterministic, otherwise false.
+
+
+ Non-deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param random a source of randomness.
+
+
+ Deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param d the DSA private value.
+ @param message the message being signed.
+
+
+ Return the next valid value of K.
+
+ @return a K value.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
+
+ Note: the usual length for the salt is the length of the hash
+ function used in bytes.
+
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ length of salt in bytes.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+ length of salt in bytes.
+
+
+
+ Initialise the signer.
+ true if for signing, false if for verification.
+ parameters for signature generation/verification. If the
+ parameters are for generation they should be a ParametersWithRandom,
+ a ParametersWithSalt, or just an RsaKeyParameters object. If RsaKeyParameters
+ are passed in a SecureRandom will be created.
+
+ if wrong parameter type or a fixed
+ salt is passed in which is the wrong length.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise, or if not sure.
+
+
+
+ int to octet string.
+ int to octet string.
+
+
+ long to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 1)
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise.
+
+
+
+ RSA-PSS as described in Pkcs# 1 v 2.1.
+
+ Note: the usual value for the salt length is the number of
+ bytes in the hash function.
+
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the length of the salt to use (in bytes).
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the fixed salt to be used.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+
+ int to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+
+ Load oid table.
+
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ The SM2 Digital Signature algorithm.
+
+
+ X9.31-1998 - signing using a hash.
+
+ The message digest hash, H, is encapsulated to form a byte string as follows
+
+
+ EB = 06 || PS || 0xBA || H || TRAILER
+
+ where PS is a string of bytes all of value 0xBB of length such that |EB|=|n|, and TRAILER is the ISO/IEC 10118 part number†for the digest. The byte string, EB, is converted to an integer value, the message representative, f.
+
+
+ Generate a signer with either implicit or explicit trailers for X9.31.
+
+ @param cipher base cipher to use for signature creation/verification
+ @param digest digest to use.
+ @param implicit whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+ @param cipher cipher to use.
+ @param digest digest to sign with.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+ a wrapper for block ciphers with a single byte block size, so that they
+ can be treated like stream ciphers.
+
+
+ basic constructor.
+
+ @param cipher the block cipher to be wrapped.
+ @exception ArgumentException if the cipher has a block size other than
+ one.
+
+
+ initialise the underlying cipher.
+
+ @param forEncryption true if we are setting up for encryption, false otherwise.
+ @param param the necessary parameters for the underlying cipher to be initialised.
+
+
+ return the name of the algorithm we are wrapping.
+
+ @return the name of the algorithm we are wrapping.
+
+
+ encrypt/decrypt a single byte returning the result.
+
+ @param in the byte to be processed.
+ @return the result of processing the input byte.
+
+
+ process a block of bytes from in putting the result into out.
+
+ @param in the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param out the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data stars at.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ reset the underlying cipher. This leaves it in the same state
+ it was at after the last init (if there was one).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.2
+
+
+
+ This message notifies the recipient that the sender will not send any more messages on this
+ connection. Note that as of TLS 1.1, failure to properly close a connection no longer
+ requires that a session not be resumed. This is a change from TLS 1.0 ("The session becomes
+ unresumable if any connection is terminated without proper close_notify messages with level
+ equal to warning.") to conform with widespread implementation practice.
+
+
+ An inappropriate message was received. This alert is always fatal and should never be
+ observed in communication between proper implementations.
+
+
+ This alert is returned if a record is received with an incorrect MAC. This alert also MUST be
+ returned if an alert is sent because a TLSCiphertext decrypted in an invalid way: either it
+ wasn't an even multiple of the block length, or its padding values, when checked, weren't
+ correct. This message is always fatal and should never be observed in communication between
+ proper implementations (except when messages were corrupted in the network).
+
+
+ This alert was used in some earlier versions of TLS, and may have permitted certain attacks
+ against the CBC mode [CBCATT]. It MUST NOT be sent by compliant implementations.
+
+
+ A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record
+ decrypted to a TLSCompressed record with more than 2^14+1024 bytes. This message is always
+ fatal and should never be observed in communication between proper implementations (except
+ when messages were corrupted in the network).
+
+
+ The decompression function received improper input (e.g., data that would expand to excessive
+ length). This message is always fatal and should never be observed in communication between
+ proper implementations.
+
+
+ Reception of a handshake_failure alert message indicates that the sender was unable to
+ negotiate an acceptable set of security parameters given the options available. This is a
+ fatal error.
+
+
+ This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ A certificate was corrupt, contained signatures that did not verify correctly, etc.
+
+
+ A certificate was of an unsupported type.
+
+
+ A certificate was revoked by its signer.
+
+
+ A certificate has expired or is not currently valid.
+
+
+ Some other (unspecified) issue arose in processing the certificate, rendering it
+ unacceptable.
+
+
+ A field in the handshake was out of range or inconsistent with other fields. This message is
+ always fatal.
+
+
+ A valid certificate chain or partial chain was received, but the certificate was not accepted
+ because the CA certificate could not be located or couldn't be matched with a known, trusted
+ CA. This message is always fatal.
+
+
+ A valid certificate was received, but when access control was applied, the sender decided not
+ to proceed with negotiation. This message is always fatal.
+
+
+ A message could not be decoded because some field was out of the specified range or the
+ length of the message was incorrect. This message is always fatal and should never be
+ observed in communication between proper implementations (except when messages were corrupted
+ in the network).
+
+
+ A handshake cryptographic operation failed, including being unable to correctly verify a
+ signature or validate a Finished message. This message is always fatal.
+
+
+ This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ The protocol version the client has attempted to negotiate is recognized but not supported.
+ (For example, old protocol versions might be avoided for security reasons.) This message is
+ always fatal.
+
+
+ Returned instead of handshake_failure when a negotiation has failed specifically because the
+ server requires ciphers more secure than those supported by the client. This message is
+ always fatal.
+
+
+ An internal error unrelated to the peer or the correctness of the protocol (such as a memory
+ allocation failure) makes it impossible to continue. This message is always fatal.
+
+
+ This handshake is being canceled for some reason unrelated to a protocol failure. If the user
+ cancels an operation after the handshake is complete, just closing the connection by sending
+ a close_notify is more appropriate. This alert should be followed by a close_notify. This
+ message is generally a warning.
+
+
+ Sent by the client in response to a hello request or by the server in response to a client
+ hello after initial handshaking. Either of these would normally lead to renegotiation; when
+ that is not appropriate, the recipient should respond with this alert. At that point, the
+ original requester can decide whether to proceed with the connection. One case where this
+ would be appropriate is where a server has spawned a process to satisfy a request; the
+ process might receive security parameters (key length, authentication, etc.) at startup, and
+ it might be difficult to communicate changes to these parameters after that point. This
+ message is always a warning.
+
+
+ Sent by clients that receive an extended server hello containing an extension that they did
+ not put in the corresponding client hello. This message is always fatal.
+
+
+ This alert is sent by servers who are unable to retrieve a certificate chain from the URL
+ supplied by the client (see Section 3.3). This message MAY be fatal - for example if client
+ authentication is required by the server for the handshake to continue and the server is
+ unable to retrieve the certificate chain, it may send a fatal alert.
+
+
+ This alert is sent by servers that receive a server_name extension request, but do not
+ recognize the server name. This message MAY be fatal.
+
+
+ This alert is sent by clients that receive an invalid certificate status response (see
+ Section 3.6). This message is always fatal.
+
+
+ This alert is sent by servers when a certificate hash does not match a client provided
+ certificate_hash. This message is always fatal.
+
+
+ If the server does not recognize the PSK identity, it MAY respond with an
+ "unknown_psk_identity" alert message.
+
+
+ If TLS_FALLBACK_SCSV appears in ClientHello.cipher_suites and the highest protocol version
+ supported by the server is higher than the version indicated in ClientHello.client_version,
+ the server MUST respond with a fatal inappropriate_fallback alert [..].
+
+
+
+ RFC 5246 7.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ A queue for bytes.
+
+ This file could be more optimized.
+
+
+
+
+ The smallest number which can be written as 2^x which is bigger than i.
+
+
+ The initial size for our buffer.
+
+
+ The buffer where we store our data.
+
+
+ How many bytes at the beginning of the buffer are skipped.
+
+
+ How many bytes in the buffer are valid data.
+
+
+ Add some data to our buffer.
+ A byte-array to read data from.
+ How many bytes to skip at the beginning of the array.
+ How many bytes to read from the array.
+
+
+ The number of bytes which are available in this buffer.
+
+
+ Copy some bytes from the beginning of the data to the provided Stream.
+ The Stream to copy the bytes to.
+ How many bytes to copy.
+ If insufficient data is available.
+ If there is a problem copying the data.
+
+
+ Read data from the buffer.
+ The buffer where the read data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ Return a MemoryStream over some bytes at the beginning of the data.
+ How many bytes will be readable.
+ A MemoryStream over the data.
+ If insufficient data is available.
+
+
+ Remove some bytes from our data from the beginning.
+ How many bytes to remove.
+
+
+ Parsing and encoding of a Certificate struct from RFC 4346.
+
+
+ opaque ASN.1Cert<2^24-1>;
+
+ struct {
+ ASN.1Cert certificate_list<0..2^24-1>;
+ } Certificate;
+
+
+ @see Org.BouncyCastle.Asn1.X509.X509CertificateStructure
+
+
+ The certificates.
+
+
+ @return an array of {@link org.bouncycastle.asn1.x509.Certificate} representing a certificate
+ chain.
+
+
+ @return true if this certificate chain contains no certificates, or
+ false otherwise.
+
+
+ Encode this {@link Certificate} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link Certificate} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link Certificate} object.
+ @throws IOException
+
+
+ Parsing and encoding of a CertificateRequest struct from RFC 4346.
+
+
+ struct {
+ ClientCertificateType certificate_types<1..2^8-1>;
+ DistinguishedName certificate_authorities<3..2^16-1>
+ } CertificateRequest;
+
+
+ @see ClientCertificateType
+ @see X509Name
+
+
+ @param certificateTypes see {@link ClientCertificateType} for valid constants.
+ @param certificateAuthorities an {@link IList} of {@link X509Name}.
+
+
+ @return an array of certificate types
+ @see {@link ClientCertificateType}
+
+
+ @return an {@link IList} of {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ @return an {@link IList} of {@link X509Name}
+
+
+ Encode this {@link CertificateRequest} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateRequest} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateRequest} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatus} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatus} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatus} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatusRequest} object.
+ @throws IOException
+
+
+ RFC 6091
+
+
+ @param type
+ see {@link CertChainType} for valid constants.
+ @param urlAndHashList
+ a {@link IList} of {@link UrlAndHash}.
+
+
+ @return {@link CertChainType}
+
+
+ @return an {@link IList} of {@link UrlAndHash}
+
+
+ Encode this {@link CertificateUrl} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateUrl} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateUrl} object.
+ @throws IOException
+
+
+ draft-ietf-tls-chacha20-poly1305-04
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 2246 A.5
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ A combined hash, which implements md5(m) || sha1(m).
+
+
+ @see org.bouncycastle.crypto.Digest#update(byte[], int, int)
+
+
+ @see org.bouncycastle.crypto.Digest#doFinal(byte[], int)
+
+
+ @see org.bouncycastle.crypto.Digest#reset()
+
+
+
+ RFC 2246 6.1
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246 6.2.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Accept only the group parameters specified in RFC 5054 Appendix A.
+
+
+ Specify a custom set of acceptable group parameters.
+
+ @param groups a {@link Vector} of acceptable {@link SRP6GroupParameters}
+
+
+ Buffers input until the hash algorithm is determined.
+
+
+ @return a {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ Encode this {@link DigitallySigned} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link DigitallySigned} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link DigitallySigned} object.
+ @throws IOException
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check that there are no "extra" messages left in the current inbound flight
+
+
+ RFC 4347 4.1.2.5 Anti-replay
+
+ Support fast rejection of duplicate records by maintaining a sliding receive window
+
+
+ Check whether a received record with the given sequence number should be rejected as a duplicate.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of a received record.
+ @return true if the record should be discarded without further processing.
+
+
+ Report that a received record with the given sequence number passed authentication checks.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of an authenticated record.
+
+
+ When a new epoch begins, sequence numbers begin again at 0
+
+
+ RFC 4492 5.4. (Errata ID: 2389)
+
+
+
+ RFC 4492 5.4
+
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a prime field.
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a characteristic-2 field.
+
+
+ Indicates that a named curve is used. This option SHOULD be used when applicable.
+
+
+
+ RFC 4492 5.1.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 5705
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ Encode this {@link HeartbeatExtension} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatExtension} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatExtension} object.
+ @throws IOException
+
+
+ Encode this {@link HeartbeatMessage} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatMessage} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatMessage} object.
+ @throws IOException
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ RFC 4492 5.1.1
+ The named curves defined here are those specified in SEC 2 [13]. Note that many of
+ these curves are also recommended in ANSI X9.62 [7] and FIPS 186-2 [11]. Values 0xFE00
+ through 0xFEFF are reserved for private use. Values 0xFF01 and 0xFF02 indicate that the
+ client supports arbitrary prime and characteristic-2 curves, respectively (the curve
+ parameters must be encoded explicitly in ECParameters).
+
+
+
+ Encode this {@link NewSessionTicket} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link NewSessionTicket} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link NewSessionTicket} object.
+ @throws IOException
+
+
+ RFC 3546 3.6
+
+
+ @param responderIDList
+ an {@link IList} of {@link ResponderID}, specifying the list of trusted OCSP
+ responders. An empty list has the special meaning that the responders are
+ implicitly known to the server - e.g., by prior arrangement.
+ @param requestExtensions
+ OCSP request extensions. A null value means that there are no extensions.
+
+
+ @return an {@link IList} of {@link ResponderID}
+
+
+ @return OCSP request extensions
+
+
+ Encode this {@link OcspStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link OcspStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return an {@link OcspStatusRequest} object.
+ @throws IOException
+
+
+ RFC 5246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+
+
+ An implementation of the TLS 1.0/1.1/1.2 record layer, allowing downgrade to SSLv3.
+
+
+ RFC 5246 E.1. "Earlier versions of the TLS specification were not fully clear on what the
+ record layer version number (TLSPlaintext.version) should contain when sending ClientHello
+ (i.e., before it is known which version of the protocol will be employed). Thus, TLS servers
+ compliant with this specification MUST accept any value {03,XX} as the record layer version
+ number for ClientHello."
+
+
+ @return {@link ConnectionEnd}
+
+
+ @return {@link CipherSuite}
+
+
+ @return {@link CompressionMethod}
+
+
+ @return {@link PRFAlgorithm}
+
+
+ Encode this {@link ServerDHParams} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerDHParams} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerDHParams} object.
+ @throws IOException
+
+
+ Encode this {@link ServerName} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerName} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerName} object.
+ @throws IOException
+
+
+ @param serverNameList an {@link IList} of {@link ServerName}.
+
+
+ @return an {@link IList} of {@link ServerName}.
+
+
+ Encode this {@link ServerNameList} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerNameList} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerNameList} object.
+ @throws IOException
+
+
+ Encode this {@link ServerSRPParams} to an {@link OutputStream}.
+
+ @param output
+ the {@link OutputStream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerSRPParams} from an {@link InputStream}.
+
+ @param input
+ the {@link InputStream} to parse from.
+ @return a {@link ServerSRPParams} object.
+ @throws IOException
+
+
+ RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned)
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ @param hash {@link HashAlgorithm}
+ @param signature {@link SignatureAlgorithm}
+
+
+ @return {@link HashAlgorithm}
+
+
+ @return {@link SignatureAlgorithm}
+
+
+ Encode this {@link SignatureAndHashAlgorithm} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link SignatureAndHashAlgorithm} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link SignatureAndHashAlgorithm} object.
+ @throws IOException
+
+
+ An implementation of {@link TlsSRPIdentityManager} that simulates the existence of "unknown" identities
+ to obscure the fact that there is no verifier for them.
+
+
+ Create a {@link SimulatedTlsSRPIdentityManager} that implements the algorithm from RFC 5054 2.5.1.3
+
+ @param group the {@link SRP6GroupParameters} defining the group that SRP is operating in
+ @param seedKey the secret "seed key" referred to in RFC 5054 2.5.1.3
+ @return an instance of {@link SimulatedTlsSRPIdentityManager}
+
+
+ HMAC implementation based on original internet draft for HMAC (RFC 2104)
+
+ The difference is that padding is concatentated versus XORed with the key
+
+ H(K + opad, H(K + ipad, text))
+
+
+ Base constructor for one of the standard digest algorithms that the byteLength of
+ the algorithm is know for. Behaviour is undefined for digests other than MD5 or SHA1.
+
+ @param digest the digest.
+
+
+ Reset the mac generator.
+
+
+ RFC 4680
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called by the protocol handler to report the server certificate.
+
+
+ This method is responsible for certificate verification and validation
+
+ The server received
+
+
+
+
+ Return client credentials in response to server's certificate request
+
+
+ A containing server certificate request details
+
+
+ A to be used for client authentication
+ (or null for no client authentication)
+
+
+
+
+
+ A generic TLS 1.0-1.2 / SSLv3 block cipher. This can be used for AES or 3DES for example.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called at the start of a new TLS session, before any other methods.
+
+
+ A
+
+
+
+ Return the session this client wants to resume, if any.
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ A representing the resumable session to be used for this connection,
+ or null to use a new session.
+
+
+
+
+ Return the to use for the TLSPlaintext.version field prior to
+ receiving the server version. NOTE: This method is not called for DTLS.
+
+
+ See RFC 5246 E.1.: "TLS clients that wish to negotiate with older servers MAY send any value
+ {03,XX} as the record layer version number. Typical values would be {03,00}, the lowest
+ version number supported by the client, and the value of ClientHello.client_version. No
+ single value will guarantee interoperability with all old servers, but this is a complex
+ topic beyond the scope of this document."
+
+ The to use.
+
+
+
+ Get the list of cipher suites that this client supports.
+
+
+ An array of values, each specifying a supported cipher suite.
+
+
+
+
+ Get the list of compression methods that this client supports.
+
+
+ An array of values, each specifying a supported compression method.
+
+
+
+
+ Get the (optional) table of client extensions to be included in (extended) client hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+
+
+
+ Notifies the client of the session_id sent in the ServerHello.
+
+ An array of
+
+
+
+ Report the cipher suite that was selected by the server.
+
+
+ The protocol handler validates this value against the offered cipher suites
+
+
+
+ A
+
+
+
+
+ Report the compression method that was selected by the server.
+
+
+ The protocol handler validates this value against the offered compression methods
+
+
+
+ A
+
+
+
+
+ Report the extensions from an extended server hello.
+
+
+ Will only be called if we returned a non-null result from .
+
+
+ A (Int32 -> byte[])
+
+
+
+ A list of
+
+
+
+
+ Return an implementation of to negotiate the key exchange
+ part of the protocol.
+
+
+ A
+
+
+
+
+
+ Return an implementation of to handle authentication
+ part of the protocol.
+
+
+
+
+ A list of
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message
+
+ This method will be called (only) when a NewSessionTicket handshake message is received. The
+ ticket is opaque to the client and clients MUST NOT examine the ticket under the assumption
+ that it complies with e.g. RFC 5077 4. Recommended Ticket Construction.
+
+ The ticket
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the server
+ @param output The stream of data to the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Initiates a TLS handshake in the role of client.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#NotifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsClient The {@link TlsClient} to use for the handshake.
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+ Used to get the resumable session, if any, used by this connection. Only available after the
+ handshake has successfully completed.
+
+ @return A {@link TlsSession} representing the resumable session used by this connection, or
+ null if no resumable session available.
+ @see TlsPeer#NotifyHandshakeComplete()
+
+
+ Export keying material according to RFC 5705: "Keying Material Exporters for TLS".
+
+ @param asciiLabel indicates which application will use the exported keys.
+ @param context_value allows the application using the exporter to mix its own data with the TLS PRF for
+ the exporter output.
+ @param length the number of bytes to generate
+ @return a pseudorandom bit string of 'length' bytes generated from the master_secret.
+
+
+ (D)TLS DH key exchange.
+
+
+ (D)TLS ECDHE key exchange (see RFC 4492).
+
+
+ (D)TLS ECDH key exchange (see RFC 4492).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic interface for key exchange implementations in (D)TLS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
+
+
+
+ Generate a new instance of an TlsMac.
+
+ @param context the TLS client context
+ @param digest The digest to use.
+ @param key A byte-array where the key for this MAC is located.
+ @param keyOff The number of bytes to skip, before the key starts in the buffer.
+ @param keyLen The length of the key.
+
+
+ @return the MAC write secret
+
+
+ @return The output length of this MAC.
+
+
+ Calculate the MAC for some given data.
+
+ @param type The message type of the message.
+ @param message A byte-buffer containing the message.
+ @param offset The number of bytes to skip, before the message starts.
+ @param length The length of the message.
+ @return A new byte-buffer containing the MAC value.
+
+
+
+ This exception will be thrown(only) when the connection is closed by the peer without sending a
+ close_notify warning alert.
+
+
+ If this happens, the TLS protocol cannot rule out truncation of the connection data (potentially
+ malicious). It may be possible to check for truncation via some property of a higher level protocol
+ built upon TLS, e.g.the Content-Length header for HTTPS.
+
+
+
+
+ A NULL CipherSuite, with optional MAC.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on
+ gmt_unix_time containing the current time, we recommend that implementors MAY provide the
+ ability to set gmt_unix_time as an option only, off by default."
+
+
+ true if the current time should be used in the gmt_unix_time field of
+ Random, or false if gmt_unix_time should contain a cryptographically
+ random value.
+
+
+
+
+ Report whether the server supports secure renegotiation
+
+
+ The protocol handler automatically processes the relevant extensions
+
+
+ A , true if the server supports secure renegotiation
+
+
+
+
+
+ Return an implementation of to handle record compression.
+
+ A
+
+
+
+
+ Return an implementation of to use for encryption/decryption.
+
+ A
+
+
+
+ This method will be called when an alert is raised by the protocol.
+
+
+ A human-readable message explaining what caused this alert. May be null.
+ The Exception that caused this alert to be raised. May be null.
+
+
+ This method will be called when an alert is received from the remote peer.
+
+
+
+
+ Notifies the peer that the handshake has been successfully completed.
+
+
+
+ This method is called, when a change cipher spec message is received.
+
+ @throws IOException If the message has an invalid content or the handshake is not in the correct
+ state.
+
+
+ Read data from the network. The method will return immediately, if there is still some data
+ left in the buffer, or block until some application data has been read from the network.
+
+ @param buf The buffer where the data will be copied to.
+ @param offset The position where the data will be placed in the buffer.
+ @param len The maximum number of bytes to read.
+ @return The number of bytes read.
+ @throws IOException If something goes wrong during reading data.
+
+
+ Send some application data to the remote system.
+
+ The method will handle fragmentation internally.
+
+ @param buf The buffer with the data.
+ @param offset The position in the buffer where the data is placed.
+ @param len The length of the data.
+ @throws IOException If something goes wrong during sending.
+
+
+ The secure bidirectional stream for this connection
+ Only allowed in blocking mode.
+
+
+ Should be called in non-blocking mode when the input data reaches EOF.
+
+
+ Offer input from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the input buffer is "owned" by this object. Other code
+ must not attempt to do anything with it.
+
+ This method will decrypt and process all records that are fully available.
+ If only part of a record is available, the buffer will be retained until the
+ remainder of the record is offered.
+
+ If any records containing application data were processed, the decrypted data
+ can be obtained using {@link #readInput(byte[], int, int)}. If any records
+ containing protocol data were processed, a response may have been generated.
+ You should always check to see if there is any available output after calling
+ this method by calling {@link #getAvailableOutputBytes()}.
+ @param input The input buffer to offer
+ @throws IOException If an error occurs while decrypting or processing a record
+
+
+ Gets the amount of received application data. A call to {@link #readInput(byte[], int, int)}
+ is guaranteed to be able to return at least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available application data
+
+
+ Retrieves received application data. Use {@link #getAvailableInputBytes()} to check
+ how much application data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the application data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Offer output from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the specified section of the buffer will have been
+ processed. Use {@link #readOutput(byte[], int, int)} to get the bytes to
+ transmit to the other peer.
+
+ This method must not be called until after the handshake is complete! Attempting
+ to call it before the handshake is complete will result in an exception.
+ @param buffer The buffer containing application data to encrypt
+ @param offset The offset at which to begin reading data
+ @param length The number of bytes of data to read
+ @throws IOException If an error occurs encrypting the data, or the handshake is not complete
+
+
+ Gets the amount of encrypted data available to be sent. A call to
+ {@link #readOutput(byte[], int, int)} is guaranteed to be able to return at
+ least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available encrypted data
+
+
+ Retrieves encrypted data to be sent. Use {@link #getAvailableOutputBytes()} to check
+ how much encrypted data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the encrypted data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Closes this connection.
+
+ @throws IOException If something goes wrong during closing.
+
+
+ Make sure the InputStream 'buf' now empty. Fail otherwise.
+
+ @param buf The InputStream to check.
+ @throws IOException If 'buf' is not empty.
+
+
+ 'sender' only relevant to SSLv3
+
+
+ Both streams can be the same object
+
+
+ (D)TLS PSK key exchange (RFC 4279).
+
+
+ (D)TLS and SSLv3 RSA key exchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A (Int32 -> byte[]). Will never be null.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the (optional) table of server extensions to be included in (extended) server hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+ A (). May be null.
+
+
+
+
+
+
+
+
+ This method will be called (only) if the server included an extension of type
+ "status_request" with empty "extension_data" in the extended server hello. See RFC 3546
+ 3.6. Certificate Status Request. If a non-null is returned, it
+ is sent to the client as a handshake message of type "certificate_status".
+
+ A to be sent to the client (or null for none).
+
+
+
+
+
+
+
+
+
+ ()
+
+
+
+
+ Called by the protocol handler to report the client certificate, only if GetCertificateRequest
+ returned non-null.
+
+ Note: this method is responsible for certificate verification and validation.
+ the effective client certificate (may be an empty chain).
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message.
+
+ This method will be called (only) if a NewSessionTicket extension was sent by the server. See
+ RFC 5077 4. Recommended Ticket Construction for recommended format and protection.
+
+ The ticket)
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Receives a TLS handshake in the role of server.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#notifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsServer
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+
+
+
+ Check whether the given SRP group parameters are acceptable for use.
+
+ @param group the {@link SRP6GroupParameters} to check
+ @return true if (and only if) the specified group parameters are acceptable
+
+
+ Lookup the {@link TlsSRPLoginParameters} corresponding to the specified identity.
+
+ NOTE: To avoid "identity probing", unknown identities SHOULD be handled as recommended in RFC
+ 5054 2.5.1.3. {@link SimulatedTlsSRPIdentityManager} is provided for this purpose.
+
+ @param identity
+ the SRP identity sent by the connecting client
+ @return the {@link TlsSRPLoginParameters} for the specified identity, or else 'simulated'
+ parameters if the identity is not recognized. A null value is also allowed, but not
+ recommended.
+
+
+ (D)TLS SRP key exchange (RFC 5054).
+
+
+ RFC 5764 DTLS Extension to Establish Keys for SRTP.
+
+
+
+
+
+
+
+
+
+
+
+ Some helper functions for MicroTLS.
+
+
+ Add a 'signature_algorithms' extension to existing extensions.
+
+ @param extensions A {@link Hashtable} to add the extension to.
+ @param supportedSignatureAlgorithms {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ Get a 'signature_algorithms' extension from extensions.
+
+ @param extensions A {@link Hashtable} to get the extension from, if it is present.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}, or null.
+ @throws IOException
+
+
+ Create a 'signature_algorithms' extension value.
+
+ @param supportedSignatureAlgorithms A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @return A byte array suitable for use as an extension value.
+ @throws IOException
+
+
+ Read 'signature_algorithms' extension data.
+
+ @param extensionData The extension data.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ RFC 6066 5.
+
+
+ Encode this {@link UrlAndHash} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link UrlAndHash} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link UrlAndHash} object.
+ @throws IOException
+
+
+ RFC 4681
+
+
+ RFC 5764 4.1.1
+
+
+ @param protectionProfiles see {@link SrtpProtectionProfile} for valid constants.
+ @param mki valid lengths from 0 to 255.
+
+
+ @return see {@link SrtpProtectionProfile} for valid constants.
+
+
+ @return valid lengths from 0 to 255.
+
+
+ return a = a + b - b preserved.
+
+
+ unsigned comparison on two arrays - note the arrays may
+ start with leading zeros.
+
+
+ return z = x / y - done in place (z value preserved, x contains the
+ remainder)
+
+
+ return whether or not a BigInteger is probably prime with a
+ probability of 1 - (1/2)**certainty.
+ From Knuth Vol 2, pg 395.
+
+
+ Calculate the numbers u1, u2, and u3 such that:
+
+ u1 * a + u2 * b = u3
+
+ where u3 is the greatest common divider of a and b.
+ a and b using the extended Euclid algorithm (refer p. 323
+ of The Art of Computer Programming vol 2, 2nd ed).
+ This also seems to have the side effect of calculating
+ some form of multiplicative inverse.
+
+ @param a First number to calculate gcd for
+ @param b Second number to calculate gcd for
+ @param u1Out the return object for the u1 value
+ @return The greatest common divisor of a and b
+
+
+ return w with w = x * x - w is assumed to have enough space.
+
+
+ return x with x = y * z - x is assumed to have enough space.
+
+
+ Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size)
+
+
+ Montgomery multiplication: a = x * y * R^(-1) mod m
+
+ Based algorithm 14.36 of Handbook of Applied Cryptography.
+
+ m, x, y should have length n
+ a should have length (n + 1)
+ b = 2^32, R = b^n
+
+ The result is put in x
+
+ NOTE: the indices of x, y, m, a different in HAC and in Java
+
+
+ return x = x % y - done in place (y value preserved)
+
+
+ do a left shift - this returns a new array.
+
+
+ do a right shift - this does it in place.
+
+
+ do a right shift by one - this does it in place.
+
+
+ returns x = x - y - we assume x is >= y
+
+
+ Class representing a simple version of a big decimal. A
+ SimpleBigDecimal is basically a
+ {@link java.math.BigInteger BigInteger} with a few digits on the right of
+ the decimal point. The number of (binary) digits on the right of the decimal
+ point is called the scale of the SimpleBigDecimal.
+ Unlike in {@link java.math.BigDecimal BigDecimal}, the scale is not adjusted
+ automatically, but must be set manually. All SimpleBigDecimals
+ taking part in the same arithmetic operation must have equal scale. The
+ result of a multiplication of two SimpleBigDecimals returns a
+ SimpleBigDecimal with double scale.
+
+
+ Returns a SimpleBigDecimal representing the same numerical
+ value as value.
+ @param value The value of the SimpleBigDecimal to be
+ created.
+ @param scale The scale of the SimpleBigDecimal to be
+ created.
+ @return The such created SimpleBigDecimal.
+
+
+ Constructor for SimpleBigDecimal. The value of the
+ constructed SimpleBigDecimal Equals bigInt /
+ 2scale.
+ @param bigInt The bigInt value parameter.
+ @param scale The scale of the constructed SimpleBigDecimal.
+
+
+ Class holding methods for point multiplication based on the window
+ τ-adic nonadjacent form (WTNAF). The algorithms are based on the
+ paper "Improved Algorithms for Arithmetic on Anomalous Binary Curves"
+ by Jerome A. Solinas. The paper first appeared in the Proceedings of
+ Crypto 1997.
+
+
+ The window width of WTNAF. The standard value of 4 is slightly less
+ than optimal for running time, but keeps space requirements for
+ precomputation low. For typical curves, a value of 5 or 6 results in
+ a better running time. When changing this value, the
+ αu's must be computed differently, see
+ e.g. "Guide to Elliptic Curve Cryptography", Darrel Hankerson,
+ Alfred Menezes, Scott Vanstone, Springer-Verlag New York Inc., 2004,
+ p. 121-122
+
+
+ 24
+
+
+ The αu's for a=0 as an array
+ of ZTauElements.
+
+
+ The αu's for a=0 as an array
+ of TNAFs.
+
+
+ The αu's for a=1 as an array
+ of ZTauElements.
+
+
+ The αu's for a=1 as an array
+ of TNAFs.
+
+
+ Computes the norm of an element λ of
+ Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The norm of λ.
+
+
+ Computes the norm of an element λ of
+ R[τ], where λ = u + vτ
+ and u and u are real numbers (elements of
+ R).
+ @param mu The parameter μ of the elliptic curve.
+ @param u The real part of the element λ of
+ R[τ].
+ @param v The τ-adic part of the element
+ λ of R[τ].
+ @return The norm of λ.
+
+
+ Rounds an element λ of R[τ]
+ to an element of Z[τ], such that their difference
+ has minimal norm. λ is given as
+ λ = λ0 + λ1τ.
+ @param lambda0 The component λ0.
+ @param lambda1 The component λ1.
+ @param mu The parameter μ of the elliptic curve. Must
+ equal 1 or -1.
+ @return The rounded element of Z[τ].
+ @throws ArgumentException if lambda0 and
+ lambda1 do not have same scale.
+
+
+ Approximate division by n. For an integer
+ k, the value λ = s k / n is
+ computed to c bits of accuracy.
+ @param k The parameter k.
+ @param s The curve parameter s0 or
+ s1.
+ @param vm The Lucas Sequence element Vm.
+ @param a The parameter a of the elliptic curve.
+ @param m The bit length of the finite field
+ Fm.
+ @param c The number of bits of accuracy, i.e. the scale of the returned
+ SimpleBigDecimal.
+ @return The value λ = s k / n computed to
+ c bits of accuracy.
+
+
+ Computes the τ-adic NAF (non-adjacent form) of an
+ element λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The τ-adic NAF of λ.
+
+
+ Applies the operation τ() to an
+ AbstractF2mPoint.
+ @param p The AbstractF2mPoint to which τ() is applied.
+ @return τ(p)
+
+
+ Returns the parameter μ of the elliptic curve.
+ @param curve The elliptic curve from which to obtain μ.
+ The curve must be a Koblitz curve, i.e. a Equals
+ 0 or 1 and b Equals
+ 1.
+ @return μ of the elliptic curve.
+ @throws ArgumentException if the given ECCurve is not a Koblitz
+ curve.
+
+
+ Calculates the Lucas Sequence elements Uk-1 and
+ Uk or Vk-1 and
+ Vk.
+ @param mu The parameter μ of the elliptic curve.
+ @param k The index of the second element of the Lucas Sequence to be
+ returned.
+ @param doV If set to true, computes Vk-1 and
+ Vk, otherwise Uk-1 and
+ Uk.
+ @return An array with 2 elements, containing Uk-1
+ and Uk or Vk-1
+ and Vk.
+
+
+ Computes the auxiliary value tw. If the width is
+ 4, then for mu = 1, tw = 6 and for
+ mu = -1, tw = 10
+ @param mu The parameter μ of the elliptic curve.
+ @param w The window width of the WTNAF.
+ @return the auxiliary value tw
+
+
+ Computes the auxiliary values s0 and
+ s1 used for partial modular reduction.
+ @param curve The elliptic curve for which to compute
+ s0 and s1.
+ @throws ArgumentException if curve is not a
+ Koblitz curve (Anomalous Binary Curve, ABC).
+
+
+ Partial modular reduction modulo
+ (τm - 1)/(τ - 1).
+ @param k The integer to be reduced.
+ @param m The bitlength of the underlying finite field.
+ @param a The parameter a of the elliptic curve.
+ @param s The auxiliary values s0 and
+ s1.
+ @param mu The parameter μ of the elliptic curve.
+ @param c The precision (number of bits of accuracy) of the partial
+ modular reduction.
+ @return ρ := k partmod (τm - 1)/(τ - 1)
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by a BigInteger using the reduced τ-adic
+ NAF (RTNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param k The BigInteger by which to Multiply p.
+ @return k * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param lambda The element λ of
+ Z[τ].
+ @return λ * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method, given the TNAF
+ of λ.
+ @param p The AbstractF2mPoint to Multiply.
+ @param u The the TNAF of λ..
+ @return λ * p
+
+
+ Computes the [τ]-adic window NAF of an element
+ λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @param width The window width of the resulting WNAF.
+ @param pow2w 2width.
+ @param tw The auxiliary value tw.
+ @param alpha The αu's for the window width.
+ @return The [τ]-adic window NAF of
+ λ.
+
+
+ Does the precomputation for WTNAF multiplication.
+ @param p The ECPoint for which to do the precomputation.
+ @param a The parameter a of the elliptic curve.
+ @return The precomputation array for p.
+
+
+ Class representing an element of Z[τ]. Let
+ λ be an element of Z[τ]. Then
+ λ is given as λ = u + vτ. The
+ components u and v may be used directly, there
+ are no accessor methods.
+ Immutable class.
+
+
+ The "real" part of λ.
+
+
+ The "τ-adic" part of λ.
+
+
+ Constructor for an element λ of
+ Z[τ].
+ @param u The "real" part of λ.
+ @param v The "τ-adic" part of
+ λ.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(boolean)}
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ Simple shift-and-add multiplication. Serves as reference implementation
+ to verify (possibly faster) implementations, and for very small scalars.
+
+ @param p
+ The point to multiply.
+ @param k
+ The multiplier.
+ @return The result of the point multiplication kP.
+
+
+ Base class for an elliptic curve.
+
+
+ Adds PreCompInfo for a point on this curve, under a given name. Used by
+ ECMultipliers to save the precomputation for this ECPoint for use
+ by subsequent multiplication.
+
+ @param point
+ The ECPoint to store precomputations for.
+ @param name
+ A String used to index precomputations of different types.
+ @param preCompInfo
+ The values precomputed by the ECMultiplier.
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately.
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately. An (optional) z-scaling factor can be applied; effectively
+ each z coordinate is scaled by this value prior to normalization (but only one
+ actual multiplication is needed).
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+ @param off
+ The start of the range of points to normalize
+ @param len
+ The length of the range of points to normalize
+ @param iso
+ The (optional) z-scaling factor - can be null
+
+
+ Sets the default ECMultiplier, unless already set.
+
+
+ Decode a point on this curve from its ASN.1 encoding. The different
+ encodings are taken account of, including point compression for
+ Fp (X9.62 s 4.2.1 pg 17).
+ @return The decoded point.
+
+
+ Elliptic curve over Fp
+
+
+ The auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Solves a quadratic equation z2 + z = beta(X9.62
+ D.1.6) The other solution is z + 1.
+
+ @param beta
+ The value to solve the qradratic equation for.
+ @return the solution for z2 + z = beta or
+ null if no solution exists.
+
+
+ @return the auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Returns true if this is a Koblitz curve (ABC curve).
+ @return true if this is a Koblitz curve (ABC curve), false otherwise
+
+
+ Elliptic curves over F2m. The Weierstrass equation is given by
+ y2 + xy = x3 + ax2 + b.
+
+
+ The exponent m of F2m.
+
+
+ TPB: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ PPB: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ The point at infinity on this curve.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Return true if curve uses a Trinomial basis.
+
+ @return true if curve Trinomial, false otherwise.
+
+
+ return the field name for this field.
+
+ @return the string "Fp".
+
+
+ return a sqrt root - the routine verifies that the calculation
+ returns the right value - if none exists it returns null.
+
+
+ Class representing the Elements of the finite field
+ F2m in polynomial basis (PB)
+ representation. Both trinomial (Tpb) and pentanomial (Ppb) polynomial
+ basis representations are supported. Gaussian normal basis (GNB)
+ representation is not supported.
+
+
+ Indicates gaussian normal basis representation (GNB). Number chosen
+ according to X9.62. GNB is not implemented at present.
+
+
+ Indicates trinomial basis representation (Tpb). Number chosen
+ according to X9.62.
+
+
+ Indicates pentanomial basis representation (Ppb). Number chosen
+ according to X9.62.
+
+
+ Tpb or Ppb.
+
+
+ The exponent m of F2m.
+
+
+ The LongArray holding the bits.
+
+
+ Constructor for Ppb.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Constructor for Tpb.
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Checks, if the ECFieldElements a and b
+ are elements of the same field F2m
+ (having the same representation).
+ @param a field element.
+ @param b field element to be compared.
+ @throws ArgumentException if a and b
+ are not elements of the same field
+ F2m (having the same
+ representation).
+
+
+ @return the representation of the field
+ F2m, either of
+ {@link F2mFieldElement.Tpb} (trinomial
+ basis representation) or
+ {@link F2mFieldElement.Ppb} (pentanomial
+ basis representation).
+
+
+ @return the degree m of the reduction polynomial
+ f(z).
+
+
+ @return Tpb: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ Ppb: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always returns 0
+ Ppb: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always set to 0
+ Ppb: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ base class for points on elliptic curves.
+
+
+ Normalizes this point, and then returns the affine x-coordinate.
+
+ Note: normalization can be expensive, this method is deprecated in favour
+ of caller-controlled normalization.
+
+
+ Normalizes this point, and then returns the affine y-coordinate.
+
+ Note: normalization can be expensive, this method is deprecated in favour
+ of caller-controlled normalization.
+
+
+ Returns the affine x-coordinate after checking that this point is normalized.
+
+ @return The affine x-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the affine y-coordinate after checking that this point is normalized
+
+ @return The affine y-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the x-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineXCoord if you expect the point to already have been normalized.
+
+ @return the x-coordinate of this point
+
+
+ Returns the y-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineYCoord if you expect the point to already have been normalized.
+
+ @return the y-coordinate of this point
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system.
+
+ @return a new ECPoint instance representing the same point, but with normalized coordinates
+
+
+ return the field element encoded with point compression. (S 4.3.6)
+
+
+ Multiplies this ECPoint by the given number.
+ @param k The multiplicator.
+ @return k * this.
+
+
+ Elliptic curve points over Fp
+
+
+ Create a point which encodes without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+
+ Create a point that encodes with or without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+
+ Elliptic curve points over F2m
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+ @param withCompression true if encode with point compression.
+
+
+ Constructor for point at infinity
+
+
+ Joye's double-add algorithm.
+
+
+ Interface for classes encapsulating a point multiplication algorithm
+ for ECPoints.
+
+
+ Multiplies the ECPoint p by k, i.e.
+ p is added k times to itself.
+ @param p The ECPoint to be multiplied.
+ @param k The factor by which p is multiplied.
+ @return p multiplied by k.
+
+
+ Class holding precomputation data for fixed-point multiplications.
+
+
+ Array holding the precomputed ECPoints used for a fixed
+ point multiplication.
+
+
+ The width used for the precomputation. If a larger width precomputation
+ is already available this may be larger than was requested, so calling
+ code should refer to the actual width.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left) using
+ mixed coordinates.
+
+
+ By default, addition will be done in Jacobian coordinates, and doubling will be done in
+ Modified Jacobian coordinates (independent of the original coordinate system of each point).
+
+
+ Montgomery ladder.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (left-to-right).
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left).
+
+
+ Interface for classes storing precomputation data for multiplication
+ algorithms. Used as a Memento (see GOF patterns) for
+ WNafMultiplier.
+
+
+ Class implementing the WNAF (Window Non-Adjacent Form) multiplication
+ algorithm.
+
+
+ Multiplies this by an integer k using the
+ Window NAF method.
+ @param k The integer by which this is multiplied.
+ @return A new ECPoint which equals this
+ multiplied by k.
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Class holding precomputation data for the WNAF (Window Non-Adjacent Form)
+ algorithm.
+
+
+ Array holding the precomputed ECPoints used for a Window
+ NAF multiplication.
+
+
+ Array holding the negations of the precomputed ECPoints used
+ for a Window NAF multiplication.
+
+
+ Holds an ECPoint representing Twice(this). Used for the
+ Window NAF multiplication to create or extend the precomputed values.
+
+
+ Computes the Window NAF (non-adjacent Form) of an integer.
+ @param width The width w of the Window NAF. The width is
+ defined as the minimal number w, such that for any
+ w consecutive digits in the resulting representation, at
+ most one is non-zero.
+ @param k The integer of which the Window NAF is computed.
+ @return The Window NAF of the given width, such that the following holds:
+ k = ∑i=0l-1 ki2i
+ , where the ki denote the elements of the
+ returned byte[].
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @return the window size to use
+
+
+ Class implementing the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by k using the reduced τ-adic NAF (RTNAF)
+ method.
+ @param p The AbstractF2mPoint to multiply.
+ @param k The integer by which to multiply k.
+ @return p multiplied by k.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ] using
+ the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to multiply.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @return p multiplied by λ.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the window τ-adic NAF (TNAF) method, given the
+ WTNAF of λ.
+ @param p The AbstractF2mPoint to multiply.
+ @param u The the WTNAF of λ..
+ @return λ * p
+
+
+ Class holding precomputation data for the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Array holding the precomputed AbstractF2mPoints used for the
+ WTNAF multiplication in
+ {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
+ WTauNafMultiplier.multiply()}.
+
+
+ 'Zeroless' Signed Digit Left-to-Right.
+
+
+ 'Zeroless' Signed Digit Right-to-Left.
+
+
+ Utility methods for generating primes and testing for primality.
+
+
+ Used to return the output from the
+ {@linkplain Primes#enhancedMRProbablePrimeTest(BigInteger, SecureRandom, int) Enhanced
+ Miller-Rabin Probabilistic Primality Test}
+
+
+ Used to return the output from the {@linkplain Primes#generateSTRandomPrime(Digest, int, byte[]) Shawe-Taylor Random_Prime Routine}
+
+
+ FIPS 186-4 C.6 Shawe-Taylor Random_Prime Routine
+
+ Construct a provable prime number using a hash function.
+
+ @param hash
+ the {@link Digest} instance to use (as "Hash()"). Cannot be null.
+ @param length
+ the length (in bits) of the prime to be generated. Must be at least 2.
+ @param inputSeed
+ the seed to be used for the generation of the requested prime. Cannot be null or
+ empty.
+ @return an {@link STOutput} instance containing the requested prime.
+
+
+ FIPS 186-4 C.3.2 Enhanced Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases. This is an
+ alternative to {@link #isMRProbablePrime(BigInteger, SecureRandom, int)} that provides more
+ information about a composite candidate, which may be useful when generating or validating
+ RSA moduli.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return an {@link MROutput} instance that can be further queried for details.
+
+
+ A fast check for small divisors, up to some implementation-specific limit.
+
+ @param candidate
+ the {@link BigInteger} instance to test for division by small factors.
+
+ @return true if the candidate is found to have any small factors,
+ false otherwise.
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return false if any witness to compositeness is found amongst the chosen bases
+ (so candidate is definitely NOT prime), or else true
+ (indicating primality with some probability dependent on the number of iterations
+ that were performed).
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test (to a fixed base).
+
+ Run a single iteration of the Miller-Rabin algorithm against the specified base.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param baseValue
+ the base value to use for this iteration.
+ @return false if the specified base is a witness to compositeness (so
+ candidate is definitely NOT prime), or else true.
+
+
+
+
+ BasicOcspResponse ::= SEQUENCE {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL
+ }
+
+
+
+
+ The DER encoding of the tbsResponseData field.
+ In the event of an encoding error.
+
+
+ The certificates, if any, associated with the response.
+ In the event of an encoding error.
+
+
+
+ Verify the signature against the tbsResponseData object we contain.
+
+
+
+ The ASN.1 encoded representation of this object.
+
+
+ Generator for basic OCSP response objects.
+
+
+ basic constructor
+
+
+ construct with the responderID to be the SHA-1 keyHash of the passed in public key.
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param thisUpdate date this response was valid on
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Set the extensions for the response.
+
+ @param responseExtensions the extension object to carry.
+
+
+
+ Generate the signed response using the passed in signature calculator.
+
+ Implementation of signing calculator factory.
+ The certificate chain associated with the response signer.
+ "produced at" date.
+
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ create from an issuer certificate and the serial number of the
+ certificate it signed.
+ @exception OcspException if any problems occur creating the id fields.
+
+
+ return the serial number for the certificate associated
+ with this request.
+
+
+ Create a new CertificateID for a new serial number derived from a previous one
+ calculated for the same CA certificate.
+
+ @param original the previously calculated CertificateID for the CA.
+ @param newSerialNumber the serial number for the new certificate of interest.
+
+ @return a new CertificateID for newSerialNumber
+
+
+
+ OcspRequest ::= SEQUENCE {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+ TBSRequest ::= SEQUENCE {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList SEQUENCE OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+ Signature ::= SEQUENCE {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL}
+
+ Version ::= INTEGER { v1(0) }
+
+ Request ::= SEQUENCE {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+ CertID ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ Return the DER encoding of the tbsRequest field.
+ @return DER encoding of tbsRequest
+ @throws OcspException in the event of an encoding error.
+
+
+ return the object identifier representing the signature algorithm
+
+
+ If the request is signed return a possibly empty CertStore containing the certificates in the
+ request. If the request is not signed the method returns null.
+
+ @return null if not signed, a CertStore otherwise
+ @throws OcspException
+
+
+ Return whether or not this request is signed.
+
+ @return true if signed false otherwise.
+
+
+ Verify the signature against the TBSRequest object we contain.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Add a request for the given CertificateID.
+
+ @param certId certificate ID of interest
+
+
+ Add a request with extensions
+
+ @param certId certificate ID of interest
+ @param singleRequestExtensions the extensions to attach to the request
+
+
+ Set the requestor name to the passed in X509Principal
+
+ @param requestorName a X509Principal representing the requestor name.
+
+
+ Generate an unsigned request
+
+ @return the OcspReq
+ @throws OcspException
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ base generator for an OCSP response - at the moment this only supports the
+ generation of responses containing BasicOCSP responses.
+
+
+ note 4 is not used.
+
+
+ Carrier for a ResponderID.
+
+
+ wrapper for the RevokedInfo object
+
+
+ return the revocation reason. Note: this field is optional, test for it
+ with hasRevocationReason() first.
+ @exception InvalidOperationException if a reason is asked for and none is avaliable
+
+
+ Return the status object for the response - null indicates good.
+
+ @return the status object for the response, null if it is good.
+
+
+ return the NextUpdate value - note: this is an optional field so may
+ be returned as null.
+
+ @return nextUpdate, or null if not present.
+
+
+ wrapper for the UnknownInfo object
+
+
+
+ Utility class for creating IBasicAgreement objects from their names/Oids
+
+
+
+
+ Cipher Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Utility class for creating IDigest objects from their names/Oids
+
+
+
+
+ Returns a ObjectIdentifier for a given digest mechanism.
+
+ A string representation of the digest meanism.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Utility class for creating HMac object from their names/Oids
+
+
+
+
+
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Create and auto-seed an instance based on the given algorithm.
+
+ Equivalent to GetInstance(algorithm, true)
+ e.g. "SHA256PRNG"
+
+
+
+ Create an instance based on the given algorithm, with optional auto-seeding
+
+ e.g. "SHA256PRNG"
+ If true, the instance will be auto-seeded.
+
+
+
+ To replicate existing predictable output, replace with GetInstance("SHA1PRNG", false), followed by SetSeed(seed)
+
+
+
+ Use the specified instance of IRandomGenerator as random source.
+
+ This constructor performs no seeding of either the IRandomGenerator or the
+ constructed SecureRandom. It is the responsibility of the client to provide
+ proper seed material as necessary/appropriate for the given IRandomGenerator
+ implementation.
+
+ The source to generate all random bytes from.
+
+
+ base constructor.
+
+
+ create a SecurityUtilityException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Signer Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns an ObjectIdentifier for a given encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the OID is not available.
+
+
+
+ Utility class for creating IWrapper objects from their names/Oids
+
+
+
+ PEM generator for the original set of PEM objects used in Open SSL.
+
+
+ Class for reading OpenSSL PEM encoded streams containing
+ X509 certificates, PKCS8 encoded keys and PKCS7 objects.
+
+ In the case of PKCS7 objects the reader will return a CMS ContentInfo object. Keys and
+ Certificates will be returned using the appropriate java.security type.
+
+
+ Create a new PemReader
+
+ @param reader the Reader
+
+
+ Create a new PemReader with a password finder
+
+ @param reader the Reader
+ @param pFinder the password finder
+
+
+ Reads in a X509Certificate.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509CRL.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS10 certification request.
+
+ @return the certificate request.
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509 Attribute Certificate.
+
+ @return the X509 Attribute Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS7 object. This returns a ContentInfo object suitable for use with the CMS
+ API.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Read a Key Pair
+
+
+ General purpose writer for OpenSSL PEM objects.
+
+
+ The TextWriter object to write the output to.
+
+
+ Constructor for an unencrypted private key PEM object.
+
+ @param key private key to be encoded.
+
+
+ Constructor for an encrypted private key PEM object.
+
+ @param key private key to be encoded
+ @param algorithm encryption algorithm to use
+ @param provider provider to use
+ @throws NoSuchAlgorithmException if algorithm/mode cannot be found
+
+
+
+ A class for verifying and creating Pkcs10 Certification requests.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ The factory for signature calculators to sign the PKCS#10 request with.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Get the public key.
+
+ The public key.
+
+
+
+ Verify Pkcs10 Cert Request is valid.
+
+ true = valid.
+
+
+
+ A class for creating and verifying Pkcs10 Certification requests (this is an extension on ).
+ The requests are made using delay signing. This is useful for situations where
+ the private key is in another environment and not directly accessible (e.g. HSM)
+ So the first step creates the request, then the signing is done outside this
+ object and the signature is then used to complete the request.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+ After the object is constructed use the and finally the
+ SignRequest methods to finalize the request.
+
+
+
+ simply return the cert entry for the private key
+
+
+ Utility class for reencoding PKCS#12 files to definite length.
+
+
+ Just re-encode the outer layer of the PKCS#12 file to definite length encoding.
+
+ @param berPKCS12File - original PKCS#12 file
+ @return a byte array representing the DER encoding of the PFX structure
+ @throws IOException
+
+
+ Re-encode the PKCS#12 structure to definite length encoding at the inner layer
+ as well, recomputing the MAC accordingly.
+
+ @param berPKCS12File - original PKCS12 file.
+ @param provider - provider to use for MAC calculation.
+ @return a byte array representing the DER encoding of the PFX structure.
+ @throws IOException on parsing, encoding errors.
+
+
+
+ Returns the revocationDate.
+
+
+
+
+ Returns the certStatus.
+
+
+
+ Returns an immutable Set of X.509 attribute certificate
+ extensions that this PkixAttrCertChecker supports or
+ null if no extensions are supported.
+
+ Each element of the set is a String representing the
+ Object Identifier (OID) of the X.509 extension that is supported.
+
+
+ All X.509 attribute certificate extensions that a
+ PkixAttrCertChecker might possibly be able to process
+ should be included in the set.
+
+
+ @return an immutable Set of X.509 extension OIDs (in
+ String format) supported by this
+ PkixAttrCertChecker, or null if no
+ extensions are supported
+
+
+ Performs checks on the specified attribute certificate. Every handled
+ extension is rmeoved from the unresolvedCritExts
+ collection.
+
+ @param attrCert The attribute certificate to be checked.
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param holderCertPath The certificate path which belongs to the holder
+ certificate.
+ @param unresolvedCritExts a Collection of OID strings
+ representing the current set of unresolved critical extensions
+ @throws CertPathValidatorException if the specified attribute certificate
+ does not pass the check.
+
+
+ Returns a clone of this object.
+
+ @return a copy of this PkixAttrCertChecker
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ CertPathValidatorSpi implementation for X.509 Attribute Certificates la RFC 3281.
+
+ @see org.bouncycastle.x509.ExtendedPkixParameters
+
+
+ Validates an attribute certificate with the given certificate path.
+
+
+ params must be an instance of
+ ExtendedPkixParameters.
+
+ The target constraints in the params must be an
+ X509AttrCertStoreSelector with at least the attribute
+ certificate criterion set. Obey that also target informations may be
+ necessary to correctly validate this attribute certificate.
+
+ The attribute certificate issuer must be added to the trusted attribute
+ issuers with {@link ExtendedPkixParameters#setTrustedACIssuers(Set)}.
+
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param params The PKIX parameters.
+ @return A PKIXCertPathValidatorResult of the result of
+ validating the certPath.
+ @throws InvalidAlgorithmParameterException if params is
+ inappropriate for this validator.
+ @throws CertPathValidatorException if the verification fails.
+
+
+
+ Summary description for PkixBuilderParameters.
+
+
+
+ Returns an instance of PkixBuilderParameters.
+
+ This method can be used to get a copy from other
+ PKIXBuilderParameters, PKIXParameters,
+ and ExtendedPKIXParameters instances.
+
+
+ @param pkixParams The PKIX parameters to create a copy of.
+ @return An PkixBuilderParameters instance.
+
+
+
+ Excluded certificates are not used for building a certification path.
+
+ the excluded certificates.
+
+
+
+ Sets the excluded certificates which are not used for building a
+ certification path. If the ISet is null an
+ empty set is assumed.
+
+
+ The given set is cloned to protect it against subsequent modifications.
+
+ The excluded certificates to set.
+
+
+ Can alse handle ExtendedPKIXBuilderParameters and
+ PKIXBuilderParameters.
+
+ @param params Parameters to set.
+ @see org.bouncycastle.x509.ExtendedPKIXParameters#setParams(java.security.cert.PKIXParameters)
+
+
+ Makes a copy of this PKIXParameters object. Changes to the
+ copy will not affect the original and vice versa.
+
+ @return a copy of this PKIXParameters object
+
+
+ An immutable sequence of certificates (a certification path).
+
+ This is an abstract class that defines the methods common to all CertPaths.
+ Subclasses can handle different kinds of certificates (X.509, PGP, etc.).
+
+ All CertPath objects have a type, a list of Certificates, and one or more
+ supported encodings. Because the CertPath class is immutable, a CertPath
+ cannot change in any externally visible way after being constructed. This
+ stipulation applies to all public fields and methods of this class and any
+ added or overridden by subclasses.
+
+ The type is a string that identifies the type of Certificates in the
+ certification path. For each certificate cert in a certification path
+ certPath, cert.getType().equals(certPath.getType()) must be true.
+
+ The list of Certificates is an ordered List of zero or more Certificates.
+ This List and all of the Certificates contained in it must be immutable.
+
+ Each CertPath object must support one or more encodings so that the object
+ can be translated into a byte array for storage or transmission to other
+ parties. Preferably, these encodings should be well-documented standards
+ (such as PKCS#7). One of the encodings supported by a CertPath is considered
+ the default encoding. This encoding is used if no encoding is explicitly
+ requested (for the {@link #getEncoded()} method, for instance).
+
+ All CertPath objects are also Serializable. CertPath objects are resolved
+ into an alternate {@link CertPathRep} object during serialization. This
+ allows a CertPath object to be serialized into an equivalent representation
+ regardless of its underlying implementation.
+
+ CertPath objects can be created with a CertificateFactory or they can be
+ returned by other classes, such as a CertPathBuilder.
+
+ By convention, X.509 CertPaths (consisting of X509Certificates), are ordered
+ starting with the target certificate and ending with a certificate issued by
+ the trust anchor. That is, the issuer of one certificate is the subject of
+ the following one. The certificate representing the
+ {@link TrustAnchor TrustAnchor} should not be included in the certification
+ path. Unvalidated X.509 CertPaths may not follow these conventions. PKIX
+ CertPathValidators will detect any departure from these conventions that
+ cause the certification path to be invalid and throw a
+ CertPathValidatorException.
+
+ Concurrent Access
+
+ All CertPath objects must be thread-safe. That is, multiple threads may
+ concurrently invoke the methods defined in this class on a single CertPath
+ object (or more than one) with no ill effects. This is also true for the List
+ returned by CertPath.getCertificates.
+
+ Requiring CertPath objects to be immutable and thread-safe allows them to be
+ passed around to various pieces of code without worrying about coordinating
+ access. Providing this thread-safety is generally not difficult, since the
+ CertPath and List objects in question are immutable.
+
+ @see CertificateFactory
+ @see CertPathBuilder
+
+ CertPath implementation for X.509 certificates.
+
+
+
+ @param certs
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Returns an iteration of the encodings supported by this
+ certification path, with the default encoding
+ first. Attempts to modify the returned Iterator via its
+ remove method result in an UnsupportedOperationException.
+
+ @return an Iterator over the names of the supported encodings (as Strings)
+
+
+
+ Compares this certification path for equality with the specified object.
+ Two CertPaths are equal if and only if their types are equal and their
+ certificate Lists (and by implication the Certificates in those Lists)
+ are equal. A CertPath is never equal to an object that is not a CertPath.
+
+ This algorithm is implemented by this method. If it is overridden, the
+ behavior specified here must be maintained.
+
+ @param other
+ the object to test for equality with this certification path
+
+ @return true if the specified object is equal to this certification path,
+ false otherwise
+
+ @see Object#hashCode() Object.hashCode()
+
+
+ Returns the encoded form of this certification path, using
+ the default encoding.
+
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error occurs
+
+
+
+ Returns the encoded form of this certification path, using
+ the specified encoding.
+
+ @param encoding the name of the encoding to use
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error
+ occurs or the encoding requested is not supported
+
+
+
+
+ Returns the list of certificates in this certification
+ path.
+
+
+
+ Return a DERObject containing the encoded certificate.
+
+ @param cert the X509Certificate object to be encoded
+
+ @return the DERObject
+
+
+
+ Implements the PKIX CertPathBuilding algorithm for BouncyCastle.
+
+ @see CertPathBuilderSpi
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+
+ Summary description for PkixCertPathBuilderException.
+
+
+
+
+ Summary description for PkixCertPathBuilderResult.
+
+
+
+ * Initializes the internal state of this PKIXCertPathChecker.
+ *
+ * The forward flag specifies the order that certificates
+ * will be passed to the {@link #check check} method (forward or reverse). A
+ * PKIXCertPathChecker must support reverse checking
+ * and may support forward checking.
+ *
+ *
+ * @param forward
+ * the order that certificates are presented to the
+ * check method. If true,
+ * certificates are presented from target to most-trusted CA
+ * (forward); if false, from most-trusted CA to
+ * target (reverse).
+ * @exception CertPathValidatorException
+ * if this PKIXCertPathChecker is unable to
+ * check certificates in the specified order; it should never
+ * be thrown if the forward flag is false since reverse
+ * checking must be supported
+
+
+ Indicates if forward checking is supported. Forward checking refers to
+ the ability of the PKIXCertPathChecker to perform its
+ checks when certificates are presented to the check method
+ in the forward direction (from target to most-trusted CA).
+
+ @return true if forward checking is supported,
+ false otherwise
+
+
+ * Returns an immutable Set of X.509 certificate extensions
+ * that this PKIXCertPathChecker supports (i.e. recognizes,
+ * is able to process), or null if no extensions are
+ * supported.
+ *
+ * Each element of the set is a String representing the
+ * Object Identifier (OID) of the X.509 extension that is supported. The OID
+ * is represented by a set of nonnegative integers separated by periods.
+ *
+ * All X.509 certificate extensions that a PKIXCertPathChecker
+ * might possibly be able to process should be included in the set.
+ *
+ *
+ * @return an immutable Set of X.509 extension OIDs (in
+ * String format) supported by this
+ * PKIXCertPathChecker, or null if no
+ * extensions are supported
+
+
+ Performs the check(s) on the specified certificate using its internal
+ state and removes any critical extensions that it processes from the
+ specified collection of OID strings that represent the unresolved
+ critical extensions. The certificates are presented in the order
+ specified by the init method.
+
+ @param cert
+ the Certificate to be checked
+ @param unresolvedCritExts
+ a Collection of OID strings representing the
+ current set of unresolved critical extensions
+ @exception CertPathValidatorException
+ if the specified certificate does not pass the check
+
+
+ Returns a clone of this object. Calls the Object.clone()
+ method. All subclasses which maintain state must support and override
+ this method, if necessary.
+
+ @return a copy of this PKIXCertPathChecker
+
+
+ The Service Provider Interface (SPI)
+ for the {@link CertPathValidator CertPathValidator} class. All
+ CertPathValidator implementations must include a class (the
+ SPI class) that extends this class (CertPathValidatorSpi)
+ and implements all of its methods. In general, instances of this class
+ should only be accessed through the CertPathValidator class.
+ For details, see the Java Cryptography Architecture.
+
+ Concurrent Access
+
+ Instances of this class need not be protected against concurrent
+ access from multiple threads. Threads that need to access a single
+ CertPathValidatorSpi instance concurrently should synchronize
+ amongst themselves and provide the necessary locking before calling the
+ wrapping CertPathValidator object.
+
+ However, implementations of CertPathValidatorSpi may still
+ encounter concurrency issues, since multiple threads each
+ manipulating a different CertPathValidatorSpi instance need not
+ synchronize.
+
+ CertPathValidatorSpi implementation for X.509 Certificate validation a la RFC
+ 3280.
+
+
+
+ An exception indicating one of a variety of problems encountered when
+ validating a certification path.
+
+ A CertPathValidatorException provides support for wrapping
+ exceptions. The {@link #getCause getCause} method returns the throwable,
+ if any, that caused this exception to be thrown.
+
+ A CertPathValidatorException may also include the
+ certification path that was being validated when the exception was thrown
+ and the index of the certificate in the certification path that caused the
+ exception to be thrown. Use the {@link #getCertPath getCertPath} and
+ {@link #getIndex getIndex} methods to retrieve this information.
+
+ Concurrent Access
+
+ Unless otherwise specified, the methods defined in this class are not
+ thread-safe. Multiple threads that need to access a single
+ object concurrently should synchronize amongst themselves and
+ provide the necessary locking. Multiple threads each manipulating
+ separate objects need not synchronize.
+
+ @see CertPathValidator
+
+
+
+
+ Creates a PkixCertPathValidatorException with the given detail
+ message. A detail message is a String that describes this
+ particular exception.
+
+ the detail message
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message and cause.
+
+ the detail message
+ the cause (which is saved for later retrieval by the
+ {@link #getCause getCause()} method). (A null
+ value is permitted, and indicates that the cause is
+ nonexistent or unknown.)
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message, cause, certification path, and index.
+
+ the detail message (or null if none)
+ the cause (or null if none)
+ the certification path that was in the process of being
+ validated when the error was encountered
+ the index of the certificate in the certification path that *
+
+
+
+ Returns the detail message for this CertPathValidatorException.
+
+ the detail message, or null if neither the message nor cause were specified
+
+
+ Returns the certification path that was being validated when the
+ exception was thrown.
+
+ @return the CertPath that was being validated when the
+ exception was thrown (or null if not specified)
+
+
+ Returns the index of the certificate in the certification path that
+ caused the exception to be thrown. Note that the list of certificates in
+ a CertPath is zero based. If no index has been set, -1 is
+ returned.
+
+ @return the index that has been set, or -1 if none has been set
+
+
+
+ Summary description for PkixCertPathValidatorResult.
+
+
+
+
+ Summary description for PkixCertPathValidatorUtilities.
+
+
+
+
+ key usage bits
+
+
+
+
+ Search the given Set of TrustAnchor's for one that is the
+ issuer of the given X509 certificate.
+
+ the X509 certificate
+ a Set of TrustAnchor's
+ the TrustAnchor object if found or
+ null if not.
+
+ @exception
+
+
+
+ Returns the issuer of an attribute certificate or certificate.
+
+ The attribute certificate or certificate.
+ The issuer as X500Principal.
+
+
+ Return the next working key inheriting DSA parameters if necessary.
+
+ This methods inherits DSA parameters from the indexed certificate or
+ previous certificates in the certificate chain to the returned
+ PublicKey. The list is searched upwards, meaning the end
+ certificate is at position 0 and previous certificates are following.
+
+
+ If the indexed certificate does not contain a DSA key this method simply
+ returns the public key. If the DSA key already contains DSA parameters
+ the key is also only returned.
+
+
+ @param certs The certification path.
+ @param index The index of the certificate which contains the public key
+ which should be extended with DSA parameters.
+ @return The public key of the certificate in list position
+ index extended with DSA parameters if applicable.
+ @throws Exception if DSA parameters cannot be inherited.
+
+
+
+ Return a Collection of all certificates or attribute certificates found
+ in the X509Store's that are matching the certSelect criteriums.
+
+ a {@link Selector} object that will be used to select
+ the certificates
+ a List containing only X509Store objects. These
+ are used to search for certificates.
+ a Collection of all found or
+ objects.
+ May be empty but never null.
+
+
+
+ Add the CRL issuers from the cRLIssuer field of the distribution point or
+ from the certificate if not given to the issuer criterion of the
+ selector.
+
+ The issuerPrincipals are a collection with a single
+ X500Principal for X509Certificates. For
+ {@link X509AttributeCertificate}s the issuer may contain more than one
+ X500Principal.
+
+
+ @param dp The distribution point.
+ @param issuerPrincipals The issuers of the certificate or attribute
+ certificate which contains the distribution point.
+ @param selector The CRL selector.
+ @param pkixParams The PKIX parameters containing the cert stores.
+ @throws Exception if an exception occurs while processing.
+ @throws ClassCastException if issuerPrincipals does not
+ contain only X500Principals.
+
+
+ Fetches complete CRLs according to RFC 3280.
+
+ @param dp The distribution point for which the complete CRL
+ @param cert The X509Certificate or
+ {@link org.bouncycastle.x509.X509AttributeCertificate} for
+ which the CRL should be searched.
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @return A Set of X509CRLs with complete
+ CRLs.
+ @throws Exception if an exception occurs while picking the CRLs
+ or no CRLs are found.
+
+
+ Fetches delta CRLs according to RFC 3280 section 5.2.4.
+
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @param completeCRL The complete CRL the delta CRL is for.
+ @return A Set of X509CRLs with delta CRLs.
+ @throws Exception if an exception occurs while picking the delta
+ CRLs.
+
+
+ Find the issuer certificates of a given certificate.
+
+ @param cert
+ The certificate for which an issuer should be found.
+ @param pkixParams
+ @return A Collection object containing the issuer
+ X509Certificates. Never null.
+
+ @exception Exception
+ if an error occurs.
+
+
+
+ Extract the value of the given extension, if it exists.
+
+ The extension object.
+ The object identifier to obtain.
+ Asn1Object
+ if the extension cannot be read.
+
+
+
+ crl checking
+ Return a Collection of all CRLs found in the X509Store's that are
+ matching the crlSelect criteriums.
+
+ a {@link X509CRLStoreSelector} object that will be used
+ to select the CRLs
+ a List containing only {@link org.bouncycastle.x509.X509Store
+ X509Store} objects. These are used to search for CRLs
+ a Collection of all found {@link X509CRL X509CRL} objects. May be
+ empty but never null.
+
+
+
+ Returns the intersection of the permitted IP ranges in
+ permitted with ip.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ips The IP address with its subnet mask.
+ @return The Set of permitted IP ranges intersected with
+ ip.
+
+
+ Returns the union of the excluded IP ranges in excluded
+ with ip.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address with its subnet mask.
+ @return The Set of excluded IP ranges unified with
+ ip as byte arrays.
+
+
+ Calculates the union if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the union of both addresses.
+
+
+ Calculates the interesction if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the single IP address with its subnet
+ mask as a byte array or an empty Set.
+
+
+ Concatenates the IP address with its subnet mask.
+
+ @param ip The IP address.
+ @param subnetMask Its subnet mask.
+ @return The concatenated IP address with its subnet mask.
+
+
+ Splits the IP addresses and their subnet mask.
+
+ @param ipWithSubmask1 The first IP address with the subnet mask.
+ @param ipWithSubmask2 The second IP address with the subnet mask.
+ @return An array with two elements. Each element contains the IP address
+ and the subnet mask in this order.
+
+
+ Based on the two IP addresses and their subnet masks the IP range is
+ computed for each IP address - subnet mask pair and returned as the
+ minimum IP address and the maximum address of the range.
+
+ @param ip1 The first IP address.
+ @param subnetmask1 The subnet mask of the first IP address.
+ @param ip2 The second IP address.
+ @param subnetmask2 The subnet mask of the second IP address.
+ @return A array with two elements. The first/second element contains the
+ min and max IP address of the first/second IP address and its
+ subnet mask.
+
+
+ Checks if the IP ip is included in the permitted ISet
+ permitted.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is not permitted.
+
+
+ Checks if the IP ip is included in the excluded ISet
+ excluded.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is excluded.
+
+
+ Checks if the IP address ip is constrained by
+ constraint.
+
+ @param ip The IP address.
+ @param constraint The constraint. This is an IP address concatenated with
+ its subnetmask.
+ @return true if constrained, false
+ otherwise.
+
+
+ The common part of email1 and email2 is
+ added to the union union. If email1 and
+ email2 have nothing in common they are added both.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param union The union.
+
+
+ The most restricting part from email1 and
+ email2 is added to the intersection intersect.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param intersect The intersection.
+
+
+ Checks if the given GeneralName is in the permitted ISet.
+
+ @param name The GeneralName
+ @throws PkixNameConstraintValidatorException
+ If the name
+
+
+ Check if the given GeneralName is contained in the excluded ISet.
+
+ @param name The GeneralName.
+ @throws PkixNameConstraintValidatorException
+ If the name is
+ excluded.
+
+
+ Updates the permitted ISet of these name constraints with the intersection
+ with the given subtree.
+
+ @param permitted The permitted subtrees
+
+
+ Adds a subtree to the excluded ISet of these name constraints.
+
+ @param subtree A subtree with an excluded GeneralName.
+
+
+ Returns the maximum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The maximum IP address.
+
+
+ Returns the minimum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The minimum IP address.
+
+
+ Compares IP address ip1 with ip2. If ip1
+ is equal to ip2 0 is returned. If ip1 is bigger 1 is returned, -1
+ otherwise.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return 0 if ip1 is equal to ip2, 1 if ip1 is bigger, -1 otherwise.
+
+
+ Returns the logical OR of the IP addresses ip1 and
+ ip2.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The OR of ip1 and ip2.
+
+
+ Stringifies an IPv4 or v6 address with subnet mask.
+
+ @param ip The IP with subnet mask.
+ @return The stringified IP address.
+
+
+
+ Summary description for PkixParameters.
+
+
+
+ This is the default PKIX validity model. Actually there are two variants
+ of this: The PKIX model and the modified PKIX model. The PKIX model
+ verifies that all involved certificates must have been valid at the
+ current time. The modified PKIX model verifies that all involved
+ certificates were valid at the signing time. Both are indirectly choosen
+ with the {@link PKIXParameters#setDate(java.util.Date)} method, so this
+ methods sets the Date when all certificates must have been
+ valid.
+
+
+ This model uses the following validity model. Each certificate must have
+ been valid at the moment where is was used. That means the end
+ certificate must have been valid at the time the signature was done. The
+ CA certificate which signed the end certificate must have been valid,
+ when the end certificate was signed. The CA (or Root CA) certificate must
+ have been valid, when the CA certificate was signed and so on. So the
+ {@link PKIXParameters#setDate(java.util.Date)} method sets the time, when
+ the end certificate must have been valid. It is used e.g.
+ in the German signature law.
+
+
+ Creates an instance of PKIXParameters with the specified Set of
+ most-trusted CAs. Each element of the set is a TrustAnchor.
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+ @param trustAnchors
+ a Set of TrustAnchors
+
+ @exception InvalidAlgorithmParameterException
+ if the specified Set is empty
+ (trustAnchors.isEmpty() == true)
+ @exception NullPointerException
+ if the specified Set is null
+ @exception ClassCastException
+ if any of the elements in the Set are not of type
+ java.security.cert.TrustAnchor
+
+
+ Returns the required constraints on the target certificate. The
+ constraints are returned as an instance of CertSelector. If
+ null, no constraints are defined.
+
+ Note that the CertSelector returned is cloned to protect against
+ subsequent modifications.
+
+ @return a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #setTargetCertConstraints(CertSelector)
+
+
+ Sets the required constraints on the target certificate. The constraints
+ are specified as an instance of CertSelector. If null, no constraints are
+ defined.
+
+ Note that the CertSelector specified is cloned to protect against
+ subsequent modifications.
+
+ @param selector
+ a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #getTargetCertConstraints()
+
+
+ Returns an immutable Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. The
+ default return value is an empty Set, which is
+ interpreted as meaning that any policy would be acceptable.
+
+ @return an immutable Set of initial policy OIDs in String
+ format, or an empty Set (implying any policy is
+ acceptable). Never returns null.
+
+ @see #setInitialPolicies(java.util.Set)
+
+
+ Sets the Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. By
+ default, any policy is acceptable (i.e. all policies), so a user that
+ wants to allow any policy as acceptable does not need to call this
+ method, or can call it with an empty Set (or
+ null).
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+
+ @param initialPolicies
+ a Set of initial policy OIDs in String format (or
+ null)
+
+ @exception ClassCastException
+ if any of the elements in the set are not of type String
+
+ @see #getInitialPolicies()
+
+
+ Sets a List of additional certification path checkers. If
+ the specified List contains an object that is not a PKIXCertPathChecker,
+ it is ignored.
+
+ Each PKIXCertPathChecker specified implements additional
+ checks on a certificate. Typically, these are checks to process and
+ verify private extensions contained in certificates. Each
+ PKIXCertPathChecker should be instantiated with any
+ initialization parameters needed to execute the check.
+
+ This method allows sophisticated applications to extend a PKIX
+ CertPathValidator or CertPathBuilder. Each
+ of the specified PKIXCertPathCheckers will be called, in turn, by a PKIX
+ CertPathValidator or CertPathBuilder for
+ each certificate processed or validated.
+
+ Regardless of whether these additional PKIXCertPathCheckers are set, a
+ PKIX CertPathValidator or CertPathBuilder
+ must perform all of the required PKIX checks on each certificate. The one
+ exception to this rule is if the RevocationEnabled flag is set to false
+ (see the {@link #setRevocationEnabled(boolean) setRevocationEnabled}
+ method).
+
+ Note that the List supplied here is copied and each PKIXCertPathChecker
+ in the list is cloned to protect against subsequent modifications.
+
+ @param checkers
+ a List of PKIXCertPathCheckers. May be null, in which case no
+ additional checkers will be used.
+ @exception ClassCastException
+ if any of the elements in the list are not of type
+ java.security.cert.PKIXCertPathChecker
+ @see #getCertPathCheckers()
+
+
+ Returns the List of certification path checkers. Each PKIXCertPathChecker
+ in the returned IList is cloned to protect against subsequent modifications.
+
+ @return an immutable List of PKIXCertPathCheckers (may be empty, but not
+ null)
+
+ @see #setCertPathCheckers(java.util.List)
+
+
+ Adds a PKIXCertPathChecker to the list of certification
+ path checkers. See the {@link #setCertPathCheckers setCertPathCheckers}
+ method for more details.
+
+ Note that the PKIXCertPathChecker is cloned to protect
+ against subsequent modifications.
+
+ @param checker a PKIXCertPathChecker to add to the list of
+ checks. If null, the checker is ignored (not added to list).
+
+
+ Method to support Clone() under J2ME.
+ super.Clone() does not exist and fields are not copied.
+
+ @param params Parameters to set. If this are
+ ExtendedPkixParameters they are copied to.
+
+
+ Whether delta CRLs should be used for checking the revocation status.
+ Defaults to false.
+
+
+ The validity model.
+ @see #CHAIN_VALIDITY_MODEL
+ @see #PKIX_VALIDITY_MODEL
+
+
+ Sets the Bouncy Castle Stores for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ The IList is cloned.
+
+
+ @param stores A list of stores to use.
+ @see #getStores
+ @throws ClassCastException if an element of stores is not
+ a {@link Store}.
+
+
+ Adds a Bouncy Castle {@link Store} to find CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ This method should be used to add local stores, like collection based
+ X.509 stores, if available. Local stores should be considered first,
+ before trying to use additional (remote) locations, because they do not
+ need possible additional network traffic.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores
+
+
+ Adds an additional Bouncy Castle {@link Store} to find CRLs, certificates,
+ attribute certificates or cross certificates.
+
+ You should not use this method. This method is used for adding additional
+ X.509 stores, which are used to add (remote) locations, e.g. LDAP, found
+ during X.509 object processing, e.g. in certificates or CRLs. This method
+ is used in PKIX certification path processing.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores()
+
+
+ Returns an IList of additional Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of additional Bouncy Castle
+ Stores. Never null.
+
+ @see #addAddionalStore(Store)
+
+
+ Returns an IList of Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of Bouncy Castle
+ Stores. Never null.
+
+ @see #setStores(IList)
+
+
+ Returns if additional {@link X509Store}s for locations like LDAP found
+ in certificates or CRLs should be used.
+
+ @return Returns true if additional stores are used.
+
+
+ Sets if additional {@link X509Store}s for locations like LDAP found in
+ certificates or CRLs should be used.
+
+ @param enabled true if additional stores are used.
+
+
+ Returns the required constraints on the target certificate or attribute
+ certificate. The constraints are returned as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector returned is cloned to protect
+ against subsequent modifications.
+
+ @return a IX509Selector specifying the constraints on the
+ target certificate or attribute certificate (or null)
+ @see #setTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Sets the required constraints on the target certificate or attribute
+ certificate. The constraints are specified as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector specified is cloned to protect
+ against subsequent modifications.
+
+
+ @param selector a IX509Selector specifying the constraints on
+ the target certificate or attribute certificate (or
+ null)
+ @see #getTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Returns the trusted attribute certificate issuers. If attribute
+ certificates is verified the trusted AC issuers must be set.
+
+ The returned ISet consists of TrustAnchors.
+
+ The returned ISet is immutable. Never null
+
+
+ @return Returns an immutable set of the trusted AC issuers.
+
+
+ Sets the trusted attribute certificate issuers. If attribute certificates
+ is verified the trusted AC issuers must be set.
+
+ The trustedACIssuers must be a ISet of
+ TrustAnchor
+
+ The given set is cloned.
+
+
+ @param trustedACIssuers The trusted AC issuers to set. Is never
+ null.
+ @throws ClassCastException if an element of stores is not
+ a TrustAnchor.
+
+
+ Returns the necessary attributes which must be contained in an attribute
+ certificate.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the necessary AC attributes.
+
+
+ Sets the necessary which must be contained in an attribute certificate.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param necessaryACAttributes The necessary AC attributes to set.
+ @throws ClassCastException if an element of
+ necessaryACAttributes is not a
+ String.
+
+
+ Returns the attribute certificates which are not allowed.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the prohibited AC attributes. Is never null.
+
+
+ Sets the attribute certificates which are not allowed.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param prohibitedACAttributes The prohibited AC attributes to set.
+ @throws ClassCastException if an element of
+ prohibitedACAttributes is not a
+ String.
+
+
+ Returns the attribute certificate checker. The returned set contains
+ {@link PKIXAttrCertChecker}s and is immutable.
+
+ @return Returns the attribute certificate checker. Is never
+ null.
+
+
+ Sets the attribute certificate checkers.
+
+ All elements in the ISet must a {@link PKIXAttrCertChecker}.
+
+
+ The given set is cloned.
+
+
+ @param attrCertCheckers The attribute certificate checkers to set. Is
+ never null.
+ @throws ClassCastException if an element of attrCertCheckers
+ is not a PKIXAttrCertChecker.
+
+
+
+ Summary description for PkixPolicyNode.
+
+
+
+ Constructors
+
+
+
+ This class helps to handle CRL revocation reasons mask. Each CRL handles a
+ certain set of revocation reasons.
+
+
+
+
+ Constructs are reason mask with the reasons.
+
+ The reasons.
+
+
+
+ A reason mask with no reason.
+
+
+
+
+ A mask with all revocation reasons.
+
+
+
+ Adds all reasons from the reasons mask to this mask.
+
+ @param mask The reasons mask to add.
+
+
+
+ Returns true if this reasons mask contains all possible
+ reasons.
+
+ true if this reasons mask contains all possible reasons.
+
+
+
+
+ Intersects this mask with the given reasons mask.
+
+ mask The mask to intersect with.
+ The intersection of this and teh given mask.
+
+
+
+ Returns true if the passed reasons mask has new reasons.
+
+ The reasons mask which should be tested for new reasons.
+ true if the passed reasons mask has new reasons.
+
+
+
+ Returns the reasons in this mask.
+
+
+
+ If the complete CRL includes an issuing distribution point (IDP) CRL
+ extension check the following:
+
+ (i) If the distribution point name is present in the IDP CRL extension
+ and the distribution field is present in the DP, then verify that one of
+ the names in the IDP matches one of the names in the DP. If the
+ distribution point name is present in the IDP CRL extension and the
+ distribution field is omitted from the DP, then verify that one of the
+ names in the IDP matches one of the names in the cRLIssuer field of the
+ DP.
+
+
+ (ii) If the onlyContainsUserCerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate does not include the basic
+ constraints extension with the cA boolean asserted.
+
+
+ (iii) If the onlyContainsCACerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate includes the basic constraints
+ extension with the cA boolean asserted.
+
+
+ (iv) Verify that the onlyContainsAttributeCerts boolean is not asserted.
+
+
+ @param dp The distribution point.
+ @param cert The certificate.
+ @param crl The CRL.
+ @throws AnnotatedException if one of the conditions is not met or an error occurs.
+
+
+ If the DP includes cRLIssuer, then verify that the issuer field in the
+ complete CRL matches cRLIssuer in the DP and that the complete CRL
+ contains an
+ g distribution point extension with the indirectCRL
+ boolean asserted. Otherwise, verify that the CRL issuer matches the
+ certificate issuer.
+
+ @param dp The distribution point.
+ @param cert The certificate ot attribute certificate.
+ @param crl The CRL for cert.
+ @throws AnnotatedException if one of the above conditions does not apply or an error
+ occurs.
+
+
+ Obtain and validate the certification path for the complete CRL issuer.
+ If a key usage extension is present in the CRL issuer's certificate,
+ verify that the cRLSign bit is set.
+
+ @param crl CRL which contains revocation information for the certificate
+ cert.
+ @param cert The attribute certificate or certificate to check if it is
+ revoked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param paramsPKIX paramsPKIX PKIX parameters.
+ @param certPathCerts The certificates on the certification path.
+ @return A Set with all keys of possible CRL issuer
+ certificates.
+ @throws AnnotatedException if the CRL is not valid or the status cannot be checked or
+ some error occurs.
+
+
+ Checks a distribution point for revocation information for the
+ certificate cert.
+
+ @param dp The distribution point to consider.
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param certStatus The current certificate revocation status.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ Checks a certificate if it is revoked.
+
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param sign The issuer certificate of the certificate cert.
+ @param workingPublicKey The public key of the issuer certificate sign.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ If use-deltas is set, verify the issuer and scope of the delta CRL.
+
+ @param deltaCRL The delta CRL.
+ @param completeCRL The complete CRL.
+ @param pkixParams The PKIX paramaters.
+ @throws AnnotatedException if an exception occurs.
+
+
+ Checks if an attribute certificate is revoked.
+
+ @param attrCert Attribute certificate to check if it is revoked.
+ @param paramsPKIX PKIX parameters.
+ @param issuerCert The issuer certificate of the attribute certificate
+ attrCert.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+
+ @throws CertPathValidatorException if the certificate is revoked or the
+ status cannot be checked or some error occurs.
+
+
+ Searches for a holder public key certificate and verifies its
+ certification path.
+
+ @param attrCert the attribute certificate.
+ @param pkixParams The PKIX parameters.
+ @return The certificate path of the holder certificate.
+ @throws Exception if
+
+ - no public key certificate can be found although holder
+ information is given by an entity name or a base certificate
+ ID
+ - support classes cannot be created
+ - no certification path for the public key certificate can
+ be built
+
+
+
+
+ Checks a distribution point for revocation information for the
+ certificate attrCert.
+
+ @param dp The distribution point to consider.
+ @param attrCert The attribute certificate which should be checked.
+ @param paramsPKIX PKIX parameters.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param issuerCert Certificate to check if it is revoked.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+ @throws Exception if the certificate is revoked or the status
+ cannot be checked or some error occurs.
+
+
+
+ A trust anchor or most-trusted Certification Authority (CA).
+
+ This class represents a "most-trusted CA", which is used as a trust anchor
+ for validating X.509 certification paths. A most-trusted CA includes the
+ public key of the CA, the CA's name, and any constraints upon the set of
+ paths which may be validated using this key. These parameters can be
+ specified in the form of a trusted X509Certificate or as individual
+ parameters.
+
+
+
+
+ Creates an instance of TrustAnchor with the specified X509Certificate and
+ optional name constraints, which are intended to be used as additional
+ constraints when validating an X.509 certification path.
+ The name constraints are specified as a byte array. This byte array
+ should contain the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459 and
+ X.509. The ASN.1 definition of this structure appears below.
+
+
+ NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+ GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+ GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+ BaseDistance ::= INTEGER (0..MAX)
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+
+ Note that the name constraints byte array supplied is cloned to protect
+ against subsequent modifications.
+
+ a trusted X509Certificate
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ if the specified X509Certificate is null
+
+
+
+ Creates an instance of TrustAnchor where the
+ most-trusted CA is specified as an X500Principal and public key.
+
+
+
+ Name constraints are an optional parameter, and are intended to be used
+ as additional constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459
+ and X.509. The ASN.1 notation for this structure is supplied in the
+ documentation for the other constructors.
+
+ Note that the name constraints byte array supplied here is cloned to
+ protect against subsequent modifications.
+
+
+ the name of the most-trusted CA as X509Name
+ the public key of the most-trusted CA
+
+ a byte array containing the ASN.1 DER encoding of a NameConstraints extension to
+ be used for checking name constraints. Only the value of the extension is included,
+ not the OID or criticality flag. Specify null to omit the parameter.
+
+
+ if caPrincipal or pubKey is null
+
+
+
+
+ Creates an instance of TrustAnchor where the most-trusted
+ CA is specified as a distinguished name and public key. Name constraints
+ are an optional parameter, and are intended to be used as additional
+ constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they would
+ appear in the NameConstraints structure defined in RFC 2459 and X.509.
+
+ the X.500 distinguished name of the most-trusted CA in RFC
+ 2253 string format
+ the public key of the most-trusted CA
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ throws NullPointerException, IllegalArgumentException
+
+
+
+ Returns the most-trusted CA certificate.
+
+
+
+
+ Returns the name of the most-trusted CA as an X509Name.
+
+
+
+
+ Returns the name of the most-trusted CA in RFC 2253 string format.
+
+
+
+
+ Returns the public key of the most-trusted CA.
+
+
+
+
+ Decode the name constraints and clone them if not null.
+
+
+
+
+ Returns a formatted string describing the TrustAnchor.
+
+ a formatted string describing the TrustAnchor
+
+
+ Base class for an RFC 3161 Time Stamp Request.
+
+
+ Create a TimeStampRequest from the past in byte array.
+
+ @param req byte array containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Create a TimeStampRequest from the past in input stream.
+
+ @param in input stream containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Validate the timestamp request, checking the digest to see if it is of an
+ accepted type and whether it is of the correct length for the algorithm specified.
+
+ @param algorithms a set of string OIDS giving accepted algorithms.
+ @param policies if non-null a set of policies we are willing to sign under.
+ @param extensions if non-null a set of extensions we are willing to accept.
+ @throws TspException if the request is invalid, or processing fails.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Request objects.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ Base class for an RFC 3161 Time Stamp Response object.
+
+
+ Create a TimeStampResponse from a byte array containing an ASN.1 encoding.
+
+ @param resp the byte array containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the byte array doesn't represent an ASN.1 encoding.
+
+
+ Create a TimeStampResponse from an input stream containing an ASN.1 encoding.
+
+ @param input the input stream containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the stream doesn't represent an ASN.1 encoding.
+
+
+ Check this response against to see if it a well formed response for
+ the passed in request. Validation will include checking the time stamp
+ token if the response status is GRANTED or GRANTED_WITH_MODS.
+
+ @param request the request to be checked against
+ @throws TspException if the request can not match this response.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Responses.
+
+
+ Return an appropriate TimeStampResponse.
+
+ If genTime is null a timeNotAvailable error response will be returned.
+
+ @param request the request this response is for.
+ @param serialNumber serial number for the response token.
+ @param genTime generation time for the response token.
+ @param provider provider to use for signature calculation.
+ @return
+ @throws NoSuchAlgorithmException
+ @throws NoSuchProviderException
+ @throws TSPException
+
+
+
+ Generate a TimeStampResponse with chosen status and FailInfoField.
+
+ @param status the PKIStatus to set.
+ @param failInfoField the FailInfoField to set.
+ @param statusString an optional string describing the failure.
+ @return a TimeStampResponse with a failInfoField and optional statusString
+ @throws TSPException in case the response could not be created
+
+
+ Validate the time stamp token.
+
+ To be valid the token must be signed by the passed in certificate and
+ the certificate must be the one referred to by the SigningCertificate
+ attribute included in the hashed attributes of the token. The
+ certificate must also have the ExtendedKeyUsageExtension with only
+ KeyPurposeID.IdKPTimeStamping and have been valid at the time the
+ timestamp was created.
+
+
+ A successful call to validate means all the above are true.
+
+
+
+ Return the underlying CmsSignedData object.
+
+ @return the underlying CMS structure.
+
+
+ Return a ASN.1 encoded byte stream representing the encoded object.
+
+ @throws IOException if encoding fails.
+
+
+ basic creation - only the default attributes will be included here.
+
+
+ create with a signer with extra signed/unsigned attributes.
+
+
+ @return the nonce value, null if there isn't one.
+
+
+ Recognised hash algorithms for the time stamp protocol.
+
+
+ Fetches the signature time-stamp attributes from a SignerInformation object.
+ Checks that the MessageImprint for each time-stamp matches the signature field.
+ (see RFC 3161 Appendix A).
+
+ @param signerInfo a SignerInformation to search for time-stamps
+ @return a collection of TimeStampToken objects
+ @throws TSPValidationException
+
+
+ Validate the passed in certificate as being of the correct type to be used
+ for time stamping. To be valid it must have an ExtendedKeyUsage extension
+ which has a key purpose identifier of id-kp-timeStamping.
+
+ @param cert the certificate of interest.
+ @throws TspValidationException if the certicate fails on one of the check points.
+
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Exception thrown if a TSP request or response fails to validate.
+
+ If a failure code is associated with the exception it can be retrieved using
+ the getFailureCode() method.
+
+
+ Return the failure code associated with this exception - if one is set.
+
+ @return the failure code if set, -1 otherwise.
+
+
+ General array utilities.
+
+
+
+ Are two arrays equal.
+
+ Left side.
+ Right side.
+ True if equal.
+
+
+
+ A constant time equals comparison - does not terminate early if
+ test will fail.
+
+ first array
+ second array
+ true if arrays equal, false otherwise.
+
+
+ Make a copy of a range of bytes from the passed in data array. The range can
+ extend beyond the end of the input array, in which case the return array will
+ be padded with zeroes.
+
+ @param data the array from which the data is to be copied.
+ @param from the start index at which the copying should take place.
+ @param to the final index of the range (exclusive).
+
+ @return a new byte array containing the range given.
+
+
+ BigInteger utilities.
+
+
+ Return the passed in value as an unsigned byte array.
+
+ @param value value to be converted.
+ @return a byte array without a leading zero byte if present in the signed encoding.
+
+
+ Return the passed in value as an unsigned byte array of specified length, zero-extended as necessary.
+
+ @param length desired length of result array.
+ @param n value to be converted.
+ @return a byte array of specified length, with leading zeroes as necessary given the size of n.
+
+
+ Return a random BigInteger not less than 'min' and not greater than 'max'
+
+ @param min the least value that may be generated
+ @param max the greatest value that may be generated
+ @param random the source of randomness
+ @return a random BigInteger value in the range [min,max]
+
+
+
+ Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value.
+
+ A UTC DateTime value not before epoch.
+ Number of whole milliseconds after epoch.
+ 'dateTime' is before epoch.
+
+
+
+ Create a DateTime value from the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+ Number of milliseconds since the epoch.
+ A UTC DateTime value
+
+
+
+ Return the current number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a base 64 output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A buffering class to allow translation from one format to another to
+ be done in discrete chunks.
+
+
+
+
+ Create a buffered Decoder.
+
+ The translater to use.
+ The size of the buffer.
+
+
+
+ Process one byte of data.
+
+ Data in.
+ Byte array for the output.
+ The offset in the output byte array to start writing from.
+ The amount of output bytes.
+
+
+
+ Process data from a byte array.
+
+ The input data.
+ Start position within input data array.
+ Amount of data to process from input data array.
+ Array to store output.
+ Position in output array to start writing from.
+ The amount of output bytes.
+
+
+
+ A class that allows encoding of data using a specific encoder to be processed in chunks.
+
+
+
+
+ Create.
+
+ The translator to use.
+ Size of the chunks.
+
+
+
+ Process one byte of data.
+
+ The byte.
+ An array to store output in.
+ Offset within output array to start writing from.
+
+
+
+
+ Process data from a byte array.
+
+ Input data Byte array containing data to be processed.
+ Start position within input data array.
+ Amount of input data to be processed.
+ Output data array.
+ Offset within output data array to start writing to.
+ The amount of data written.
+
+
+
+ Class to decode and encode Hex.
+
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a Hex output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A hex translator.
+
+
+
+
+ Return encoded block size.
+
+ 2
+
+
+
+ Encode some data.
+
+ Input data array.
+ Start position within input data array.
+ The amount of data to process.
+ The output data array.
+ The offset within the output data array to start writing from.
+ Amount of data encoded.
+
+
+
+ Returns the decoded block size.
+
+ 1
+
+
+
+ Decode data from a byte array.
+
+ The input data array.
+ Start position within input data array.
+ The amounty of data to process.
+ The output data array.
+ The position within the output data array to start writing from.
+ The amount of data written.
+
+
+ Encode and decode byte arrays (typically from binary to 7-bit ASCII
+ encodings).
+
+
+
+ Translator interface.
+
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Encode the input data producing a URL safe base 64 encoded byte array.
+
+ @return a byte array containing the URL safe base 64 encoded data.
+
+
+ Encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Decode the URL safe base 64 encoded input data - white space will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the URL safe base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the URL safe base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the URL safe base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+
+ Produce a copy of this object with its configuration and in its current state.
+
+
+ The returned object may be used simply to store the state, or may be used as a similar object
+ starting from the copied state.
+
+
+
+
+ Restore a copied object state into this object.
+
+
+ Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
+
+ an object originally {@link #copy() copied} from an object of the same type as this instance.
+ if the provided object is not of the correct type.
+ if the other parameter is in some other way invalid.
+
+
+
+ A
+
+
+
+
+
+ A
+
+
+ A
+
+
+
+
+
+ A
+
+
+
+
+ A generic PEM writer, based on RFC 1421
+
+
+ Base constructor.
+
+ @param out output stream to use.
+
+
+ Return the number of bytes or characters required to contain the
+ passed in object if it is PEM encoded.
+
+ @param obj pem object to be output
+ @return an estimate of the number of bytes
+
+
+
+ Pipe all bytes from inStr to outStr, throwing StreamFlowException if greater
+ than limit bytes in inStr.
+
+
+ A
+
+
+ A
+
+
+ A
+
+ The number of bytes actually transferred, if not greater than limit
+
+
+
+
+
+
+ Exception to be thrown on a failure to reset an object implementing Memoable.
+
+ The exception extends InvalidCastException to enable users to have a single handling case,
+ only introducing specific handling of this one if required.
+
+
+
+ Basic Constructor.
+
+ @param msg message to be associated with this exception.
+
+
+ Validate the given IPv4 or IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address, false otherwise
+
+
+ Validate the given IPv4 or IPv6 address and netmask.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address with netmask, false otherwise
+
+
+ Validate the given IPv4 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ Validate the given IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ General string utilities.
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ The Holder object.
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+
+ Constructs a holder for v2 attribute certificates with a hash value for
+ some type of object.
+
+ digestedObjectType can be one of the following:
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+ This cannot be used if a v1 attribute certificate is used.
+
+ @param digestedObjectType The digest object type.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param otherObjectTypeID The object type ID if
+ digestedObjectType is
+ otherObjectDigest.
+ @param objectDigest The hash value.
+
+
+ Returns the digest object type if an object digest info is used.
+
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+
+ @return The digest object type or -1 if no object digest info is set.
+
+
+ Returns the other object type ID if an object digest info is used.
+
+ @return The other object type ID or null if no object
+ digest info is set.
+
+
+ Returns the hash if an object digest info is used.
+
+ @return The hash or null if no object digest info is set.
+
+
+ Returns the digest algorithm ID if an object digest info is used.
+
+ @return The digest algorithm ID or null if no object
+ digest info is set.
+
+
+ Return any principal objects inside the attribute certificate holder entity names field.
+
+ @return an array of IPrincipal objects (usually X509Name), null if no entity names field is set.
+
+
+ Return the principals associated with the issuer attached to this holder
+
+ @return an array of principals, null if no BaseCertificateID is set.
+
+
+ Return the serial number associated with the issuer attached to this holder.
+
+ @return the certificate serial number, null if no BaseCertificateID is set.
+
+
+ Carrying class for an attribute certificate issuer.
+
+
+ Set the issuer directly with the ASN.1 structure.
+
+ @param issuer The issuer
+
+
+ Return any principal objects inside the attribute certificate issuer object.
+ An array of IPrincipal objects (usually X509Principal).
+
+
+ A high level authority key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Create an AuthorityKeyIdentifier using the passed in certificate's public
+ key, issuer and serial number.
+
+ @param certificate the certificate providing the information.
+ @throws CertificateParsingException if there is a problem processing the certificate
+
+
+ Create an AuthorityKeyIdentifier using just the hash of the
+ public key.
+
+ @param pubKey the key to generate the hash from.
+ @throws InvalidKeyException if there is a problem using the key.
+
+
+ A high level subject key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Interface for an X.509 Attribute Certificate.
+
+
+ The version number for the certificate.
+
+
+ The serial number for the certificate.
+
+
+ The UTC DateTime before which the certificate is not valid.
+
+
+ The UTC DateTime after which the certificate is not valid.
+
+
+ The holder of the certificate.
+
+
+ The issuer details for the certificate.
+
+
+ Return the attributes contained in the attribute block in the certificate.
+ An array of attributes.
+
+
+ Return the attributes with the same type as the passed in oid.
+ The object identifier we wish to match.
+ An array of matched attributes, null if there is no match.
+
+
+ Return an ASN.1 encoded byte array representing the attribute certificate.
+ An ASN.1 encoded byte array.
+ If the certificate cannot be encoded.
+
+
+
+ Get all critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ Get all non-critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ A utility class that will extract X509Principal objects from X.509 certificates.
+
+ Use this in preference to trying to recreate a principal from a string, not all
+ DNs are what they should be, so it's best to leave them encoded where they
+ can be.
+
+
+
+ Return the issuer of the given cert as an X509Principal.
+
+
+ Return the subject of the given cert as an X509Principal.
+
+
+ Return the issuer of the given CRL as an X509Principal.
+
+
+ This class is an Selector like implementation to select
+ attribute certificates from a given set of criteria.
+
+ @see org.bouncycastle.x509.X509AttributeCertificate
+ @see org.bouncycastle.x509.X509Store
+
+
+
+ Decides if the given attribute certificate should be selected.
+
+ The attribute certificate to be checked.
+ true if the object matches this selector.
+
+
+ The attribute certificate which must be matched.
+ If null is given, any will do.
+
+
+ The criteria for validity
+ If null is given any will do.
+
+
+ The holder.
+ If null is given any will do.
+
+
+ The issuer.
+ If null is given any will do.
+
+
+ The serial number.
+ If null is given any will do.
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name The name as a GeneralName (not null)
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the name in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target names criteria. If null is
+ given any will do.
+
+ The collection consists of either GeneralName objects or byte[] arrays representing
+ DER encoded GeneralName structures.
+
+
+ @param names A collection of target names.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetName(byte[])
+ @see #AddTargetName(GeneralName)
+
+
+ Gets the target names. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target names
+ @see #setTargetNames(Collection)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param group The group as GeneralName form (not null)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the group in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target groups criteria. If null is
+ given any will do.
+
+ The collection consists of GeneralName objects or byte[]
+ representing DER encoded GeneralNames.
+
+
+ @param names A collection of target groups.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetGroup(byte[])
+ @see #AddTargetGroup(GeneralName)
+
+
+ Gets the target groups. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target groups.
+ @see #setTargetGroups(Collection)
+
+
+
+ This class is an IX509Selector implementation to select
+ certificate pairs, which are e.g. used for cross certificates. The set of
+ criteria is given from two X509CertStoreSelector objects,
+ each of which, if present, must match the respective component of a pair.
+
+
+
+ The certificate pair which is used for testing on equality.
+
+
+ The certificate selector for the forward part.
+
+
+ The certificate selector for the reverse part.
+
+
+
+ Decides if the given certificate pair should be selected. If
+ obj is not a X509CertificatePair, this method
+ returns false.
+
+ The X509CertificatePair to be tested.
+ true if the object matches this selector.
+
+
+
+ An ISet of DerObjectIdentifier objects.
+
+
+
+ A simple collection backed store.
+
+
+ Basic constructor.
+
+ @param collection - initial contents for the store, this is copied.
+
+
+ Return the matches in the collection for the passed in selector.
+
+ @param selector the selector to match against.
+ @return a possibly empty collection of matching objects.
+
+
+ This class contains a collection for collection based X509Stores.
+
+
+
+ Constructor.
+
+ The collection is copied.
+
+
+ The collection containing X.509 object types.
+ If collection is null.
+
+
+ Returns a copy of the ICollection.
+
+
+ Returns a formatted string describing the parameters.
+
+
+
+ An ICollection of X509Name objects
+
+
+
+ The attribute certificate being checked. This is not a criterion.
+ Rather, it is optional information that may help a {@link X509Store} find
+ CRLs that would be relevant when checking revocation for the specified
+ attribute certificate. If null is specified, then no such
+ optional information is provided.
+
+ @param attrCert the IX509AttributeCertificate being checked (or
+ null)
+ @see #getAttrCertificateChecking()
+
+
+ If true only complete CRLs are returned. Defaults to
+ false.
+
+ @return true if only complete CRLs are returned.
+
+
+ Returns if this selector must match CRLs with the delta CRL indicator
+ extension set. Defaults to false.
+
+ @return Returns true if only CRLs with the delta CRL
+ indicator extension are selected.
+
+
+ The issuing distribution point.
+
+ The issuing distribution point extension is a CRL extension which
+ identifies the scope and the distribution point of a CRL. The scope
+ contains among others information about revocation reasons contained in
+ the CRL. Delta CRLs and complete CRLs must have matching issuing
+ distribution points.
+
+ The byte array is cloned to protect against subsequent modifications.
+
+ You must also enable or disable this criteria with
+ {@link #setIssuingDistributionPointEnabled(bool)}.
+
+ @param issuingDistributionPoint The issuing distribution point to set.
+ This is the DER encoded OCTET STRING extension value.
+ @see #getIssuingDistributionPoint()
+
+
+ Whether the issuing distribution point criteria should be applied.
+ Defaults to false.
+
+ You may also set the issuing distribution point criteria if not a missing
+ issuing distribution point should be assumed.
+
+ @return Returns if the issuing distribution point check is enabled.
+
+
+ The maximum base CRL number. Defaults to null.
+
+ @return Returns the maximum base CRL number.
+ @see #setMaxBaseCRLNumber(BigInteger)
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+ Class for carrying the values in an X.509 Attribute.
+
+
+ @param at an object representing an attribute.
+
+
+ Create an X.509 Attribute with the type given by the passed in oid and
+ the value represented by an ASN.1 Set containing value.
+
+ @param oid type of the attribute
+ @param value value object to go into the atribute's value set.
+
+
+ Create an X.59 Attribute with the type given by the passed in oid and the
+ value represented by an ASN.1 Set containing the objects in value.
+
+ @param oid type of the attribute
+ @param value vector of values to go in the attribute's value set.
+
+
+
+ An Object representing an X509 Certificate.
+ Has static methods for loading Certificates encoded in many forms that return X509Certificate Objects.
+
+
+
+
+ Return true if the current time is within the start and end times nominated on the certificate.
+
+ true id certificate is valid for the current time.
+
+
+
+ Return true if the nominated time is within the start and end times nominated on the certificate.
+
+ The time to test validity against.
+ True if certificate is valid for nominated time.
+
+
+
+ Checks if the current date is within certificate's validity period.
+
+
+
+
+ Checks if the given date is within certificate's validity period.
+
+ if the certificate is expired by given date
+ if the certificate is not yet valid on given date
+
+
+
+ Return the certificate's version.
+
+ An integer whose value Equals the version of the cerficate.
+
+
+
+ Return a BigInteger containing the serial number.
+
+ The Serial number.
+
+
+
+ Get the Issuer Distinguished Name. (Who signed the certificate.)
+
+ And X509Object containing name and value pairs.
+
+
+
+ Get the subject of this certificate.
+
+ An X509Name object containing name and value pairs.
+
+
+
+ The time that this certificate is valid from.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ The time that this certificate is valid up to.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ Return the Der encoded TbsCertificate data.
+ This is the certificate component less the signature.
+ To Get the whole certificate call the GetEncoded() member.
+
+ A byte array containing the Der encoded Certificate component.
+
+
+
+ The signature.
+
+ A byte array containg the signature of the certificate.
+
+
+
+ A meaningful version of the Signature Algorithm. (EG SHA1WITHRSA)
+
+ A sting representing the signature algorithm.
+
+
+
+ Get the Signature Algorithms Object ID.
+
+ A string containg a '.' separated object id.
+
+
+
+ Get the signature algorithms parameters. (EG DSA Parameters)
+
+ A byte array containing the Der encoded version of the parameters or null if there are none.
+
+
+
+ Get the issuers UID.
+
+ A DerBitString.
+
+
+
+ Get the subjects UID.
+
+ A DerBitString.
+
+
+
+ Get a key usage guidlines.
+
+
+
+
+ Get the public key of the subject of the certificate.
+
+ The public key parameters.
+
+
+
+ Return a Der encoded version of this certificate.
+
+ A byte array.
+
+
+
+ Verify the certificate's signature using the nominated public key.
+
+ An appropriate public key parameter object, RsaPublicKeyParameters, DsaPublicKeyParameters or ECDsaPublicKeyParameters
+ True if the signature is valid.
+ If key submitted is not of the above nominated types.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+
+ This class contains a cross certificate pair. Cross certificates pairs may
+ contain two cross signed certificates from two CAs. A certificate from the
+ other CA to this CA is contained in the forward certificate, the certificate
+ from this CA to the other CA is contained in the reverse certificate.
+
+
+
+ Constructor
+ Certificate from the other CA to this CA.
+ Certificate from this CA to the other CA.
+
+
+ Constructor from a ASN.1 CertificatePair structure.
+ The CertificatePair ASN.1 object.
+
+
+ Returns the certificate from the other CA to this CA.
+
+
+ Returns the certificate from this CA to the other CA.
+
+
+ class for dealing with X509 certificates.
+
+ At the moment this will deal with "-----BEGIN CERTIFICATE-----" to "-----END CERTIFICATE-----"
+ base 64 encoded certs, as well as the BER binaries of certificates and some classes of PKCS#7
+ objects.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRLs
+
+ Authority Key Identifier
+ Issuer Alternative Name
+ CRL Number
+ Delta CRL Indicator (critical)
+ Issuing Distribution Point (critical)
+
+
+
+ Verify the CRL's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the CRL's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the CRL algorithm is invalid.
+
+
+ Returns a string representation of this CRL.
+
+ @return a string representation of this CRL.
+
+
+ Checks whether the given certificate is on this CRL.
+
+ @param cert the certificate to check for.
+ @return true if the given certificate is on this CRL,
+ false otherwise.
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRL Entries
+
+ ReasonCode Hode Instruction Code Invalidity Date Certificate Issuer
+ (critical)
+
+
+ Constructor for CRLEntries of indirect CRLs. If isIndirect
+ is false {@link #getCertificateIssuer()} will always
+ return null, previousCertificateIssuer is
+ ignored. If this isIndirect is specified and this CrlEntry
+ has no certificate issuer CRL entry extension
+ previousCertificateIssuer is returned by
+ {@link #getCertificateIssuer()}.
+
+ @param c
+ TbsCertificateList.CrlEntry object.
+ @param isIndirect
+ true if the corresponding CRL is a indirect
+ CRL.
+ @param previousCertificateIssuer
+ Certificate issuer of the previous CrlEntry.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate revocation list (CRL) object and initializes
+ it with the data read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the CRLs read from
+ the given input stream inStream.
+
+ The inStream may contain a sequence of DER-encoded CRLs, or
+ a PKCS#7 CRL set. This is a PKCS#7 SignedData object, with the
+ only significant field being crls. In particular the signature
+ and the contents are ignored.
+
+
+
+ Get non critical extensions.
+
+ A set of non critical extension oids.
+
+
+
+ Get any critical extensions.
+
+ A sorted list of critical entension.
+
+
+
+ Get the value of a given extension.
+
+ The object ID of the extension.
+ An Asn1OctetString object if that extension is found or null if not.
+
+
+ A holding class for constructing an X509 Key Usage extension.
+
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509KeyUsage.keyEncipherment | X509KeyUsage.dataEncipherment)
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Class to Generate X509V1 Certificates.
+
+
+
+
+ Default Constructor.
+
+
+
+
+ Reset the generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can get.
+ The serial number.
+
+
+
+ Set the issuer distinguished name.
+ The issuer is the entity whose private key is used to sign the certificate.
+
+ The issuers DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the subject distinguished name.
+ The subject describes the entity associated with the public key.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+ This can be either a name or an OID, names are treated as case insensitive.
+
+ string representation of the algorithm name
+
+
+
+ Generate a new X509Certificate.
+
+ The private key of the issuer used to sign this certificate.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate specifying a SecureRandom instance that you would like to use.
+
+ The private key of the issuer used to sign this certificate.
+ The Secure Random you want to use.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ An implementation of a version 2 X.509 Attribute Certificate.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+ Class to produce an X.509 Version 2 AttributeCertificate.
+
+
+ Reset the generator
+
+
+ Set the Holder of this Attribute Certificate.
+
+
+ Set the issuer.
+
+
+ Set the serial number for the certificate.
+
+
+
+ Set the signature algorithm. This can be either a name or an OID, names
+ are treated as case insensitive.
+
+ The algorithm name.
+
+
+ Add an attribute.
+
+
+ Add a given extension field for the standard extensions tag.
+
+
+
+ Add a given extension field for the standard extensions tag.
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject,
+ using the supplied source of randomness, if required.
+
+
+
+
+ Generate a new X.509 Attribute Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An IX509AttributeCertificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ class to produce an X.509 Version 2 CRL.
+
+
+ reset the generator
+
+
+ Set the issuer distinguished name - the issuer is the entity whose private key is used to sign the
+ certificate.
+
+
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with an Invalidity Date extension as well as a CrlReason extension.
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with extensions.
+
+
+
+ Add the CRLEntry objects contained in a previous CRL.
+
+ @param other the X509Crl to source the other entries from.
+
+
+
+ Set the signature algorithm that will be used to sign this CRL.
+
+
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Crl.
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject using the specified secure random.
+
+ The private key of the issuer that is signing this certificate.
+ Your Secure Random instance.
+ An X509Crl.
+
+
+
+ Generate a new X509Crl using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Crl.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
+ A class to Generate Version 3 X509Certificates.
+
+
+
+
+ Reset the Generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can Get.
+ The serial number.
+
+
+
+ Set the distinguished name of the issuer.
+ The issuer is the entity which is signing the certificate.
+
+ The issuer's DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the DN of the entity that this certificate is about.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+
+
+
+
+
+ Set the subject unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Set the issuer unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3).
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension using a string with a dotted decimal OID.
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3),
+ copying the extension value from another certificate.
+
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ copying the extension value from another certificate.
+ @throws CertificateParsingException if the extension cannot be extracted.
+
+
+
+ Generate an X509Certificate.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Certificate.
+
+
+
+ Generate an X509Certificate using your own SecureRandom.
+
+ The private key of the issuer that is signing this certificate.
+ You Secure Random instance.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ Base class for both the compress and decompress classes.
+ Holds common arrays, and static data.
+
+ @author Keiron Liddle
+
+
+ An input stream that decompresses from the BZip2 format (with the file
+ header chars) to be read as any other stream.
+
+ @author Keiron Liddle
+
+ NB: note this class has been modified to read the leading BZ from the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+ An output stream that compresses into the BZip2 format (with the file
+ header chars) into another stream.
+
+ @author Keiron Liddle
+
+ TODO: Update to BZip2 1.0.1
+ NB: note this class has been modified to add a leading BZ to the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+
+ modified by Oliver Merkel, 010128
+
+
+
+ A simple class the hold and calculate the CRC for sanity checking
+ of the data.
+
+ @author Keiron Liddle
+
+
+
diff --git a/packages/Portable.BouncyCastle.1.8.2/lib/netstandard1.3/BouncyCastle.Crypto.dll b/packages/Portable.BouncyCastle.1.8.2/lib/netstandard1.3/BouncyCastle.Crypto.dll
new file mode 100644
index 0000000..ea7cf8b
Binary files /dev/null and b/packages/Portable.BouncyCastle.1.8.2/lib/netstandard1.3/BouncyCastle.Crypto.dll differ
diff --git a/packages/Portable.BouncyCastle.1.8.2/lib/netstandard1.3/BouncyCastle.Crypto.xml b/packages/Portable.BouncyCastle.1.8.2/lib/netstandard1.3/BouncyCastle.Crypto.xml
new file mode 100644
index 0000000..5a920d6
--- /dev/null
+++ b/packages/Portable.BouncyCastle.1.8.2/lib/netstandard1.3/BouncyCastle.Crypto.xml
@@ -0,0 +1,25068 @@
+
+
+
+ BouncyCastle.Crypto
+
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ Return the DER encoding of the object, null if the DER encoding can not be made.
+
+ @return a DER byte array, null otherwise.
+
+
+ a general purpose ASN.1 decoder - note: this class differs from the
+ others in that it returns null after it has read the last object in
+ the stream. If an ASN.1 Null is encountered a Der/BER Null object is
+ returned.
+
+
+ Create an ASN1InputStream where no DER object will be longer than limit.
+
+ @param input stream containing ASN.1 encoded data.
+ @param limit maximum size of a DER encoded object.
+
+
+ Create an ASN1InputStream based on the input byte array. The length of DER objects in
+ the stream is automatically limited to the length of the input array.
+
+ @param input array containing ASN.1 encoded data.
+
+
+ build an object given its tag and the number of bytes to construct it from.
+
+
+ A Null object.
+
+
+ Create a base ASN.1 object from a byte array.
+ The byte array to parse.
+ The base ASN.1 object represented by the byte array.
+
+ If there is a problem parsing the data, or parsing an object did not exhaust the available data.
+
+
+
+ Read a base ASN.1 object from a stream.
+ The stream to parse.
+ The base ASN.1 object represented by the byte array.
+ If there is a problem parsing the data.
+
+
+ return an Octet string from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return an Octet string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ @param string the octets making up the octet string.
+
+
+ return an Asn1Sequence from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 sequence from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ sequence - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sequences you really should
+ be using this method.
+
+ @param obj the tagged object.
+ @param explicitly true if the object is meant to be explicitly tagged,
+ false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return the object at the sequence position indicated by index.
+
+ @param index the sequence number (starting at zero) of the object
+ @return the object at the sequence position indicated by index.
+
+
+ return an ASN1Set from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 set from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ set - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sets you really should
+ be using this method.
+
+ @param obj the tagged object.
+ @param explicitly true if the object is meant to be explicitly tagged
+ false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return the object at the set position indicated by index.
+
+ @param index the set number (starting at zero) of the object
+ @return the object at the set position indicated by index.
+
+
+ ASN.1 TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if the object is explicitly tagged.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ return whether or not the object may be explicitly tagged.
+
+ Note: if the object has been read from an input stream, the only
+ time you can be sure if isExplicit is returning the true state of
+ affairs is if it returns false. An implicitly tagged object may appear
+ to be explicitly tagged, so you need to understand the context under
+ which the reading was done as well, see GetObject below.
+
+
+ return whatever was following the tag.
+
+ Note: tagged objects are generally context dependent if you're
+ trying to extract a tagged object you should be going via the
+ appropriate GetInstance method.
+
+
+ Return the object held in this tagged object as a parser assuming it has
+ the type of the passed in tag. If the object doesn't have a parser
+ associated with it, the base object is returned.
+
+
+
+
+
+ SHA-2.SHA-256; 1.3.6.1.4.1.22554.1.2.1
+
+
+ SHA-2.SHA-384; 1.3.6.1.4.1.22554.1.2.2
+
+
+ SHA-2.SHA-512; 1.3.6.1.4.1.22554.1.2.3
+
+
+ SHA-2.SHA-224; 1.3.6.1.4.1.22554.1.2.4
+
+
+ PKCS-5(1)|PKCS-12(2)
+ SHA-1.PKCS5; 1.3.6.1.4.1.22554.1.1.1
+
+
+ SHA-1.PKCS12; 1.3.6.1.4.1.22554.1.1.2
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.1
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.2
+
+
+ AES(1) . (CBC-128(2)|CBC-192(22)|CBC-256(42))
+ 1.3.6.1.4.1.22554.1.1.2.1.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.42
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.42
+
+
+ signature(2) algorithms
+
+
+ Sphincs-256
+
+
+ XMSS
+
+
+ XMSS^MT
+
+
+ key_exchange(3) algorithms
+
+
+ NewHope
+
+
+ A BER Null object.
+
+
+ convert a vector of octet strings into a single byte string
+
+
+ The octets making up the octet string.
+
+
+ return the DER octets that make up this string.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty sequence
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ BER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+
+ CAKeyUpdAnnContent ::= SEQUENCE {
+ oldWithNew CmpCertificate, -- old pub signed with new priv
+ newWithOld CmpCertificate, -- new pub signed with old priv
+ newWithNew CmpCertificate -- new pub signed with new priv
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertConfirmContent ::= SEQUENCE OF CertStatus
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertifiedKeyPair ::= SEQUENCE {
+ certOrEncCert CertOrEncCert,
+ privateKey [0] EncryptedValue OPTIONAL,
+ -- see [CRMF] for comment on encoding
+ publicationInfo [1] PKIPublicationInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertOrEncCert ::= CHOICE {
+ certificate [0] CMPCertificate,
+ encryptedCert [1] EncryptedValue
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRepMessage ::= SEQUENCE {
+ caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL,
+ response SEQUENCE OF CertResponse
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertResponse ::= SEQUENCE {
+ certReqId INTEGER,
+ -- to match this response with corresponding request (a value
+ -- of -1 is to be used if certReqId is not specified in the
+ -- corresponding request)
+ status PKIStatusInfo,
+ certifiedKeyPair CertifiedKeyPair OPTIONAL,
+ rspInfo OCTET STRING OPTIONAL
+ -- analogous to the id-regInfo-utf8Pairs string defined
+ -- for regInfo in CertReqMsg [CRMF]
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertStatus ::= SEQUENCE {
+ certHash OCTET STRING,
+ -- the hash of the certificate, using the same hash algorithm
+ -- as is used to create and verify the certificate signature
+ certReqId INTEGER,
+ -- to match this confirmation with the corresponding req/rep
+ statusInfo PKIStatusInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Note: the addition of attribute certificates is a BC extension.
+
+
+
+ CMPCertificate ::= CHOICE {
+ x509v3PKCert Certificate
+ x509v2AttrCert [1] AttributeCertificate
+ }
+
+ Note: the addition of attribute certificates is a BC extension.
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CrlAnnContent ::= SEQUENCE OF CertificateList
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenRepContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+ Example InfoTypeAndValue contents include, but are not limited
+ to, the following (un-comment in this ASN.1 module and use as
+ appropriate for a given environment):
+
+ id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1}
+ CAProtEncCertValue ::= CMPCertificate
+ id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
+ SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3}
+ EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
+ PreferredSymmAlgValue ::= AlgorithmIdentifier
+ id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5}
+ CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent
+ id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6}
+ CurrentCRLValue ::= CertificateList
+ id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7}
+ UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER
+ id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10}
+ KeyPairParamReqValue ::= OBJECT IDENTIFIER
+ id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11}
+ KeyPairParamRepValue ::= AlgorithmIdentifer
+ id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12}
+ RevPassphraseValue ::= EncryptedValue
+ id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13}
+ ImplicitConfirmValue ::= NULL
+ id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14}
+ ConfirmWaitTimeValue ::= GeneralizedTime
+ id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15}
+ OrigPKIMessageValue ::= PKIMessages
+ id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16}
+ SuppLangTagsValue ::= SEQUENCE OF UTF8String
+
+ where
+
+ id-pkix OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
+ and
+ id-it OBJECT IDENTIFIER ::= {id-pkix 4}
+
+
+
+
+ InfoTypeAndValue ::= SEQUENCE {
+ infoType OBJECT IDENTIFIER,
+ infoValue ANY DEFINED BY infoType OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ KeyRecRepContent ::= SEQUENCE {
+ status PKIStatusInfo,
+ newSigCert [0] CMPCertificate OPTIONAL,
+ caCerts [1] SEQUENCE SIZE (1..MAX) OF
+ CMPCertificate OPTIONAL,
+ keyPairHist [2] SEQUENCE SIZE (1..MAX) OF
+ CertifiedKeyPair OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OobCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the Der encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PbmParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiBody.
+ @param type one of the TYPE_* constants
+ @param content message content
+
+
+
+ PkiBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiConfirmContent ::= NULL
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIFailureInfo ::= BIT STRING {
+ badAlg (0),
+ -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2),
+ -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5),
+ -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+ certRevoked (10),
+ certConfirmed (11),
+ wrongIntegrity (12),
+ badRecipientNonce (13),
+ timeNotAvailable (14),
+ -- the TSA's time source is not available
+ unacceptedPolicy (15),
+ -- the requested TSA policy is not supported by the TSA
+ unacceptedExtension (16),
+ -- the requested extension is not supported by the TSA
+ addInfoNotAvailable (17)
+ -- the additional information requested could not be understood
+ -- or is not available
+ badSenderNonce (18),
+ badCertTemplate (19),
+ signerNotTrusted (20),
+ transactionIdInUse (21),
+ unsupportedVersion (22),
+ notAuthorized (23),
+ systemUnavail (24),
+ systemFailure (25),
+ -- the request cannot be handled due to system failure
+ duplicateCertReq (26)
+
+
+
+ Basic constructor.
+
+
+ Return the number of string elements present.
+
+ @return number of elements present.
+
+
+ Return the UTF8STRING at index.
+
+ @param index index of the string of interest
+ @return the string at index.
+
+
+
+ PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
+
+
+
+ Value for a "null" recipient or sender.
+
+
+
+ PkiHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiMessage.
+
+ @param header message header
+ @param body message body
+ @param protection message protection (may be null)
+ @param extraCerts extra certificates (may be null)
+
+
+
+ PkiMessage ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody,
+ protection [0] PKIProtection OPTIONAL,
+ extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiMessages ::= SEQUENCE SIZE (1..MAX) OF PkiMessage
+
+ @return a basic ASN.1 object representation.
+
+
+ @param status
+
+
+ @param status
+ @param statusString
+
+
+
+ PkiStatusInfo ::= SEQUENCE {
+ status PKIStatus, (INTEGER)
+ statusString PkiFreeText OPTIONAL,
+ failInfo PkiFailureInfo OPTIONAL (BIT STRING)
+ }
+
+ PKIStatus:
+ granted (0), -- you got exactly what you asked for
+ grantedWithMods (1), -- you got something like what you asked for
+ rejection (2), -- you don't get it, more information elsewhere in the message
+ waiting (3), -- the request body part has not yet been processed, expect to hear more later
+ revocationWarning (4), -- this message contains a warning that a revocation is imminent
+ revocationNotification (5), -- notification that a revocation has occurred
+ keyUpdateWarning (6) -- update already done for the oldCertId specified in CertReqMsg
+
+ PkiFailureInfo:
+ badAlg (0), -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2), -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5), -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+
+
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PollReqContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyChallContent ::= SEQUENCE OF Challenge
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyRespContent ::= SEQUENCE OF INTEGER
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ProtectedPart ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevAnnContent ::= SEQUENCE {
+ status PKIStatus,
+ certId CertId,
+ willBeRevokedAt GeneralizedTime,
+ badSinceDate GeneralizedTime,
+ crlDetails Extensions OPTIONAL
+ -- extra CRL details (e.g., crl number, reason, location, etc.)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevReqContent ::= SEQUENCE OF RevDetails
+
+ @return a basic ASN.1 object representation.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attribute ::= SEQUENCE {
+ attrType OBJECT IDENTIFIER,
+ attrValues SET OF AttributeValue
+ }
+
+
+
+
+ Attributes ::=
+ SET SIZE(1..MAX) OF Attribute -- according to RFC 5652
+
+ @return
+
+
+ Return the first attribute matching the given OBJECT IDENTIFIER
+
+
+ Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be
+ empty if there are no attributes of the required type present.
+
+ @param oid type of attribute required.
+ @return a vector of all the attributes found of type oid.
+
+
+ Return a new table with the passed in attribute added.
+
+ @param attrType
+ @param attrValue
+ @return
+
+
+ return an AuthenticatedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthenticatedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ The other Revocation Info arc
+ id-ri OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7) ri(16) }
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= Sequence {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ return a CompressedData object from a tagged object.
+
+ @param ato the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a CompressedData object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= SEQUENCE {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ MQVuserKeyingMaterial ::= SEQUENCE {
+ ephemeralPublicKey OriginatorPublicKey,
+ addedukm [0] EXPLICIT UserKeyingMaterial OPTIONAL }
+
+
+
+ return an EncryptedContentInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedData ::= SEQUENCE {
+ version CMSVersion,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ return an EnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an EnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= Sequence {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ return a KekIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekIdentifier ::= Sequence {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+
+
+ return a KekRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 4
+ kekID KekIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return an KeyAgreeRecipientIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an KeyAgreeRecipientIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyAgreeRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ rKeyId [0] IMPLICIT RecipientKeyIdentifier
+ }
+
+
+
+ return a KeyAgreeRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KeyAgreeRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ * Produce an object suitable for an Asn1OutputStream.
+ *
+ * KeyAgreeRecipientInfo ::= Sequence {
+ * version CMSVersion, -- always set to 3
+ * originator [0] EXPLICIT OriginatorIdentifierOrKey,
+ * ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
+ * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ * recipientEncryptedKeys RecipientEncryptedKeys
+ * }
+ *
+ * UserKeyingMaterial ::= OCTET STRING
+ *
+
+
+ return a KeyTransRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyTransRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 0 or 2
+ rid RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+
+ MetaData ::= SEQUENCE {
+ hashProtected BOOLEAN,
+ fileName UTF8String OPTIONAL,
+ mediaType IA5String OPTIONAL,
+ otherMetaData Attributes OPTIONAL
+ }
+
+ @return
+
+
+ return an OriginatorIdentifierOrKey object from a tagged object.
+
+ @param o the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorIdentifierOrKey object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorKey [1] OriginatorPublicKey
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ return an OriginatorInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorInfo ::= Sequence {
+ certs [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL
+ }
+
+
+
+ return an OriginatorPublicKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorPublicKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorPublicKey ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+ }
+
+
+
+ return an OtherKeyAttribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherKeyAttribute ::= Sequence {
+ keyAttrId OBJECT IDENTIFIER,
+ keyAttr ANY DEFINED BY keyAttrId OPTIONAL
+ }
+
+
+
+ return a OtherRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherRecipientInfo ::= Sequence {
+ oriType OBJECT IDENTIFIER,
+ oriValue ANY DEFINED BY oriType }
+
+
+
+ return a OtherRevocationInfoFormat object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRevocationInfoFormat object from the given object.
+
+ @param obj the object we want converted.
+ @exception IllegalArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ OtherRevocationInfoFormat ::= SEQUENCE {
+ otherRevInfoFormat OBJECT IDENTIFIER,
+ otherRevInfo ANY DEFINED BY otherRevInfoFormat }
+
+
+
+ return a PasswordRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a PasswordRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ PasswordRecipientInfo ::= Sequence {
+ version CMSVersion, -- Always set to 0
+ keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
+ OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+
+
+ return an RecipientEncryptedKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientEncryptedKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientEncryptedKey ::= SEQUENCE {
+ rid KeyAgreeRecipientIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return a RecipientIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientInfo ::= CHOICE {
+ ktri KeyTransRecipientInfo,
+ kari [1] KeyAgreeRecipientInfo,
+ kekri [2] KekRecipientInfo,
+ pwri [3] PasswordRecipientInfo,
+ ori [4] OtherRecipientInfo }
+
+
+
+ return a RecipientKeyIdentifier object from a tagged object.
+
+ @param _ato the tagged object holding the object we want.
+ @param _explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientKeyIdentifier object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientKeyIdentifier ::= Sequence {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+
+ ScvpReqRes ::= SEQUENCE {
+ request [0] EXPLICIT ContentInfo OPTIONAL,
+ response ContentInfo }
+
+ @return the ASN.1 primitive representation.
+
+
+ a signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+
+ SignedData ::= SEQUENCE {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+ return a SignerIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ SignerIdentifier sid,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+
+ TimeStampAndCRL ::= SEQUENCE {
+ timeStamp TimeStampToken, -- according to RFC 3161
+ crl CertificateList OPTIONAL -- according to RFC 5280
+ }
+
+ @return
+
+
+
+ TimeStampedData ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ dataUri IA5String OPTIONAL,
+ metaData MetaData OPTIONAL,
+ content OCTET STRING OPTIONAL,
+ temporalEvidence Evidence
+ }
+
+ @return
+
+
+
+ TimeStampTokenEvidence ::=
+ SEQUENCE SIZE(1..MAX) OF TimeStampAndCrl
+
+ @return
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertId ::= SEQUENCE {
+ issuer GeneralName,
+ serialNumber INTEGER }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new CertReqMsg.
+ @param certReq CertRequest
+ @param popo may be null
+ @param regInfo may be null
+
+
+
+ CertReqMsg ::= SEQUENCE {
+ certReq CertRequest,
+ pop ProofOfPossession OPTIONAL,
+ -- content depends upon key type
+ regInfo SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRequest ::= SEQUENCE {
+ certReqId INTEGER, -- ID for matching request and reply
+ certTemplate CertTemplate, -- Selected fields of cert to be issued
+ controls Controls OPTIONAL } -- Attributes affecting issuance
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Sets the X.509 version. Note: for X509v3, use 2 here.
+
+
+ Sets the issuer unique ID (deprecated in X.509v3)
+
+
+ Sets the subject unique ID (deprecated in X.509v3)
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ EncKeyWithID ::= SEQUENCE {
+ privateKey PrivateKeyInfo,
+ identifier CHOICE {
+ string UTF8String,
+ generalName GeneralName
+ } OPTIONAL
+ }
+
+ @return
+
+
+
+ EncryptedKey ::= CHOICE {
+ encryptedValue EncryptedValue, -- deprecated
+ envelopedData [0] EnvelopedData }
+ -- The encrypted private key MUST be placed in the envelopedData
+ -- encryptedContentInfo encryptedContent OCTET STRING.
+
+
+
+
+ EncryptedValue ::= SEQUENCE {
+ intendedAlg [0] AlgorithmIdentifier OPTIONAL,
+ -- the intended algorithm for which the value will be used
+ symmAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- the symmetric algorithm used to encrypt the value
+ encSymmKey [2] BIT STRING OPTIONAL,
+ -- the (encrypted) symmetric key used to encrypt the value
+ keyAlg [3] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used to encrypt the symmetric key
+ valueHint [4] OCTET STRING OPTIONAL,
+ -- a brief description or identifier of the encValue content
+ -- (may be meaningful only to the sending entity, and used only
+ -- if EncryptedValue might be re-examined by the sending entity
+ -- in the future)
+ encValue BIT STRING }
+ -- the encrypted value itself
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OptionalValidity ::= SEQUENCE {
+ notBefore [0] Time OPTIONAL,
+ notAfter [1] Time OPTIONAL } --at least one MUST be present
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiArchiveOptions ::= CHOICE {
+ encryptedPrivKey [0] EncryptedKey,
+ -- the actual value of the private key
+ keyGenParameters [1] KeyGenParameters,
+ -- parameters which allow the private key to be re-generated
+ archiveRemGenPrivKey [2] BOOLEAN }
+ -- set to TRUE if sender wishes receiver to archive the private
+ -- key of a key pair that the receiver generates in response to
+ -- this request; set to FALSE if no archival is desired.
+
+
+
+
+ PkiPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+ @return a basic ASN.1 object representation.
+
+
+ Password-based MAC value for use with POPOSigningKeyInput.
+
+
+ Creates a new PKMACValue.
+ @param params parameters for password-based MAC
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+ Creates a new PKMACValue.
+ @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+
+ PKMACValue ::= SEQUENCE {
+ algId AlgorithmIdentifier,
+ -- algorithm value shall be PasswordBasedMac 1.2.840.113533.7.66.13
+ -- parameter value is PBMParameter
+ value BIT STRING }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoPrivKey ::= CHOICE {
+ thisMessage [0] BIT STRING, -- Deprecated
+ -- possession is proven in this message (which contains the private
+ -- key itself (encrypted for the CA))
+ subsequentMessage [1] SubsequentMessage,
+ -- possession will be proven in a subsequent message
+ dhMAC [2] BIT STRING, -- Deprecated
+ agreeMAC [3] PKMACValue,
+ encryptedKey [4] EnvelopedData }
+
+
+
+ Creates a new Proof of Possession object for a signing key.
+ @param poposkIn the PopoSigningKeyInput structure, or null if the
+ CertTemplate includes both subject and publicKey values.
+ @param aid the AlgorithmIdentifier used to sign the proof of possession.
+ @param signature a signature over the DER-encoded value of poposkIn,
+ or the DER-encoded value of certReq if poposkIn is null.
+
+
+
+ PopoSigningKey ::= SEQUENCE {
+ poposkInput [0] PopoSigningKeyInput OPTIONAL,
+ algorithmIdentifier AlgorithmIdentifier,
+ signature BIT STRING }
+ -- The signature (using "algorithmIdentifier") is on the
+ -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg
+ -- certReq CertTemplate contains the subject and publicKey values,
+ -- then poposkInput MUST be omitted and the signature MUST be
+ -- computed on the DER-encoded value of CertReqMsg certReq. If
+ -- the CertReqMsg certReq CertTemplate does not contain the public
+ -- key and subject values, then poposkInput MUST be present and
+ -- MUST be signed. This strategy ensures that the public key is
+ -- not present in both the poposkInput and CertReqMsg certReq
+ -- CertTemplate fields.
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PopoSigningKeyInput with sender name as authInfo.
+
+
+ Creates a new PopoSigningKeyInput using password-based MAC.
+
+
+ Returns the sender field, or null if authInfo is publicKeyMac
+
+
+ Returns the publicKeyMac field, or null if authInfo is sender
+
+
+
+ PopoSigningKeyInput ::= SEQUENCE {
+ authInfo CHOICE {
+ sender [0] GeneralName,
+ -- used only if an authenticated identity has been
+ -- established for the sender (e.g., a DN from a
+ -- previously-issued and currently-valid certificate
+ publicKeyMac PKMacValue },
+ -- used if no authenticated GeneralName currently exists for
+ -- the sender; publicKeyMac contains a password-based MAC
+ -- on the DER-encoded value of publicKey
+ publicKey SubjectPublicKeyInfo } -- from CertTemplate
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a ProofOfPossession with type raVerified.
+
+
+ Creates a ProofOfPossession for a signing key.
+
+
+ Creates a ProofOfPossession for key encipherment or agreement.
+ @param type one of TYPE_KEY_ENCIPHERMENT or TYPE_KEY_AGREEMENT
+
+
+
+ ProofOfPossession ::= CHOICE {
+ raVerified [0] NULL,
+ -- used if the RA has already verified that the requester is in
+ -- possession of the private key
+ signature [1] PopoSigningKey,
+ keyEncipherment [2] PopoPrivKey,
+ keyAgreement [3] PopoPrivKey }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ SinglePubInfo ::= SEQUENCE {
+ pubMethod INTEGER {
+ dontCare (0),
+ x500 (1),
+ web (2),
+ ldap (3) },
+ pubLocation GeneralName OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Table of the available named parameters for GOST 3410-2001 / 2012.
+
+
+
+ return the ECDomainParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+
+ Gost28147-89-Parameters ::=
+ SEQUENCE {
+ iv Gost28147-89-IV,
+ encryptionParamSet OBJECT IDENTIFIER
+ }
+
+ Gost28147-89-IV ::= OCTET STRING (SIZE (8))
+
+
+
+ table of the available named parameters for GOST 3410-94.
+
+
+ return the GOST3410ParamSetParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for parameters
+ contained in this structure.
+
+
+ Base class for an application specific object
+
+
+ Return the enclosed object assuming explicit tagging.
+
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ Return the enclosed object assuming implicit tagging.
+
+ @param derTagNo the type tag that should be applied to the object's contents.
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ return a Bit string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Bit string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ @param data the octets making up the bit string.
+ @param padBits the number of extra bits at the end of the string.
+
+
+ Return the octets contained in this BIT STRING, checking that this BIT STRING really
+ does represent an octet aligned string. Only use this method when the standard you are
+ following dictates that the BIT STRING will be octet aligned.
+
+ @return a copy of the octet aligned data.
+
+
+ @return the value of the bit string as an int (truncating if necessary)
+
+
+ Der BMPString object.
+
+
+ return a BMP string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a BMP string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a bool from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a DerBoolean from the passed in bool.
+
+
+ return a Boolean from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Enumerated from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Class representing the DER-type External
+
+
+ Creates a new instance of DerExternal
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param externalData The external data in its encoded form.
+
+
+ Creates a new instance of DerExternal.
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param encoding The encoding to be used for the external data
+ @param externalData The external data
+
+
+ The encoding of the content. Valid values are
+
+ 0 single-ASN1-type
+ 1 OCTET STRING
+ 2 BIT STRING
+
+
+
+ Generalized time object.
+
+
+ return a generalized time from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Generalized Time object from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYYYMMDDHHMMSS[.f]Z, or without the Z
+ for local time, or Z+-HHMM on the end, for difference between local
+ time and UTC time. The fractional second amount f must consist of at
+ least one number with trailing zeroes removed.
+
+ @param time the time string.
+ @exception ArgumentException if string is an illegal format.
+
+
+ base constructor from a local time object
+
+
+ Return the time.
+ @return The time string as it appeared in the encoded object.
+
+
+ return the time - always in the form of
+ YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyyyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+
+ return a Graphic String from the passed in object
+
+ @param obj a DerGraphicString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ return a Graphic String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der IA5String object - this is an ascii string.
+
+
+ return a IA5 string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an IA5 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in an IA5String.
+
+
+ return true if the passed in String can be represented without
+ loss as an IA5String, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Integer from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ in some cases positive values Get crammed into a space,
+ that's not quite big enough...
+
+
+ A Null object.
+
+
+ Der NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
+
+
+ return a Numeric string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Numeric string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation..
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a NumericString.
+
+
+ Return true if the string can be represented as a NumericString ('0'..'9', ' ')
+
+ @param str string to validate.
+ @return true if numeric, fale otherwise.
+
+
+ return an Oid from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an object Identifier from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Return true if this oid is an extension of the passed in branch, stem.
+ @param stem the arc or branch that is a possible parent.
+ @return true if the branch is on the passed in stem, false otherwise.
+
+
+ The octets making up the octet string.
+
+
+ Der PrintableString object.
+
+
+ return a printable string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Printable string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor - this does not validate the string
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a PrintableString.
+
+
+ return true if the passed in String can be represented without
+ loss as a PrintableString, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ A Der encoded set object
+
+
+ create an empty set
+
+
+ @param obj - a single object that makes up the set.
+
+
+ @param v - a vector of objects making up the set.
+
+
+ Der T61String (also the teletex string) - 8-bit characters
+
+
+ return a T61 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an T61 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - with string.
+
+
+ DER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+ Der UniversalString object.
+
+
+ return a Universal string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Universal string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ UTC time object.
+
+
+ return an UTC Time from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTC Time from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYMMDDHHMMSSZ (it used to be that seconds were
+ never encoded. When you're creating one of these objects from scratch, that's
+ what you want to use, otherwise we'll try to deal with whatever Gets read from
+ the input stream... (this is why the input format is different from the GetTime()
+ method output).
+
+ @param time the time string.
+
+
+ base constructor from a DateTime object
+
+
+ return the time as a date based on whatever a 2 digit year will return. For
+ standardised processing use ToAdjustedDateTime().
+
+ @return the resulting date
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time as an adjusted date
+ in the range of 1950 - 2049.
+
+ @return a date in the range of 1950 to 2049.
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time - always in the form of
+ YYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+ Note: In some cases, due to the local date processing, this
+ may lead to unexpected results. If you want to stick the normal
+ convention of 1950 to 2049 use the GetAdjustedTime() method.
+
+
+
+ Return a time string as an adjusted date with a 4 digit year.
+ This goes in the range of 1950 - 2049.
+
+
+
+ Der UTF8String object.
+
+
+ return an UTF8 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTF8 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a Videotex String from the passed in object
+
+ @param obj a DERVideotexString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ return a Videotex String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der VisibleString object.
+
+
+ return a Visible string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Visible string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+
+ RFC 3126: 4.3.1 Certificate Values Attribute Definition
+
+ CertificateValues ::= SEQUENCE OF Certificate
+
+
+
+
+
+ CommitmentTypeIndication ::= SEQUENCE {
+ commitmentTypeId CommitmentTypeIdentifier,
+ commitmentTypeQualifier SEQUENCE SIZE (1..MAX) OF
+ CommitmentTypeQualifier OPTIONAL }
+
+
+
+ Commitment type qualifiers, used in the Commitment-Type-Indication attribute (RFC3126).
+
+
+ CommitmentTypeQualifier ::= SEQUENCE {
+ commitmentTypeIdentifier CommitmentTypeIdentifier,
+ qualifier ANY DEFINED BY commitmentTypeIdentifier OPTIONAL }
+
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param as CommitmentTypeQualifier structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a DER-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+ RFC 3126: 4.2.1 Complete Certificate Refs Attribute Definition
+
+ CompleteCertificateRefs ::= SEQUENCE OF OtherCertID
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CompleteRevocationRefs ::= SEQUENCE OF CrlOcspRef
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlIdentifier ::= SEQUENCE
+ {
+ crlissuer Name,
+ crlIssuedTime UTCTime,
+ crlNumber INTEGER OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CRLListID ::= SEQUENCE
+ {
+ crls SEQUENCE OF CrlValidatedID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlOcspRef ::= SEQUENCE {
+ crlids [0] CRLListID OPTIONAL,
+ ocspids [1] OcspListID OPTIONAL,
+ otherRev [2] OtherRevRefs OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlValidatedID ::= SEQUENCE {
+ crlHash OtherHash,
+ crlIdentifier CrlIdentifier OPTIONAL}
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspIdentifier ::= SEQUENCE {
+ ocspResponderID ResponderID,
+ -- As in OCSP response data
+ producedAt GeneralizedTime
+ -- As in OCSP response data
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspListID ::= SEQUENCE {
+ ocspResponses SEQUENCE OF OcspResponsesID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspResponsesID ::= SEQUENCE {
+ ocspIdentifier OcspIdentifier,
+ ocspRepHash OtherHash OPTIONAL
+ }
+
+
+
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+
+
+
+
+
+ OtherHash ::= CHOICE {
+ sha1Hash OtherHashValue, -- This contains a SHA-1 hash
+ otherHash OtherHashAlgAndValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ Summary description for OtherHashAlgAndValue.
+
+
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OtherHashValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OtherRevRefs ::= SEQUENCE
+ {
+ otherRevRefType OtherRevRefType,
+ otherRevRefs ANY DEFINED BY otherRevRefType
+ }
+
+ OtherRevRefType ::= OBJECT IDENTIFIER
+
+
+
+
+
+ RFC 3126: 4.3.2 Revocation Values Attribute Definition
+
+ OtherRevVals ::= SEQUENCE
+ {
+ otherRevValType OtherRevValType,
+ otherRevVals ANY DEFINED BY otherRevValType
+ }
+
+ OtherRevValType ::= OBJECT IDENTIFIER
+
+
+
+
+
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+
+
+
+
+ RFC 5126: 6.3.4. revocation-values Attribute Definition
+
+ RevocationValues ::= SEQUENCE {
+ crlVals [0] SEQUENCE OF CertificateList OPTIONAL,
+ ocspVals [1] SEQUENCE OF BasicOCSPResponse OPTIONAL,
+ otherRevVals [2] OtherRevVals OPTIONAL
+ }
+
+
+
+
+
+
+ SignaturePolicyId ::= SEQUENCE {
+ sigPolicyIdentifier SigPolicyId,
+ sigPolicyHash SigPolicyHash,
+ sigPolicyQualifiers SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo OPTIONAL
+ }
+
+ SigPolicyId ::= OBJECT IDENTIFIER
+
+ SigPolicyHash ::= OtherHashAlgAndValue
+
+
+
+
+
+
+ SignaturePolicyIdentifier ::= CHOICE {
+ SignaturePolicyId SignaturePolicyId,
+ SignaturePolicyImplied SignaturePolicyImplied
+ }
+
+ SignaturePolicyImplied ::= NULL
+
+
+
+
+
+
+ SignerAttribute ::= SEQUENCE OF CHOICE {
+ claimedAttributes [0] ClaimedAttributes,
+ certifiedAttributes [1] CertifiedAttributes }
+
+ ClaimedAttributes ::= SEQUENCE OF Attribute
+ CertifiedAttributes ::= AttributeCertificate -- as defined in RFC 3281: see clause 4.1.
+
+
+
+ Signer-Location attribute (RFC3126).
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1.. MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+
+
+ SigPolicyQualifierInfo ::= SEQUENCE {
+ sigPolicyQualifierId SigPolicyQualifierId,
+ sigQualifier ANY DEFINED BY sigPolicyQualifierId
+ }
+
+ SigPolicyQualifierId ::= OBJECT IDENTIFIER
+
+
+
+
+ constructor
+
+
+
+ ContentHints ::= SEQUENCE {
+ contentDescription UTF8String (SIZE (1..MAX)) OPTIONAL,
+ contentType ContentType }
+
+
+
+ Create from OCTET STRING whose octets represent the identifier.
+
+
+ Create from byte array representing the identifier.
+
+
+ The definition of ContentIdentifier is
+
+ ContentIdentifier ::= OCTET STRING
+
+ id-aa-contentIdentifier OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 7 }
+
+
+ constructor
+
+
+
+ EssCertID ::= SEQUENCE {
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+
+
+
+ EssCertIDv2 ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier
+ DEFAULT {algorithm id-sha256},
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+ Hash ::= OCTET STRING
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serialNumber CertificateSerialNumber
+ }
+
+
+
+ constructor
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+ OtherHash ::= CHOICE {
+ sha1Hash OCTET STRING,
+ otherHash OtherHashAlgAndValue }
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OCTET STRING }
+
+
+
+
+ constructors
+
+
+ The definition of OtherSigningCertificate is
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-ets-otherSigCert OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 19 }
+
+
+ constructors
+
+
+ The definition of SigningCertificate is
+
+ SigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF EssCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 12 }
+
+
+ The definition of SigningCertificateV2 is
+
+ SigningCertificateV2 ::= SEQUENCE {
+ certs SEQUENCE OF EssCertIDv2,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 47 }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ 1.3.6.1.4.1.11591.15 - ellipticCurve
+
+
+ Marker interface for CHOICE objects - if you implement this in a roll-your-own
+ object, any attempt to tag the object implicitly will convert the tag to an
+ explicit one as the encoding rules require.
+
+ If you use this interface your class should also implement the getInstance
+ pattern which takes a tag object and the tagging mode used.
+
+
+
+ basic interface for Der string objects.
+
+
+ The CscaMasterList object. This object can be wrapped in a
+ CMSSignedData to be published in LDAP.
+
+
+ CscaMasterList ::= SEQUENCE {
+ version CscaMasterListVersion,
+ certList SET OF Certificate }
+
+ CscaMasterListVersion :: INTEGER {v0(0)}
+
+
+
+ The DataGroupHash object.
+
+ DataGroupHash ::= SEQUENCE {
+ dataGroupNumber DataGroupNumber,
+ dataGroupHashValue OCTET STRING }
+
+ DataGroupNumber ::= INTEGER {
+ dataGroup1 (1),
+ dataGroup1 (2),
+ dataGroup1 (3),
+ dataGroup1 (4),
+ dataGroup1 (5),
+ dataGroup1 (6),
+ dataGroup1 (7),
+ dataGroup1 (8),
+ dataGroup1 (9),
+ dataGroup1 (10),
+ dataGroup1 (11),
+ dataGroup1 (12),
+ dataGroup1 (13),
+ dataGroup1 (14),
+ dataGroup1 (15),
+ dataGroup1 (16) }
+
+
+
+
+ The LDSSecurityObject object (V1.8).
+
+ LDSSecurityObject ::= SEQUENCE {
+ version LDSSecurityObjectVersion,
+ hashAlgorithm DigestAlgorithmIdentifier,
+ dataGroupHashValues SEQUENCE SIZE (2..ub-DataGroups) OF DataHashGroup,
+ ldsVersionInfo LDSVersionInfo OPTIONAL
+ -- if present, version MUST be v1 }
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier,
+
+ LDSSecurityObjectVersion :: INTEGER {V0(0)}
+
+
+
+
+ LDSVersionInfo ::= SEQUENCE {
+ ldsVersion PRINTABLE STRING
+ unicodeVersion PRINTABLE STRING
+ }
+
+ @return
+
+
+ The id-isismtt-cp-accredited OID indicates that the certificate is a
+ qualified certificate according to Directive 1999/93/EC of the European
+ Parliament and of the Council of 13 December 1999 on a Community
+ Framework for Electronic Signatures, which additionally conforms the
+ special requirements of the SigG and has been issued by an accredited CA.
+
+
+ Certificate extensionDate of certificate generation
+
+
+ DateOfCertGenSyntax ::= GeneralizedTime
+
+
+
+ Attribute to indicate that the certificate holder may sign in the name of
+ a third person. May also be used as extension in a certificate.
+
+
+ Attribute to indicate admissions to certain professions. May be used as
+ attribute in attribute certificate or as extension in a certificate
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST
+ be used in new certificates in place of the extension/attribute
+ MonetaryLimit since January 1, 2004. For the sake of backward
+ compatibility with certificates already in use, SigG conforming
+ components MUST support MonetaryLimit (as well as QcEuLimitValue).
+
+
+ A declaration of majority. May be used as attribute in attribute
+ certificate or as extension in a certificate
+
+
+
+ Serial number of the smart card containing the corresponding private key
+
+
+ ICCSNSyntax ::= OCTET STRING (SIZE(8..20))
+
+
+
+
+ Reference for a file of a smartcard that stores the public key of this
+ certificate and that is used as �security anchor�.
+
+
+ PKReferenceSyntax ::= OCTET STRING (SIZE(20))
+
+
+
+ Some other restriction regarding the usage of this certificate. May be
+ used as attribute in attribute certificate or as extension in a
+ certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Restriction
+
+
+
+ (Single)Request extension: Clients may include this extension in a
+ (single) Request to request the responder to send the certificate in the
+ response message along with the status information. Besides the LDAP
+ service, this extension provides another mechanism for the distribution
+ of certificates, which MAY optionally be provided by certificate
+ repositories.
+
+
+ RetrieveIfAllowed ::= BOOLEAN
+
+
+
+ SingleOCSPResponse extension: The certificate requested by the client by
+ inserting the RetrieveIfAllowed extension in the request, will be
+ returned in this extension.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate
+
+
+ Base ObjectIdentifier for naming authorities
+
+
+ SingleOCSPResponse extension: Date, when certificate has been published
+ in the directory and status information has become available. Currently,
+ accrediting authorities enforce that SigG-conforming OCSP servers include
+ this extension in the responses.
+
+
+ CertInDirSince ::= GeneralizedTime
+
+
+
+ Hash of a certificate in OCSP.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.CertHash
+
+
+
+ NameAtBirth ::= DirectoryString(SIZE(1..64)
+
+
+ Used in
+ {@link Org.BouncyCastle.Asn1.X509.SubjectDirectoryAttributes SubjectDirectoryAttributes}
+
+
+ Some other information of non-restrictive nature regarding the usage of
+ this certificate. May be used as attribute in atribute certificate or as
+ extension in a certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdditionalInformationSyntax
+
+
+ Indicates that an attribute certificate exists, which limits the
+ usability of this public key certificate. Whenever verifying a signature
+ with the help of this certificate, the content of the corresponding
+ attribute certificate should be concerned. This extension MUST be
+ included in a PKC, if a corresponding attribute certificate (having the
+ PKC as base certificate) contains some attribute that restricts the
+ usability of the PKC too. Attribute certificates with restricting content
+ MUST always be included in the signed document.
+
+
+ LiabilityLimitationFlagSyntax ::= BOOLEAN
+
+
+
+ ISIS-MTT PROFILE: The responder may include this extension in a response to
+ send the hash of the requested certificate to the responder. This hash is
+ cryptographically bound to the certificate and serves as evidence that the
+ certificate is known to the responder (i.e. it has been issued and is present
+ in the directory). Hence, this extension is a means to provide a positive
+ statement of availability as described in T8.[8]. As explained in T13.[1],
+ clients may rely on this information to be able to validate signatures after
+ the expiry of the corresponding certificate. Hence, clients MUST support this
+ extension. If a positive statement of availability is to be delivered, this
+ extension syntax and OID MUST be used.
+
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertHash:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param hashAlgorithm The hash algorithm identifier.
+ @param certificateHash The hash of the whole DER encoding of the certificate.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ ISIS-MTT-Optional: The certificate requested by the client by inserting the
+ RetrieveIfAllowed extension in the request, will be returned in this
+ extension.
+
+ ISIS-MTT-SigG: The signature act allows publishing certificates only then,
+ when the certificate owner gives his isExplicit permission. Accordingly, there
+ may be �nondownloadable� certificates, about which the responder must provide
+ status information, but MUST NOT include them in the response. Clients may
+ get therefore the following three kind of answers on a single request
+ including the RetrieveIfAllowed extension:
+
+ - a) the responder supports the extension and is allowed to publish the
+ certificate: RequestedCertificate returned including the requested
+ certificate
+ - b) the responder supports the extension but is NOT allowed to publish
+ the certificate: RequestedCertificate returned including an empty OCTET
+ STRING
+ - c) the responder does not support the extension: RequestedCertificate is
+ not included in the response
+
+ Clients requesting RetrieveIfAllowed MUST be able to handle these cases. If
+ any of the OCTET STRING options is used, it MUST contain the DER encoding of
+ the requested certificate.
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+
+ Constructor from a given details.
+
+ Only one parameter can be given. All other must be null.
+
+ @param certificate Given as Certificate
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ Some other information of non-restrictive nature regarding the usage of this
+ certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+
+ Constructor from a given details.
+
+ @param information The describtion of the information.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @return an Asn1Object
+
+
+ An Admissions structure.
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ Parameter professionInfos is mandatory.
+
+ @param admissionAuthority The admission authority.
+ @param namingAuthority The naming authority.
+ @param professionInfos The profession infos.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate admissions to certain professions.
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+
+ ISIS-MTT PROFILE: The relatively complex structure of AdmissionSyntax
+ supports the following concepts and requirements:
+
+ - External institutions (e.g. professional associations, chambers, unions,
+ administrative bodies, companies, etc.), which are responsible for granting
+ and verifying professional admissions, are indicated by means of the data
+ field admissionAuthority. An admission authority is indicated by a
+ GeneralName object. Here an X.501 directory name (distinguished name) can be
+ indicated in the field directoryName, a URL address can be indicated in the
+ field uniformResourceIdentifier, and an object identifier can be indicated in
+ the field registeredId.
+ - The names of authorities which are responsible for the administration of
+ title registers are indicated in the data field namingAuthority. The name of
+ the authority can be identified by an object identifier in the field
+ namingAuthorityId, by means of a text string in the field
+ namingAuthorityText, by means of a URL address in the field
+ namingAuthorityUrl, or by a combination of them. For example, the text string
+ can contain the name of the authority, the country and the name of the title
+ register. The URL-option refers to a web page which contains lists with
+ officially registered professions (text and possibly OID) as well as
+ further information on these professions. Object identifiers for the
+ component namingAuthorityId are grouped under the OID-branch
+ id-isis-at-namingAuthorities and must be applied for.
+ - See http://www.teletrust.de/anwend.asp?Id=30200&Sprache=E_&HomePG=0
+ for an application form and http://www.teletrust.de/links.asp?id=30220,11
+ for an overview of registered naming authorities.
+ - By means of the data type ProfessionInfo certain professions,
+ specializations, disciplines, fields of activity, etc. are identified. A
+ profession is represented by one or more text strings, resp. profession OIDs
+ in the fields professionItems and professionOIDs and by a registration number
+ in the field registrationNumber. An indication in text form must always be
+ present, whereas the other indications are optional. The component
+ addProfessionInfo may contain additional applicationspecific information in
+ DER-encoded form.
+
+
+ By means of different namingAuthority-OIDs or profession OIDs hierarchies of
+ professions, specializations, disciplines, fields of activity, etc. can be
+ expressed. The issuing admission authority should always be indicated (field
+ admissionAuthority), whenever a registration number is presented. Still,
+ information on admissions can be given without indicating an admission or a
+ naming authority by the exclusive use of the component professionItems. In
+ this case the certification authority is responsible for the verification of
+ the admission information.
+
+
+
+ This attribute is single-valued. Still, several admissions can be captured in
+ the sequence structure of the component contentsOfAdmissions of
+ AdmissionSyntax or in the component professionInfos of Admissions. The
+ component admissionAuthority of AdmissionSyntax serves as default value for
+ the component admissionAuthority of Admissions. Within the latter component
+ the default value can be overwritten, in case that another authority is
+ responsible. The component namingAuthority of Admissions serves as a default
+ value for the component namingAuthority of ProfessionInfo. Within the latter
+ component the default value can be overwritten, in case that another naming
+ authority needs to be recorded.
+
+ The length of the string objects is limited to 128 characters. It is
+ recommended to indicate a namingAuthorityURL in all issued attribute
+ certificates. If a namingAuthorityURL is indicated, the field professionItems
+ of ProfessionInfo should contain only registered titles. If the field
+ professionOIDs exists, it has to contain the OIDs of the professions listed
+ in professionItems in the same order. In general, the field professionInfos
+ should contain only one entry, unless the admissions that are to be listed
+ are logically connected (e.g. they have been issued under the same admission
+ number).
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Admissions
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ @param admissionAuthority The admission authority.
+ @param contentsOfAdmissions The admissions.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the admissionAuthority if present, null otherwise.
+
+
+ @return Returns the contentsOfAdmissions.
+
+
+ A declaration of majority.
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ fullAgeAtCountry indicates the majority of the owner with respect to the laws
+ of a specific country.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ @return an Asn1Object
+
+
+ @return notYoungerThan if that's what we are, -1 otherwise
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST be
+ used in new certificates in place of the extension/attribute MonetaryLimit
+ since January 1, 2004. For the sake of backward compatibility with
+ certificates already in use, components SHOULD support MonetaryLimit (as well
+ as QcEuLimitValue).
+
+ Indicates a monetary limit within which the certificate holder is authorized
+ to act. (This value DOES NOT express a limit on the liability of the
+ certification authority).
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ currency must be the ISO code.
+
+ value = amount�10*exponent
+
+
+ Constructor from a given details.
+
+
+ value = amount�10^exponent
+
+ @param currency The currency. Must be the ISO code.
+ @param amount The amount
+ @param exponent The exponent
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ @return an Asn1Object
+
+
+ Names of authorities which are responsible for the administration of title
+ registers.
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+
+ Profession OIDs should always be defined under the OID branch of the
+ responsible naming authority. At the time of this writing, the work group
+ �Recht, Wirtschaft, Steuern� (�Law, Economy, Taxes�) is registered as the
+ first naming authority under the OID id-isismtt-at-namingAuthorities.
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ @return Returns the namingAuthorityID.
+
+
+ @return Returns the namingAuthorityText.
+
+
+ @return Returns the namingAuthorityUrl.
+
+
+ Constructor from given details.
+
+ All parameters can be combined.
+
+ @param namingAuthorityID ObjectIdentifier for naming authority.
+ @param namingAuthorityUrl URL for naming authority.
+ @param namingAuthorityText Textual representation of naming authority.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate that the certificate holder may sign in the name of a
+ third person.
+
+ ISIS-MTT PROFILE: The corresponding ProcurationSyntax contains either the
+ name of the person who is represented (subcomponent thirdPerson) or a
+ reference to his/her base certificate (in the component signingFor,
+ subcomponent certRef), furthermore the optional components country and
+ typeSubstitution to indicate the country whose laws apply, and respectively
+ the type of procuration (e.g. manager, procuration, custody).
+
+
+ ISIS-MTT PROFILE: The GeneralName MUST be of type directoryName and MAY only
+ contain: - RFC3039 attributes, except pseudonym (countryName, commonName,
+ surname, givenName, serialNumber, organizationName, organizationalUnitName,
+ stateOrProvincename, localityName, postalAddress) and - SubjectDirectoryName
+ attributes (title, dateOfBirth, placeOfBirth, gender, countryOfCitizenship,
+ countryOfResidence and NameAtBirth).
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param certRef Reference to certificate of the person who is represented.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param thirdPerson The GeneralName of the person who is represented.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @return an Asn1Object
+
+
+ Professions, specializations, disciplines, fields of activity, etc.
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+ Rechtsanw�ltin
+
+
+ Rechtsanwalt
+
+
+ Rechtsbeistand
+
+
+ Steuerberaterin
+
+
+ Steuerberater
+
+
+ Steuerbevollm�chtigte
+
+
+ Steuerbevollm�chtigter
+
+
+ Notarin
+
+
+ Notar
+
+
+ Notarvertreterin
+
+
+ Notarvertreter
+
+
+ Notariatsverwalterin
+
+
+ Notariatsverwalter
+
+
+ Wirtschaftspr�ferin
+
+
+ Wirtschaftspr�fer
+
+
+ Vereidigte Buchpr�ferin
+
+
+ Vereidigter Buchpr�fer
+
+
+ Patentanw�ltin
+
+
+ Patentanwalt
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ professionItems is mandatory, all other parameters are
+ optional.
+
+ @param namingAuthority The naming authority.
+ @param professionItems Directory strings of the profession.
+ @param professionOids DERObjectIdentfier objects for the
+ profession.
+ @param registrationNumber Registration number.
+ @param addProfessionInfo Additional infos in encoded form.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the addProfessionInfo.
+
+
+ @return Returns the namingAuthority.
+
+
+ @return Returns the professionItems.
+
+
+ @return Returns the professionOids.
+
+
+ @return Returns the registrationNumber.
+
+
+ Some other restriction regarding the usage of this certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ Constructor from DirectoryString.
+
+ The DirectoryString is of type RestrictionSyntax:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @param restriction A IAsn1String.
+
+
+ Constructor from a given details.
+
+ @param restriction The description of the restriction.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ @return an Asn1Object
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ cast5CBCParameters ::= Sequence {
+ iv OCTET STRING DEFAULT 0,
+ -- Initialization vector
+ keyLength Integer
+ -- Key length, in bits
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IDEA-CBCPar ::= Sequence {
+ iv OCTET STRING OPTIONAL -- exactly 8 octets
+ }
+
+
+
+ The NetscapeCertType object.
+
+ NetscapeCertType ::= BIT STRING {
+ SSLClient (0),
+ SSLServer (1),
+ S/MIME (2),
+ Object Signing (3),
+ Reserved (4),
+ SSL CA (5),
+ S/MIME CA (6),
+ Object Signing CA (7) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509NetscapeCertType.sslCA | X509NetscapeCertType.smimeCA)
+
+
+ This is designed to parse
+ the PublicKeyAndChallenge created by the KEYGEN tag included by
+ Mozilla based browsers.
+
+ PublicKeyAndChallenge ::= SEQUENCE {
+ spki SubjectPublicKeyInfo,
+ challenge IA5STRING
+ }
+
+
+
+
+ Utility class for fetching curves using their NIST names as published in FIPS-PUB 186-3
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ From RFC 3657
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicOcspResponse ::= Sequence {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertID ::= Sequence {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ create a CertStatus object with a tag of zero.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertStatus ::= CHOICE {
+ good [0] IMPLICIT Null,
+ revoked [1] IMPLICIT RevokedInfo,
+ unknown [2] IMPLICIT UnknownInfo }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlID ::= Sequence {
+ crlUrl [0] EXPLICIT IA5String OPTIONAL,
+ crlNum [1] EXPLICIT Integer OPTIONAL,
+ crlTime [2] EXPLICIT GeneralizedTime OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspRequest ::= Sequence {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspResponse ::= Sequence {
+ responseStatus OcspResponseStatus,
+ responseBytes [0] EXPLICIT ResponseBytes OPTIONAL }
+
+
+
+ The OcspResponseStatus enumeration.
+
+ OcspResponseStatus ::= Enumerated {
+ successful (0), --Response has valid confirmations
+ malformedRequest (1), --Illegal confirmation request
+ internalError (2), --Internal error in issuer
+ tryLater (3), --Try again later
+ --(4) is not used
+ sigRequired (5), --Must sign the request
+ unauthorized (6) --Request unauthorized
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Request ::= Sequence {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponderID ::= CHOICE {
+ byName [1] Name,
+ byKey [2] KeyHash }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseBytes ::= Sequence {
+ responseType OBJECT IDENTIFIER,
+ response OCTET STRING }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseData ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ responderID ResponderID,
+ producedAt GeneralizedTime,
+ responses Sequence OF SingleResponse,
+ responseExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RevokedInfo ::= Sequence {
+ revocationTime GeneralizedTime,
+ revocationReason [0] EXPLICIT CRLReason OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ServiceLocator ::= Sequence {
+ issuer Name,
+ locator AuthorityInfoAccessSyntax OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Signature ::= Sequence {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL}
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SingleResponse ::= Sequence {
+ certID CertID,
+ certStatus CertStatus,
+ thisUpdate GeneralizedTime,
+ nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL,
+ singleExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ TBSRequest ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList Sequence OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+
+
+ class for breaking up an Oid into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Pkcs10 Certfication request object.
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+
+
+ Pkcs10 CertificationRequestInfo object.
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ The EncryptedData object.
+
+ EncryptedData ::= Sequence {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo
+ }
+
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+ EncryptedContent ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedPrivateKeyInfo ::= Sequence {
+ encryptionAlgorithm AlgorithmIdentifier {{KeyEncryptionAlgorithms}},
+ encryptedData EncryptedData
+ }
+
+ EncryptedData ::= OCTET STRING
+
+ KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= {
+ ... -- For local profiles
+ }
+
+
+
+
+ MacData ::= SEQUENCE {
+ mac DigestInfo,
+ macSalt OCTET STRING,
+ iterations INTEGER DEFAULT 1
+ -- Note: The default is for historic reasons and its use is deprecated. A
+ -- higher value, like 1024 is recommended.
+
+ @return the basic DERObject construction.
+
+
+ the infamous Pfx from Pkcs12
+
+
+ PKCS#1: 1.2.840.113549.1.1.15
+
+
+ PKCS#1: 1.2.840.113549.1.1.16
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.6.2.37 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.6.2.38 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.54 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.43 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.40 RFC7030
+
+
+ write out an RSA private key with its associated information
+ as described in Pkcs8.
+
+ PrivateKeyInfo ::= Sequence {
+ version Version,
+ privateKeyAlgorithm AlgorithmIdentifier {{PrivateKeyAlgorithms}},
+ privateKey PrivateKey,
+ attributes [0] IMPLICIT Attributes OPTIONAL
+ }
+ Version ::= Integer {v1(0)} (v1,...)
+
+ PrivateKey ::= OCTET STRING
+
+ Attributes ::= Set OF Attr
+
+
+
+ The default version
+
+
+
+ RSAES-OAEP-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ pSourceAlgorithm [2] PKCS1PSourceAlgorithms DEFAULT pSpecifiedEmpty
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+ PKCS1PSourceAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-pSpecified PARAMETERS OCTET STRING },
+ ... -- Allows for future expansion --
+ }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RsaPrivateKey ::= Sequence {
+ version Version,
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ privateExponent Integer, -- d
+ prime1 Integer, -- p
+ prime2 Integer, -- q
+ exponent1 Integer, -- d mod (p-1)
+ exponent2 Integer, -- d mod (q-1)
+ coefficient Integer -- (inverse of q) mod p
+ }
+
+ Version ::= Integer
+
+ This routine is written to output Pkcs1 version 0, private keys.
+
+
+ The default version
+
+
+
+ RSASSA-PSS-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ saltLength [2] INTEGER DEFAULT 20,
+ trailerField [3] TrailerField DEFAULT trailerFieldBC
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+
+ TrailerField ::= INTEGER { trailerFieldBC(1) }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ a Pkcs#7 signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates
+ [0] IMPLICIT ExtendedCertificatesAndCertificates
+ OPTIONAL,
+ crls
+ [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos }
+
+
+
+ a Pkcs#7 signer info object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ the elliptic curve private key object from SEC 1
+
+
+ ECPrivateKey ::= SEQUENCE {
+ version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
+ privateKey OCTET STRING,
+ parameters [0] Parameters OPTIONAL,
+ publicKey [1] BIT STRING OPTIONAL }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ EllipticCurve OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0)
+ }
+
+
+ Handler class for dealing with S/MIME Capabilities
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ returns an ArrayList with 0 or more objects of all the capabilities
+ matching the passed in capability Oid. If the Oid passed is null the
+ entire set is returned.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapabilities ::= Sequence OF SMIMECapability
+
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapability ::= Sequence {
+ capabilityID OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY capabilityID OPTIONAL
+ }
+
+
+
+ Handler for creating a vector S/MIME Capabilities
+
+
+ The SmimeEncryptionKeyPreference object.
+
+ SmimeEncryptionKeyPreference ::= CHOICE {
+ issuerAndSerialNumber [0] IssuerAndSerialNumber,
+ receipentKeyId [1] RecipientKeyIdentifier,
+ subjectAltKeyIdentifier [2] SubjectKeyIdentifier
+ }
+
+
+
+ @param sKeyId the subjectKeyIdentifier value (normally the X.509 one)
+
+
+ elliptic curves defined in "ECC Brainpool Standard Curves and Curve Generation"
+ http://www.ecc-brainpool.org/download/draft_pkix_additional_ecc_dp.txt
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+
+ Accuracy ::= SEQUENCE {
+ seconds INTEGER OPTIONAL,
+ millis [0] INTEGER (1..999) OPTIONAL,
+ micros [1] INTEGER (1..999) OPTIONAL
+ }
+
+
+
+ @param o
+ @return a MessageImprint object.
+
+
+
+ MessageImprint ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashedMessage OCTET STRING }
+
+
+
+
+ TimeStampReq ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ messageImprint MessageImprint,
+ --a hash algorithm OID and the hash value of the data to be
+ --time-stamped
+ reqPolicy TSAPolicyId OPTIONAL,
+ nonce INTEGER OPTIONAL,
+ certReq BOOLEAN DEFAULT FALSE,
+ extensions [0] IMPLICIT Extensions OPTIONAL
+ }
+
+
+
+
+ TimeStampResp ::= SEQUENCE {
+ status PkiStatusInfo,
+ timeStampToken TimeStampToken OPTIONAL }
+
+
+
+
+
+ TstInfo ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ policy TSAPolicyId,
+ messageImprint MessageImprint,
+ -- MUST have the same value as the similar field in
+ -- TimeStampReq
+ serialNumber INTEGER,
+ -- Time-Stamping users MUST be ready to accommodate integers
+ -- up to 160 bits.
+ genTime GeneralizedTime,
+ accuracy Accuracy OPTIONAL,
+ ordering BOOLEAN DEFAULT FALSE,
+ nonce INTEGER OPTIONAL,
+ -- MUST be present if the similar field was present
+ -- in TimeStampReq. In that case it MUST have the same value.
+ tsa [0] GeneralName OPTIONAL,
+ extensions [1] IMPLICIT Extensions OPTIONAL }
+
+
+
+
+
+ Base OID: 1.2.804.2.1.1.1
+
+
+ DSTU4145 Little Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1
+
+
+ DSTU4145 Big Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1.1
+
+
+ DSTU7564 256-bit digest presentation.
+
+
+ DSTU7564 384-bit digest presentation.
+
+
+ DSTU7564 512-bit digest presentation.
+
+
+ DSTU7564 256-bit mac presentation.
+
+
+ DSTU7564 384-bit mac presentation.
+
+
+ DSTU7564 512-bit mac presentation.
+
+
+ DSTU7624 in ECB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 512 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 128 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 256 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 512 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 512 bit block/key presentation
+
+
+ dump a Der object as a formatted string with indentation
+
+ @param obj the Asn1Object to be dumped out.
+
+
+ dump out a DER object as a formatted string, in non-verbose mode
+
+ @param obj the Asn1Encodable to be dumped out.
+ @return the resulting string.
+
+
+ Dump out the object as a string
+
+ @param obj the Asn1Encodable to be dumped out.
+ @param verbose if true, dump out the contents of octet and bit strings.
+ @return the resulting string.
+
+
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+ The AccessDescription object.
+
+ AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+
+
+ create an AccessDescription with the oid and location provided.
+
+
+
+ @return the access method.
+
+
+
+ @return the access location
+
+
+
+ Return the OID in the Algorithm entry of this identifier.
+
+
+
+
+ Return the parameters structure in the Parameters entry of this identifier.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AlgorithmIdentifier ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+
+
+
+
+ Don't use this one if you are trying to be RFC 3281 compliant.
+ Use it for v1 attribute certificates only.
+
+ Our GeneralNames structure
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertValidityPeriod ::= Sequence {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ @param obj
+ @return
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificate ::= Sequence {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= Integer { v2(1) }
+
+
+
+ The AuthorityInformationAccess object.
+
+ id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+ AuthorityInfoAccessSyntax ::=
+ Sequence SIZE (1..MAX) OF AccessDescription
+ AccessDescription ::= Sequence {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+ id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+ id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+
+
+
+ create an AuthorityInformationAccess with the oid and location provided.
+
+
+ The AuthorityKeyIdentifier object.
+
+ id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+ AuthorityKeyIdentifier ::= Sequence {
+ keyIdentifier [0] IMPLICIT KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] IMPLICIT GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] IMPLICIT CertificateSerialNumber OPTIONAL }
+
+ KeyIdentifier ::= OCTET STRING
+
+
+
+
+ *
+ * Calulates the keyidentifier using a SHA1 hash over the BIT STRING
+ * from SubjectPublicKeyInfo as defined in RFC2459.
+ *
+ * Example of making a AuthorityKeyIdentifier:
+ *
+ * SubjectPublicKeyInfo apki = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(
+ * publicKey.getEncoded()).readObject());
+ * AuthorityKeyIdentifier aki = new AuthorityKeyIdentifier(apki);
+ *
+ *
+ *
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided as well.
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided.
+
+
+ create an AuthorityKeyIdentifier with a precomputed key identifier
+
+
+ create an AuthorityKeyIdentifier with a precomupted key identifier
+ and the GeneralNames tag and the serial number provided as well.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ create a cA=true object for the given path length constraint.
+
+ @param pathLenConstraint
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicConstraints := Sequence {
+ cA Boolean DEFAULT FALSE,
+ pathLenConstraint Integer (0..MAX) OPTIONAL
+ }
+
+
+
+ PKIX RFC-2459
+
+ The X.509 v2 CRL syntax is as follows. For signature calculation,
+ the data that is to be signed is ASN.1 Der encoded.
+
+
+ CertificateList ::= Sequence {
+ tbsCertList TbsCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING }
+
+
+
+ This class helps to support crossCerfificatePairs in a LDAP directory
+ according RFC 2587
+
+
+ crossCertificatePairATTRIBUTE::={
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID joint-iso-ccitt(2) ds(5) attributeType(4) crossCertificatePair(40)}
+
+
+ The forward elements of the crossCertificatePair attribute of a
+ CA's directory entry shall be used to store all, except self-issued
+ certificates issued to this CA. Optionally, the reverse elements of the
+ crossCertificatePair attribute, of a CA's directory entry may contain a
+ subset of certificates issued by this CA to other CAs. When both the forward
+ and the reverse elements are present in a single attribute value, issuer name
+ in one certificate shall match the subject name in the other and vice versa,
+ and the subject public key in one certificate shall be capable of verifying
+ the digital signature on the other certificate and vice versa.
+
+ When a reverse element is present, the forward element value and the reverse
+ element value need not be stored in the same attribute value; in other words,
+ they can be stored in either a single attribute value or two attribute
+ values.
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertificatePair:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param forward Certificates issued to this CA.
+ @param reverse Certificates issued by this CA to other CAs.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @return a DERObject
+
+
+ @return Returns the forward.
+
+
+ @return Returns the reverse.
+
+
+ Construct a CertificatePolicies object containing one PolicyInformation.
+
+ @param name the name to be contained.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation
+
+
+
+ CertPolicyId, used in the CertificatePolicies and PolicyMappings
+ X509V3 Extensions.
+
+
+ CertPolicyId ::= OBJECT IDENTIFIER
+
+
+
+ Return the distribution points making up the sequence.
+
+ @return DistributionPoint[]
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlDistPoint ::= Sequence SIZE {1..MAX} OF DistributionPoint
+
+
+
+ The CRLNumber object.
+
+ CRLNumber::= Integer(0..MAX)
+
+
+
+ The CRLReason enumeration.
+
+ CRLReason ::= Enumerated {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10)
+ }
+
+
+
+ The DigestInfo object.
+
+ DigestInfo::=Sequence{
+ digestAlgorithm AlgorithmIdentifier,
+ digest OCTET STRING }
+
+
+
+ DisplayText class, used in
+ CertificatePolicies X509 V3 extensions (in policy qualifiers).
+
+ It stores a string in a chosen encoding.
+
+ DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Constant corresponding to ia5String encoding.
+
+
+
+ Constant corresponding to bmpString encoding.
+
+
+
+ Constant corresponding to utf8String encoding.
+
+
+
+ Constant corresponding to visibleString encoding.
+
+
+
+ Describe constant DisplayTextMaximumSize here.
+
+
+
+ Creates a new DisplayText instance.
+
+ @param type the desired encoding type for the text.
+ @param text the text to store. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+
+ @param text the text to encapsulate. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+ Useful when reading back a DisplayText class
+ from it's Asn1Encodable form.
+
+ @param contents an Asn1Encodable instance.
+
+
+ Returns the stored string object.
+
+ @return the stored text as a string.
+
+
+ The DistributionPoint object.
+
+ DistributionPoint ::= Sequence {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+ }
+
+
+
+ The DistributionPointName object.
+
+ DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RDN
+ }
+
+
+
+ The extendedKeyUsage object.
+
+ extendedKeyUsage ::= Sequence SIZE (1..MAX) OF KeyPurposeId
+
+
+
+ Returns all extended key usages.
+ The returned ArrayList contains DerObjectIdentifier instances.
+ @return An ArrayList with all key purposes.
+
+
+ The GeneralName object.
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+ OtherName ::= Sequence {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+ EDIPartyName ::= Sequence {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+
+
+ When the subjectAltName extension contains an Internet mail address,
+ the address MUST be included as an rfc822Name. The format of an
+ rfc822Name is an "addr-spec" as defined in RFC 822 [RFC 822].
+
+ When the subjectAltName extension contains a domain name service
+ label, the domain name MUST be stored in the dNSName (an IA5String).
+ The name MUST be in the "preferred name syntax," as specified by RFC
+ 1034 [RFC 1034].
+
+ When the subjectAltName extension contains a URI, the name MUST be
+ stored in the uniformResourceIdentifier (an IA5String). The name MUST
+ be a non-relative URL, and MUST follow the URL syntax and encoding
+ rules specified in [RFC 1738]. The name must include both a scheme
+ (e.g., "http" or "ftp") and a scheme-specific-part. The scheme-
+ specific-part must include a fully qualified domain name or IP
+ address as the host.
+
+ When the subjectAltName extension contains a iPAddress, the address
+ MUST be stored in the octet string in "network byte order," as
+ specified in RFC 791 [RFC 791]. The least significant bit (LSB) of
+ each octet is the LSB of the corresponding byte in the network
+ address. For IP Version 4, as specified in RFC 791, the octet string
+ MUST contain exactly four octets. For IP Version 6, as specified in
+ RFC 1883, the octet string MUST contain exactly sixteen octets [RFC
+ 1883].
+
+
+ Create a GeneralName for the given tag from the passed in string.
+
+ This constructor can handle:
+
+ - rfc822Name
+ - iPAddress
+ - directoryName
+ - dNSName
+ - uniformResourceIdentifier
+ - registeredID
+
+ For x400Address, otherName and ediPartyName there is no common string
+ format defined.
+
+ Note: A directory name can be encoded in different ways into a byte
+ representation. Be aware of this if the byte representation is used for
+ comparing results.
+
+
+ @param tag tag number
+ @param name string representation of name
+ @throws ArgumentException if the string encoding is not correct or
+ not supported.
+
+
+ Construct a GeneralNames object containing one GeneralName.
+ The name to be contained.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ GeneralNames ::= Sequence SIZE {1..MAX} OF GeneralName
+
+
+
+ Class for containing a restriction object subtrees in NameConstraints. See
+ RFC 3280.
+
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.NameConstraints
+
+
+
+ Constructor from a given details.
+
+ According RFC 3280, the minimum and maximum fields are not used with any
+ name forms, thus minimum MUST be zero, and maximum MUST be absent.
+
+ If minimum is null, zero is assumed, if
+ maximum is null, maximum is absent.
+
+ @param baseName
+ A restriction.
+ @param minimum
+ Minimum
+
+ @param maximum
+ Maximum
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @return a DERObject
+
+
+ The Holder object.
+
+ For an v2 attribute certificate this is:
+
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ For an v1 attribute certificate this is:
+
+
+ subject CHOICE {
+ baseCertificateID [0] IssuerSerial,
+ -- associated with a Public Key Certificate
+ subjectName [1] GeneralNames },
+ -- associated with a name
+
+
+
+
+ Constructor for a holder for an v1 attribute certificate.
+
+ @param tagObj The ASN.1 tagged holder object.
+
+
+ Constructor for a holder for an v2 attribute certificate. *
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructs a holder from a IssuerSerial.
+ @param baseCertificateID The IssuerSerial.
+ @param version The version of the attribute certificate.
+
+
+ Returns 1 for v2 attribute certificates or 0 for v1 attribute
+ certificates.
+ @return The version of the attribute certificate.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+ @param version The version of the attribute certificate.
+
+
+ Constructs a holder from an object digest info.
+
+ @param objectDigestInfo The object digest info object.
+
+
+ Returns the entityName for an v2 attribute certificate or the subjectName
+ for an v1 attribute certificate.
+
+ @return The entityname or subjectname.
+
+
+ The Holder object.
+
+ Holder ::= Sequence {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ Implementation of IetfAttrSyntax as specified by RFC3281.
+
+
+
+
+
+
+
+
+ IetfAttrSyntax ::= Sequence {
+ policyAuthority [0] GeneralNames OPTIONAL,
+ values Sequence OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IssuerSerial ::= Sequence {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUid UniqueIdentifier OPTIONAL
+ }
+
+
+
+
+ IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+
+
+ Constructor from given details.
+
+ @param distributionPoint
+ May contain an URI as pointer to most current CRL.
+ @param onlyContainsUserCerts Covers revocation information for end certificates.
+ @param onlyContainsCACerts Covers revocation information for CA certificates.
+
+ @param onlySomeReasons
+ Which revocation reasons does this point cover.
+ @param indirectCRL
+ If true then the CRL contains revocation
+ information about certificates ssued by other CAs.
+ @param onlyContainsAttributeCerts Covers revocation information for attribute certificates.
+
+
+ Constructor from Asn1Sequence
+
+
+ @return Returns the distributionPoint.
+
+
+ @return Returns the onlySomeReasons.
+
+
+ The KeyPurposeID object.
+
+ KeyPurposeID ::= OBJECT IDENTIFIER
+
+
+
+ The KeyUsage object.
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (KeyUsage.keyEncipherment | KeyUsage.dataEncipherment)
+
+
+ Constructor from a given details.
+
+ permitted and excluded are Vectors of GeneralSubtree objects.
+
+ @param permitted Permitted subtrees
+ @param excluded Excluded subtrees
+
+
+ NoticeReference class, used in
+ CertificatePolicies X509 V3 extensions
+ (in policy qualifiers).
+
+
+ NoticeReference ::= Sequence {
+ organization DisplayText,
+ noticeNumbers Sequence OF Integer }
+
+
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param numbers a Vector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization displayText
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+ Useful for reconstructing a NoticeReference
+ instance from its encodable/encoded form.
+
+ @param as an Asn1Sequence value obtained from either
+ calling @{link ToAsn1Object()} for a NoticeReference
+ instance or from parsing it from a Der-encoded stream.
+
+
+ Describe ToAsn1Object method here.
+
+ @return a Asn1Object value
+
+
+ ObjectDigestInfo ASN.1 structure used in v2 attribute certificates.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+
+ The public key is hashed.
+
+
+ The public key certificate is hashed.
+
+
+ An other object is hashed.
+
+
+ Constructor from given details.
+
+ If digestedObjectType is not {@link #publicKeyCert} or
+ {@link #publicKey} otherObjectTypeID must be given,
+ otherwise it is ignored.
+
+ @param digestedObjectType The digest object type.
+ @param otherObjectTypeID The object type ID for
+ otherObjectDigest.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param objectDigest The hash value.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+ PolicyMappings V3 extension, described in RFC3280.
+
+ PolicyMappings ::= Sequence SIZE (1..MAX) OF Sequence {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+
+ @see RFC 3280, section 4.2.1.6
+
+
+ Creates a new PolicyMappings instance.
+
+ @param seq an Asn1Sequence constructed as specified
+ in RFC 3280
+
+
+ Creates a new PolicyMappings instance.
+
+ @param mappings a HashMap value that maps
+ string oids
+ to other string oids.
+
+
+ PolicyQualifierId, used in the CertificatePolicies
+ X509V3 extension.
+
+
+ id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+
+
+ Policy qualifiers, used in the X509V3 CertificatePolicies
+ extension.
+
+
+ PolicyQualifierInfo ::= Sequence {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param policyQualifierId a PolicyQualifierId value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new PolicyQualifierInfo containing a
+ cPSuri qualifier.
+
+ @param cps the CPS (certification practice statement) uri as a
+ string.
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param as PolicyQualifierInfo X509 structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a Der-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+
+ PrivateKeyUsagePeriod ::= SEQUENCE
+ {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+
+
+
+
+ The BiometricData object.
+
+ BiometricData ::= SEQUENCE {
+ typeOfBiometricData TypeOfBiometricData,
+ hashAlgorithm AlgorithmIdentifier,
+ biometricDataHash OCTET STRING,
+ sourceDataUri IA5String OPTIONAL }
+
+
+
+ The Iso4217CurrencyCode object.
+
+ Iso4217CurrencyCode ::= CHOICE {
+ alphabetic PrintableString (SIZE 3), --Recommended
+ numeric INTEGER (1..999) }
+ -- Alphabetic or numeric currency code as defined in ISO 4217
+ -- It is recommended that the Alphabetic form is used
+
+
+
+ The MonetaryValue object.
+
+ MonetaryValue ::= SEQUENCE {
+ currency Iso4217CurrencyCode,
+ amount INTEGER,
+ exponent INTEGER }
+ -- value = amount * 10^exponent
+
+
+
+ The QCStatement object.
+
+ QCStatement ::= SEQUENCE {
+ statementId OBJECT IDENTIFIER,
+ statementInfo ANY DEFINED BY statementId OPTIONAL}
+
+
+
+ The SemanticsInformation object.
+
+ SemanticsInformation ::= SEQUENCE {
+ semanticsIdentifier OBJECT IDENTIFIER OPTIONAL,
+ nameRegistrationAuthorities NameRegistrationAuthorities
+ OPTIONAL }
+ (WITH COMPONENTS {..., semanticsIdentifier PRESENT}|
+ WITH COMPONENTS {..., nameRegistrationAuthorities PRESENT})
+
+ NameRegistrationAuthorities ::= SEQUENCE SIZE (1..MAX) OF
+ GeneralName
+
+
+
+ The TypeOfBiometricData object.
+
+ TypeOfBiometricData ::= CHOICE {
+ predefinedBiometricType PredefinedBiometricType,
+ biometricDataOid OBJECT IDENTIFIER }
+
+ PredefinedBiometricType ::= INTEGER {
+ picture(0),handwritten-signature(1)}
+ (picture|handwritten-signature)
+
+
+
+ The ReasonFlags object.
+
+ ReasonFlags ::= BIT STRING {
+ unused(0),
+ keyCompromise(1),
+ cACompromise(2),
+ affiliationChanged(3),
+ superseded(4),
+ cessationOfOperation(5),
+ certficateHold(6)
+ }
+
+
+
+ @param reasons - the bitwise OR of the Key Reason flags giving the
+ allowed uses for the key.
+
+
+ Implementation of the RoleSyntax object as specified by the RFC3281.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ RoleSyntax factory method.
+ @param obj the object used to construct an instance of
+ RoleSyntax. It must be an instance of RoleSyntax
+ or Asn1Sequence.
+ @return the instance of RoleSyntax built from the
+ supplied object.
+ @throws java.lang.ArgumentException if the object passed
+ to the factory is not an instance of RoleSyntax or
+ Asn1Sequence.
+
+
+ Constructor.
+ @param roleAuthority the role authority of this RoleSyntax.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Constructor. Invoking this constructor is the same as invoking
+ new RoleSyntax(null, roleName).
+ @param roleName the role name of this RoleSyntax.
+
+
+ Utility constructor. Takes a string argument representing
+ the role name, builds a GeneralName to hold the role name
+ and calls the constructor that takes a GeneralName.
+ @param roleName
+
+
+ Constructor that builds an instance of RoleSyntax by
+ extracting the encoded elements from the Asn1Sequence
+ object supplied.
+ @param seq an instance of Asn1Sequence that holds
+ the encoded elements used to build this RoleSyntax.
+
+
+ Gets the role authority of this RoleSyntax.
+ @return an instance of GeneralNames holding the
+ role authority of this RoleSyntax.
+
+
+ Gets the role name of this RoleSyntax.
+ @return an instance of GeneralName holding the
+ role name of this RoleSyntax.
+
+
+ Gets the role name as a java.lang.string object.
+ @return the role name of this RoleSyntax represented as a
+ string object.
+
+
+ Gets the role authority as a string[] object.
+ @return the role authority of this RoleSyntax represented as a
+ string[] array.
+
+
+ Implementation of the method ToAsn1Object as
+ required by the superclass ASN1Encodable.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RSAPublicKey ::= Sequence {
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ }
+
+
+
+ Structure for a name or pseudonym.
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.PersonalData
+
+
+
+ Constructor from DERString.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+ @param pseudonym pseudonym value to use.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param pseudonym The pseudonym.
+
+
+ Constructor from a given details.
+
+ @param surname The surname.
+ @param givenName A sequence of directory strings making up the givenName
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @return an Asn1Object
+
+
+ Contains personal data for the otherName field in the subjectAltNames
+ extension.
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.NameOrPseudonym
+ @see org.bouncycastle.asn1.x509.sigi.SigIObjectIdentifiers
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param nameOrPseudonym Name or pseudonym.
+ @param nameDistinguisher Name distinguisher.
+ @param dateOfBirth Date of birth.
+ @param placeOfBirth Place of birth.
+ @param gender Gender.
+ @param postalAddress Postal Address.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Object Identifiers of SigI specifciation (German Signature Law
+ Interoperability specification).
+
+
+ Key purpose IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Certificate policy IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Other Name IDs for German SigI (Signature Interoperability Specification)
+
+
+ To be used for for the generation of directory service certificates.
+
+
+ ID for PersonalData
+
+
+ Certificate is conform to german signature law.
+
+
+ This extension may contain further X.500 attributes of the subject. See also
+ RFC 3039.
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @see org.bouncycastle.asn1.x509.X509Name for AttributeType ObjectIdentifiers.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type SubjectDirectoryAttributes:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @param seq
+ The ASN.1 sequence.
+
+
+ Constructor from an ArrayList of attributes.
+
+ The ArrayList consists of attributes of type {@link Attribute Attribute}
+
+ @param attributes The attributes.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @return a DERObject
+
+
+ @return Returns the attributes.
+
+
+ The SubjectKeyIdentifier object.
+
+ SubjectKeyIdentifier::= OCTET STRING
+
+
+
+ Calculates the keyIdentifier using a SHA1 hash over the BIT STRING
+ from SubjectPublicKeyInfo as defined in RFC3280.
+
+ @param spki the subject public key info.
+
+
+ Return a RFC 3280 type 1 key identifier. As in:
+
+ (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the
+ value of the BIT STRING subjectPublicKey (excluding the tag,
+ length, and number of unused bits).
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ Return a RFC 3280 type 2 key identifier. As in:
+
+ (2) The keyIdentifier is composed of a four bit type field with
+ the value 0100 followed by the least significant 60 bits of the
+ SHA-1 hash of the value of the BIT STRING subjectPublicKey.
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ The object that contains the public key stored in a certficate.
+
+ The GetEncoded() method in the public keys in the JCE produces a DER
+ encoded one of these.
+
+
+ for when the public key is an encoded object - if the bitstring
+ can't be decoded this routine raises an IOException.
+
+ @exception IOException - if the bit string doesn't represent a Der
+ encoded object.
+
+
+ for when the public key is raw bits...
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SubjectPublicKeyInfo ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING }
+
+
+
+ Target structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+
+ The targetCert field is currently not supported and must not be used
+ according to RFC 3281.
+
+
+ Creates an instance of a Target from the given object.
+
+ obj can be a Target or a {@link Asn1TaggedObject}
+
+ @param obj The object.
+ @return A Target instance.
+ @throws ArgumentException if the given object cannot be
+ interpreted as Target.
+
+
+ Constructor from Asn1TaggedObject.
+
+ @param tagObj The tagged object.
+ @throws ArgumentException if the encoding is wrong.
+
+
+ Constructor from given details.
+
+ Exactly one of the parameters must be not null.
+
+ @param type the choice type to apply to the name.
+ @param name the general name.
+ @throws ArgumentException if type is invalid.
+
+
+ @return Returns the targetGroup.
+
+
+ @return Returns the targetName.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+ @return an Asn1Object
+
+
+ Target information extension for attributes certificates according to RFC
+ 3281.
+
+
+ SEQUENCE OF Targets
+
+
+
+
+ Creates an instance of a TargetInformation from the given object.
+
+ obj can be a TargetInformation or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A TargetInformation instance.
+ @throws ArgumentException if the given object cannot be interpreted as TargetInformation.
+
+
+ Constructor from a Asn1Sequence.
+
+ @param seq The Asn1Sequence.
+ @throws ArgumentException if the sequence does not contain
+ correctly encoded Targets elements.
+
+
+ Returns the targets in this target information extension.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Constructs a target information from a single targets element.
+ According to RFC 3281 only one targets element must be produced.
+
+ @param targets A Targets instance.
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given they must be merged in
+ into one targets element.
+
+ @param targets An array with {@link Targets}.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SEQUENCE OF Targets
+
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given in the constructor they are merged into one
+ targets element. If this was produced from a
+ {@link Org.BouncyCastle.Asn1.Asn1Sequence} the encoding is kept.
+
+ @return an Asn1Object
+
+
+ Targets structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.Target
+ @see org.bouncycastle.asn1.x509.TargetInformation
+
+
+ Creates an instance of a Targets from the given object.
+
+ obj can be a Targets or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A Targets instance.
+ @throws ArgumentException if the given object cannot be interpreted as Target.
+
+
+ Constructor from Asn1Sequence.
+
+ @param targets The ASN.1 SEQUENCE.
+ @throws ArgumentException if the contents of the sequence are
+ invalid.
+
+
+ Constructor from given targets.
+
+ The ArrayList is copied.
+
+ @param targets An ArrayList of {@link Target}s.
+ @see Target
+ @throws ArgumentException if the ArrayList contains not only Targets.
+
+
+ Returns the targets in an ArrayList.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Targets ::= SEQUENCE OF Target
+
+
+ @return an Asn1Object
+
+
+ The TbsCertificate object.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+ Note: issuerUniqueID and subjectUniqueID are both deprecated by the IETF. This class
+ will parse them, but you really shouldn't be creating new ones.
+
+
+ PKIX RFC-2459 - TbsCertList object.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+
+ Return our time as DateTime.
+
+ A date time.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+ UserNotice class, used in
+ CertificatePolicies X509 extensions (in policy
+ qualifiers).
+
+ UserNotice ::= Sequence {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+
+
+ @see PolicyQualifierId
+ @see PolicyInformation
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param explicitText a DisplayText value
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param str the explicitText field as a string.
+
+
+ Creates a new UserNotice instance.
+ Useful from reconstructing a UserNotice instance
+ from its encodable/encoded form.
+
+ @param as an ASN1Sequence value obtained from either
+ calling @{link toASN1Object()} for a UserNotice
+ instance or from parsing it from a DER-encoded stream.
+
+
+ Generator for Version 1 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ }
+
+
+
+
+ Generator for Version 2 AttributeCertificateInfo
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+
+
+
+ @param attribute
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ V2Form ::= Sequence {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST NOT
+ -- be present in this profile
+ }
+
+
+
+ Generator for Version 2 TbsCertList structures.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+ Note: This class may be subject to change
+
+
+ Generator for Version 3 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+
+
+ an X509Certificate structure.
+
+ Certificate ::= Sequence {
+ tbsCertificate TbsCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+
+
+ The default converter for X509 DN entries when going from their
+ string value to ASN.1 strings.
+
+
+ Apply default conversion for the given value depending on the oid
+ and the character range of the value.
+
+ @param oid the object identifier for the DN entry
+ @param value the value associated with it
+ @return the ASN.1 equivalent for the string value.
+
+
+ an object for the elements in the X.509 V3 extension block.
+
+
+ Convert the value of the passed in extension to an object.
+ The extension to parse.
+ The object the value string contains.
+ If conversion is not possible.
+
+
+ Subject Directory Attributes
+
+
+ Subject Key Identifier
+
+
+ Key Usage
+
+
+ Private Key Usage Period
+
+
+ Subject Alternative Name
+
+
+ Issuer Alternative Name
+
+
+ Basic Constraints
+
+
+ CRL Number
+
+
+ Reason code
+
+
+ Hold Instruction Code
+
+
+ Invalidity Date
+
+
+ Delta CRL indicator
+
+
+ Issuing Distribution Point
+
+
+ Certificate Issuer
+
+
+ Name Constraints
+
+
+ CRL Distribution Points
+
+
+ Certificate Policies
+
+
+ Policy Mappings
+
+
+ Authority Key Identifier
+
+
+ Policy Constraints
+
+
+ Extended Key Usage
+
+
+ Freshest CRL
+
+
+ Inhibit Any Policy
+
+
+ Authority Info Access
+
+
+ Subject Info Access
+
+
+ Logo Type
+
+
+ BiometricInfo
+
+
+ QCStatements
+
+
+ Audit identity extension in attribute certificates.
+
+
+ NoRevAvail extension in attribute certificates.
+
+
+ TargetInformation extension in attribute certificates.
+
+
+ Expired Certificates on CRL extension
+
+
+ Constructor from Asn1Sequence.
+
+ the extensions are a list of constructed sequences, either with (Oid, OctetString) or (Oid, Boolean, OctetString)
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ return an Enumeration of the extension field's object ids.
+
+
+ return the extension represented by the object identifier
+ passed in.
+
+ @return the extension if it's present, null otherwise.
+
+
+
+ Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+ Extension ::= SEQUENCE {
+ extnId EXTENSION.&id ({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+
+
+ Generator for X.509 extensions
+
+
+ Reset the generator
+
+
+
+ Add an extension with the given oid and the passed in value to be included
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The ASN.1 object to be included in the extension.
+
+
+
+ Add an extension with the given oid and the passed in byte array to be wrapped
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The byte array to be wrapped.
+
+
+ Return true if there are no extension present in this generator.
+ True if empty, false otherwise
+
+
+ Generate an X509Extensions object based on the current state of the generator.
+ An X509Extensions object
+
+
+
+ RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+ RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY }
+
+
+
+ country code - StringType(SIZE(2))
+
+
+ organization - StringType(SIZE(1..64))
+
+
+ organizational unit name - StringType(SIZE(1..64))
+
+
+ Title
+
+
+ common name - StringType(SIZE(1..64))
+
+
+ street - StringType(SIZE(1..64))
+
+
+ device serial number name - StringType(SIZE(1..64))
+
+
+ locality name - StringType(SIZE(1..64))
+
+
+ state, or province name - StringType(SIZE(1..64))
+
+
+ Naming attributes of type X520name
+
+
+ businessCategory - DirectoryString(SIZE(1..128)
+
+
+ postalCode - DirectoryString(SIZE(1..40)
+
+
+ dnQualifier - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 Pseudonym - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Z
+
+
+ RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128)
+
+
+ RFC 3039 DateOfBirth - PrintableString (SIZE(1)) -- "M", "F", "m" or "f"
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF
+ DirectoryString(SIZE(1..30))
+
+
+ RFC 2256 dmdName
+
+
+ id-at-telephoneNumber
+
+
+ id-at-organizationIdentifier
+
+
+ id-at-name
+
+
+ Email address (RSA PKCS#9 extension) - IA5String.
+ Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.
+
+
+ more from PKCS#9
+
+
+ email address in Verisign certificates
+
+
+ LDAP User id.
+
+
+ determines whether or not strings should be processed and printed
+ from back to front.
+
+
+ default look up table translating OID values into their common symbols following
+ the convention in RFC 2253 with a few extras
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 2253
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 1779
+
+
+
+ look up table translating common symbols into their OIDS.
+
+
+ Return a X509Name based on the passed in tagged object.
+
+ @param obj tag object holding name.
+ @param explicitly true if explicitly tagged false otherwise.
+ @return the X509Name
+
+
+ Constructor from Asn1Sequence
+
+ the principal will be a list of constructed sets, each containing an (OID, string) pair.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. If reverse
+ is true, create the encoded version of the sequence starting from the
+ last element in the string.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter. If reverse is true the ASN.1 sequence representing the DN will
+ be built by starting at the end of the string, rather than the start.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically.
+
+ If reverse is true, create the encoded version of the sequence
+ starting from the last element in the string.
+ @param reverse true if we should start scanning from the end (RFC 2553).
+ @param lookUp table of names and their oids.
+ @param dirName the X.500 string to be parsed.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically. The passed in converter is used to convert the
+ string values to the right of each equals sign to their ASN.1 counterparts.
+
+ @param reverse true if we should start scanning from the end, false otherwise.
+ @param lookUp table of names and oids.
+ @param dirName the string dirName
+ @param converter the converter to convert string values into their ASN.1 equivalents
+
+
+ return an IList of the oids in the name, in the order they were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found, with the DN label corresponding to passed in oid.
+
+
+ The X509Name object to test equivalency against.
+ If true, the order of elements must be the same,
+ as well as the values associated with each element.
+
+
+ test for equivalence - note: case is ignored.
+
+
+ convert the structure to a string - if reverse is true the
+ oids and values are listed out starting with the last element
+ in the sequence (ala RFC 2253), otherwise the string will begin
+ with the first element of the structure. If no string definition
+ for the oid is found in oidSymbols the string value of the oid is
+ added. Two standard symbol tables are provided DefaultSymbols, and
+ RFC2253Symbols as part of this class.
+
+ @param reverse if true start at the end of the sequence and work back.
+ @param oidSymbols look up table strings for oids.
+
+
+ * It turns out that the number of standard ways the fields in a DN should be
+ * encoded into their ASN.1 counterparts is rapidly approaching the
+ * number of machines on the internet. By default the X509Name class
+ * will produce UTF8Strings in line with the current recommendations (RFC 3280).
+ *
+ * An example of an encoder look like below:
+ *
+ * public class X509DirEntryConverter
+ * : X509NameEntryConverter
+ * {
+ * public Asn1Object GetConvertedValue(
+ * DerObjectIdentifier oid,
+ * string value)
+ * {
+ * if (str.Length() != 0 && str.charAt(0) == '#')
+ * {
+ * return ConvertHexEncoded(str, 1);
+ * }
+ * if (oid.Equals(EmailAddress))
+ * {
+ * return new DerIA5String(str);
+ * }
+ * else if (CanBePrintable(str))
+ * {
+ * return new DerPrintableString(str);
+ * }
+ * else if (CanBeUTF8(str))
+ * {
+ * return new DerUtf8String(str);
+ * }
+ * else
+ * {
+ * return new DerBmpString(str);
+ * }
+ * }
+ * }
+ *
+ *
+
+
+ Convert an inline encoded hex string rendition of an ASN.1
+ object back into its corresponding ASN.1 object.
+
+ @param str the hex encoded object
+ @param off the index at which the encoding starts
+ @return the decoded object
+
+
+ return true if the passed in string can be represented without
+ loss as a PrintableString, false otherwise.
+
+
+ Convert the passed in string value into the appropriate ASN.1
+ encoded object.
+
+ @param oid the oid associated with the value in the DN.
+ @param value the value of the particular DN component.
+ @return the ASN.1 equivalent for the value.
+
+
+ class for breaking up an X500 Name into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ A general class that reads all X9.62 style EC curve tables.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve. The routine returns null if the curve is not present.
+
+ @param name the name of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve.
+
+ @param oid the object id of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return an enumeration of the names of the available curves.
+
+ @return an enumeration of the names of the available curves.
+
+
+ ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeySpecificInfo ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ counter OCTET STRING SIZE (4..4)
+ }
+
+
+
+ ANS.1 def for Diffie-Hellman key exchange OtherInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherInfo ::= Sequence {
+ keyInfo KeySpecificInfo,
+ partyAInfo [0] OCTET STRING OPTIONAL,
+ suppPubInfo [2] OCTET STRING
+ }
+
+
+
+ table of the current named curves defined in X.962 EC-DSA.
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Parameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve CURVES.&id({CurveNames}),
+ implicitlyCA Null
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve Curve structure. See
+ X9.62, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Curve ::= Sequence {
+ a FieldElement,
+ b FieldElement,
+ seed BIT STRING OPTIONAL
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve ECParameters structure. See
+ X9.62, for further details.
+
+
+ Return the ASN.1 entry representing the Curve.
+
+ @return the X9Curve for the curve in these parameters.
+
+
+ Return the ASN.1 entry representing the FieldID.
+
+ @return the X9FieldID for the FieldID in these parameters.
+
+
+ Return the ASN.1 entry representing the base point G.
+
+ @return the X9ECPoint for the base point in these parameters.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECParameters ::= Sequence {
+ version Integer { ecpVer1(1) } (ecpVer1),
+ fieldID FieldID {{FieldTypes}},
+ curve X9Curve,
+ base X9ECPoint,
+ order Integer,
+ cofactor Integer OPTIONAL
+ }
+
+
+
+ class for describing an ECPoint as a Der object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECPoint ::= OCTET STRING
+
+
+ Octet string produced using ECPoint.GetEncoded().
+
+
+ Class for processing an ECFieldElement as a DER object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ FieldElement ::= OCTET STRING
+
+
+
+ - if q is an odd prime then the field element is
+ processed as an Integer and converted to an octet string
+ according to x 9.62 4.3.1.
+ - if q is 2m then the bit string
+ contained in the field element is converted into an octet
+ string with the same ordering padded at the front if necessary.
+
+
+
+
+
+ ASN.1 def for Elliptic-Curve Field ID structure. See
+ X9.62, for further details.
+
+
+ Constructor for elliptic curves over prime fields
+ F2.
+ @param primeP The prime p defining the prime field.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)..
+
+
+ Produce a Der encoding of the following structure.
+
+ FieldID ::= Sequence {
+ fieldType FIELD-ID.&id({IOSet}),
+ parameters FIELD-ID.&Type({IOSet}{@fieldType})
+ }
+
+
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) x9-57 (10040) x9cm(4) 3 }
+
+
+ X9.63
+
+
+ X9.42
+
+
+ reader for Base64 armored objects - read the headers and then start returning
+ bytes when the data is reached. An IOException is thrown if the CRC check
+ fails.
+
+
+ decode the base 64 encoded input data.
+
+ @return the offset the data starts in out.
+
+
+ Create a stream for reading a PGP armoured message, parsing up to a header
+ and then reading the data that follows.
+
+ @param input
+
+
+ Create an armoured input stream which will assume the data starts
+ straight away, or parse for headers first depending on the value of
+ hasHeaders.
+
+ @param input
+ @param hasHeaders true if headers are to be looked for, false otherwise.
+
+
+ @return true if we are inside the clear text section of a PGP
+ signed message.
+
+
+ @return true if the stream is actually at end of file.
+
+
+ Return the armor header line (if there is one)
+ @return the armor header line, null if none present.
+
+
+ Return the armor headers (the lines after the armor header line),
+ @return an array of armor headers, null if there aren't any.
+
+
+ Basic output stream.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+
+ Set an additional header entry. A null value will clear the entry for name.
+
+ @param name the name of the header entry.
+ @param v the value of the header entry.
+
+
+ Reset the headers to only contain a Version string (if one is present).
+
+
+ Start a clear text signed message.
+ @param hashAlgorithm
+
+
+ Note: Close() does not close the underlying stream. So it is possible to write
+ multiple objects using armoring to a single stream.
+
+
+ Basic type for a image attribute packet.
+
+
+ Reader for PGP objects.
+
+
+ Returns the next packet tag in the stream.
+
+
+
+ A stream that overlays our input stream, allowing the user to only read a segment of it.
+ NB: dataLength will be negative if the segment length is in the upper range above 2**31.
+
+
+
+ Base class for a PGP object.
+
+
+ Basic output stream.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+
+
+ Create a stream representing an old style partial object.
+ Output stream to write to.
+ The packet tag for the object.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+ If true, the header is written out in old format.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Buffer to use for collecting chunks.
+
+
+ Flush the underlying stream.
+
+
+ Finish writing out the current packet without closing the underlying stream.
+
+
+ Generic compressed data object.
+
+
+ The algorithm tag value.
+
+
+ Basic tags for compression algorithms.
+
+
+ Basic type for a PGP packet.
+
+
+ Base class for a DSA public key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for a DSA secret key.
+
+
+ @param in
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ @return x
+
+
+ Base class for an ECDH Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an ECDSA Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an EC Public Key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an EC Secret Key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal public key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal secret key.
+
+
+ @param in
+
+
+ @param x
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Basic packet for an experimental packet.
+
+
+ Basic tags for hash algorithms.
+
+
+ Base interface for a PGP key.
+
+
+
+ The base format for this key - in the case of the symmetric keys it will generally
+ be raw indicating that the key is just a straight byte representation, for an asymmetric
+ key the format will be PGP, indicating the key is a string of MPIs encoded in PGP format.
+
+ "RAW" or "PGP".
+
+
+ Note: you can only read from this once...
+
+
+ Generic literal data packet.
+
+
+ The format tag value.
+
+
+ The modification time of the file in milli-seconds (since Jan 1, 1970 UTC)
+
+
+ Basic type for a marker packet.
+
+
+ Basic packet for a modification detection code packet.
+
+
+ A multiple precision integer
+
+
+ Generic signature object
+
+
+ The encryption algorithm tag.
+
+
+ The hash algorithm tag.
+
+
+ Basic PGP packet tag types.
+
+
+ Public Key Algorithm tag numbers.
+
+
+ Basic packet for a PGP public key.
+
+
+ Basic packet for a PGP public key.
+
+
+ Construct a version 4 public key packet.
+
+
+ Basic packet for a PGP public subkey
+
+
+ Construct a version 4 public subkey packet.
+
+
+ Base class for an RSA public key.
+
+
+ Construct an RSA public key from the passed in stream.
+
+
+ The modulus.
+ The public exponent.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an RSA secret (or priate) key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ The string to key specifier class.
+
+
+ The hash algorithm.
+
+
+ The IV for the key generation algorithm.
+
+
+ The iteration count
+
+
+ The protection mode - only if GnuDummyS2K
+
+
+ Basic packet for a PGP secret key.
+
+
+ Basic packet for a PGP secret key.
+
+
+ Generic signature packet.
+
+
+ Generate a version 4 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param hashedData
+ @param unhashedData
+ @param fingerprint
+ @param signature
+
+
+ Generate a version 2/3 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param fingerprint
+ @param signature
+
+
+ return the keyId
+ @return the keyId that created the signature.
+
+
+ return the signature trailer that must be included with the data
+ to reconstruct the signature
+
+ @return byte[]
+
+
+ * return the signature as a set of integers - note this is normalised to be the
+ * ASN.1 encoding of what appears in the signature packet.
+
+
+ Return the byte encoding of the signature section.
+ @return uninterpreted signature bytes.
+
+
+ Return the creation time in milliseconds since 1 Jan., 1970 UTC.
+
+
+ Basic type for a PGP Signature sub-packet.
+
+
+ Return the generic data making up the packet.
+
+
+ reader for signature sub-packets
+
+
+ Basic PGP signature sub-packet tag types.
+
+
+ Packet embedded signature
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ Identifier for the modification detection feature
+
+
+ Returns if modification detection is supported.
+
+
+ Returns if a particular feature is supported.
+
+
+ Sets support for a particular feature.
+
+
+ packet giving signature creation time.
+
+
+ packet giving time after creation at which the key expires.
+
+
+ Return the number of seconds after creation time a key is valid for.
+
+ @return second count for key validity.
+
+
+ Packet holding the key flag values.
+
+
+
+ Return the flag values contained in the first 4 octets (note: at the moment
+ the standard only uses the first one).
+
+
+
+ Class provided a NotationData object according to
+ RFC2440, Chapter 5.2.3.15. Notation Data
+
+
+ packet giving signature creation time.
+
+
+ packet giving whether or not the signature is signed using the primary user ID for the key.
+
+
+ packet giving whether or not is revocable.
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ return time in seconds before signature expires after creation time.
+
+
+ packet giving the User ID of the signer.
+
+
+ packet giving trust.
+
+
+
+ Represents revocation key OpenPGP signature sub packet.
+
+
+
+
+ Represents revocation reason OpenPGP signature sub packet.
+
+
+
+ Basic type for a symmetric key encrypted packet.
+
+
+ Basic tags for symmetric key algorithms
+
+
+ Basic type for a symmetric encrypted session key packet
+
+
+ @return int
+
+
+ @return S2k
+
+
+ @return byte[]
+
+
+ @return int
+
+
+ Basic type for a trust packet.
+
+
+ Basic type for a user attribute packet.
+
+
+ Basic type for a user attribute sub-packet.
+
+
+ return the generic data making up the packet.
+
+
+ reader for user attribute sub-packets
+
+
+ Basic PGP user attribute sub-packet tag types.
+
+
+ Basic type for a user ID packet.
+
+
+ Compressed data objects
+
+
+ The algorithm used for compression
+
+
+ Get the raw input stream contained in the object.
+
+
+ Return an uncompressed input stream which allows reading of the compressed data.
+
+
+ Class for producing compressed data packets.
+
+
+
+
+ Return an output stream which will save the data being written to
+ the compressed object.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Stream to be used for output.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+
+ Return an output stream which will compress the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+ Note: using this may break compatibility with RFC 1991 compliant tools.
+ Only recent OpenPGP implementations are capable of accepting these streams.
+
+
+ Stream to be used for output.
+ The buffer to use.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+ Close the compressed object.summary>
+
+
+
+ Thrown if the IV at the start of a data stream indicates the wrong key is being used.
+
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return true if the message is integrity protected.
+ True, if there is a modification detection code namespace associated
+ with this stream.
+
+
+ Note: This can only be called after the message has been read.
+ True, if the message verifies, false otherwise
+
+
+ Generator for encrypted objects.
+
+
+ Existing SecureRandom constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+
+
+ Creates a cipher stream which will have an integrity packet associated with it.
+
+
+ Base constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+ PGP 2.6.x compatibility required.
+
+
+
+ Add a PBE encryption method to the encrypted object using the default algorithm (S2K_SHA1).
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Add a public key encrypted session key to the encrypted object.
+
+
+
+
+ If buffer is non null stream assumed to be partial, otherwise the length will be used
+ to output a fixed length packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+
+
+
+
+ Close off the encrypted object - this is equivalent to calling Close() on the stream
+ returned by the Open() method.
+
+
+ Note: This does not close the underlying output stream, only the stream on top of
+ it created by the Open() method.
+
+
+
+
+ A holder for a list of PGP encryption method packets.
+
+
+ Generic exception class for PGP encoding/decoding problems.
+
+
+ Key flag values for the KeyFlags subpacket.
+
+
+
+ General class to handle JCA key pairs and convert them into OpenPGP ones.
+
+ A word for the unwary, the KeyId for an OpenPGP public key is calculated from
+ a hash that includes the time of creation, if you pass a different date to the
+ constructor below with the same public private key pair the KeyIs will not be the
+ same as for previous generations of the key, so ideally you only want to do
+ this once.
+
+
+
+
+ Create a key pair from a PgpPrivateKey and a PgpPublicKey.
+ The public key.
+ The private key.
+
+
+ The keyId associated with this key pair.
+
+
+
+ Generator for a PGP master and subkey ring.
+ This class will generate both the secret and public key rings
+
+
+
+
+ Create a new key ring generator using old style checksumming. It is recommended to use
+ SHA1 checksumming where possible.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+ The key pair.
+ The hash algorithm.
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ exception adding subkey:
+
+
+
+ Return the secret key ring.
+
+
+ Return the public key ring that corresponds to the secret key ring.
+
+
+
+ Thrown if the key checksum is invalid.
+
+
+
+ Class for processing literal data objects.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+ The format of the data stream - Binary or Text
+
+
+ The file name that's associated with the data stream.
+
+
+ Return the file name as an unintrepreted byte array.
+
+
+ The modification time for the file.
+
+
+ The raw input stream for the data stream.
+
+
+ The input stream representing the data stream.
+
+
+ Class for producing literal data packets.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+
+ Generates literal data objects in the old format.
+ This is important if you need compatibility with PGP 2.6.x.
+
+ If true, uses old format.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The length of the data we will write.
+ The time of last modification we want stored.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet,
+ as an indefinite length stream. The stream is written out as a series of partial
+ packets with a chunk size determined by the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The time of last modification we want stored.
+ The buffer to use for collecting data to put into chunks.
+
+
+
+
+ Open a literal data packet for the passed in FileInfo object, returning
+ an output stream for saving the file contents.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The FileInfo object containg the packet details.
+
+
+
+ Close the literal data packet - this is equivalent to calling Close()
+ on the stream returned by the Open() method.
+
+
+
+
+ A PGP marker packet - in general these should be ignored other than where
+ the idea is to preserve the original input stream.
+
+
+
+
+ General class for reading a PGP object stream.
+
+ Note: if this class finds a PgpPublicKey or a PgpSecretKey it
+ will create a PgpPublicKeyRing, or a PgpSecretKeyRing for each
+ key found. If all you are trying to do is read a key ring file use
+ either PgpPublicKeyRingBundle or PgpSecretKeyRingBundle.
+
+
+
+ Return the next object in the stream, or null if the end is reached.
+ On a parse error
+
+
+
+ Return all available objects in a list.
+
+ An IList containing all objects from this factory, in order.
+
+
+ A one pass signature object.
+
+
+ Initialise the signature object for verification.
+
+
+ Verify the calculated signature against the passed in PgpSignature.
+
+
+ Holder for a list of PgpOnePassSignature objects.
+
+
+ Padding functions.
+
+
+ A password based encryption object.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ General class to contain a private key for use with other OpenPGP objects.
+
+
+
+ Create a PgpPrivateKey from a keyID, the associated public data packet, and a regular private key.
+
+ ID of the corresponding public key.
+ the public key data packet to be associated with this private key.
+ the private key data packet to be associated with this private key.
+
+
+ The keyId associated with the contained private key.
+
+
+ The public key packet associated with this private key, if available.
+
+
+ The contained private key.
+
+
+ General class to handle a PGP public key object.
+
+
+
+ Create a PgpPublicKey from the passed in lightweight one.
+
+
+ Note: the time passed in affects the value of the key's keyId, so you probably only want
+ to do this once for a lightweight key, or make sure you keep track of the time you used.
+
+ Asymmetric algorithm type representing the public key.
+ Actual public key to associate.
+ Date of creation.
+ If pubKey is not public.
+ On key creation problem.
+
+
+ Constructor for a sub-key.
+
+
+ Copy constructor.
+ The public key to copy.
+
+
+ The version of this key.
+
+
+ The creation time of this key.
+
+
+ The number of valid days from creation time - zero means no expiry.
+ WARNING: This method will return 1 for keys with version > 3 that expire in less than 1 day
+
+
+ Return the trust data associated with the public key, if present.
+ A byte array with trust data, null otherwise.
+
+
+ The number of valid seconds from creation time - zero means no expiry.
+
+
+ The keyId associated with the public key.
+
+
+ The fingerprint of the key
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for encryption.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for encryption.
+
+
+
+ True, if this is a master key.
+
+
+ The algorithm code associated with the public key.
+
+
+ The strength of the key in bits.
+
+
+ The public key contained in the object.
+ A lightweight public key.
+ If the key algorithm is not recognised.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of PgpUserAttributeSubpacketVector objects.
+
+
+ Allows enumeration of any signatures associated with the passed in id.
+ The ID to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures associated with the passed in user attributes.
+ The vector of user attributes to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures of the passed in type that are on this key.
+ The type of the signature to be returned.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of all signatures/certifications associated with this key.
+ An IEnumerable with all signatures/certifications.
+
+
+ Return all signatures/certifications directly associated with this key (ie, not to a user id).
+
+ @return an iterator (possibly empty) with all signatures/certifications.
+
+
+ Check whether this (sub)key has a revocation signature on it.
+ True, if this (sub)key has been revoked.
+
+
+ Add a certification for an id to the given public key.
+ The key the certification is to be added to.
+ The ID the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+ Add a certification for the given UserAttributeSubpackets to the given public key.
+ The key the certification is to be added to.
+ The attributes the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+
+ Remove any certifications associated with a user attribute subpacket on a key.
+
+ The key the certifications are to be removed from.
+ The attributes to be removed.
+
+ The re-certified key, or null if the user attribute subpacket was not found on the key.
+
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from.
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given user attributes on a key.
+ The key the certifications are to be removed from.
+ The user attributes that the certfication is to be removed from.
+ The certification to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Add a revocation or some other key certification to a key.
+ The key the revocation is to be added to.
+ The key signature to be added.
+ The new changed public key object.
+
+
+ Remove a certification from the key.
+ The key the certifications are to be removed from.
+ The certfication to be removed.
+ The modified key, null if the certification was not found.
+
+
+ A public key encrypted data object.
+
+
+ The key ID for the key used to encrypt the data.
+
+
+
+ Return the algorithm code for the symmetric algorithm used to encrypt the data.
+
+
+
+ Return the decrypted data stream for the packet.
+
+
+
+ Class to hold a single master public key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpPublicKeyRingBundle class.
+
+
+
+
+ Return the first public key in the ring.
+
+
+ Return the public key referred to by the passed in key ID if it is present.
+
+
+ Allows enumeration of all the public keys.
+ An IEnumerable of PgpPublicKey objects.
+
+
+
+ Returns a new key ring with the public key passed in either added or
+ replacing an existing one.
+
+ The public key ring to be modified.
+ The public key to be inserted.
+ A new PgpPublicKeyRing
+
+
+ Returns a new key ring with the public key passed in removed from the key ring.
+ The public key ring to be modified.
+ The public key to be removed.
+ A new PgpPublicKeyRing, or null if pubKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire public key file in one hit this is the class for you.
+
+
+
+ Build a PgpPublicKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpPublicKeyRing.
+
+
+ Return the number of key rings in this collection.
+
+
+ Allow enumeration of the public key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP public key associated with the given key id.
+ The ID of the public key to return.
+
+
+ Return the public key ring which contains the key referred to by keyId
+ key ID to match against
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in public key ring.
+
+ The PgpPublicKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpPublicKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in public key ring removed.
+
+ The PgpPublicKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpPublicKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ General class to handle a PGP secret key object.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for signing.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for use with signing.
+
+
+
+ True, if this is a master key.
+
+
+ Detect if the Secret Key's Private Key is empty or not
+
+
+ The algorithm the key is encrypted with.
+
+
+ The key ID of the public key associated with this key.
+
+
+ Return the S2K usage associated with this key.
+
+
+ Return the S2K used to process this key.
+
+
+ The public key associated with this key.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of string objects.
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+ Replace the passed the public key on the passed in secret key.
+ Secret key to change.
+ New public key.
+ A new secret key.
+ If KeyId's do not match.
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+
+
+ Class to hold a single master secret key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpSecretKeyRingBundle class.
+
+
+
+
+ Return the public key for the master key.
+
+
+ Return the master private key.
+
+
+ Allows enumeration of the secret keys.
+ An IEnumerable of PgpSecretKey objects.
+
+
+
+ Return an iterator of the public keys in the secret key ring that
+ have no matching private key. At the moment only personal certificate data
+ appears in this fashion.
+
+ An IEnumerable of unattached, or extra, public keys.
+
+
+
+ Replace the public key set on the secret ring with the corresponding key off the public ring.
+
+ Secret ring to be changed.
+ Public ring containing the new public key set.
+
+
+
+ Return a copy of the passed in secret key ring, with the master key and sub keys encrypted
+ using a new password and the passed in algorithm.
+
+ The PgpSecretKeyRing to be copied.
+ The current password for key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Returns a new key ring with the secret key passed in either added or
+ replacing an existing one with the same key ID.
+
+ The secret key ring to be modified.
+ The secret key to be inserted.
+ A new PgpSecretKeyRing
+
+
+ Returns a new key ring with the secret key passed in removed from the key ring.
+ The secret key ring to be modified.
+ The secret key to be removed.
+ A new PgpSecretKeyRing, or null if secKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire secret key file in one hit this is the class for you.
+
+
+
+ Build a PgpSecretKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpSecretKeyRing.
+
+
+ Return the number of rings in this collection.
+
+
+ Allow enumeration of the secret key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP secret key associated with the given key id.
+ The ID of the secret key to return.
+
+
+ Return the secret key ring which contains the key referred to by keyId
+ The ID of the secret key
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in secret key ring.
+
+ The PgpSecretKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpSecretKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in secret key ring removed.
+
+ The PgpSecretKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpSecretKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ A PGP signature object.
+
+
+ The OpenPGP version number for this signature.
+
+
+ The key algorithm associated with this signature.
+
+
+ The hash algorithm associated with this signature.
+
+
+ Return true if this signature represents a certification.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in user attributes.
+
+ User attributes the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in ID.
+
+ ID the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+ Verify a certification for the passed in key against the passed in master key.
+ The key we are verifying against.
+ The key we are verifying.
+ True, if the certification is valid, false otherwise.
+
+
+ Verify a key certification, such as revocation, for the passed in key.
+ The key we are checking.
+ True, if the certification is valid, false otherwise.
+
+
+ The ID of the key that created the signature.
+
+
+ The creation time of this signature.
+
+
+
+ Return true if the signature has either hashed or unhashed subpackets.
+
+
+
+
+ Return true if the passed in signature type represents a certification, false if the signature type is not.
+
+
+ true if signatureType is a certification, false otherwise.
+
+
+ Generator for PGP signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a signature object containing the current signature state.
+
+
+ Generate a certification for the passed in ID and key.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in userAttributes.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in key against the passed in master key.
+ The key we are certifying against.
+ The key we are certifying.
+ The certification.
+
+
+ Generate a certification, such as a revocation, for the passed in key.
+ The key we are certifying.
+ The certification.
+
+
+ A list of PGP signatures - normally in the signature block after literal data.
+
+
+ Generator for signature subpackets.
+
+
+
+ Add a TrustSignature packet to the signature. The values for depth and trust are largely
+ installation dependent but there are some guidelines in RFC 4880 - 5.2.3.13.
+
+ true if the packet is critical.
+ depth level.
+ trust amount.
+
+
+
+ Set the number of seconds a key is valid for after the time of its creation.
+ A value of zero means the key never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the key is valid, or zero if no expiry.
+
+
+
+ Set the number of seconds a signature is valid for after the time of its creation.
+ A value of zero means the signature never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the signature is valid, or zero if no expiry.
+
+
+
+ Set the creation time for the signature.
+
+ Note: this overrides the generation of a creation time when the signature
+ is generated.
+
+
+
+
+ Sets revocation reason sub packet
+
+
+
+
+ Sets revocation key sub packet
+
+
+
+
+ Sets issuer key sub packet
+
+
+
+ Container for a list of signature subpackets.
+
+
+ Return true if a particular subpacket type exists.
+
+ @param type type to look for.
+ @return true if present, false otherwise.
+
+
+ Return all signature subpackets of the passed in type.
+ @param type subpacket type code
+ @return an array of zero or more matching subpackets.
+
+
+
+ Return the number of seconds a signature is valid for after its creation date.
+ A value of zero means the signature never expires.
+
+ Seconds a signature is valid for.
+
+
+
+ Return the number of seconds a key is valid for after its creation date.
+ A value of zero means the key never expires.
+
+ Seconds a signature is valid for.
+
+
+ Return the number of packets this vector contains.
+
+
+ Container for a list of user attribute subpackets.
+
+
+ Basic utility class.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Write out the passed in file as a literal data packet.
+
+
+ Write out the passed in file as a literal data packet in partial packet format.
+
+
+
+ Return either an ArmoredInputStream or a BcpgInputStream based on whether
+ the initial characters of the stream are binary PGP encodings or not.
+
+
+
+ Generator for old style PGP V3 Signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a V3 signature object containing the current signature state.
+
+
+ Utility functions for looking a S-expression keys. This class will move when it finds a better home!
+
+ Format documented here:
+ http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=agent/keyformat.txt;h=42c4b1f06faf1bbe71ffadc2fee0fad6bec91a97;hb=refs/heads/master
+
+
+
+
+ The 'Signature' parameter is only available when generating unsigned attributes.
+
+
+
+ containing class for an CMS Authenticated Data object
+
+
+ return the object identifier for the content MAC algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the digested attributes indexed by
+ the OID of the attribute.
+
+
+ return a table of the undigested attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ General class for generating a CMS authenticated-data message.
+
+ A simple example of usage.
+
+
+ CMSAuthenticatedDataGenerator fact = new CMSAuthenticatedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSAuthenticatedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+
+
+ generate an authenticated object that contains an CMS Authenticated Data object
+
+
+ Parsing class for an CMS Authenticated Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CMSAuthenticatedDataParser ad = new CMSAuthenticatedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ad.getRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey, "BC");
+
+ processDataStream(recData.getContentStream());
+
+ if (!Arrays.equals(ad.getMac(), recipient.getMac())
+ {
+ System.err.println("Data corrupted!!!!");
+ }
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSAuthenticatedDataParser ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the mac algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ General class for generating a CMS authenticated-data message stream.
+
+ A simple example of usage.
+
+ CMSAuthenticatedDataStreamGenerator edGen = new CMSAuthenticatedDataStreamGenerator();
+
+ edGen.addKeyTransRecipient(cert);
+
+ ByteArrayOutputStream bOut = new ByteArrayOutputStream();
+
+ OutputStream out = edGen.open(
+ bOut, CMSAuthenticatedDataGenerator.AES128_CBC, "BC");*
+ out.write(data);
+
+ out.close();
+
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+ @throws java.io.IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+
+ @param rand instance of SecureRandom to use
+
+
+ containing class for an CMS AuthEnveloped Data object
+
+
+ containing class for an CMS Compressed Data object
+
+
+ Return the uncompressed content.
+
+ @return the uncompressed content
+ @throws CmsException if there is an exception uncompressing the data.
+
+
+ Return the uncompressed content, throwing an exception if the data size
+ is greater than the passed in limit. If the content is exceeded getCause()
+ on the CMSException will contain a StreamOverflowException
+
+ @param limit maximum number of bytes to read
+ @return the content read
+ @throws CMSException if there is an exception uncompressing the data.
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ * General class for generating a compressed CMS message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * CMSCompressedDataGenerator fact = new CMSCompressedDataGenerator();
+ * CMSCompressedData data = fact.Generate(content, algorithm);
+ *
+ *
+
+
+ Generate an object that contains an CMS Compressed Data
+
+
+ Class for reading a CMS Compressed Data stream.
+
+ CMSCompressedDataParser cp = new CMSCompressedDataParser(inputStream);
+
+ process(cp.GetContent().GetContentStream());
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSCompressedDataParser ep = new CMSCompressedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ General class for generating a compressed CMS message stream.
+
+ A simple example of usage.
+
+
+ CMSCompressedDataStreamGenerator gen = new CMSCompressedDataStreamGenerator();
+
+ Stream cOut = gen.Open(outputStream, CMSCompressedDataStreamGenerator.ZLIB);
+
+ cOut.Write(data);
+
+ cOut.Close();
+
+
+
+ base constructor
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Close the underlying data stream.
+ @throws IOException if the close fails.
+
+
+ containing class for an CMS Enveloped Data object
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CmsEnvelopedDataGenerator fact = new CmsEnvelopedDataGenerator();
+
+ fact.AddKeyTransRecipient(cert);
+
+ CmsEnvelopedData data = fact.Generate(content, algorithm);
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+
+ Generate an enveloped object that contains a CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Parsing class for an CMS Enveloped Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ep.GetRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey);
+
+ processDataStream(recData.getContentStream());
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message stream.
+
+ A simple example of usage.
+
+ CmsEnvelopedDataStreamGenerator edGen = new CmsEnvelopedDataStreamGenerator();
+
+ edGen.AddKeyTransRecipient(cert);
+
+ MemoryStream bOut = new MemoryStream();
+
+ Stream out = edGen.Open(
+ bOut, CMSEnvelopedDataGenerator.AES128_CBC);*
+ out.Write(data);
+
+ out.Close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data.
+ Length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CMSEnvelopedDataGenerator fact = new CMSEnvelopedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSEnvelopedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ add a recipient.
+
+ @param cert recipient's public key certificate
+ @exception ArgumentException if there is a problem with the certificate
+
+
+ add a recipient
+
+ @param key the public key used by the recipient
+ @param subKeyId the identifier for the recipient's public key
+ @exception ArgumentException if there is a problem with the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ Add a key agreement based recipient.
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCert recipient's public key certificate.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+ Add multiple key agreement based recipients (sharing a single KeyAgreeRecipientInfo structure).
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCerts recipients' public key certificates.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+
+ Generic routine to copy out the data we want processed.
+
+
+ This routine may be called multiple times.
+
+
+
+ a holding class for a byte array of data to be processed.
+
+
+ A clone of the byte array
+
+
+ a holding class for a file of data to be processed.
+
+
+ The file handle
+
+
+ general class for handling a pkcs7-signature message.
+
+ A simple example of usage - note, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer...
+
+
+ IX509Store certs = s.GetCertificates();
+ SignerInformationStore signers = s.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ if (signer.Verify(cert.GetPublicKey()))
+ {
+ verified++;
+ }
+ }
+
+
+
+ Content with detached signature, digests precomputed
+
+ @param hashes a map of precomputed digests for content indexed by name of hash.
+ @param sigBlock the signature object.
+
+
+ base constructor - content with detached signature.
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ base constructor - with encapsulated content
+
+
+ Return the version number for this object.
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Replace the signerinformation store associated with this
+ CmsSignedData object with the new one passed in. You would
+ probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ @param signedData the signed data object to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @return a new signed data object.
+
+
+ Replace the certificate and CRL information associated with this
+ CmsSignedData object with the new one passed in.
+
+ @param signedData the signed data object to be used as a base.
+ @param x509Certs the new certificates to be used.
+ @param x509Crls the new CRLs to be used.
+ @return a new signed data object.
+ @exception CmsException if there is an error processing the stores
+
+
+ * general class for generating a pkcs7-signature message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * IX509Store certs...
+ * IX509Store crls...
+ * CmsSignedDataGenerator gen = new CmsSignedDataGenerator();
+ *
+ * gen.AddSigner(privKey, cert, CmsSignedGenerator.DigestSha1);
+ * gen.AddCertificates(certs);
+ * gen.AddCrls(crls);
+ *
+ * CmsSignedData data = gen.Generate(content);
+ *
+ *
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ * add a signer - no attributes other than the default ones will be
+ * provided here.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param subjectKeyID subjectKeyID of corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param subjectKeyID subjectKeyID of corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a set of one or more SignerInformation objects representing counter signatures on
+ the passed in SignerInformation object.
+
+ @param signer the signer to be countersigned
+ @param sigProvider the provider to be used for counter signing.
+ @return a store containing the signers.
+
+
+ Parsing class for an CMS Signed Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one signer can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ A simple example of usage for an encapsulated signature.
+
+
+ Two notes: first, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer, and, second, because we are in a streaming
+ mode the order of the operations is important.
+
+
+ CmsSignedDataParser sp = new CmsSignedDataParser(encapSigData);
+
+ sp.GetSignedContent().Drain();
+
+ IX509Store certs = sp.GetCertificates();
+ SignerInformationStore signers = sp.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ Console.WriteLine("verify returns: " + signer.Verify(cert));
+ }
+
+ Note also: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsSignedDataParser ep = new CmsSignedDataParser(new BufferedInputStream(encapSigData, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ base constructor - with encapsulated content
+
+
+ base constructor
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ Return the version number for the SignedData object
+
+ @return the version number
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+ @throws CmsException
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception org.bouncycastle.x509.NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ Replace the signerinformation store associated with the passed
+ in message contained in the stream original with the new one passed in.
+ You would probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+
+
+ Replace the certificate and CRL information associated with this
+ CMSSignedData object with the new one passed in.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param certsAndCrls the new certificates and CRLs to be used.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+ @exception CmsException if there is an error processing the CertStore
+
+
+ General class for generating a pkcs7-signature message stream.
+
+ A simple example of usage.
+
+
+ IX509Store certs...
+ CmsSignedDataStreamGenerator gen = new CmsSignedDataStreamGenerator();
+
+ gen.AddSigner(privateKey, cert, CmsSignedDataStreamGenerator.DIGEST_SHA1);
+
+ gen.AddCertificates(certs);
+
+ Stream sigOut = gen.Open(bOut);
+
+ sigOut.Write(Encoding.UTF8.GetBytes("Hello World!"));
+
+ sigOut.Close();
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer, specifying the digest encryption algorithm - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes - specifying digest
+ encryption algorithm.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data". If dataOutputStream is non null the data
+ being signed will be written to the stream as it is processed.
+ @param out stream the CMS object is to be written to.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+ @param out stream the CMS object is to be written to.
+ @param signedContentType OID for data to be signed.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ Default type for the signed data.
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Add the attribute certificates contained in the passed in store to the
+ generator.
+
+ @param store a store of Version 2 attribute certificates
+ @throws CmsException if an error occurse processing the store.
+
+
+ Add a store of precalculated signers to the generator.
+
+ @param signerStore store of signers
+
+
+ Return a map of oids and byte arrays representing the digests calculated on the content during
+ the last generate.
+
+ @return a map of oids (as String objects) and byte[] representing digests.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+ Return the digest encryption algorithm using one of the standard
+ JCA string representations rather than the algorithm identifier (if
+ possible).
+
+
+ Default authenticated attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in IDictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ Default signed attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType, signingTime, and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType, signingTime, and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in Hashtable of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a secret key known to the other side.
+
+
+ decrypt the content and return an input stream.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using key agreement.
+
+
+ decrypt the content and return an input stream.
+
+
+ the KeyTransRecipientInformation class for a recipient who has been sent a secret
+ key encrypted using their public key that needs to be used to
+ extract the message.
+
+
+ decrypt the content and return it as a byte array.
+
+
+ a basic index for an originator.
+
+
+ Return the certificates stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CertificateHolder objects.
+
+
+ Return the CRLs stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CRLHolder objects.
+
+
+ Return the underlying ASN.1 object defining this SignerInformation object.
+
+ @return a OriginatorInfo.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a password.
+
+
+ return the object identifier for the key derivation algorithm, or null
+ if there is none present.
+
+ @return OID for key derivation algorithm, if present.
+
+
+ decrypt the content and return an input stream.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes assuming ASCII.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes using UTF-8.
+
+
+
+ Generate a RecipientInfo object for the given key.
+
+
+ A
+
+
+ A
+
+
+ A
+
+
+
+
+ * return the object identifier for the key encryption algorithm.
+ *
+ * @return OID for key encryption algorithm.
+
+
+ * return the ASN.1 encoded key encryption algorithm parameters, or null if
+ * there aren't any.
+ *
+ * @return ASN.1 encoding of key encryption algorithm parameters.
+
+
+ Return the MAC calculated for the content stream. Note: this call is only meaningful once all
+ the content has been read.
+
+ @return byte array containing the mac.
+
+
+ Return the first RecipientInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a recipient
+ @return a single RecipientInformation object. Null if none matches.
+
+
+ Return the number of recipients in the collection.
+
+ @return number of recipients identified.
+
+
+ Return all recipients in the collection
+
+ @return a collection of recipients.
+
+
+ Return possible empty collection with recipients matching the passed in RecipientID
+
+ @param selector a recipient id to select against.
+ @return a collection of RecipientInformation objects.
+
+
+ a basic index for a signer.
+
+
+ If the passed in flag is true, the signer signature will be based on the data, not
+ a collection of signed attributes, and no signed attributes will be included.
+
+ @return the builder object
+
+
+ Provide a custom signed attribute generator.
+
+ @param signedGen a generator of signed attributes.
+ @return the builder object
+
+
+ Provide a generator of unsigned attributes.
+
+ @param unsignedGen a generator for signed attributes.
+ @return the builder object
+
+
+ Build a generator with the passed in certHolder issuer and serial number as the signerIdentifier.
+
+ @param contentSigner operator for generating the final signature in the SignerInfo with.
+ @param certHolder carrier for the X.509 certificate related to the contentSigner.
+ @return a SignerInfoGenerator
+ @throws OperatorCreationException if the generator cannot be built.
+
+
+ Build a generator with the passed in subjectKeyIdentifier as the signerIdentifier. If used you should
+ try to follow the calculation described in RFC 5280 section 4.2.1.2.
+
+ @param signerFactory operator factory for generating the final signature in the SignerInfo with.
+ @param subjectKeyIdentifier key identifier to identify the public key for verifying the signature.
+ @return a SignerInfoGenerator
+
+
+ an expanded SignerInfo block from a CMS Signed message
+
+
+ return the version number for this objects underlying SignerInfo structure.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature parameters, or null if there aren't any.
+
+
+ return the content digest that was calculated during verification.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature/encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a table of the signed attributes - indexed by
+ the OID of the attribute.
+
+
+ return a table of the unsigned attributes indexed by
+ the OID of the attribute.
+
+
+ return the encoded signature
+
+
+ Return a SignerInformationStore containing the counter signatures attached to this
+ signer. If no counter signatures are present an empty store is returned.
+
+
+ return the DER encoding of the signed attributes.
+ @throws IOException if an encoding error occurs.
+
+
+ verify that the given public key successfully handles and confirms the
+ signature associated with this signer.
+
+
+ verify that the given certificate successfully handles and confirms
+ the signature associated with this signer and, if a signingTime
+ attribute is available, that the certificate was valid at the time the
+ signature was generated.
+
+
+ Return the base ASN.1 CMS structure that this object contains.
+
+ @return an object containing a CMS SignerInfo structure.
+
+
+ Return a signer information object with the passed in unsigned
+ attributes replacing the ones that are current associated with
+ the object passed in.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param unsignedAttributes the unsigned attributes to add.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Return a signer information object with passed in SignerInformationStore representing counter
+ signatures attached as an unsigned attribute.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param counterSigners signer info objects carrying counter signature.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Create a store containing a single SignerInformation object.
+
+ @param signerInfo the signer information to contain.
+
+
+ Create a store containing a collection of SignerInformation objects.
+
+ @param signerInfos a collection signer information objects to contain.
+
+
+ Return the first SignerInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a signer
+ @return a single SignerInformation object. Null if none matches.
+
+
+ The number of signers in the collection.
+
+
+ An ICollection of all signers in the collection
+
+
+ Return possible empty collection with signers matching the passed in SignerID
+
+ @param selector a signer id to select against.
+ @return a collection of SignerInformation objects.
+
+
+ Basic generator that just returns a preconstructed attribute table
+
+
+ a Diffie-Hellman key exchange engine.
+
+ note: This uses MTI/A0 key agreement in order to make the key agreement
+ secure against passive attacks. If you're doing Diffie-Hellman and both
+ parties have long term public keys you should look at using this. For
+ further information have a look at RFC 2631.
+
+ It's possible to extend this to more than two parties as well, for the moment
+ that is left as an exercise for the reader.
+
+
+ calculate our initial message.
+
+
+ given a message from a given party and the corresponding public key
+ calculate the next message in the agreement sequence. In this case
+ this will represent the shared secret.
+
+
+ a Diffie-Hellman key agreement class.
+
+ note: This is only the basic algorithm, it doesn't take advantage of
+ long term public keys if they are available. See the DHAgreement class
+ for a "better" implementation.
+
+
+ given a short term public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+ P1363 7.2.1 ECSVDP-DH
+
+ ECSVDP-DH is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version. It is based on the work of [DH76], [Mil86],
+ and [Kob87]. This primitive derives a shared secret value from one
+ party's private key and another party's public key, where both have
+ the same set of EC domain parameters. If two parties correctly
+ execute this primitive, they will produce the same output. This
+ primitive can be invoked by a scheme to derive a shared secret key;
+ specifically, it may be used with the schemes ECKAS-DH1 and
+ DL/ECKAS-DH2. It assumes that the input keys are valid (see also
+ Section 7.2.2).
+
+
+ P1363 7.2.2 ECSVDP-DHC
+
+ ECSVDP-DHC is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version with cofactor multiplication. It is based on
+ the work of [DH76], [Mil86], [Kob87], [LMQ98] and [Kal98a]. This
+ primitive derives a shared secret value from one party's private key
+ and another party's public key, where both have the same set of EC
+ domain parameters. If two parties correctly execute this primitive,
+ they will produce the same output. This primitive can be invoked by a
+ scheme to derive a shared secret key; specifically, it may be used
+ with the schemes ECKAS-DH1 and DL/ECKAS-DH2. It does not assume the
+ validity of the input public key (see also Section 7.2.1).
+
+ Note: As stated P1363 compatibility mode with ECDH can be preset, and
+ in this case the implementation doesn't have a ECDH compatibility mode
+ (if you want that just use ECDHBasicAgreement and note they both implement
+ BasicAgreement!).
+
+
+
+ A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange.
+
+ The J-PAKE exchange is defined by Feng Hao and Peter Ryan in the paper
+
+ "Password Authenticated Key Exchange by Juggling, 2008."
+
+ The J-PAKE protocol is symmetric.
+ There is no notion of a client or server, but rather just two participants.
+ An instance of JPakeParticipant represents one participant, and
+ is the primary interface for executing the exchange.
+
+ To execute an exchange, construct a JPakeParticipant on each end,
+ and call the following 7 methods
+ (once and only once, in the given order, for each participant, sending messages between them as described):
+
+ CreateRound1PayloadToSend() - and send the payload to the other participant
+ ValidateRound1PayloadReceived(JPakeRound1Payload) - use the payload received from the other participant
+ CreateRound2PayloadToSend() - and send the payload to the other participant
+ ValidateRound2PayloadReceived(JPakeRound2Payload) - use the payload received from the other participant
+ CalculateKeyingMaterial()
+ CreateRound3PayloadToSend(BigInteger) - and send the payload to the other participant
+ ValidateRound3PayloadReceived(JPakeRound3Payload, BigInteger) - use the payload received from the other participant
+
+ Each side should derive a session key from the keying material returned by CalculateKeyingMaterial().
+ The caller is responsible for deriving the session key using a secure key derivation function (KDF).
+
+ Round 3 is an optional key confirmation process.
+ If you do not execute round 3, then there is no assurance that both participants are using the same key.
+ (i.e. if the participants used different passwords, then their session keys will differ.)
+
+ If the round 3 validation succeeds, then the keys are guaranteed to be the same on both sides.
+
+ The symmetric design can easily support the asymmetric cases when one party initiates the communication.
+ e.g. Sometimes the round1 payload and round2 payload may be sent in one pass.
+ Also, in some cases, the key confirmation payload can be sent together with the round2 payload.
+ These are the trivial techniques to optimize the communication.
+
+ The key confirmation process is implemented as specified in
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ This class is stateful and NOT threadsafe.
+ Each instance should only be used for ONE complete J-PAKE exchange
+ (i.e. a new JPakeParticipant should be constructed for each new J-PAKE exchange).
+
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ the JPakePrimeOrderGroups#NIST_3072 prime order group,
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+
+
+
+ Constructor for a new JPakeParticipant.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+ Digest to use during zero knowledge proofs and key confirmation
+ (SHA-256 or stronger preferred).
+ Source of secure random data for x1 and x2, and for the zero knowledge proofs.
+
+
+
+ Gets the current state of this participant.
+ See the STATE_* constants for possible values.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 1.
+
+ After execution, the State state} will be STATE_ROUND_1_CREATED}.
+
+
+
+
+ Validates the payload received from the other participant during round 1.
+
+ Must be called prior to CreateRound2PayloadToSend().
+
+ After execution, the State state will be STATE_ROUND_1_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException
+ if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 2.
+
+ ValidateRound1PayloadReceived(JPakeRound1Payload) must be called prior to this method.
+
+ After execution, the State state will be STATE_ROUND_2_CREATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Validates the payload received from the other participant during round 2.
+ Note that this DOES NOT detect a non-common password.
+ The only indication of a non-common password is through derivation
+ of different keys (which can be detected explicitly by executing round 3 and round 4)
+
+ Must be called prior to CalculateKeyingMaterial().
+
+ After execution, the State state will be STATE_ROUND_2_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws
+ InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Calculates and returns the key material.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPakeParticipant).
+
+ The keying material will be identical for each participant if and only if
+ each participant's password is the same. i.e. If the participants do not
+ share the same password, then each participant will derive a different key.
+ Therefore, if you immediately start using a key derived from
+ the keying material, then you must handle detection of incorrect keys.
+ If you want to handle this detection explicitly, you can optionally perform
+ rounds 3 and 4. See JPakeParticipant for details on how to execute
+ rounds 3 and 4.
+
+ The keying material will be in the range [0, p-1].
+
+ ValidateRound2PayloadReceived(JPakeRound2Payload) must be called prior to this method.
+
+ As a side effect, the internal password array is cleared, since it is no longer needed.
+
+ After execution, the State state will be STATE_KEY_CALCULATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound2PayloadReceived(JPakeRound2Payload),
+ or if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state} will be STATE_ROUND_3_CREATED.
+ Throws InvalidOperationException if called prior to CalculateKeyingMaterial, or multiple
+ times.
+
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ Validates the payload received from the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state will be STATE_ROUND_3_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException if called prior to
+ CalculateKeyingMaterial or multiple times
+
+ The round 3 payload received from the other participant.
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ A pre-computed prime order group for use during a J-PAKE exchange.
+
+ Typically a Schnorr group is used. In general, J-PAKE can use any prime order group
+ that is suitable for public key cryptography, including elliptic curve cryptography.
+
+ See JPakePrimeOrderGroups for convenient standard groups.
+
+ NIST publishes
+ many groups that can be used for the desired level of security.
+
+
+
+
+ Constructs a new JPakePrimeOrderGroup.
+
+ In general, you should use one of the pre-approved groups from
+ JPakePrimeOrderGroups, rather than manually constructing one.
+
+ The following basic checks are performed:
+
+ p-1 must be evenly divisible by q
+ g must be in [2, p-1]
+ g^q mod p must equal 1
+ p must be prime (within reasonably certainty)
+ q must be prime (within reasonably certainty)
+
+ The prime checks are performed using BigInteger#isProbablePrime(int),
+ and are therefore subject to the same probability guarantees.
+
+ These checks prevent trivial mistakes.
+ However, due to the small uncertainties if p and q are not prime,
+ advanced attacks are not prevented.
+ Use it at your own risk.
+
+ Throws NullReferenceException if any argument is null. Throws
+ InvalidOperationException is any of the above validations fail.
+
+
+
+
+ Constructor used by the pre-approved groups in JPakePrimeOrderGroups.
+ These pre-approved groups can avoid the expensive checks.
+ User-specified groups should not use this constructor.
+
+
+
+
+ Standard pre-computed prime order groups for use by J-PAKE.
+ (J-PAKE can use pre-computed prime order groups, same as DSA and Diffie-Hellman.)
+
+ This class contains some convenient constants for use as input for
+ constructing {@link JPAKEParticipant}s.
+
+ The prime order groups below are taken from Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB),
+ and from the prime order groups
+ published by NIST.
+
+
+
+
+ From Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB)
+ 1024-bit p, 160-bit q and 1024-bit g for 80-bit security.
+
+
+
+
+ From NIST.
+ 2048-bit p, 224-bit q and 2048-bit g for 112-bit security.
+
+
+
+
+ From NIST.
+ 3072-bit p, 256-bit q and 3072-bit g for 128-bit security.
+
+
+
+
+ The payload sent/received during the first round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance of this payload to
+ the other. The payload to send should be created via
+ JPAKEParticipant.CreateRound1PayloadToSend().
+
+ Each participant must also validate the payload received from the other.
+ The received payload should be validated via
+ JPAKEParticipant.ValidateRound1PayloadReceived(JPakeRound1Payload).
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of g^x1
+
+
+
+
+ The value of g^x2
+
+
+
+
+ The zero knowledge proof for x1.
+
+ This is a two element array, containing {g^v, r} for x1.
+
+
+
+
+ The zero knowledge proof for x2.
+
+ This is a two element array, containing {g^v, r} for x2.
+
+
+
+
+ The payload sent/received during the second round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound2PayloadToSend()
+
+ Each JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound2PayloadReceived(JPakeRound2Payload)
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of A, as computed during round 2.
+
+
+
+
+ The zero knowledge proof for x2 * s.
+
+ This is a two element array, containing {g^v, r} for x2 * s.
+
+
+
+
+ The payload sent/received during the optional third round of a J-PAKE exchange,
+ which is for explicit key confirmation.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound3PayloadToSend(BigInteger)
+
+ Eeach JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound3PayloadReceived(JPakeRound3Payload, BigInteger)
+
+
+
+
+ The id of the {@link JPAKEParticipant} who created/sent this payload.
+
+
+
+
+ The value of MacTag, as computed by round 3.
+
+ See JPAKEUtil#calculateMacTag(string, string, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, org.bouncycastle.crypto.Digest)
+
+
+
+
+ Primitives needed for a J-PAKE exchange.
+
+ The recommended way to perform a J-PAKE exchange is by using
+ two JPAKEParticipants. Internally, those participants
+ call these primitive operations in JPakeUtilities.
+
+ The primitives, however, can be used without a JPAKEParticipant if needed.
+
+
+
+
+ Return a value that can be used as x1 or x3 during round 1.
+ The returned value is a random value in the range [0, q-1].
+
+
+
+
+ Return a value that can be used as x2 or x4 during round 1.
+ The returned value is a random value in the range [1, q-1].
+
+
+
+
+ Converts the given password to a BigInteger
+ for use in arithmetic calculations.
+
+
+
+
+ Calculate g^x mod p as done in round 1.
+
+
+
+
+ Calculate ga as done in round 2.
+
+
+
+
+ Calculate x2 * s as done in round 2.
+
+
+
+
+ Calculate A as done in round 2.
+
+
+
+
+ Calculate a zero knowledge proof of x using Schnorr's signature.
+ The returned array has two elements {g^v, r = v-x*h} for x.
+
+
+
+
+ Validates that g^x4 is not 1.
+ throws CryptoException if g^x4 is 1
+
+
+
+
+ Validates that ga is not 1.
+
+ As described by Feng Hao...
+ Alice could simply check ga != 1 to ensure it is a generator.
+ In fact, as we will explain in Section 3, (x1 + x3 + x4 ) is random over Zq even in the face of active attacks.
+ Hence, the probability for ga = 1 is extremely small - on the order of 2^160 for 160-bit q.
+
+ throws CryptoException if ga is 1
+
+
+
+
+ Validates the zero knowledge proof (generated by
+ calculateZeroKnowledgeProof(BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, string, Digest, SecureRandom)
+ is correct.
+
+ throws CryptoException if the zero knowledge proof is not correct
+
+
+
+
+ Calculates the keying material, which can be done after round 2 has completed.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPAKEParticipant).
+
+ KeyingMaterial = (B/g^{x2*x4*s})^x2
+
+
+
+
+ Validates that the given participant ids are not equal.
+ (For the J-PAKE exchange, each participant must use a unique id.)
+
+ Throws CryptoException if the participantId strings are equal.
+
+
+
+
+ Validates that the given participant ids are equal.
+ This is used to ensure that the payloads received from
+ each round all come from the same participant.
+
+
+
+
+ Validates that the given object is not null.
+ throws NullReferenceException if the object is null.
+
+ object in question
+ name of the object (to be used in exception message)
+
+
+
+ Calculates the MacTag (to be used for key confirmation), as defined by
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ MacTag = HMAC(MacKey, MacLen, MacData)
+ MacKey = H(K || "JPAKE_KC")
+ MacData = "KC_1_U" || participantId || partnerParticipantId || gx1 || gx2 || gx3 || gx4
+
+ Note that both participants use "KC_1_U" because the sender of the round 3 message
+ is always the initiator for key confirmation.
+
+ HMAC = {@link HMac} used with the given {@link Digest}
+ H = The given {@link Digest}
+ MacLen = length of MacTag
+
+
+
+
+ Calculates the MacKey (i.e. the key to use when calculating the MagTag for key confirmation).
+
+ MacKey = H(K || "JPAKE_KC")
+
+
+
+
+ Validates the MacTag received from the partner participant.
+
+ throws CryptoException if the participantId strings are equal.
+
+
+
+ Generator for Concatenation Key Derivation Function defined in NIST SP 800-56A, Sect 5.8.1
+
+
+ @param digest the digest to be used as the source of generated bytes
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ RFC 2631 Diffie-hellman KEK derivation function.
+
+
+ X9.63 based key derivation function for ECDH CMS.
+
+
+
+ SM2 Key Exchange protocol - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
+
+
+
+ Implements the client side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the client to begin new authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates client's credentials given the client's salt, identity and password
+ @param salt The salt used in the client's verifier.
+ @param identity The user's identity (eg. username)
+ @param password The user's password
+ @return Client's public value to send to server
+
+
+ Generates client's verification message given the server's credentials
+ @param serverB The server's credentials
+ @return Client's verification message for the server
+ @throws CryptoException If server's credentials are invalid
+
+
+ Computes the client evidence message M1 using the previously received values.
+ To be called after calculating the secret S.
+ @return M1: the client side generated evidence message
+ @throws CryptoException
+
+
+ Authenticates the server evidence message M2 received and saves it only if correct.
+ @param M2: the server side generated evidence message
+ @return A boolean indicating if the server message M2 was the expected one.
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after verifying the server evidence message M2.
+ @return Key: the mutually authenticated symmetric session key
+ @throws CryptoException
+
+
+ Implements the server side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the server to accept a new client authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param v The client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates the server's credentials that are to be sent to the client.
+ @return The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+ @param clientA The client's credentials
+ @return A shared secret BigInteger
+ @throws CryptoException If client's credentials are invalid
+
+
+ Authenticates the received client evidence message M1 and saves it only if correct.
+ To be called after calculating the secret S.
+ @param M1: the client side generated evidence message
+ @return A boolean indicating if the client message M1 was the expected one.
+ @throws CryptoException
+
+
+ Computes the server evidence message M2 using the previously verified values.
+ To be called after successfully verifying the client evidence message M1.
+ @return M2: the server side generated evidence message
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after calculating the server evidence message M2.
+ @return Key: the mutual authenticated symmetric session key
+ @throws CryptoException
+
+
+ Computes the client evidence message (M1) according to the standard routine:
+ M1 = H( A | B | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param B The public server value
+ @param S The secret calculated by both sides
+ @return M1 The calculated client evidence message
+
+
+ Computes the server evidence message (M2) according to the standard routine:
+ M2 = H( A | M1 | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param M1 The client evidence message
+ @param S The secret calculated by both sides
+ @return M2 The calculated server evidence message
+
+
+ Computes the final Key according to the standard routine: Key = H(S)
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param S The secret calculated by both sides
+ @return
+
+
+ Generates new SRP verifier for user
+
+
+ Initialises generator to create new verifiers
+ @param N The safe prime to use (see DHParametersGenerator)
+ @param g The group parameter to use (see DHParametersGenerator)
+ @param digest The digest to use. The same digest type will need to be used later for the actual authentication
+ attempt. Also note that the final session key size is dependent on the chosen digest.
+
+
+ Creates a new SRP verifier
+ @param salt The salt to use, generally should be large and random
+ @param identity The user's identifying information (eg. username)
+ @param password The user's password
+ @return A new verifier for use in future SRP authentication
+
+
+ a holding class for public/private parameter pairs.
+
+
+ basic constructor.
+
+ @param publicParam a public key parameters object.
+ @param privateParam the corresponding private key parameters.
+
+
+ return the public key parameters.
+
+ @return the public key parameters.
+
+
+ return the private key parameters.
+
+ @return the private key parameters.
+
+
+ The AEAD block ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ a buffer wrapper for an asymmetric block cipher, allowing input
+ to be accumulated in a piecemeal fashion until final processing.
+
+
+ base constructor.
+
+ @param cipher the cipher this buffering object wraps.
+
+
+ return the amount of data sitting in the buffer.
+
+ @return the amount of data sitting in the buffer.
+
+
+ initialise the buffer and the underlying cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+
+
+ process the contents of the buffer using the underlying
+ cipher.
+
+ @return the result of the encryption/decryption process on the
+ buffer.
+ @exception InvalidCipherTextException if we are given a garbage block.
+
+
+ Reset the buffer
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion. The BufferedBlockCipher outputs a block only when the
+ buffer is full and more data is being added, or on a doFinal.
+
+ Note: in the case where the underlying cipher is either a CFB cipher or an
+ OFB one the last block may not be a multiple of the block size.
+
+
+
+ constructor for subclasses
+
+
+ Create a buffered block cipher without padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ false otherwise.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The base class for symmetric, or secret, cipher key generators.
+
+
+ initialise the key generator.
+
+ @param param the parameters to be used for key generation
+
+
+ Generate a secret key.
+
+ @return a byte array containing the key value.
+
+
+ this exception is thrown if a buffer that is meant to have output
+ copied into it turns out to be too short, or if we've been given
+ insufficient input. In general this exception will Get thrown rather
+ than an ArrayOutOfBounds exception.
+
+
+ base constructor.
+
+
+ create a DataLengthException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Basic sized constructor - size in bits.
+
+ @param digestSize size of the digest in bits
+
+
+ Blake2b for authentication ("Prefix-MAC mode").
+ After calling the doFinal() method, the key will
+ remain to be used for further computations of
+ this instance.
+ The key can be overwritten using the clearKey() method.
+
+ @param key A key up to 64 bytes or null
+
+
+ Blake2b with key, required digest length (in bytes), salt and personalization.
+ After calling the doFinal() method, the key, the salt and the personal string
+ will remain and might be used for further computations with this instance.
+ The key can be overwritten using the clearKey() method, the salt (pepper)
+ can be overwritten using the clearSalt() method.
+
+ @param key A key up to 64 bytes or null
+ @param digestLength from 1 up to 64 bytes
+ @param salt 16 bytes or null
+ @param personalization 16 bytes or null
+
+
+ update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+ Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to it's initial state.
+ The key, the salt and the personal string will
+ remain for further computations.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies it's compression
+ function to.
+
+ @return byte length of the digests internal buffer.
+
+
+ Overwrite the key
+ if it is no longer used (zeroization)
+
+
+ Overwrite the salt (pepper) if it
+ is secret and no longer used (zeroization)
+
+
+ Implementation of the cryptographic hash function BLAKE2s.
+
+ BLAKE2s offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2s offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2s is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 32 bytes.
+
+
+ BLAKE2s Initialization Vector
+
+
+
+ Message word permutations
+
+
+
+ Whenever this buffer overflows, it will be processed in the Compress()
+ function. For performance issues, long messages will not use this buffer.
+
+
+ Position of last inserted byte
+
+
+
+ Internal state, in the BLAKE2 paper it is called v
+
+
+
+ State vector, in the BLAKE2 paper it is called h
+
+
+
+ holds least significant bits of counter
+
+
+
+ holds most significant bits of counter
+
+
+
+ finalization flag, for last block: ~0
+
+
+
+ BLAKE2s-256 for hashing.
+
+
+ BLAKE2s for hashing.
+
+ @param digestBits the desired digest length in bits. Must be one of
+ [128, 160, 224, 256].
+
+
+ BLAKE2s for authentication ("Prefix-MAC mode").
+
+ After calling the doFinal() method, the key will remain to be used for
+ further computations of this instance. The key can be overwritten using
+ the clearKey() method.
+
+ @param key a key up to 32 bytes or null
+
+
+ BLAKE2s with key, required digest length, salt and personalization.
+
+ After calling the doFinal() method, the key, the salt and the personal
+ string will remain and might be used for further computations with this
+ instance. The key can be overwritten using the clearKey() method, the
+ salt (pepper) can be overwritten using the clearSalt() method.
+
+ @param key a key up to 32 bytes or null
+ @param digestBytes from 1 up to 32 bytes
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Overwrite the key if it is no longer used (zeroization).
+
+
+ Overwrite the salt (pepper) if it is secret and no longer used
+ (zeroization).
+
+
+ implementation of Ukrainian DSTU 7564 hash function
+
+
+ base implementation of MD4 family style digest as outlined in
+ "Handbook of Applied Cryptography", pages 344 - 347.
+
+
+ implementation of GOST R 34.11-94
+
+
+ Standard constructor
+
+
+ Constructor to allow use of a particular sbox with GOST28147
+ @see GOST28147Engine#getSBox(String)
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Return the size of block that the compression function is applied to in bytes.
+
+ @return internal byte length of a block.
+
+
+ Base class for SHA-384 and SHA-512.
+
+
+ Constructor for variable length word
+
+
+ Copy constructor. We are using copy constructors in place
+ of the object.Clone() interface as this interface is not
+ supported by J2ME.
+
+
+ adjust the byte counts so that byteCount2 represents the
+ upper long (less 3 bits) word of the byte count.
+
+
+ implementation of MD2
+ as outlined in RFC1319 by B.Kaliski from RSA Laboratories April 1992
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param out the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ implementation of MD4 as RFC 1320 by R. Rivest, MIT Laboratory for
+ Computer Science and RSA Data Security, Inc.
+
+ NOTE: This algorithm is only included for backwards compatibility
+ with legacy applications, it's not secure, don't use it for anything new!
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ Wrapper removes exposure to the IMemoable interface on an IDigest implementation.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @exception IllegalArgumentException if baseDigest is null
+
+
+ implementation of RipeMD128
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of RipeMD see,
+ http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD256.
+ Note: this algorithm offers the same level of security as RipeMD128.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD 320.
+ Note: this algorithm offers the same level of security as RipeMD160.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349.
+
+ It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5
+ is the "endianness" of the word processing!
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ SHA-224 as described in RFC 3874
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-224 512 32 224
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-256. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-384. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHA-3 based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Draft FIPS 180-2 implementation of SHA-512. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ FIPS 180-4 implementation of SHA-512/t
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHAKE based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Wrapper class that reduces the output length of a particular digest to
+ only the first n bytes of the digest function.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @param length length in bytes of the output of doFinal.
+ @exception ArgumentException if baseDigest is null, or length is greater than baseDigest.GetDigestSize().
+
+
+
+ Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block
+ sizes, based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation is the basis for and , implementing the
+ parameter based configuration system that allows Skein to be adapted to multiple applications.
+ Initialising the engine with allows standard and arbitrary parameters to
+ be applied during the Skein hash function.
+
+ Implemented:
+
+ - 256, 512 and 1024 bit internal states.
+ - Full 96 bit input length.
+ - Parameters defined in the Skein specification, and arbitrary other pre and post message
+ parameters.
+ - Arbitrary output size in 1 byte intervals.
+
+
+ Not implemented:
+
+ - Sub-byte length input (bit padding).
+ - Tree hashing.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+ The parameter type for the Skein key.
+
+
+ The parameter type for the Skein configuration block.
+
+
+ The parameter type for the message.
+
+
+ The parameter type for the output transformation.
+
+
+ Precalculated UBI(CFG) states for common state/output combinations without key or other
+ pre-message params.
+
+
+ Point at which position might overflow long, so switch to add with carry logic
+
+
+ Bit 127 = final
+
+
+ Bit 126 = first
+
+
+ UBI uses a 128 bit tweak
+
+
+ Whether 64 bit position exceeded
+
+
+ Advances the position in the tweak by the specified value.
+
+
+ The Unique Block Iteration chaining mode.
+
+
+ Buffer for the current block of message data
+
+
+ Offset into the current message block
+
+
+ Buffer for message words for feedback into encrypted block
+
+
+ Underlying Threefish tweakable block cipher
+
+
+ Size of the digest output, in bytes
+
+
+ The current chaining/state value
+
+
+ The initial state value
+
+
+ The (optional) key parameter
+
+
+ Parameters to apply prior to the message
+
+
+ Parameters to apply after the message, but prior to output
+
+
+ The current UBI operation
+
+
+ Buffer for single byte update method
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Creates a SkeinEngine as an exact copy of an existing instance.
+
+
+
+
+ Initialises the Skein engine with the provided parameters. See for
+ details on the parameterisation of the Skein hash function.
+
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+ Calculate the initial (pre message block) chaining state.
+
+
+
+ Reset the engine to the initial state (with the key and any pre-message parameters , ready to
+ accept message input.
+
+
+
+
+ Implementation of Chinese SM3 digest as described at
+ http://tools.ietf.org/html/draft-shen-sm3-hash-00
+ and at .... ( Chinese PDF )
+
+
+ The specification says "process a bit stream",
+ but this is written to process bytes in blocks of 4,
+ meaning this will process 32-bit word groups.
+ But so do also most other digest specifications,
+ including the SHA-256 which was a origin for
+ this specification.
+
+
+
+
+ Standard constructor
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+
+ reset the chaining variables
+
+
+
+ implementation of Tiger based on:
+
+ http://www.cs.technion.ac.il/~biham/Reports/Tiger
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Implementation of WhirlpoolDigest, based on Java source published by Barreto
+ and Rijmen.
+
+
+
+ Copy constructor. This will copy the state of the provided message
+ digest.
+
+
+ Reset the chaining variables
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ ISO 9796-1 padding. Note in the light of recent results you should
+ only use this with RSA (rather than the "simpler" Rabin keys) and you
+ should never use it with anything other than a hash (ie. even if the
+ message is small don't sign the message, sign it's hash) or some "random"
+ value. See your favorite search engine for details.
+
+
+ return the input block size. The largest message we can process
+ is (key_size_in_bits + 3)/16, which in our world comes to
+ key_size_in_bytes / 2.
+
+
+ return the maximum possible size for the output.
+
+
+ set the number of bits in the next message to be treated as
+ pad bits.
+
+
+ retrieve the number of pad bits in the last decoded message.
+
+
+ @exception InvalidCipherTextException if the decrypted block is not a valid ISO 9796 bit string
+
+
+ Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2.
+
+
+ @exception InvalidCipherTextException if the decrypted block turns out to
+ be badly formatted.
+
+
+ int to octet string.
+
+
+ mask generator function, as described in PKCS1v2.
+
+
+ this does your basic Pkcs 1 v1.5 padding - whether or not you should be using this
+ depends on your application - see Pkcs1 Version 2 for details.
+
+
+ some providers fail to include the leading zero in PKCS1 encoded blocks. If you need to
+ work with one of these set the system property Org.BouncyCastle.Pkcs1.Strict to false.
+
+
+ The same effect can be achieved by setting the static property directly
+
+ The static property is checked during construction of the encoding object, it is set to
+ true by default.
+
+
+
+ Basic constructor.
+
+ @param cipher
+
+
+ Constructor for decryption with a fixed plaintext length.
+
+ @param cipher The cipher to use for cryptographic operation.
+ @param pLen Length of the expected plaintext.
+
+
+ Constructor for decryption with a fixed plaintext length and a fallback
+ value that is returned, if the padding is incorrect.
+
+ @param cipher
+ The cipher to use for cryptographic operation.
+ @param fallback
+ The fallback value, we don't to a arraycopy here.
+
+
+ Checks if the argument is a correctly PKCS#1.5 encoded Plaintext
+ for encryption.
+
+ @param encoded The Plaintext.
+ @param pLen Expected length of the plaintext.
+ @return Either 0, if the encoding is correct, or -1, if it is incorrect.
+
+
+ Decode PKCS#1.5 encoding, and return a random value if the padding is not correct.
+
+ @param in The encrypted block.
+ @param inOff Offset in the encrypted block.
+ @param inLen Length of the encrypted block.
+ @param pLen Length of the desired output.
+ @return The plaintext without padding, or a random value if the padding was incorrect.
+ @throws InvalidCipherTextException
+
+
+ @exception InvalidCipherTextException if the decrypted block is not in Pkcs1 format.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first.
+
+ The slowest version uses no static tables at all and computes the values in each round.
+
+
+ This file contains the middle performance version with 2Kbytes of static tables for round precomputation.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael)), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor), they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations), 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each), for a total of 2Kbytes),
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values in each round
+
+
+ This file contains the fast version with 8Kbytes of static tables for round precomputation
+
+
+ Unfortunately this class has a few side channel issues.
+ In an environment where encryption/decryption may be closely observed it should not be used.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values
+ in each round.
+
+
+ This file contains the slowest performance version with no static tables
+ for round precomputation, but it has the smallest foot print.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ A class that provides Blowfish key encryption operations,
+ such as encoding data and generating keys.
+ All the algorithms herein are from Applied Cryptography
+ and implement a simplified cryptography interface.
+
+
+ initialise a Blowfish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ apply the encryption cycle to each value pair in the table.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Camellia - based on RFC 3713.
+
+
+ Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.
+
+
+
+ An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3657.txt.
+
+
+
+ A class that provides CAST key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC's
+
+ RFC2144 - Cast5 (64bit block, 40-128bit key)
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ initialise a CAST cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ The first of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The second of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The third of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ Does the 16 rounds to encrypt the block.
+
+ @param L0 the LH-32bits of the plaintext block
+ @param R0 the RH-32bits of the plaintext block
+
+
+ A class that provides CAST6 key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC
+
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Does the 12 quad rounds rounds to encrypt the block.
+
+ @param A the 00-31 bits of the plaintext block
+ @param B the 32-63 bits of the plaintext block
+ @param C the 64-95 bits of the plaintext block
+ @param D the 96-127 bits of the plaintext block
+ @param result the resulting ciphertext
+
+
+ Does the 12 quad rounds rounds to decrypt the block.
+
+ @param A the 00-31 bits of the ciphertext block
+ @param B the 32-63 bits of the ciphertext block
+ @param C the 64-95 bits of the ciphertext block
+ @param D the 96-127 bits of the ciphertext block
+ @param result the resulting plaintext
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Creates a ChaCha engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+
+ ChaCha function.
+
+ The number of ChaCha rounds to execute
+ The input words.
+ The ChaCha state to modify.
+
+
+ A class that provides a basic DESede (or Triple DES) engine.
+
+
+ initialise a DESede cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ * Wrap keys according to
+ *
+ * draft-ietf-smime-key-wrap-01.txt.
+ *
+ * Note:
+ *
+ * - this is based on a draft, and as such is subject to change - don't use this class for anything requiring long term storage.
+ * - if you are using this to wrap triple-des keys you need to set the
+ * parity bits on the key and, if it's a two-key triple-des key, pad it
+ * yourself.
+ *
+ *
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ A class that provides a basic DES engine.
+
+
+ initialise a DES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ what follows is mainly taken from "Applied Cryptography", by
+ Bruce Schneier, however it also bears great resemblance to Richard
+ Outerbridge's D3DES...
+
+
+ Generate an integer based working key based on our secret key
+ and what we processing we are planning to do.
+
+ Acknowledgements for this routine go to James Gillogly and Phil Karn.
+ (whoever, and wherever they are!).
+
+
+ the DES engine.
+
+
+ implementation of DSTU 7624 (Kalyna)
+
+
+ this does your basic ElGamal algorithm.
+
+
+ initialise the ElGamal engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary ElGamal key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ encryption, and twice the length as the size of P on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ decryption, and twice the length as the size of P on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic ElGamal algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param length the length of the data to be processed.
+ @return the result of the ElGamal process.
+ @exception DataLengthException the input block is too large.
+
+
+ implementation of GOST 28147-89
+
+
+ standard constructor.
+
+
+ initialise an Gost28147 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ Return the S-Box associated with SBoxName
+ @param sBoxName name of the S-Box
+ @return byte array representing the S-Box
+
+
+ HC-128 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 128-bit secret key and a 128-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc128_p3.pdf
+
+ It is a third phase candidate in the eStream contest, and is patent-free.
+ No attacks are known as of today (April 2007). See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-128 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 128 bit long).
+
+
+ HC-256 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 256-bit secret key and a 256-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc256_p3.pdf
+
+ Its brother, HC-128, is a third phase candidate in the eStream contest.
+ The algorithm is patent-free. No attacks are known as of today (April 2007).
+ See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-256 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 256 bit long).
+
+
+ A class that provides a basic International Data Encryption Algorithm (IDEA) engine.
+
+ This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM"
+ implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (baring 1 typo at the
+ end of the mulinv function!).
+
+
+ It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/
+
+
+ Note 1: This algorithm is patented in the USA, Japan, and Europe including
+ at least Austria, France, Germany, Italy, Netherlands, Spain, Sweden, Switzerland
+ and the United Kingdom. Non-commercial use is free, however any commercial
+ products are liable for royalties. Please see
+ www.mediacrypt.com for
+ further details. This announcement has been included at the request of
+ the patent holders.
+
+
+ Note 2: Due to the requests concerning the above, this algorithm is now only
+ included in the extended assembly. It is not included in the default distributions.
+
+
+
+ standard constructor.
+
+
+ initialise an IDEA cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return x = x * y where the multiplication is done modulo
+ 65537 (0x10001) (as defined in the IDEA specification) and
+ a zero input is taken to be 65536 (0x10000).
+
+ @param x the x value
+ @param y the y value
+ @return x = x * y
+
+
+ The following function is used to expand the user key to the encryption
+ subkey. The first 16 bytes are the user key, and the rest of the subkey
+ is calculated by rotating the previous 16 bytes by 25 bits to the left,
+ and so on until the subkey is completed.
+
+
+ This function computes multiplicative inverse using Euclid's Greatest
+ Common Divisor algorithm. Zero and one are self inverse.
+
+ i.e. x * MulInv(x) == 1 (modulo BASE)
+
+
+
+ Return the additive inverse of x.
+
+ i.e. x + AddInv(x) == 0
+
+
+
+ The function to invert the encryption subkey to the decryption subkey.
+ It also involves the multiplicative inverse and the additive inverse functions.
+
+
+ support class for constructing intergrated encryption ciphers
+ for doing basic message exchanges on top of key agreement ciphers
+
+
+ set up for use with stream mode, where the key derivation function
+ is used to provide a stream of bytes to xor with the message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+
+
+ set up for use in conjunction with a block cipher to handle the
+ message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+ @param cipher the cipher to used for encrypting the message
+
+
+ Initialise the encryptor.
+
+ @param forEncryption whether or not this is encryption/decryption.
+ @param privParam our private key parameters
+ @param pubParam the recipient's/sender's public key parameters
+ @param param encoding and derivation parameters.
+
+
+ Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count).
+ see: http://www.burtleburtle.net/bob/rand/isaacafa.html
+
+
+ initialise an ISAAC cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ NaccacheStern Engine. For details on this cipher, please see
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Initializes this algorithm. Must be called before all other Functions.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#init(bool,
+ org.bouncycastle.crypto.CipherParameters)
+
+
+ Returns the input block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetInputBlockSize()
+
+
+ Returns the output block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetOutputBlockSize()
+
+
+ Process a single Block using the Naccache-Stern algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#ProcessBlock(byte[],
+ int, int)
+
+
+ Encrypts a BigInteger aka Plaintext with the public key.
+
+ @param plain
+ The BigInteger to encrypt
+ @return The byte[] representation of the encrypted BigInteger (i.e.
+ crypted.toByteArray())
+
+
+ Adds the contents of two encrypted blocks mod sigma
+
+ @param block1
+ the first encrypted block
+ @param block2
+ the second encrypted block
+ @return encrypt((block1 + block2) mod sigma)
+ @throws InvalidCipherTextException
+
+
+ Convenience Method for data exchange with the cipher.
+
+ Determines blocksize and splits data to blocksize.
+
+ @param data the data to be processed
+ @return the data after it went through the NaccacheSternEngine.
+ @throws InvalidCipherTextException
+
+
+ Computes the integer x that is expressed through the given primes and the
+ congruences with the chinese remainder theorem (CRT).
+
+ @param congruences
+ the congruences c_i
+ @param primes
+ the primes p_i
+ @return an integer x for that x % p_i == c_i
+
+
+ A Noekeon engine, using direct-key mode.
+
+
+ Create an instance of the Noekeon encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ The no-op engine that just copies bytes through, irrespective of whether encrypting and decrypting.
+ Provided for the sake of completeness.
+
+
+ an implementation of RC2 as described in RFC 2268
+ "A Description of the RC2(r) Encryption Algorithm" R. Rivest.
+
+
+ initialise a RC2 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the result rotating the 16 bit number in x left by y
+
+
+ Wrap keys according to RFC 3217 - RC2 mechanism
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ initialise a RC4 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation has a word size of 32 bits.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation is set to work with a 64 bit word size.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-64 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ An RC6 engine.
+
+
+ Create an instance of the RC6 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param inKey the key to be used
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ an implementation of the RFC 3211 Key Wrap
+ Specification.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap
+ Specification as described in RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3394.txt
+ and http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ an implementation of Rijndael, based on the documentation and reference implementation
+ by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.
+
+ Note: this implementation is based on information prior to readonly NIST publication.
+
+
+
+ multiply two elements of GF(2^m)
+ needed for MixColumn and InvMixColumn
+
+
+ xor corresponding text input and round key input bytes
+
+
+ Row 0 remains unchanged
+ The other three rows are shifted a variable amount
+
+
+ Replace every byte of the input by the byte at that place
+ in the nonlinear S-box
+
+
+ Mix the bytes of every column in a linear way
+
+
+ Mix the bytes of every column in a linear way
+ This is the opposite operation of Mixcolumn
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on keyBits and blockBits
+
+
+ default constructor - 128 bit block size.
+
+
+ basic constructor - set the cipher up for a given blocksize
+
+ @param blocksize the blocksize in bits, must be 128, 192, or 256.
+
+
+ initialise a Rijndael cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ this does your basic RSA algorithm with blinding
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+ This does your basic RSA Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475. You need to use this if you are
+ trying to get another party to generate signatures without them being aware
+ of the message they are signing.
+
+
+ Initialise the blinding engine.
+
+ @param forEncryption true if we are encrypting (blinding), false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the RSA blinding algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @throws DataLengthException the input block is too large.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+
+ Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005
+
+
+
+ Constants
+
+
+
+ Creates a 20 round Salsa20 engine.
+
+
+
+
+ Creates a Salsa20 engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ Rotate left
+
+ @param x value to rotate
+ @param y amount to rotate x
+
+ @return rotated x
+
+
+ Implementation of the SEED algorithm as described in RFC 4009
+
+
+
+ An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc4010.txt.
+
+
+
+ * Serpent is a 128-bit 32-round block cipher with variable key lengths,
+ * including 128, 192 and 256 bit keys conjectured to be at least as
+ * secure as three-key triple-DES.
+ *
+ * Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ * candidate algorithm for the NIST AES Quest.
+ *
+ *
+ * For full details see The Serpent home page
+ *
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ initialise a Serpent cipher.
+
+ @param encrypting whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @throws IllegalArgumentException if the params argument is
+ inappropriate.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @return the number of bytes processed and produced.
+ @throws DataLengthException if there isn't enough data in in, or
+ space in out.
+ @throws IllegalStateException if the cipher isn't initialised.
+
+
+ InvSO - {13, 3,11, 0,10, 6, 5,12, 1,14, 4, 7,15, 9, 8, 2 } - 15 terms.
+
+
+ S1 - {15,12, 2, 7, 9, 0, 5,10, 1,11,14, 8, 6,13, 3, 4 } - 14 terms.
+
+
+ InvS1 - { 5, 8, 2,14,15, 6,12, 3,11, 4, 7, 9, 1,13,10, 0 } - 14 steps.
+
+
+ S2 - { 8, 6, 7, 9, 3,12,10,15,13, 1,14, 4, 0,11, 5, 2 } - 16 terms.
+
+
+ InvS2 - {12, 9,15, 4,11,14, 1, 2, 0, 3, 6,13, 5, 8,10, 7 } - 16 steps.
+
+
+ S3 - { 0,15,11, 8,12, 9, 6, 3,13, 1, 2, 4,10, 7, 5,14 } - 16 terms.
+
+
+ InvS3 - { 0, 9,10, 7,11,14, 6,13, 3, 5,12, 2, 4, 8,15, 1 } - 15 terms
+
+
+ S4 - { 1,15, 8, 3,12, 0,11, 6, 2, 5, 4,10, 9,14, 7,13 } - 15 terms.
+
+
+ InvS4 - { 5, 0, 8, 3,10, 9, 7,14, 2,12,11, 6, 4,15,13, 1 } - 15 terms.
+
+
+ S5 - {15, 5, 2,11, 4,10, 9,12, 0, 3,14, 8,13, 6, 7, 1 } - 16 terms.
+
+
+ InvS5 - { 8,15, 2, 9, 4, 1,13,14,11, 6, 5, 3, 7,12,10, 0 } - 16 terms.
+
+
+ S6 - { 7, 2,12, 5, 8, 4, 6,11,14, 9, 1,15,13, 3,10, 0 } - 15 terms.
+
+
+ InvS6 - {15,10, 1,13, 5, 3, 6, 0, 4, 9,14, 7, 2,12, 8,11 } - 15 terms.
+
+
+ S7 - { 1,13,15, 0,14, 8, 2,11, 7, 4,12,10, 9, 3, 5, 6 } - 16 terms.
+
+
+ InvS7 - { 3, 0, 6,13, 9,14,15, 8, 5,12,11, 7,10, 1, 4, 2 } - 17 terms.
+
+
+ Apply the linear transformation to the register set.
+
+
+ Apply the inverse of the linear transformation to the register set.
+
+
+ a class that provides a basic SKIPJACK engine.
+
+
+ initialise a SKIPJACK cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The G permutation
+
+
+ the inverse of the G permutation.
+
+
+
+ SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.
+
+
+
+ An TEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+
+ Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block
+ sizes.
+
+
+ This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST
+ SHA-3 competition in October 2010.
+
+ Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables
+ to speed up key schedule injection.
+ 2 x block size state is retained by each cipher instance.
+
+
+
+
+ 256 bit block size - Threefish-256
+
+
+
+
+ 512 bit block size - Threefish-512
+
+
+
+
+ 1024 bit block size - Threefish-1024
+
+
+
+ Size of the tweak in bytes (always 128 bit/16 bytes)
+
+
+ Rounds in Threefish-256
+
+
+ Rounds in Threefish-512
+
+
+ Rounds in Threefish-1024
+
+
+ Max rounds of any of the variants
+
+
+ Key schedule parity constant
+
+
+ Block size in bytes
+
+
+ Block size in 64 bit words
+
+
+ Buffer for byte oriented processBytes to call internal word API
+
+
+ Tweak bytes (2 byte t1,t2, calculated t3 and repeat of t1,t2 for modulo free lookup
+
+
+ Key schedule words
+
+
+ The internal cipher implementation (varies by blocksize)
+
+
+
+ Constructs a new Threefish cipher, with a specified block size.
+
+ the block size in bits, one of , ,
+ .
+
+
+
+ Initialise the engine.
+
+ Initialise for encryption if true, for decryption if false.
+ an instance of or (to
+ use a 0 tweak)
+
+
+
+ Initialise the engine, specifying the key and tweak directly.
+
+ the cipher mode.
+ the words of the key, or null to use the current key.
+ the 2 word (128 bit) tweak, or null to use the current tweak.
+
+
+
+ Process a block of data represented as 64 bit words.
+
+ the number of 8 byte words processed (which will be the same as the block size).
+ a block sized buffer of words to process.
+ a block sized buffer of words to receive the output of the operation.
+ if either the input or output is not block sized
+ if this engine is not initialised
+
+
+
+ Read a single 64 bit word from input in LSB first order.
+
+
+
+
+ Write a 64 bit word to output in LSB first order.
+
+
+
+ Rotate left + xor part of the mix operation.
+
+
+ Rotate xor + rotate right part of the unmix operation.
+
+
+ The extended + repeated tweak words
+
+
+ The extended + repeated key words
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Tnepres is a 128-bit 32-round block cipher with variable key lengths,
+ including 128, 192 and 256 bit keys conjectured to be at least as
+ secure as three-key triple-DES.
+
+ Tnepres is based on Serpent which was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ candidate algorithm for the NIST AES Quest. Unfortunately there was an endianness issue
+ with test vectors in the AES submission and the resulting confusion lead to the Tnepres cipher
+ as well, which is a byte swapped version of Serpent.
+
+
+ For full details see The Serpent home page
+
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ A class that provides Twofish encryption operations.
+
+ This Java implementation is based on the Java reference
+ implementation provided by Bruce Schneier and developed
+ by Raif S. Naffah.
+
+
+ Define the fixed p0/p1 permutations used in keyed S-box lookup.
+ By changing the following constant definitions, the S-boxes will
+ automatically Get changed in the Twofish engine.
+
+
+ gSubKeys[] and gSBox[] are eventually used in the
+ encryption and decryption methods.
+
+
+ initialise a Twofish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+ encryptBlock uses the pre-calculated gSBox[] and subKey[]
+ arrays.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Use (12, 8) Reed-Solomon code over GF(256) to produce
+ a key S-box 32-bit entity from 2 key material 32-bit
+ entities.
+
+ @param k0 first 32-bit entity
+ @param k1 second 32-bit entity
+ @return Remainder polynomial Generated using RS code
+
+
+ * Reed-Solomon code parameters: (12,8) reversible code:
+ *
+ *
+ * G(x) = x^4 + (a+1/a)x^3 + ax^2 + (a+1/a)x + 1
+ *
+ * where a = primitive root of field generator 0x14D
+ *
+
+
+ initialise a VMPC cipher.
+
+ @param forEncryption
+ whether or not we are for encryption.
+ @param params
+ the parameters required to set up the cipher.
+ @exception ArgumentException
+ if the params argument is inappropriate.
+
+
+
+ Implementation of Daniel J. Bernstein's XSalsa20 stream cipher - Salsa20 with an extended nonce.
+
+
+ XSalsa20 requires a 256 bit key, and a 192 bit nonce.
+
+
+
+
+ XSalsa20 key generation: process 256 bit input key and 128 bits of the input nonce
+ using a core Salsa20 function without input addition to produce 256 bit working key
+ and use that with the remaining 64 bits of nonce to initialize a standard Salsa20 engine state.
+
+
+
+ An XTEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on ISO 18033/P1363a.
+
+
+ Construct a KDF Parameters generator.
+
+ @param counterStart value of counter.
+ @param digest the digest to be used as the source of derived keys.
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws ArgumentException if the size of the request will cause an overflow.
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Core of password hashing scheme Bcrypt,
+ designed by Niels Provos and David Mazières,
+ corresponds to the C reference implementation.
+
+ This implementation does not correspondent to the 1999 published paper
+ "A Future-Adaptable Password Scheme" of Niels Provos and David Mazières,
+ see: https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html.
+ In contrast to the paper, the order of key setup and salt setup is reversed:
+ state <- ExpandKey(state, 0, key)
+ state %lt;- ExpandKey(state, 0, salt)
+ This corresponds to the OpenBSD reference implementation of Bcrypt.
+
+ Note:
+ There is no successful cryptanalysis (status 2015), but
+ the amount of memory and the band width of Bcrypt
+ may be insufficient to effectively prevent attacks
+ with custom hardware like FPGAs, ASICs
+
+ This implementation uses some parts of Bouncy Castle's BlowfishEngine.
+
+
+
+ Derives a raw 192 bit Bcrypt key
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param psw the password
+ @return a 192 bit key
+
+
+ Size of the salt parameter in bytes
+
+
+ Minimum value of cost parameter, equal to log2(bytes of salt)
+
+
+ Maximum value of cost parameter (31 == 2,147,483,648)
+
+
+ Maximum size of password == max (unrestricted) size of Blowfish key
+
+
+ Calculates the bcrypt hash of a password.
+
+ This implements the raw bcrypt function as defined in the bcrypt specification, not
+ the crypt encoded version implemented in OpenBSD.
+
+ @param password the password bytes (up to 72 bytes) to use for this invocation.
+ @param salt the 128 bit salt to use for this invocation.
+ @param cost the bcrypt cost parameter. The cost of the bcrypt function grows as
+ 2^cost. Legal values are 4..31 inclusive.
+ @return the output of the raw bcrypt operation: a 192 bit (24 byte) hash.
+
+
+ initialise the key generator - if strength is set to zero
+ the key Generated will be 192 bits in size, otherwise
+ strength can be 128 or 192 (or 112 or 168 if you don't count
+ parity bits), depending on whether you wish to do 2-key or 3-key
+ triple DES.
+
+ @param param the parameters to be used for key generation
+
+
+ initialise the key generator - if strength is set to zero
+ the key generated will be 64 bits in size, otherwise
+ strength can be 64 or 56 bits (if you don't count the parity bits).
+
+ @param param the parameters to be used for key generation
+
+
+ a basic Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use with the basic algorithm for
+ Diffie-Hellman.
+
+
+ a Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use in the MTI/A0 key agreement protocol
+ as described in "Handbook of Applied Cryptography", Pages 516-519.
+
+
+ which Generates the p and g values from the given parameters,
+ returning the DHParameters object.
+
+ Note: can take a while...
+
+
+ a DSA key pair generator.
+
+ This Generates DSA keys in line with the method described
+ in FIPS 186-3 B.1 FFC Key Pair Generation.
+
+
+ Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3.
+
+
+ Initialise the generator
+ This form can only be used for older DSA (pre-DSA2) parameters
+ the size of keys in bits (from 512 up to 1024, and a multiple of 64)
+ measure of robustness of primes (at least 80 for FIPS 186-2 compliance)
+ the source of randomness to use
+
+
+ Initialise the generator for DSA 2
+ You must use this Init method if you need to generate parameters for DSA 2 keys
+ An instance of DsaParameterGenerationParameters used to configure this generator
+
+
+ Generates a set of DsaParameters
+ Can take a while...
+
+
+ generate suitable parameters for DSA, in line with
+ FIPS 186-3 A.1 Generation of the FFC Primes p and q.
+
+
+ Given the domain parameters this routine generates an EC key
+ pair in accordance with X9.62 section 5.2.1 pages 26, 27.
+
+
+ a ElGamal key pair generator.
+
+ This Generates keys consistent for use with ElGamal as described in
+ page 164 of "Handbook of Applied Cryptography".
+
+
+ * which Generates the p and g values from the given parameters,
+ * returning the ElGamalParameters object.
+ *
+ * Note: can take a while...
+ *
+
+
+ a GOST3410 key pair generator.
+ This generates GOST3410 keys in line with the method described
+ in GOST R 34.10-94.
+
+
+ generate suitable parameters for GOST3410.
+
+
+ initialise the key generator.
+
+ @param size size of the key
+ @param typeProcedure type procedure A,B = 1; A',B' - else
+ @param random random byte source.
+
+
+ Procedure C
+ procedure generates the a value from the given p,q,
+ returning the a value.
+
+
+ which generates the p , q and a values from the given parameters,
+ returning the Gost3410Parameters object.
+
+
+ HMAC-based Extract-and-Expand Key Derivation Function (HKDF) implemented
+ according to IETF RFC 5869, May 2010 as specified by H. Krawczyk, IBM
+ Research & P. Eronen, Nokia. It uses a HMac internally to compute de OKM
+ (output keying material) and is likely to have better security properties
+ than KDF's based on just a hash function.
+
+
+ Creates a HKDFBytesGenerator based on the given hash function.
+
+ @param hash the digest to be used as the source of generatedBytes bytes
+
+
+ Performs the extract part of the key derivation function.
+
+ @param salt the salt to use
+ @param ikm the input keying material
+ @return the PRK as KeyParameter
+
+
+ Performs the expand part of the key derivation function, using currentT
+ as input and output buffer.
+
+ @throws DataLengthException if the total number of bytes generated is larger than the one
+ specified by RFC 5869 (255 * HashLen)
+
+
+ KFD2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF1 byte generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ KDF2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF2 bytes generator. Generates key material
+ according to IEEE P1363 or ISO 18033 depending on the initialisation.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ Generator for MGF1 as defined in Pkcs 1v2
+
+
+ @param digest the digest to be used as the source of Generated bytes
+
+
+ return the underlying digest.
+
+
+ int to octet string.
+
+
+ fill len bytes of the output buffer with bytes Generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Key generation parameters for NaccacheStern cipher. For details on this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Generates a permuted ArrayList from the original one. The original List
+ is not modified
+
+ @param arr
+ the ArrayList to be permuted
+ @param rand
+ the source of Randomness for permutation
+ @return a new IList with the permuted elements.
+
+
+ Finds the first 'count' primes starting with 3
+
+ @param count
+ the number of primes to find
+ @return a vector containing the found primes as Integer
+
+
+ Password hashing scheme BCrypt,
+ designed by Niels Provos and David Mazières, using the
+ String format and the Base64 encoding
+ of the reference implementation on OpenBSD
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Checks if a password corresponds to a 60 character Bcrypt String
+
+ @param bcryptString a 60 character Bcrypt String, including
+ version, cost factor, salt and hash,
+ separated by '$'
+ @param password the password as an array of chars
+ @return true if the password corresponds to the
+ Bcrypt String, otherwise false
+
+
+ Generator for PBE derived keys and ivs as usd by OpenSSL.
+
+ The scheme is a simple extension of PKCS 5 V2.0 Scheme 1 using MD5 with an
+ iteration count of 1.
+
+
+
+ Construct a OpenSSL Parameters generator.
+
+
+ Initialise - note the iteration count for this algorithm is fixed at 1.
+
+ @param password password to use.
+ @param salt salt to use.
+
+
+ the derived key function, the ith hash of the password and the salt.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 12 V1.0.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs12 Page
+
+
+
+ Construct a Pkcs 12 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+ @exception ArgumentException if an unknown digest is passed in.
+
+
+ add a + b + 1, returning the result in a. The a value is treated
+ as a BigInteger of length (b.Length * 8) bits. The result is
+ modulo 2^b.Length in case of overflow.
+
+
+ generation of a derived key ala Pkcs12 V1.0.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 1.
+ Note this generator is limited to the size of the hash produced by the
+ digest used to drive it.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+
+ Construct a Pkcs 5 Scheme 1 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ the derived key function, the ith hash of the mPassword and the mSalt.
+
+
+ Generate a key parameter derived from the mPassword, mSalt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the mPassword, mSalt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the mPassword,
+ mSalt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 2.
+ This generator uses a SHA-1 HMac as the calculation function.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+ construct a Pkcs5 Scheme 2 Parameters generator.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+
+ Generates keys for the Poly1305 MAC.
+
+
+ Poly1305 keys are 256 bit keys consisting of a 128 bit secret key used for the underlying block
+ cipher followed by a 128 bit {@code r} value used for the polynomial portion of the Mac.
+ The {@code r} value has a specific format with some bits required to be cleared, resulting in an
+ effective 106 bit key.
+ A separately generated 256 bit key can be modified to fit the Poly1305 key format by using the
+ {@link #clamp(byte[])} method to clear the required bits.
+
+
+
+
+
+ Initialises the key generator.
+
+
+ Poly1305 keys are always 256 bits, so the key length in the provided parameters is ignored.
+
+
+
+
+ Generates a 256 bit key in the format required for Poly1305 - e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+
+
+
+ Modifies an existing 32 byte key value to comply with the requirements of the Poly1305 key by
+ clearing required bits in the r (second 16 bytes) portion of the key.
+ Specifically:
+
+ - r[3], r[7], r[11], r[15] have top four bits clear (i.e., are {0, 1, . . . , 15})
+ - r[4], r[8], r[12] have bottom two bits clear (i.e., are in {0, 4, 8, . . . , 252})
+
+
+ a 32 byte key value k[0] ... k[15], r[0] ... r[15]
+
+
+
+ Checks a 32 byte key for compliance with the Poly1305 key requirements, e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+ Key.
+ if the key is of the wrong length, or has invalid bits set
+ in the r portion of the key.
+
+
+ Generate a random factor suitable for use with RSA blind signatures
+ as outlined in Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475.
+
+
+ Initialise the factor generator
+
+ @param param the necessary RSA key parameters.
+
+
+ Generate a suitable blind factor for the public key the generator was initialised with.
+
+ @return a random blind factor
+
+
+ an RSA key pair generator.
+
+
+ Choose a random prime value for use with RSA
+ the bit-length of the returned prime
+ the RSA public exponent
+ a prime p, with (p-1) relatively prime to e
+
+
+ Implementation of the scrypt a password-based key derivation function.
+
+ Scrypt was created by Colin Percival and is specified in
+ draft-josefsson-scrypt-kd.
+
+
+
+ Generate a key using the scrypt key derivation function.
+ the bytes of the pass phrase.
+ the salt to use for this invocation.
+ CPU/Memory cost parameter. Must be larger than 1, a power of 2 and less than
+ 2^(128 * r / 8).
+ the block size, must be >= 1.
+ Parallelization parameter. Must be a positive integer less than or equal to
+ Int32.MaxValue / (128 * r * 8).
+ the length of the key to generate.
+ the generated key.
+
+
+ Base interface for a public/private key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The maximum size, in bytes, an input block may be.
+
+
+ The maximum size, in bytes, an output block will be.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The length of the input block.
+ Input decrypts improperly.
+ Input is too large for the cipher.
+
+
+ interface that a public/private key pair generator should conform to.
+
+
+ intialise the key pair generator.
+
+ @param the parameters the key pair is to be initialised with.
+
+
+ return an AsymmetricCipherKeyPair containing the Generated keys.
+
+ @return an AsymmetricCipherKeyPair containing the Generated keys.
+
+
+ The basic interface that basic Diffie-Hellman implementations
+ conforms to.
+
+
+ initialise the agreement engine.
+
+
+ return the field size for the agreement algorithm in bytes.
+
+
+ given a public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Base interface for a symmetric key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Indicates whether this cipher can handle partial blocks.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The output buffer.
+ The offset into outBuf to write the output block.
+ If input block is wrong size, or outBuf too small.
+ The number of bytes processed and produced.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to a single block return an object
+ of this type.
+
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ Block cipher engines are expected to conform to this interface.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+
+
+ Reset the cipher. After resetting the cipher is in the same state
+ as it was after the last init (if there was one).
+
+
+
+ all parameter classes implement this.
+
+
+ base interface for general purpose byte derivation functions.
+
+
+ return the message digest used as the basis for the function
+
+
+ Parameters for key/byte stream derivation classes
+
+
+ interface that a message digest conforms to.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ return the size, in bytes, of the internal buffer used by this digest.
+
+ @return the size, in bytes, of the internal buffer used by this digest.
+
+
+ update the message digest with a single byte.
+
+ @param inByte the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param input the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param output the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ interface for classes implementing the Digital Signature Algorithm
+
+
+ initialise the signer for signature generation or signature
+ verification.
+
+ @param forSigning true if we are generating a signature, false
+ otherwise.
+ @param param key parameters for signature generation.
+
+
+ sign the passed in message (usually the output of a hash function).
+
+ @param message the message to be signed.
+ @return two big integers representing the r and s values respectively.
+
+
+ verify the message message against the signature values r and s.
+
+ @param message the message that was supposed to have been signed.
+ @param r the r signature value.
+ @param s the s signature value.
+
+
+
+ Base interface describing an entropy source for a DRBG.
+
+
+
+
+ Return whether or not this entropy source is regarded as prediction resistant.
+
+ true if this instance is prediction resistant; otherwise, false.
+
+
+
+ Return a byte array of entropy.
+
+ The entropy bytes.
+
+
+
+ Return the number of bits of entropy this source can produce.
+
+ The size, in bits, of the return value of getEntropy.
+
+
+
+ Base interface describing a provider of entropy sources.
+
+
+
+
+ Return an entropy source providing a block of entropy.
+
+ The size of the block of entropy required.
+ An entropy source providing bitsRequired blocks of entropy.
+
+
+ The base interface for implementations of message authentication codes (MACs).
+
+
+ Initialise the MAC.
+
+ @param param the key and other data required by the MAC.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Return the name of the algorithm the MAC implements.
+
+ @return the name of the algorithm the MAC implements.
+
+
+ Return the block size for this MAC (in bytes).
+
+ @return the block size for this MAC in bytes.
+
+
+ add a single byte to the mac for processing.
+
+ @param in the byte to be processed.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ @param in the array containing the input.
+ @param inOff the index in the array the data begins at.
+ @param len the length of the input starting at inOff.
+ @exception InvalidOperationException if the MAC is not initialised.
+ @exception DataLengthException if there isn't enough data in in.
+
+
+ Compute the final stage of the MAC writing the output to the out
+ parameter.
+
+ doFinal leaves the MAC in the same state it was after the last init.
+
+ @param out the array the MAC is to be output to.
+ @param outOff the offset into the out buffer the output is to start at.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ Reset the MAC. At the end of resetting the MAC should be in the
+ in the same state it was after the last init (if there was one).
+
+
+ this exception is thrown whenever we find something we don't expect in a
+ message.
+
+
+ base constructor.
+
+
+ create a InvalidCipherTextException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Base interface for operators that serve as stream-based signature calculators.
+
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ Return the name of the algorithm the signer implements.
+
+ @return the name of the algorithm the signer implements.
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ reset the internal state
+
+
+ Signer with message recovery.
+
+
+ Returns true if the signer has recovered the full message as
+ part of signature verification.
+
+ @return true if full message recovered.
+
+
+ Returns a reference to what message was recovered (if any).
+
+ @return full/partial message, null if nothing.
+
+
+ Perform an update with the recovered message before adding any other data. This must
+ be the first update method called, and calling it will result in the signer assuming
+ that further calls to update will include message content past what is recoverable.
+
+ @param signature the signature that we are in the process of verifying.
+ @throws IllegalStateException
+
+
+
+ Base interface for cryptographic operations such as Hashes, MACs, and Signatures which reduce a stream of data
+ to a single value.
+
+
+
+ Return a "sink" stream which only exists to update the implementing object.
+ A stream to write to in order to update the implementing object.
+
+
+
+ Return the result of processing the stream. This value is only available once the stream
+ has been closed.
+
+ The result of processing the stream.
+
+
+ The interface stream ciphers conform to.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+ If the parameters argument is inappropriate.
+
+
+
+ encrypt/decrypt a single byte returning the result.
+ the byte to be processed.
+ the result of processing the input byte.
+
+
+
+ Process a block of bytes from input putting the result into output.
+
+ The input byte array.
+
+ The offset into input where the data to be processed starts.
+
+ The number of bytes to be processed.
+ The output buffer the processed bytes go into.
+
+ The offset into output the processed data starts at.
+
+ If the output buffer is too small.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to the validation of a signature produce this type.
+
+
+
+
+ Return true if the passed in data matches what is expected by the verification result.
+
+ The bytes representing the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Return true if the length bytes from off in the source array match the signature
+ expected by the verification result.
+
+ Byte array containing the signature.
+ The offset into the source array where the signature starts.
+ The number of bytes in source making up the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Base interface for operators that serve as stream-based signature verifiers.
+
+
+
+ The algorithm details object for this verifier.
+
+
+
+ Create a stream calculator for this verifier. The stream
+ calculator is used for the actual operation of entering the data to be verified
+ and producing a result which can be used to verify the original signature.
+
+ A calculator producing an IVerifier which can verify the signature.
+
+
+
+ Base interface for a provider to support the dynamic creation of signature verifiers.
+
+
+
+
+ Return a signature verfier for signature algorithm described in the passed in algorithm details object.
+
+ The details of the signature algorithm verification is required for.
+ A new signature verifier.
+
+
+ The name of the algorithm this cipher implements.
+
+
+
+ With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.
+ This interface provides the extra method required to support variable output on a digest implementation.
+
+
+
+
+ Output the results of the final calculation for this digest to outLen number of bytes.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+
+ Start outputting the results of the final calculation for this digest. Unlike DoFinal, this method
+ will continue producing output until the Xof is explicitly reset, or signals otherwise.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+ The base class for parameters to key generators.
+
+
+ initialise the generator with a source of randomness
+ and a strength (in bits).
+
+ @param random the random byte source.
+ @param strength the size, in bits, of the keys we want to produce.
+
+
+ return the random source associated with this
+ generator.
+
+ @return the generators random source.
+
+
+ return the bit strength for keys produced by this generator,
+
+ @return the strength of the keys this generator produces (in bits).
+
+
+ standard CBC Block Cipher MAC - if no padding is specified the default of
+ pad of zeroes is used.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding a padding to be used.
+
+
+ Reset the mac generator.
+
+
+ CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
+
+ CMAC is analogous to OMAC1 - see also en.wikipedia.org/wiki/CMAC
+
+ CMAC is a NIST recomendation - see
+ csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38B.pdf
+
+ CMAC/OMAC1 is a blockcipher-based message authentication code designed and
+ analyzed by Tetsu Iwata and Kaoru Kurosawa.
+
+ CMAC/OMAC1 is a simple variant of the CBC MAC (Cipher Block Chaining Message
+ Authentication Code). OMAC stands for One-Key CBC MAC.
+
+ It supports 128- or 64-bits block ciphers, with any key size, and returns
+ a MAC with dimension less or equal to the block size of the underlying
+ cipher.
+
+
+
+ create a standard MAC based on a CBC block cipher (64 or 128 bit block).
+ This will produce an authentication code the length of the block size
+ of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8 and @lt;= 128.
+
+
+ Reset the mac generator.
+
+
+
+ Implementation of DSTU7564 mac mode
+
+
+
+ implementation of DSTU 7624 MAC
+
+
+
+ The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication
+ 800-38D.
+
+
+ GMac is an invocation of the GCM mode where no data is encrypted (i.e. all input data to the Mac
+ is processed as additional authenticated data with the underlying GCM block cipher).
+
+
+
+
+ Creates a GMAC based on the operation of a block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+
+
+
+ Creates a GMAC based on the operation of a 128 bit block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+ the mac size to generate, in bits. Must be a multiple of 8, between 32 and 128 (inclusive).
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ Initialises the GMAC - requires a
+ providing a and a nonce.
+
+
+
+ implementation of GOST 28147-89 MAC
+
+
+ HMAC implementation based on RFC2104
+
+ H(K XOR opad, H(K XOR ipad, text))
+
+
+ Reset the mac generator.
+
+
+ DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC)
+
+ This could as well be derived from CBCBlockCipherMac, but then the property mac in the base
+ class must be changed to protected
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation. This must
+ be DESEngine.
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a Retail-MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation. The final block is decrypted and then encrypted using the
+ middle and right part of the key.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+
+ Poly1305 message authentication code, designed by D. J. Bernstein.
+
+
+ Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key
+ consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106
+ effective key bits) used in the authenticator.
+
+ The polynomial calculation in this implementation is adapted from the public domain poly1305-donna-unrolled C implementation
+ by Andrew M (@floodyberry).
+
+
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Current block of buffered input
+
+
+ Current offset in input buffer
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Constructs a Poly1305 MAC, where the key passed to init() will be used directly.
+
+
+ Constructs a Poly1305 MAC, using a 128 bit block cipher.
+
+
+
+ Initialises the Poly1305 MAC.
+
+ a {@link ParametersWithIV} containing a 128 bit nonce and a {@link KeyParameter} with
+ a 256 bit key complying to the {@link Poly1305KeyGenerator Poly1305 key format}.
+
+
+
+ Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe
+ Aumasson and Daniel J. Bernstein (https://131002.net/siphash/siphash.pdf).
+
+
+ "SipHash is a family of PRFs SipHash-c-d where the integer parameters c and d are the number of
+ compression rounds and the number of finalization rounds. A compression round is identical to a
+ finalization round and this round function is called SipRound. Given a 128-bit key k and a
+ (possibly empty) byte string m, SipHash-c-d returns a 64-bit value..."
+
+
+
+ SipHash-2-4
+
+
+ SipHash-c-d
+ the number of compression rounds
+ the number of finalization rounds
+
+
+
+ Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein MAC with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/MAC size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ This exception is thrown whenever a cipher requires a change of key, iv
+ or similar after x amount of bytes enciphered
+
+
+
+ implements Cipher-Block-Chaining (CBC) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of chaining.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CBC".
+
+
+ return the block size of the underlying cipher.
+
+ @return the block size of the underlying cipher.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Do the appropriate chaining step for CBC mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate chaining step for CBC mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the decrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Counter with Cipher Block Chaining mode (CCM) detailed in
+ NIST Special Publication 800-38C.
+
+ Note: this mode is a packet mode - it needs all the data up front.
+
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Returns a byte array containing the mac calculated as part of the
+ last encrypt or decrypt operation.
+
+ @return the last mac calculated.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @return a byte array containing the processed input..
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @param output output array.
+ @param outOff offset into output array to start putting processed bytes.
+ @return the number of bytes added to output.
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+ @throws DataLengthException if output buffer too short.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ A Cipher Text Stealing (CTS) mode cipher. CTS allows block ciphers to
+ be used to produce cipher text which is the same outLength as the plain text.
+
+
+ Create a buffered block cipher that uses Cipher Text Stealing
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ return the size of the output buffer required for an update of 'length' bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update
+ with length bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of length bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with length bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param length the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if cipher text decrypts wrongly (in
+ case the exception will never Get thrown).
+
+
+ A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and
+ Efficiency - by M. Bellare, P. Rogaway, D. Wagner.
+
+ http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf
+
+ EAX is an AEAD scheme based on CTR and OMAC1/CMAC, that uses a single block
+ cipher to encrypt and authenticate data. It's on-line (the length of a
+ message isn't needed to begin processing it), has good performances, it's
+ simple and provably secure (provided the underlying block cipher is secure).
+
+ Of course, this implementations is NOT thread-safe.
+
+
+ Constructor that accepts an instance of a block cipher engine.
+
+ @param cipher the engine to use
+
+
+
+ Implements the Galois/Counter mode (GCM) detailed in
+ NIST Special Publication 800-38D.
+
+
+
+
+ MAC sizes from 32 bits to 128 bits (must be a multiple of 8) are supported. The default is 128 bits.
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ implements the GOST 28147 OFB counter mode (GCTR).
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ counter mode (must have a 64 bit block size).
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param encrypting if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/GCTR"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+
+ A block cipher mode that includes authenticated encryption with a streaming mode
+ and optional associated data.
+
+
+
+ The name of the algorithm this cipher implements.
+
+
+ The block cipher underlying this algorithm.
+
+
+ Initialise the cipher.
+ Parameter can either be an AeadParameters or a ParametersWithIV object.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Add a single byte to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The byte to be processed.
+
+
+ Add a sequence of bytes to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The input byte array.
+ The offset into the input array where the data to be processed starts.
+ The number of bytes to be processed.
+
+
+ Encrypt/decrypt a single byte.
+
+ @param input the byte to be processed.
+ @param outBytes the output buffer the processed byte goes into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Process a block of bytes from in putting the result into out.
+
+ @param inBytes the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param outBytes the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Finish the operation either appending or verifying the MAC at the end of the data.
+
+ @param outBytes space for any resulting output data.
+ @param outOff offset into out to start copying the data at.
+ @return number of bytes written into out.
+ @throws InvalidOperationException if the cipher is in an inappropriate state.
+ @throws InvalidCipherTextException if the MAC fails to match.
+
+
+ Return the value of the MAC associated with the last stream processed.
+
+ @return MAC for plaintext data.
+
+
+ Return the size of the output buffer required for a ProcessBytes
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes
+ with len bytes of input.
+
+
+ Return the size of the output buffer required for a ProcessBytes plus a
+ DoFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes and DoFinal
+ with len bytes of input.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Base constructor. Nb value is set to 4.
+
+ base cipher to use under CCM.
+
+
+
+ Constructor allowing Nb configuration.
+
+ Nb is a parameter specified in CCM mode of DSTU7624 standard.
+ This parameter specifies maximum possible length of input.It should
+ be calculated as follows: Nb = 1 / 8 * (-3 + log[2]Nmax) + 1,
+ where Nmax - length of input message in bits.For practical reasons
+ Nmax usually less than 4Gb, e.g. for Nmax = 2^32 - 1, Nb = 4.
+
+ base cipher to use under CCM.
+ Nb value to use.
+
+
+ Implements a Gamming or Counter (CTR) mode on top of a DSTU 7624 block cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/KCTR"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ An implementation of RFC 7253 on The OCB
+ Authenticated-Encryption Algorithm, licensed per:
+
+ License for
+ Open-Source Software Implementations of OCB (Jan 9, 2013) - 'License 1'
+ Under this license, you are authorized to make, use, and distribute open-source software
+ implementations of OCB. This license terminates for you if you sue someone over their open-source
+ software implementation of OCB claiming that you have a patent covering their implementation.
+
+ This is a non-binding summary of a legal document (the link above). The parameters of the license
+ are specified in the license document and that document is controlling.
+
+
+ implements a Output-FeedBack (OFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/OFB"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ * Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode
+ * on top of a simple cipher. This class assumes the IV has been prepended
+ * to the data stream already, and just accomodates the reset after
+ * (blockSize + 2) bytes have been read.
+ *
+ * For further info see RFC 2440.
+ *
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/PGPCFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt one byte of data according to CFB mode.
+ @param data the byte to encrypt
+ @param blockOff offset in the current block
+ @returns the encrypted byte
+
+
+ Do the appropriate processing for CFB IV mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB IV mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Segmented Integer Counter (SIC) mode on top of a simple
+ block cipher.
+
+
+ Basic constructor.
+
+ @param c the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Calculator factory class for signature generation in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+
+
+
+ Constructor which also specifies a source of randomness to be used if one is required.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+ The source of randomness to be used in signature calculation.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+
+ Verifier class for signature verification in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The public key to be used in the verification operation.
+
+
+
+ Provider class which supports dynamic creation of signature verifiers.
+
+
+
+
+ Base constructor - specify the public key to be used in verification.
+
+ The public key to be used in creating verifiers provided by this object.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+ Block cipher padders are expected to conform to this interface
+
+
+ Initialise the padder.
+
+ @param param parameters, if any required.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+ @exception InvalidCipherTextException if the padding is badly formed
+ or invalid.
+
+
+ A padder that adds ISO10126-2 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds the padding according to the scheme referenced in
+ ISO 7814-4 - scheme 2 from ISO 9797-1. The first byte is 0x80, rest is 0x00
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the padder implements.
+
+ @return the name of the algorithm the padder implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion with padding. The PaddedBufferedBlockCipher
+ outputs a block only when the buffer is full and more data is being added,
+ or on a doFinal (unless the current block in the buffer is a pad block).
+ The default padding mechanism used is the one outlined in Pkcs5/Pkcs7.
+
+
+ Create a buffered block cipher with the desired padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ @param padding the padding type.
+
+
+ Create a buffered block cipher Pkcs7 padding
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the minimum size of the output buffer required for an update
+ plus a doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer. If the buffer is currently
+ full and padding needs to be added a call to doFinal will produce
+ 2 * GetBlockSize() bytes.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output or we are decrypting and the input is not block size aligned.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+
+
+ A padder that adds Pkcs7/Pkcs5 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Trailing-Bit-Compliment padding to a block.
+
+ This padding pads the block out compliment of the last bit
+ of the plain text.
+
+
+
+
+ Return the name of the algorithm the cipher implements.
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+ Note: this assumes that the last block of plain text is always
+ passed to it inside in. i.e. if inOff is zero, indicating the
+ entire block is to be overwritten with padding the value of in
+ should be the same as the last block of plain text.
+
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds X9.23 padding to a block - if a SecureRandom is
+ passed in random padding is assumed, otherwise padding with zeros is used.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if one is available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Null byte padding to a block.
+
+
+ Return the name of the algorithm the cipher implements.
+
+
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+
+
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+ @param length number of bytes making up the key
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2/3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ DES has 16 weak keys. This method will check
+ if the given DES key material is weak or semi-weak.
+ Key material that is too short is regarded as weak.
+
+ See "Applied
+ Cryptography" by Bruce Schneier for more information.
+
+ @return true if the given DES key material is weak or semi-weak,
+ false otherwise.
+
+
+ DES Keys use the LSB as the odd parity bit. This can
+ be used to check for corrupt keys.
+
+ @param bytes the byte array to set the parity on.
+
+
+ The minimum bitlength of the private value.
+
+
+ The bitlength of the private value.
+
+
+ Construct without a usage index, this will do a random construction of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+
+
+ Construct for a specific usage index - this has the effect of using verifiable canonical generation of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+ @param usageIndex a valid usage index.
+
+
+ return the generator - g
+
+
+ return private value limit - l
+
+
+ Parameter class for the HkdfBytesGenerator class.
+
+
+ Generates parameters for HKDF, specifying both the optional salt and
+ optional info. Step 1: Extract won't be skipped.
+
+ @param ikm the input keying material or seed
+ @param salt the salt to use, may be null for a salt for hashLen zeros
+ @param info the info to use, may be null for an info field of zero bytes
+
+
+ Factory method that makes the HKDF skip the extract part of the key
+ derivation function.
+
+ @param ikm the input keying material or seed, directly used for step 2:
+ Expand
+ @param info the info to use, may be null for an info field of zero bytes
+ @return HKDFParameters that makes the implementation skip step 1
+
+
+ Returns the input keying material or seed.
+
+ @return the keying material
+
+
+ Returns if step 1: extract has to be skipped or not
+
+ @return true for skipping, false for no skipping of step 1
+
+
+ Returns the salt, or null if the salt should be generated as a byte array
+ of HashLen zeros.
+
+ @return the salt, or null
+
+
+ Returns the info field, which may be empty (null is converted to empty).
+
+ @return the info field, never null
+
+
+ parameters for using an integrated cipher in stream mode.
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+ @param cipherKeySize the size of the associated Cipher key (in bits).
+
+
+ parameters for Key derivation functions for ISO-18033
+
+
+ parameters for Key derivation functions for IEEE P1363a
+
+
+ Parameters for mask derivation functions.
+
+
+ Parameters for NaccacheStern public private key generation. For details on
+ this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Parameters for generating a NaccacheStern KeyPair.
+
+ @param random
+ The source of randomness
+ @param strength
+ The desired strength of the Key in Bits
+ @param certainty
+ the probability that the generated primes are not really prime
+ as integer: 2^(-certainty) is then the probability
+ @param countSmallPrimes
+ How many small key factors are desired
+
+
+ * Parameters for a NaccacheStern KeyPair.
+ *
+ * @param random
+ * The source of randomness
+ * @param strength
+ * The desired strength of the Key in Bits
+ * @param certainty
+ * the probability that the generated primes are not really prime
+ * as integer: 2^(-certainty) is then the probability
+ * @param cntSmallPrimes
+ * How many small key factors are desired
+ * @param debug
+ * Ignored
+
+
+ @return Returns the certainty.
+
+
+ @return Returns the countSmallPrimes.
+
+
+ Public key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ @param privateKey
+
+
+ @return Returns the g.
+
+
+ @return Returns the lowerSigmaBound.
+
+
+ @return Returns the n.
+
+
+ Private key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Constructs a NaccacheSternPrivateKey
+
+ @param g
+ the public enryption parameter g
+ @param n
+ the public modulus n = p*q
+ @param lowerSigmaBound
+ the public lower sigma bound up to which data can be encrypted
+ @param smallPrimes
+ the small primes, of which sigma is constructed in the right
+ order
+ @param phi_n
+ the private modulus phi(n) = (p-1)(q-1)
+
+
+ Cipher parameters with a fixed salt value associated with them.
+
+
+
+ Parameters for the Skein hash function - a series of byte[] strings identified by integer tags.
+
+
+ Parameterised Skein can be used for:
+
+ - MAC generation, by providing a key.
+ - Randomised hashing, by providing a nonce.
+ - A hash function for digital signatures, associating a
+ public key with the message digest.
+ - A key derivation function, by providing a
+ key identifier.
+ - Personalised hashing, by providing a
+ recommended format or
+ arbitrary personalisation string.
+
+
+
+
+
+
+
+
+ The parameter type for a secret key, supporting MAC or KDF functions: 0
+
+
+
+
+ The parameter type for the Skein configuration block: 4
+
+
+
+
+ The parameter type for a personalisation string: 8
+
+
+
+
+ The parameter type for a public key: 12
+
+
+
+
+ The parameter type for a key identifier string: 16
+
+
+
+
+ The parameter type for a nonce: 20
+
+
+
+
+ The parameter type for the message: 48
+
+
+
+
+ The parameter type for the output transformation: 63
+
+
+
+
+ Obtains a map of type (int) to value (byte[]) for the parameters tracked in this object.
+
+
+
+
+ Obtains the value of the key parameter, or null if not
+ set.
+
+ The key.
+
+
+
+ Obtains the value of the personalisation parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the public key parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the key identifier parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the nonce parameter, or null if
+ not set.
+
+
+
+
+ A builder for .
+
+
+
+
+ Sets a parameters to apply to the Skein hash function.
+
+
+ Parameter types must be in the range 0,5..62, and cannot use the value 48
+ (reserved for message body).
+
+ Parameters with type < 48 are processed before
+ the message content, parameters with type > 48
+ are processed after the message and prior to output.
+
+ the type of the parameter, in the range 5..62.
+ the byte sequence of the parameter.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Implements the recommended personalisation format for Skein defined in Section 4.11 of
+ the Skein 1.3 specification.
+
+
+ The format is YYYYMMDD email@address distinguisher, encoded to a byte
+ sequence using UTF-8 encoding.
+
+ the date the personalised application of the Skein was defined.
+ the email address of the creation of the personalised application.
+ an arbitrary personalisation string distinguishing the application.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Constructs a new instance with the parameters provided to this
+ builder.
+
+
+
+ Private parameters for an SM2 key exchange.
+ The ephemeralPrivateKey is used to calculate the random point used in the algorithm.
+
+
+ Public parameters for an SM2 key exchange.
+ In this case the ephemeralPublicKey provides the random point used in the algorithm.
+
+
+
+ Parameters for tweakable block ciphers.
+
+
+
+
+ Gets the key.
+
+ the key to use, or null to use the current key.
+
+
+
+ Gets the tweak value.
+
+ The tweak to use, or null to use the current tweak.
+
+
+ super class for all Password Based Encyrption (Pbe) parameter generator classes.
+
+
+ base constructor.
+
+
+ initialise the Pbe generator.
+
+ @param password the password converted into bytes (see below).
+ @param salt the salt to be mixed with the password.
+ @param iterationCount the number of iterations the "mixing" function
+ is to be applied for.
+
+
+ return the password byte array.
+
+ @return the password byte array.
+
+
+ return the salt byte array.
+
+ @return the salt byte array.
+
+
+ return the iteration count.
+
+ @return the iteration count.
+
+
+ Generate derived parameters for a key of length keySize.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ Generate derived parameters for a key of length keySize, and
+ an initialisation vector (IV) of length ivSize.
+
+ @param keySize the length, in bits, of the key required.
+ @param ivSize the length, in bits, of the iv required.
+ @return a parameters object representing a key and an IV.
+
+
+ Generate derived parameters for a key of length keySize, specifically
+ for use with a MAC.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs5 (ascii, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ PKCS5 (UTF-8, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs12 (unicode, big endian, 2 zero pad bytes at the end).
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ An EntropySourceProvider where entropy generation is based on a SecureRandom output using SecureRandom.generateSeed().
+
+
+ Create a entropy source provider based on the passed in SecureRandom.
+
+ @param secureRandom the SecureRandom to base EntropySource construction on.
+ @param isPredictionResistant boolean indicating if the SecureRandom is based on prediction resistant entropy or not (true if it is).
+
+
+ Return an entropy source that will create bitsRequired bits of entropy on
+ each invocation of getEntropy().
+
+ @param bitsRequired size (in bits) of entropy to be created by the provided source.
+ @return an EntropySource that generates bitsRequired bits of entropy on each call to its getEntropy() method.
+
+
+ Random generation based on the digest with counter. Calling AddSeedMaterial will
+ always increase the entropy of the hash.
+
+ Internal access to the digest is synchronized so a single one of these can be shared.
+
+
+
+ A SP800-90A CTR DRBG.
+
+
+ Construct a SP800-90A CTR DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param engine underlying block cipher to use to support DRBG
+ @param keySizeInBits size of the key to use with the block cipher.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Pad out a key for TDEA, setting odd parity for each byte.
+
+ @param keyMaster
+ @param keyOff
+ @param tmp
+ @param tmpOff
+
+
+ Used by both Dual EC and Hash.
+
+
+ A SP800-90A Hash DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param digest source digest to use for DRB stream.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ A SP800-90A HMAC DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param hMac Hash MAC to base the DRBG on.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Interface to SP800-90A deterministic random bit generators.
+
+
+ Return the block size of the DRBG.
+
+ @return the block size (in bits) produced by each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Generate numBytes worth of entropy from the passed in entropy source.
+
+ @param entropySource the entropy source to request the data from.
+ @param numBytes the number of bytes of entropy requested.
+ @return a byte array populated with the random data.
+
+
+ Generic interface for objects generating random bytes.
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+
+ Takes bytes generated by an underling RandomGenerator and reverses the order in
+ each small window (of configurable size).
+
+ Access to internals is synchronized so a single one of these can be shared.
+
+
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+ Force a reseed of the DRBG.
+ optional additional input
+
+
+ Builder class for making SecureRandom objects based on SP 800-90A Deterministic Random Bit Generators (DRBG).
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Set the personalization string for DRBG SecureRandoms created by this builder
+ @param personalizationString the personalisation string for the underlying DRBG.
+ @return the current builder.
+
+
+ Set the security strength required for DRBGs used in building SecureRandom objects.
+
+ @param securityStrength the security strength (in bits)
+ @return the current builder.
+
+
+ Set the amount of entropy bits required for seeding and reseeding DRBGs used in building SecureRandom objects.
+
+ @param entropyBitsRequired the number of bits of entropy to be requested from the entropy source on each seed/reseed.
+ @return the current builder.
+
+
+ Build a SecureRandom based on a SP 800-90A Hash DRBG.
+
+ @param digest digest algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a Hash DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A CTR DRBG.
+
+ @param cipher the block cipher to base the DRBG on.
+ @param keySizeInBits key size in bits to be used with the block cipher.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a CTR DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A HMAC DRBG.
+
+ @param hMac HMAC algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a HMAC DRBG.
+
+
+ A thread based seed generator - one source of randomness.
+
+ Based on an idea from Marcus Lippert.
+
+
+
+ Generate seed bytes. Set fast to false for best quality.
+
+ If fast is set to true, the code should be round about 8 times faster when
+ generating a long sequence of random bytes. 20 bytes of random values using
+ the fast mode take less than half a second on a Nokia e70. If fast is set to false,
+ it takes round about 2500 ms.
+
+ @param numBytes the number of bytes to generate
+ @param fast true if fast mode should be used
+
+
+
+ Permutation generated by code:
+
+ // First 1850 fractional digit of Pi number.
+ byte[] key = new BigInteger("14159265358979323846...5068006422512520511").ToByteArray();
+ s = 0;
+ P = new byte[256];
+ for (int i = 0; i < 256; i++)
+ {
+ P[i] = (byte) i;
+ }
+ for (int m = 0; m < 768; m++)
+ {
+ s = P[(s + P[m & 0xff] + key[m % key.length]) & 0xff];
+ byte temp = P[m & 0xff];
+ P[m & 0xff] = P[s & 0xff];
+ P[s & 0xff] = temp;
+ }
+
+
+
+ Value generated in the same way as P.
+
+
+
+ @param engine
+ @param entropySource
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the RNG.
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Construct a X9.31 secure random generator using the passed in engine and key. If predictionResistant is true the
+ generator will be reseeded on each request.
+
+ @param engine a block cipher to use as the operator.
+ @param key the block cipher key to initialise engine with.
+ @param predictionResistant true if engine to be reseeded on each use, false otherwise.
+ @return a SecureRandom.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ The Digital Signature Algorithm - as described in "Handbook of Applied
+ Cryptography", pages 452 - 453.
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message for standard DSA the message should be a
+ SHA-1 hash of the real message to be verified.
+
+
+ EC-DSA as described in X9.62
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message (for standard DSA the message should be
+ a SHA-1 hash of the real message to be verified).
+
+
+ GOST R 34.10-2001 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional GOST3410 the message should be a GOST3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a GOST3410 signature for
+ the passed in message (for standard GOST3410 the message should be
+ a GOST3411 hash of the real message to be verified).
+
+
+ EC-NR as described in IEEE 1363-2000
+
+
+ generate a signature for the given message using the key we were
+ initialised with. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR it *must* be at least as long.
+
+ @param digest the digest to be signed.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ return true if the value r and s represent a signature for the
+ message passed in. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR, it *must* be at least as long. But just in case the signer
+ applied mod(n) to the longer digest, this implementation will
+ apply mod(n) during verification.
+
+ @param digest the digest to be verified.
+ @param r the r value of the signature.
+ @param s the s value of the signature.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ initialise the signer for signing or verification.
+
+ @param forSigning
+ true if for signing, false otherwise
+ @param parameters
+ necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using the key
+ we were initialised with.
+
+
+ return true if the internal state represents the signature described in
+ the passed in array.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ Gost R 34.10-94 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional Gost3410 the message should be a Gost3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a Gost3410 signature for
+ the passed in message for standard Gost3410 the message should be a
+ Gost3411 hash of the real message to be verified.
+
+
+ A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979.
+
+
+ Base constructor.
+
+ @param digest digest to build the HMAC on.
+
+
+ Interface define calculators of K values for DSA/ECDSA.
+
+
+ Return true if this calculator is deterministic, false otherwise.
+
+ @return true if deterministic, otherwise false.
+
+
+ Non-deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param random a source of randomness.
+
+
+ Deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param d the DSA private value.
+ @param message the message being signed.
+
+
+ Return the next valid value of K.
+
+ @return a K value.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
+
+ Note: the usual length for the salt is the length of the hash
+ function used in bytes.
+
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ length of salt in bytes.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+ length of salt in bytes.
+
+
+
+ Initialise the signer.
+ true if for signing, false if for verification.
+ parameters for signature generation/verification. If the
+ parameters are for generation they should be a ParametersWithRandom,
+ a ParametersWithSalt, or just an RsaKeyParameters object. If RsaKeyParameters
+ are passed in a SecureRandom will be created.
+
+ if wrong parameter type or a fixed
+ salt is passed in which is the wrong length.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise, or if not sure.
+
+
+
+ int to octet string.
+ int to octet string.
+
+
+ long to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 1)
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise.
+
+
+
+ RSA-PSS as described in Pkcs# 1 v 2.1.
+
+ Note: the usual value for the salt length is the number of
+ bytes in the hash function.
+
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the length of the salt to use (in bytes).
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the fixed salt to be used.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+
+ int to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+
+ Load oid table.
+
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ The SM2 Digital Signature algorithm.
+
+
+ X9.31-1998 - signing using a hash.
+
+ The message digest hash, H, is encapsulated to form a byte string as follows
+
+
+ EB = 06 || PS || 0xBA || H || TRAILER
+
+ where PS is a string of bytes all of value 0xBB of length such that |EB|=|n|, and TRAILER is the ISO/IEC 10118 part number†for the digest. The byte string, EB, is converted to an integer value, the message representative, f.
+
+
+ Generate a signer with either implicit or explicit trailers for X9.31.
+
+ @param cipher base cipher to use for signature creation/verification
+ @param digest digest to use.
+ @param implicit whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+ @param cipher cipher to use.
+ @param digest digest to sign with.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+ a wrapper for block ciphers with a single byte block size, so that they
+ can be treated like stream ciphers.
+
+
+ basic constructor.
+
+ @param cipher the block cipher to be wrapped.
+ @exception ArgumentException if the cipher has a block size other than
+ one.
+
+
+ initialise the underlying cipher.
+
+ @param forEncryption true if we are setting up for encryption, false otherwise.
+ @param param the necessary parameters for the underlying cipher to be initialised.
+
+
+ return the name of the algorithm we are wrapping.
+
+ @return the name of the algorithm we are wrapping.
+
+
+ encrypt/decrypt a single byte returning the result.
+
+ @param in the byte to be processed.
+ @return the result of processing the input byte.
+
+
+ process a block of bytes from in putting the result into out.
+
+ @param in the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param out the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data stars at.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ reset the underlying cipher. This leaves it in the same state
+ it was at after the last init (if there was one).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.2
+
+
+
+ This message notifies the recipient that the sender will not send any more messages on this
+ connection. Note that as of TLS 1.1, failure to properly close a connection no longer
+ requires that a session not be resumed. This is a change from TLS 1.0 ("The session becomes
+ unresumable if any connection is terminated without proper close_notify messages with level
+ equal to warning.") to conform with widespread implementation practice.
+
+
+ An inappropriate message was received. This alert is always fatal and should never be
+ observed in communication between proper implementations.
+
+
+ This alert is returned if a record is received with an incorrect MAC. This alert also MUST be
+ returned if an alert is sent because a TLSCiphertext decrypted in an invalid way: either it
+ wasn't an even multiple of the block length, or its padding values, when checked, weren't
+ correct. This message is always fatal and should never be observed in communication between
+ proper implementations (except when messages were corrupted in the network).
+
+
+ This alert was used in some earlier versions of TLS, and may have permitted certain attacks
+ against the CBC mode [CBCATT]. It MUST NOT be sent by compliant implementations.
+
+
+ A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record
+ decrypted to a TLSCompressed record with more than 2^14+1024 bytes. This message is always
+ fatal and should never be observed in communication between proper implementations (except
+ when messages were corrupted in the network).
+
+
+ The decompression function received improper input (e.g., data that would expand to excessive
+ length). This message is always fatal and should never be observed in communication between
+ proper implementations.
+
+
+ Reception of a handshake_failure alert message indicates that the sender was unable to
+ negotiate an acceptable set of security parameters given the options available. This is a
+ fatal error.
+
+
+ This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ A certificate was corrupt, contained signatures that did not verify correctly, etc.
+
+
+ A certificate was of an unsupported type.
+
+
+ A certificate was revoked by its signer.
+
+
+ A certificate has expired or is not currently valid.
+
+
+ Some other (unspecified) issue arose in processing the certificate, rendering it
+ unacceptable.
+
+
+ A field in the handshake was out of range or inconsistent with other fields. This message is
+ always fatal.
+
+
+ A valid certificate chain or partial chain was received, but the certificate was not accepted
+ because the CA certificate could not be located or couldn't be matched with a known, trusted
+ CA. This message is always fatal.
+
+
+ A valid certificate was received, but when access control was applied, the sender decided not
+ to proceed with negotiation. This message is always fatal.
+
+
+ A message could not be decoded because some field was out of the specified range or the
+ length of the message was incorrect. This message is always fatal and should never be
+ observed in communication between proper implementations (except when messages were corrupted
+ in the network).
+
+
+ A handshake cryptographic operation failed, including being unable to correctly verify a
+ signature or validate a Finished message. This message is always fatal.
+
+
+ This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ The protocol version the client has attempted to negotiate is recognized but not supported.
+ (For example, old protocol versions might be avoided for security reasons.) This message is
+ always fatal.
+
+
+ Returned instead of handshake_failure when a negotiation has failed specifically because the
+ server requires ciphers more secure than those supported by the client. This message is
+ always fatal.
+
+
+ An internal error unrelated to the peer or the correctness of the protocol (such as a memory
+ allocation failure) makes it impossible to continue. This message is always fatal.
+
+
+ This handshake is being canceled for some reason unrelated to a protocol failure. If the user
+ cancels an operation after the handshake is complete, just closing the connection by sending
+ a close_notify is more appropriate. This alert should be followed by a close_notify. This
+ message is generally a warning.
+
+
+ Sent by the client in response to a hello request or by the server in response to a client
+ hello after initial handshaking. Either of these would normally lead to renegotiation; when
+ that is not appropriate, the recipient should respond with this alert. At that point, the
+ original requester can decide whether to proceed with the connection. One case where this
+ would be appropriate is where a server has spawned a process to satisfy a request; the
+ process might receive security parameters (key length, authentication, etc.) at startup, and
+ it might be difficult to communicate changes to these parameters after that point. This
+ message is always a warning.
+
+
+ Sent by clients that receive an extended server hello containing an extension that they did
+ not put in the corresponding client hello. This message is always fatal.
+
+
+ This alert is sent by servers who are unable to retrieve a certificate chain from the URL
+ supplied by the client (see Section 3.3). This message MAY be fatal - for example if client
+ authentication is required by the server for the handshake to continue and the server is
+ unable to retrieve the certificate chain, it may send a fatal alert.
+
+
+ This alert is sent by servers that receive a server_name extension request, but do not
+ recognize the server name. This message MAY be fatal.
+
+
+ This alert is sent by clients that receive an invalid certificate status response (see
+ Section 3.6). This message is always fatal.
+
+
+ This alert is sent by servers when a certificate hash does not match a client provided
+ certificate_hash. This message is always fatal.
+
+
+ If the server does not recognize the PSK identity, it MAY respond with an
+ "unknown_psk_identity" alert message.
+
+
+ If TLS_FALLBACK_SCSV appears in ClientHello.cipher_suites and the highest protocol version
+ supported by the server is higher than the version indicated in ClientHello.client_version,
+ the server MUST respond with a fatal inappropriate_fallback alert [..].
+
+
+
+ RFC 5246 7.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ A queue for bytes.
+
+ This file could be more optimized.
+
+
+
+
+ The smallest number which can be written as 2^x which is bigger than i.
+
+
+ The initial size for our buffer.
+
+
+ The buffer where we store our data.
+
+
+ How many bytes at the beginning of the buffer are skipped.
+
+
+ How many bytes in the buffer are valid data.
+
+
+ Add some data to our buffer.
+ A byte-array to read data from.
+ How many bytes to skip at the beginning of the array.
+ How many bytes to read from the array.
+
+
+ The number of bytes which are available in this buffer.
+
+
+ Copy some bytes from the beginning of the data to the provided Stream.
+ The Stream to copy the bytes to.
+ How many bytes to copy.
+ If insufficient data is available.
+ If there is a problem copying the data.
+
+
+ Read data from the buffer.
+ The buffer where the read data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ Return a MemoryStream over some bytes at the beginning of the data.
+ How many bytes will be readable.
+ A MemoryStream over the data.
+ If insufficient data is available.
+
+
+ Remove some bytes from our data from the beginning.
+ How many bytes to remove.
+
+
+ Parsing and encoding of a Certificate struct from RFC 4346.
+
+
+ opaque ASN.1Cert<2^24-1>;
+
+ struct {
+ ASN.1Cert certificate_list<0..2^24-1>;
+ } Certificate;
+
+
+ @see Org.BouncyCastle.Asn1.X509.X509CertificateStructure
+
+
+ The certificates.
+
+
+ @return an array of {@link org.bouncycastle.asn1.x509.Certificate} representing a certificate
+ chain.
+
+
+ @return true if this certificate chain contains no certificates, or
+ false otherwise.
+
+
+ Encode this {@link Certificate} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link Certificate} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link Certificate} object.
+ @throws IOException
+
+
+ Parsing and encoding of a CertificateRequest struct from RFC 4346.
+
+
+ struct {
+ ClientCertificateType certificate_types<1..2^8-1>;
+ DistinguishedName certificate_authorities<3..2^16-1>
+ } CertificateRequest;
+
+
+ @see ClientCertificateType
+ @see X509Name
+
+
+ @param certificateTypes see {@link ClientCertificateType} for valid constants.
+ @param certificateAuthorities an {@link IList} of {@link X509Name}.
+
+
+ @return an array of certificate types
+ @see {@link ClientCertificateType}
+
+
+ @return an {@link IList} of {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ @return an {@link IList} of {@link X509Name}
+
+
+ Encode this {@link CertificateRequest} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateRequest} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateRequest} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatus} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatus} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatus} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatusRequest} object.
+ @throws IOException
+
+
+ RFC 6091
+
+
+ @param type
+ see {@link CertChainType} for valid constants.
+ @param urlAndHashList
+ a {@link IList} of {@link UrlAndHash}.
+
+
+ @return {@link CertChainType}
+
+
+ @return an {@link IList} of {@link UrlAndHash}
+
+
+ Encode this {@link CertificateUrl} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateUrl} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateUrl} object.
+ @throws IOException
+
+
+ draft-ietf-tls-chacha20-poly1305-04
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 2246 A.5
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ A combined hash, which implements md5(m) || sha1(m).
+
+
+ @see org.bouncycastle.crypto.Digest#update(byte[], int, int)
+
+
+ @see org.bouncycastle.crypto.Digest#doFinal(byte[], int)
+
+
+ @see org.bouncycastle.crypto.Digest#reset()
+
+
+
+ RFC 2246 6.1
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246 6.2.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Accept only the group parameters specified in RFC 5054 Appendix A.
+
+
+ Specify a custom set of acceptable group parameters.
+
+ @param groups a {@link Vector} of acceptable {@link SRP6GroupParameters}
+
+
+ Buffers input until the hash algorithm is determined.
+
+
+ @return a {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ Encode this {@link DigitallySigned} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link DigitallySigned} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link DigitallySigned} object.
+ @throws IOException
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check that there are no "extra" messages left in the current inbound flight
+
+
+ RFC 4347 4.1.2.5 Anti-replay
+
+ Support fast rejection of duplicate records by maintaining a sliding receive window
+
+
+ Check whether a received record with the given sequence number should be rejected as a duplicate.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of a received record.
+ @return true if the record should be discarded without further processing.
+
+
+ Report that a received record with the given sequence number passed authentication checks.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of an authenticated record.
+
+
+ When a new epoch begins, sequence numbers begin again at 0
+
+
+ RFC 4492 5.4. (Errata ID: 2389)
+
+
+
+ RFC 4492 5.4
+
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a prime field.
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a characteristic-2 field.
+
+
+ Indicates that a named curve is used. This option SHOULD be used when applicable.
+
+
+
+ RFC 4492 5.1.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 5705
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ Encode this {@link HeartbeatExtension} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatExtension} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatExtension} object.
+ @throws IOException
+
+
+ Encode this {@link HeartbeatMessage} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatMessage} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatMessage} object.
+ @throws IOException
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ RFC 4492 5.1.1
+ The named curves defined here are those specified in SEC 2 [13]. Note that many of
+ these curves are also recommended in ANSI X9.62 [7] and FIPS 186-2 [11]. Values 0xFE00
+ through 0xFEFF are reserved for private use. Values 0xFF01 and 0xFF02 indicate that the
+ client supports arbitrary prime and characteristic-2 curves, respectively (the curve
+ parameters must be encoded explicitly in ECParameters).
+
+
+
+ Encode this {@link NewSessionTicket} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link NewSessionTicket} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link NewSessionTicket} object.
+ @throws IOException
+
+
+ RFC 3546 3.6
+
+
+ @param responderIDList
+ an {@link IList} of {@link ResponderID}, specifying the list of trusted OCSP
+ responders. An empty list has the special meaning that the responders are
+ implicitly known to the server - e.g., by prior arrangement.
+ @param requestExtensions
+ OCSP request extensions. A null value means that there are no extensions.
+
+
+ @return an {@link IList} of {@link ResponderID}
+
+
+ @return OCSP request extensions
+
+
+ Encode this {@link OcspStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link OcspStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return an {@link OcspStatusRequest} object.
+ @throws IOException
+
+
+ RFC 5246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+
+
+ An implementation of the TLS 1.0/1.1/1.2 record layer, allowing downgrade to SSLv3.
+
+
+ RFC 5246 E.1. "Earlier versions of the TLS specification were not fully clear on what the
+ record layer version number (TLSPlaintext.version) should contain when sending ClientHello
+ (i.e., before it is known which version of the protocol will be employed). Thus, TLS servers
+ compliant with this specification MUST accept any value {03,XX} as the record layer version
+ number for ClientHello."
+
+
+ @return {@link ConnectionEnd}
+
+
+ @return {@link CipherSuite}
+
+
+ @return {@link CompressionMethod}
+
+
+ @return {@link PRFAlgorithm}
+
+
+ Encode this {@link ServerDHParams} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerDHParams} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerDHParams} object.
+ @throws IOException
+
+
+ Encode this {@link ServerName} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerName} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerName} object.
+ @throws IOException
+
+
+ @param serverNameList an {@link IList} of {@link ServerName}.
+
+
+ @return an {@link IList} of {@link ServerName}.
+
+
+ Encode this {@link ServerNameList} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerNameList} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerNameList} object.
+ @throws IOException
+
+
+ Encode this {@link ServerSRPParams} to an {@link OutputStream}.
+
+ @param output
+ the {@link OutputStream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerSRPParams} from an {@link InputStream}.
+
+ @param input
+ the {@link InputStream} to parse from.
+ @return a {@link ServerSRPParams} object.
+ @throws IOException
+
+
+ RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned)
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ @param hash {@link HashAlgorithm}
+ @param signature {@link SignatureAlgorithm}
+
+
+ @return {@link HashAlgorithm}
+
+
+ @return {@link SignatureAlgorithm}
+
+
+ Encode this {@link SignatureAndHashAlgorithm} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link SignatureAndHashAlgorithm} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link SignatureAndHashAlgorithm} object.
+ @throws IOException
+
+
+ An implementation of {@link TlsSRPIdentityManager} that simulates the existence of "unknown" identities
+ to obscure the fact that there is no verifier for them.
+
+
+ Create a {@link SimulatedTlsSRPIdentityManager} that implements the algorithm from RFC 5054 2.5.1.3
+
+ @param group the {@link SRP6GroupParameters} defining the group that SRP is operating in
+ @param seedKey the secret "seed key" referred to in RFC 5054 2.5.1.3
+ @return an instance of {@link SimulatedTlsSRPIdentityManager}
+
+
+ HMAC implementation based on original internet draft for HMAC (RFC 2104)
+
+ The difference is that padding is concatentated versus XORed with the key
+
+ H(K + opad, H(K + ipad, text))
+
+
+ Base constructor for one of the standard digest algorithms that the byteLength of
+ the algorithm is know for. Behaviour is undefined for digests other than MD5 or SHA1.
+
+ @param digest the digest.
+
+
+ Reset the mac generator.
+
+
+ RFC 4680
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called by the protocol handler to report the server certificate.
+
+
+ This method is responsible for certificate verification and validation
+
+ The server received
+
+
+
+
+ Return client credentials in response to server's certificate request
+
+
+ A containing server certificate request details
+
+
+ A to be used for client authentication
+ (or null for no client authentication)
+
+
+
+
+
+ A generic TLS 1.0-1.2 / SSLv3 block cipher. This can be used for AES or 3DES for example.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called at the start of a new TLS session, before any other methods.
+
+
+ A
+
+
+
+ Return the session this client wants to resume, if any.
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ A representing the resumable session to be used for this connection,
+ or null to use a new session.
+
+
+
+
+ Return the to use for the TLSPlaintext.version field prior to
+ receiving the server version. NOTE: This method is not called for DTLS.
+
+
+ See RFC 5246 E.1.: "TLS clients that wish to negotiate with older servers MAY send any value
+ {03,XX} as the record layer version number. Typical values would be {03,00}, the lowest
+ version number supported by the client, and the value of ClientHello.client_version. No
+ single value will guarantee interoperability with all old servers, but this is a complex
+ topic beyond the scope of this document."
+
+ The to use.
+
+
+
+ Get the list of cipher suites that this client supports.
+
+
+ An array of values, each specifying a supported cipher suite.
+
+
+
+
+ Get the list of compression methods that this client supports.
+
+
+ An array of values, each specifying a supported compression method.
+
+
+
+
+ Get the (optional) table of client extensions to be included in (extended) client hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+
+
+
+ Notifies the client of the session_id sent in the ServerHello.
+
+ An array of
+
+
+
+ Report the cipher suite that was selected by the server.
+
+
+ The protocol handler validates this value against the offered cipher suites
+
+
+
+ A
+
+
+
+
+ Report the compression method that was selected by the server.
+
+
+ The protocol handler validates this value against the offered compression methods
+
+
+
+ A
+
+
+
+
+ Report the extensions from an extended server hello.
+
+
+ Will only be called if we returned a non-null result from .
+
+
+ A (Int32 -> byte[])
+
+
+
+ A list of
+
+
+
+
+ Return an implementation of to negotiate the key exchange
+ part of the protocol.
+
+
+ A
+
+
+
+
+
+ Return an implementation of to handle authentication
+ part of the protocol.
+
+
+
+
+ A list of
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message
+
+ This method will be called (only) when a NewSessionTicket handshake message is received. The
+ ticket is opaque to the client and clients MUST NOT examine the ticket under the assumption
+ that it complies with e.g. RFC 5077 4. Recommended Ticket Construction.
+
+ The ticket
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the server
+ @param output The stream of data to the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Initiates a TLS handshake in the role of client.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#NotifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsClient The {@link TlsClient} to use for the handshake.
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+ Used to get the resumable session, if any, used by this connection. Only available after the
+ handshake has successfully completed.
+
+ @return A {@link TlsSession} representing the resumable session used by this connection, or
+ null if no resumable session available.
+ @see TlsPeer#NotifyHandshakeComplete()
+
+
+ Export keying material according to RFC 5705: "Keying Material Exporters for TLS".
+
+ @param asciiLabel indicates which application will use the exported keys.
+ @param context_value allows the application using the exporter to mix its own data with the TLS PRF for
+ the exporter output.
+ @param length the number of bytes to generate
+ @return a pseudorandom bit string of 'length' bytes generated from the master_secret.
+
+
+ (D)TLS DH key exchange.
+
+
+ (D)TLS ECDHE key exchange (see RFC 4492).
+
+
+ (D)TLS ECDH key exchange (see RFC 4492).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic interface for key exchange implementations in (D)TLS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
+
+
+
+ Generate a new instance of an TlsMac.
+
+ @param context the TLS client context
+ @param digest The digest to use.
+ @param key A byte-array where the key for this MAC is located.
+ @param keyOff The number of bytes to skip, before the key starts in the buffer.
+ @param keyLen The length of the key.
+
+
+ @return the MAC write secret
+
+
+ @return The output length of this MAC.
+
+
+ Calculate the MAC for some given data.
+
+ @param type The message type of the message.
+ @param message A byte-buffer containing the message.
+ @param offset The number of bytes to skip, before the message starts.
+ @param length The length of the message.
+ @return A new byte-buffer containing the MAC value.
+
+
+
+ This exception will be thrown(only) when the connection is closed by the peer without sending a
+ close_notify warning alert.
+
+
+ If this happens, the TLS protocol cannot rule out truncation of the connection data (potentially
+ malicious). It may be possible to check for truncation via some property of a higher level protocol
+ built upon TLS, e.g.the Content-Length header for HTTPS.
+
+
+
+
+ A NULL CipherSuite, with optional MAC.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on
+ gmt_unix_time containing the current time, we recommend that implementors MAY provide the
+ ability to set gmt_unix_time as an option only, off by default."
+
+
+ true if the current time should be used in the gmt_unix_time field of
+ Random, or false if gmt_unix_time should contain a cryptographically
+ random value.
+
+
+
+
+ Report whether the server supports secure renegotiation
+
+
+ The protocol handler automatically processes the relevant extensions
+
+
+ A , true if the server supports secure renegotiation
+
+
+
+
+
+ Return an implementation of to handle record compression.
+
+ A
+
+
+
+
+ Return an implementation of to use for encryption/decryption.
+
+ A
+
+
+
+ This method will be called when an alert is raised by the protocol.
+
+
+ A human-readable message explaining what caused this alert. May be null.
+ The Exception that caused this alert to be raised. May be null.
+
+
+ This method will be called when an alert is received from the remote peer.
+
+
+
+
+ Notifies the peer that the handshake has been successfully completed.
+
+
+
+ This method is called, when a change cipher spec message is received.
+
+ @throws IOException If the message has an invalid content or the handshake is not in the correct
+ state.
+
+
+ Read data from the network. The method will return immediately, if there is still some data
+ left in the buffer, or block until some application data has been read from the network.
+
+ @param buf The buffer where the data will be copied to.
+ @param offset The position where the data will be placed in the buffer.
+ @param len The maximum number of bytes to read.
+ @return The number of bytes read.
+ @throws IOException If something goes wrong during reading data.
+
+
+ Send some application data to the remote system.
+
+ The method will handle fragmentation internally.
+
+ @param buf The buffer with the data.
+ @param offset The position in the buffer where the data is placed.
+ @param len The length of the data.
+ @throws IOException If something goes wrong during sending.
+
+
+ The secure bidirectional stream for this connection
+ Only allowed in blocking mode.
+
+
+ Should be called in non-blocking mode when the input data reaches EOF.
+
+
+ Offer input from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the input buffer is "owned" by this object. Other code
+ must not attempt to do anything with it.
+
+ This method will decrypt and process all records that are fully available.
+ If only part of a record is available, the buffer will be retained until the
+ remainder of the record is offered.
+
+ If any records containing application data were processed, the decrypted data
+ can be obtained using {@link #readInput(byte[], int, int)}. If any records
+ containing protocol data were processed, a response may have been generated.
+ You should always check to see if there is any available output after calling
+ this method by calling {@link #getAvailableOutputBytes()}.
+ @param input The input buffer to offer
+ @throws IOException If an error occurs while decrypting or processing a record
+
+
+ Gets the amount of received application data. A call to {@link #readInput(byte[], int, int)}
+ is guaranteed to be able to return at least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available application data
+
+
+ Retrieves received application data. Use {@link #getAvailableInputBytes()} to check
+ how much application data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the application data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Offer output from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the specified section of the buffer will have been
+ processed. Use {@link #readOutput(byte[], int, int)} to get the bytes to
+ transmit to the other peer.
+
+ This method must not be called until after the handshake is complete! Attempting
+ to call it before the handshake is complete will result in an exception.
+ @param buffer The buffer containing application data to encrypt
+ @param offset The offset at which to begin reading data
+ @param length The number of bytes of data to read
+ @throws IOException If an error occurs encrypting the data, or the handshake is not complete
+
+
+ Gets the amount of encrypted data available to be sent. A call to
+ {@link #readOutput(byte[], int, int)} is guaranteed to be able to return at
+ least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available encrypted data
+
+
+ Retrieves encrypted data to be sent. Use {@link #getAvailableOutputBytes()} to check
+ how much encrypted data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the encrypted data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Closes this connection.
+
+ @throws IOException If something goes wrong during closing.
+
+
+ Make sure the InputStream 'buf' now empty. Fail otherwise.
+
+ @param buf The InputStream to check.
+ @throws IOException If 'buf' is not empty.
+
+
+ 'sender' only relevant to SSLv3
+
+
+ Both streams can be the same object
+
+
+ (D)TLS PSK key exchange (RFC 4279).
+
+
+ (D)TLS and SSLv3 RSA key exchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A (Int32 -> byte[]). Will never be null.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the (optional) table of server extensions to be included in (extended) server hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+ A (). May be null.
+
+
+
+
+
+
+
+
+ This method will be called (only) if the server included an extension of type
+ "status_request" with empty "extension_data" in the extended server hello. See RFC 3546
+ 3.6. Certificate Status Request. If a non-null is returned, it
+ is sent to the client as a handshake message of type "certificate_status".
+
+ A to be sent to the client (or null for none).
+
+
+
+
+
+
+
+
+
+ ()
+
+
+
+
+ Called by the protocol handler to report the client certificate, only if GetCertificateRequest
+ returned non-null.
+
+ Note: this method is responsible for certificate verification and validation.
+ the effective client certificate (may be an empty chain).
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message.
+
+ This method will be called (only) if a NewSessionTicket extension was sent by the server. See
+ RFC 5077 4. Recommended Ticket Construction for recommended format and protection.
+
+ The ticket)
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Receives a TLS handshake in the role of server.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#notifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsServer
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+
+
+
+ Check whether the given SRP group parameters are acceptable for use.
+
+ @param group the {@link SRP6GroupParameters} to check
+ @return true if (and only if) the specified group parameters are acceptable
+
+
+ Lookup the {@link TlsSRPLoginParameters} corresponding to the specified identity.
+
+ NOTE: To avoid "identity probing", unknown identities SHOULD be handled as recommended in RFC
+ 5054 2.5.1.3. {@link SimulatedTlsSRPIdentityManager} is provided for this purpose.
+
+ @param identity
+ the SRP identity sent by the connecting client
+ @return the {@link TlsSRPLoginParameters} for the specified identity, or else 'simulated'
+ parameters if the identity is not recognized. A null value is also allowed, but not
+ recommended.
+
+
+ (D)TLS SRP key exchange (RFC 5054).
+
+
+ RFC 5764 DTLS Extension to Establish Keys for SRTP.
+
+
+
+
+
+
+
+
+
+
+
+ Some helper functions for MicroTLS.
+
+
+ Add a 'signature_algorithms' extension to existing extensions.
+
+ @param extensions A {@link Hashtable} to add the extension to.
+ @param supportedSignatureAlgorithms {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ Get a 'signature_algorithms' extension from extensions.
+
+ @param extensions A {@link Hashtable} to get the extension from, if it is present.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}, or null.
+ @throws IOException
+
+
+ Create a 'signature_algorithms' extension value.
+
+ @param supportedSignatureAlgorithms A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @return A byte array suitable for use as an extension value.
+ @throws IOException
+
+
+ Read 'signature_algorithms' extension data.
+
+ @param extensionData The extension data.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ RFC 6066 5.
+
+
+ Encode this {@link UrlAndHash} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link UrlAndHash} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link UrlAndHash} object.
+ @throws IOException
+
+
+ RFC 4681
+
+
+ RFC 5764 4.1.1
+
+
+ @param protectionProfiles see {@link SrtpProtectionProfile} for valid constants.
+ @param mki valid lengths from 0 to 255.
+
+
+ @return see {@link SrtpProtectionProfile} for valid constants.
+
+
+ @return valid lengths from 0 to 255.
+
+
+ return a = a + b - b preserved.
+
+
+ unsigned comparison on two arrays - note the arrays may
+ start with leading zeros.
+
+
+ return z = x / y - done in place (z value preserved, x contains the
+ remainder)
+
+
+ return whether or not a BigInteger is probably prime with a
+ probability of 1 - (1/2)**certainty.
+ From Knuth Vol 2, pg 395.
+
+
+ Calculate the numbers u1, u2, and u3 such that:
+
+ u1 * a + u2 * b = u3
+
+ where u3 is the greatest common divider of a and b.
+ a and b using the extended Euclid algorithm (refer p. 323
+ of The Art of Computer Programming vol 2, 2nd ed).
+ This also seems to have the side effect of calculating
+ some form of multiplicative inverse.
+
+ @param a First number to calculate gcd for
+ @param b Second number to calculate gcd for
+ @param u1Out the return object for the u1 value
+ @return The greatest common divisor of a and b
+
+
+ return w with w = x * x - w is assumed to have enough space.
+
+
+ return x with x = y * z - x is assumed to have enough space.
+
+
+ Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size)
+
+
+ Montgomery multiplication: a = x * y * R^(-1) mod m
+
+ Based algorithm 14.36 of Handbook of Applied Cryptography.
+
+ m, x, y should have length n
+ a should have length (n + 1)
+ b = 2^32, R = b^n
+
+ The result is put in x
+
+ NOTE: the indices of x, y, m, a different in HAC and in Java
+
+
+ return x = x % y - done in place (y value preserved)
+
+
+ do a left shift - this returns a new array.
+
+
+ do a right shift - this does it in place.
+
+
+ do a right shift by one - this does it in place.
+
+
+ returns x = x - y - we assume x is >= y
+
+
+ Class representing a simple version of a big decimal. A
+ SimpleBigDecimal is basically a
+ {@link java.math.BigInteger BigInteger} with a few digits on the right of
+ the decimal point. The number of (binary) digits on the right of the decimal
+ point is called the scale of the SimpleBigDecimal.
+ Unlike in {@link java.math.BigDecimal BigDecimal}, the scale is not adjusted
+ automatically, but must be set manually. All SimpleBigDecimals
+ taking part in the same arithmetic operation must have equal scale. The
+ result of a multiplication of two SimpleBigDecimals returns a
+ SimpleBigDecimal with double scale.
+
+
+ Returns a SimpleBigDecimal representing the same numerical
+ value as value.
+ @param value The value of the SimpleBigDecimal to be
+ created.
+ @param scale The scale of the SimpleBigDecimal to be
+ created.
+ @return The such created SimpleBigDecimal.
+
+
+ Constructor for SimpleBigDecimal. The value of the
+ constructed SimpleBigDecimal Equals bigInt /
+ 2scale.
+ @param bigInt The bigInt value parameter.
+ @param scale The scale of the constructed SimpleBigDecimal.
+
+
+ Class holding methods for point multiplication based on the window
+ τ-adic nonadjacent form (WTNAF). The algorithms are based on the
+ paper "Improved Algorithms for Arithmetic on Anomalous Binary Curves"
+ by Jerome A. Solinas. The paper first appeared in the Proceedings of
+ Crypto 1997.
+
+
+ The window width of WTNAF. The standard value of 4 is slightly less
+ than optimal for running time, but keeps space requirements for
+ precomputation low. For typical curves, a value of 5 or 6 results in
+ a better running time. When changing this value, the
+ αu's must be computed differently, see
+ e.g. "Guide to Elliptic Curve Cryptography", Darrel Hankerson,
+ Alfred Menezes, Scott Vanstone, Springer-Verlag New York Inc., 2004,
+ p. 121-122
+
+
+ 24
+
+
+ The αu's for a=0 as an array
+ of ZTauElements.
+
+
+ The αu's for a=0 as an array
+ of TNAFs.
+
+
+ The αu's for a=1 as an array
+ of ZTauElements.
+
+
+ The αu's for a=1 as an array
+ of TNAFs.
+
+
+ Computes the norm of an element λ of
+ Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The norm of λ.
+
+
+ Computes the norm of an element λ of
+ R[τ], where λ = u + vτ
+ and u and u are real numbers (elements of
+ R).
+ @param mu The parameter μ of the elliptic curve.
+ @param u The real part of the element λ of
+ R[τ].
+ @param v The τ-adic part of the element
+ λ of R[τ].
+ @return The norm of λ.
+
+
+ Rounds an element λ of R[τ]
+ to an element of Z[τ], such that their difference
+ has minimal norm. λ is given as
+ λ = λ0 + λ1τ.
+ @param lambda0 The component λ0.
+ @param lambda1 The component λ1.
+ @param mu The parameter μ of the elliptic curve. Must
+ equal 1 or -1.
+ @return The rounded element of Z[τ].
+ @throws ArgumentException if lambda0 and
+ lambda1 do not have same scale.
+
+
+ Approximate division by n. For an integer
+ k, the value λ = s k / n is
+ computed to c bits of accuracy.
+ @param k The parameter k.
+ @param s The curve parameter s0 or
+ s1.
+ @param vm The Lucas Sequence element Vm.
+ @param a The parameter a of the elliptic curve.
+ @param m The bit length of the finite field
+ Fm.
+ @param c The number of bits of accuracy, i.e. the scale of the returned
+ SimpleBigDecimal.
+ @return The value λ = s k / n computed to
+ c bits of accuracy.
+
+
+ Computes the τ-adic NAF (non-adjacent form) of an
+ element λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The τ-adic NAF of λ.
+
+
+ Applies the operation τ() to an
+ AbstractF2mPoint.
+ @param p The AbstractF2mPoint to which τ() is applied.
+ @return τ(p)
+
+
+ Returns the parameter μ of the elliptic curve.
+ @param curve The elliptic curve from which to obtain μ.
+ The curve must be a Koblitz curve, i.e. a Equals
+ 0 or 1 and b Equals
+ 1.
+ @return μ of the elliptic curve.
+ @throws ArgumentException if the given ECCurve is not a Koblitz
+ curve.
+
+
+ Calculates the Lucas Sequence elements Uk-1 and
+ Uk or Vk-1 and
+ Vk.
+ @param mu The parameter μ of the elliptic curve.
+ @param k The index of the second element of the Lucas Sequence to be
+ returned.
+ @param doV If set to true, computes Vk-1 and
+ Vk, otherwise Uk-1 and
+ Uk.
+ @return An array with 2 elements, containing Uk-1
+ and Uk or Vk-1
+ and Vk.
+
+
+ Computes the auxiliary value tw. If the width is
+ 4, then for mu = 1, tw = 6 and for
+ mu = -1, tw = 10
+ @param mu The parameter μ of the elliptic curve.
+ @param w The window width of the WTNAF.
+ @return the auxiliary value tw
+
+
+ Computes the auxiliary values s0 and
+ s1 used for partial modular reduction.
+ @param curve The elliptic curve for which to compute
+ s0 and s1.
+ @throws ArgumentException if curve is not a
+ Koblitz curve (Anomalous Binary Curve, ABC).
+
+
+ Partial modular reduction modulo
+ (τm - 1)/(τ - 1).
+ @param k The integer to be reduced.
+ @param m The bitlength of the underlying finite field.
+ @param a The parameter a of the elliptic curve.
+ @param s The auxiliary values s0 and
+ s1.
+ @param mu The parameter μ of the elliptic curve.
+ @param c The precision (number of bits of accuracy) of the partial
+ modular reduction.
+ @return ρ := k partmod (τm - 1)/(τ - 1)
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by a BigInteger using the reduced τ-adic
+ NAF (RTNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param k The BigInteger by which to Multiply p.
+ @return k * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param lambda The element λ of
+ Z[τ].
+ @return λ * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method, given the TNAF
+ of λ.
+ @param p The AbstractF2mPoint to Multiply.
+ @param u The the TNAF of λ..
+ @return λ * p
+
+
+ Computes the [τ]-adic window NAF of an element
+ λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @param width The window width of the resulting WNAF.
+ @param pow2w 2width.
+ @param tw The auxiliary value tw.
+ @param alpha The αu's for the window width.
+ @return The [τ]-adic window NAF of
+ λ.
+
+
+ Does the precomputation for WTNAF multiplication.
+ @param p The ECPoint for which to do the precomputation.
+ @param a The parameter a of the elliptic curve.
+ @return The precomputation array for p.
+
+
+ Class representing an element of Z[τ]. Let
+ λ be an element of Z[τ]. Then
+ λ is given as λ = u + vτ. The
+ components u and v may be used directly, there
+ are no accessor methods.
+ Immutable class.
+
+
+ The "real" part of λ.
+
+
+ The "τ-adic" part of λ.
+
+
+ Constructor for an element λ of
+ Z[τ].
+ @param u The "real" part of λ.
+ @param v The "τ-adic" part of
+ λ.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(boolean)}
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ Simple shift-and-add multiplication. Serves as reference implementation
+ to verify (possibly faster) implementations, and for very small scalars.
+
+ @param p
+ The point to multiply.
+ @param k
+ The multiplier.
+ @return The result of the point multiplication kP.
+
+
+ Base class for an elliptic curve.
+
+
+ Adds PreCompInfo for a point on this curve, under a given name. Used by
+ ECMultipliers to save the precomputation for this ECPoint for use
+ by subsequent multiplication.
+
+ @param point
+ The ECPoint to store precomputations for.
+ @param name
+ A String used to index precomputations of different types.
+ @param preCompInfo
+ The values precomputed by the ECMultiplier.
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately.
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately. An (optional) z-scaling factor can be applied; effectively
+ each z coordinate is scaled by this value prior to normalization (but only one
+ actual multiplication is needed).
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+ @param off
+ The start of the range of points to normalize
+ @param len
+ The length of the range of points to normalize
+ @param iso
+ The (optional) z-scaling factor - can be null
+
+
+ Sets the default ECMultiplier, unless already set.
+
+
+ Decode a point on this curve from its ASN.1 encoding. The different
+ encodings are taken account of, including point compression for
+ Fp (X9.62 s 4.2.1 pg 17).
+ @return The decoded point.
+
+
+ Elliptic curve over Fp
+
+
+ The auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Solves a quadratic equation z2 + z = beta(X9.62
+ D.1.6) The other solution is z + 1.
+
+ @param beta
+ The value to solve the qradratic equation for.
+ @return the solution for z2 + z = beta or
+ null if no solution exists.
+
+
+ @return the auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Returns true if this is a Koblitz curve (ABC curve).
+ @return true if this is a Koblitz curve (ABC curve), false otherwise
+
+
+ Elliptic curves over F2m. The Weierstrass equation is given by
+ y2 + xy = x3 + ax2 + b.
+
+
+ The exponent m of F2m.
+
+
+ TPB: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ PPB: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ The point at infinity on this curve.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Return true if curve uses a Trinomial basis.
+
+ @return true if curve Trinomial, false otherwise.
+
+
+ return the field name for this field.
+
+ @return the string "Fp".
+
+
+ return a sqrt root - the routine verifies that the calculation
+ returns the right value - if none exists it returns null.
+
+
+ Class representing the Elements of the finite field
+ F2m in polynomial basis (PB)
+ representation. Both trinomial (Tpb) and pentanomial (Ppb) polynomial
+ basis representations are supported. Gaussian normal basis (GNB)
+ representation is not supported.
+
+
+ Indicates gaussian normal basis representation (GNB). Number chosen
+ according to X9.62. GNB is not implemented at present.
+
+
+ Indicates trinomial basis representation (Tpb). Number chosen
+ according to X9.62.
+
+
+ Indicates pentanomial basis representation (Ppb). Number chosen
+ according to X9.62.
+
+
+ Tpb or Ppb.
+
+
+ The exponent m of F2m.
+
+
+ The LongArray holding the bits.
+
+
+ Constructor for Ppb.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Constructor for Tpb.
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Checks, if the ECFieldElements a and b
+ are elements of the same field F2m
+ (having the same representation).
+ @param a field element.
+ @param b field element to be compared.
+ @throws ArgumentException if a and b
+ are not elements of the same field
+ F2m (having the same
+ representation).
+
+
+ @return the representation of the field
+ F2m, either of
+ {@link F2mFieldElement.Tpb} (trinomial
+ basis representation) or
+ {@link F2mFieldElement.Ppb} (pentanomial
+ basis representation).
+
+
+ @return the degree m of the reduction polynomial
+ f(z).
+
+
+ @return Tpb: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ Ppb: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always returns 0
+ Ppb: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always set to 0
+ Ppb: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ base class for points on elliptic curves.
+
+
+ Normalizes this point, and then returns the affine x-coordinate.
+
+ Note: normalization can be expensive, this method is deprecated in favour
+ of caller-controlled normalization.
+
+
+ Normalizes this point, and then returns the affine y-coordinate.
+
+ Note: normalization can be expensive, this method is deprecated in favour
+ of caller-controlled normalization.
+
+
+ Returns the affine x-coordinate after checking that this point is normalized.
+
+ @return The affine x-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the affine y-coordinate after checking that this point is normalized
+
+ @return The affine y-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the x-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineXCoord if you expect the point to already have been normalized.
+
+ @return the x-coordinate of this point
+
+
+ Returns the y-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineYCoord if you expect the point to already have been normalized.
+
+ @return the y-coordinate of this point
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system.
+
+ @return a new ECPoint instance representing the same point, but with normalized coordinates
+
+
+ return the field element encoded with point compression. (S 4.3.6)
+
+
+ Multiplies this ECPoint by the given number.
+ @param k The multiplicator.
+ @return k * this.
+
+
+ Elliptic curve points over Fp
+
+
+ Create a point which encodes without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+
+ Create a point that encodes with or without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+
+ Elliptic curve points over F2m
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+ @param withCompression true if encode with point compression.
+
+
+ Constructor for point at infinity
+
+
+ Joye's double-add algorithm.
+
+
+ Interface for classes encapsulating a point multiplication algorithm
+ for ECPoints.
+
+
+ Multiplies the ECPoint p by k, i.e.
+ p is added k times to itself.
+ @param p The ECPoint to be multiplied.
+ @param k The factor by which p is multiplied.
+ @return p multiplied by k.
+
+
+ Class holding precomputation data for fixed-point multiplications.
+
+
+ Array holding the precomputed ECPoints used for a fixed
+ point multiplication.
+
+
+ The width used for the precomputation. If a larger width precomputation
+ is already available this may be larger than was requested, so calling
+ code should refer to the actual width.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left) using
+ mixed coordinates.
+
+
+ By default, addition will be done in Jacobian coordinates, and doubling will be done in
+ Modified Jacobian coordinates (independent of the original coordinate system of each point).
+
+
+ Montgomery ladder.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (left-to-right).
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left).
+
+
+ Interface for classes storing precomputation data for multiplication
+ algorithms. Used as a Memento (see GOF patterns) for
+ WNafMultiplier.
+
+
+ Class implementing the WNAF (Window Non-Adjacent Form) multiplication
+ algorithm.
+
+
+ Multiplies this by an integer k using the
+ Window NAF method.
+ @param k The integer by which this is multiplied.
+ @return A new ECPoint which equals this
+ multiplied by k.
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Class holding precomputation data for the WNAF (Window Non-Adjacent Form)
+ algorithm.
+
+
+ Array holding the precomputed ECPoints used for a Window
+ NAF multiplication.
+
+
+ Array holding the negations of the precomputed ECPoints used
+ for a Window NAF multiplication.
+
+
+ Holds an ECPoint representing Twice(this). Used for the
+ Window NAF multiplication to create or extend the precomputed values.
+
+
+ Computes the Window NAF (non-adjacent Form) of an integer.
+ @param width The width w of the Window NAF. The width is
+ defined as the minimal number w, such that for any
+ w consecutive digits in the resulting representation, at
+ most one is non-zero.
+ @param k The integer of which the Window NAF is computed.
+ @return The Window NAF of the given width, such that the following holds:
+ k = ∑i=0l-1 ki2i
+ , where the ki denote the elements of the
+ returned byte[].
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @return the window size to use
+
+
+ Class implementing the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by k using the reduced τ-adic NAF (RTNAF)
+ method.
+ @param p The AbstractF2mPoint to multiply.
+ @param k The integer by which to multiply k.
+ @return p multiplied by k.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ] using
+ the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to multiply.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @return p multiplied by λ.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the window τ-adic NAF (TNAF) method, given the
+ WTNAF of λ.
+ @param p The AbstractF2mPoint to multiply.
+ @param u The the WTNAF of λ..
+ @return λ * p
+
+
+ Class holding precomputation data for the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Array holding the precomputed AbstractF2mPoints used for the
+ WTNAF multiplication in
+ {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
+ WTauNafMultiplier.multiply()}.
+
+
+ 'Zeroless' Signed Digit Left-to-Right.
+
+
+ 'Zeroless' Signed Digit Right-to-Left.
+
+
+ Utility methods for generating primes and testing for primality.
+
+
+ Used to return the output from the
+ {@linkplain Primes#enhancedMRProbablePrimeTest(BigInteger, SecureRandom, int) Enhanced
+ Miller-Rabin Probabilistic Primality Test}
+
+
+ Used to return the output from the {@linkplain Primes#generateSTRandomPrime(Digest, int, byte[]) Shawe-Taylor Random_Prime Routine}
+
+
+ FIPS 186-4 C.6 Shawe-Taylor Random_Prime Routine
+
+ Construct a provable prime number using a hash function.
+
+ @param hash
+ the {@link Digest} instance to use (as "Hash()"). Cannot be null.
+ @param length
+ the length (in bits) of the prime to be generated. Must be at least 2.
+ @param inputSeed
+ the seed to be used for the generation of the requested prime. Cannot be null or
+ empty.
+ @return an {@link STOutput} instance containing the requested prime.
+
+
+ FIPS 186-4 C.3.2 Enhanced Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases. This is an
+ alternative to {@link #isMRProbablePrime(BigInteger, SecureRandom, int)} that provides more
+ information about a composite candidate, which may be useful when generating or validating
+ RSA moduli.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return an {@link MROutput} instance that can be further queried for details.
+
+
+ A fast check for small divisors, up to some implementation-specific limit.
+
+ @param candidate
+ the {@link BigInteger} instance to test for division by small factors.
+
+ @return true if the candidate is found to have any small factors,
+ false otherwise.
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return false if any witness to compositeness is found amongst the chosen bases
+ (so candidate is definitely NOT prime), or else true
+ (indicating primality with some probability dependent on the number of iterations
+ that were performed).
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test (to a fixed base).
+
+ Run a single iteration of the Miller-Rabin algorithm against the specified base.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param baseValue
+ the base value to use for this iteration.
+ @return false if the specified base is a witness to compositeness (so
+ candidate is definitely NOT prime), or else true.
+
+
+
+
+ BasicOcspResponse ::= SEQUENCE {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL
+ }
+
+
+
+
+ The DER encoding of the tbsResponseData field.
+ In the event of an encoding error.
+
+
+ The certificates, if any, associated with the response.
+ In the event of an encoding error.
+
+
+
+ Verify the signature against the tbsResponseData object we contain.
+
+
+
+ The ASN.1 encoded representation of this object.
+
+
+ Generator for basic OCSP response objects.
+
+
+ basic constructor
+
+
+ construct with the responderID to be the SHA-1 keyHash of the passed in public key.
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param thisUpdate date this response was valid on
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Set the extensions for the response.
+
+ @param responseExtensions the extension object to carry.
+
+
+
+ Generate the signed response using the passed in signature calculator.
+
+ Implementation of signing calculator factory.
+ The certificate chain associated with the response signer.
+ "produced at" date.
+
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ create from an issuer certificate and the serial number of the
+ certificate it signed.
+ @exception OcspException if any problems occur creating the id fields.
+
+
+ return the serial number for the certificate associated
+ with this request.
+
+
+ Create a new CertificateID for a new serial number derived from a previous one
+ calculated for the same CA certificate.
+
+ @param original the previously calculated CertificateID for the CA.
+ @param newSerialNumber the serial number for the new certificate of interest.
+
+ @return a new CertificateID for newSerialNumber
+
+
+
+ OcspRequest ::= SEQUENCE {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+ TBSRequest ::= SEQUENCE {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList SEQUENCE OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+ Signature ::= SEQUENCE {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL}
+
+ Version ::= INTEGER { v1(0) }
+
+ Request ::= SEQUENCE {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+ CertID ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ Return the DER encoding of the tbsRequest field.
+ @return DER encoding of tbsRequest
+ @throws OcspException in the event of an encoding error.
+
+
+ return the object identifier representing the signature algorithm
+
+
+ If the request is signed return a possibly empty CertStore containing the certificates in the
+ request. If the request is not signed the method returns null.
+
+ @return null if not signed, a CertStore otherwise
+ @throws OcspException
+
+
+ Return whether or not this request is signed.
+
+ @return true if signed false otherwise.
+
+
+ Verify the signature against the TBSRequest object we contain.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Add a request for the given CertificateID.
+
+ @param certId certificate ID of interest
+
+
+ Add a request with extensions
+
+ @param certId certificate ID of interest
+ @param singleRequestExtensions the extensions to attach to the request
+
+
+ Set the requestor name to the passed in X509Principal
+
+ @param requestorName a X509Principal representing the requestor name.
+
+
+ Generate an unsigned request
+
+ @return the OcspReq
+ @throws OcspException
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ base generator for an OCSP response - at the moment this only supports the
+ generation of responses containing BasicOCSP responses.
+
+
+ note 4 is not used.
+
+
+ Carrier for a ResponderID.
+
+
+ wrapper for the RevokedInfo object
+
+
+ return the revocation reason. Note: this field is optional, test for it
+ with hasRevocationReason() first.
+ @exception InvalidOperationException if a reason is asked for and none is avaliable
+
+
+ Return the status object for the response - null indicates good.
+
+ @return the status object for the response, null if it is good.
+
+
+ return the NextUpdate value - note: this is an optional field so may
+ be returned as null.
+
+ @return nextUpdate, or null if not present.
+
+
+ wrapper for the UnknownInfo object
+
+
+
+ Utility class for creating IBasicAgreement objects from their names/Oids
+
+
+
+
+ Cipher Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Utility class for creating IDigest objects from their names/Oids
+
+
+
+
+ Returns a ObjectIdentifier for a given digest mechanism.
+
+ A string representation of the digest meanism.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Utility class for creating HMac object from their names/Oids
+
+
+
+
+
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Create and auto-seed an instance based on the given algorithm.
+
+ Equivalent to GetInstance(algorithm, true)
+ e.g. "SHA256PRNG"
+
+
+
+ Create an instance based on the given algorithm, with optional auto-seeding
+
+ e.g. "SHA256PRNG"
+ If true, the instance will be auto-seeded.
+
+
+
+ To replicate existing predictable output, replace with GetInstance("SHA1PRNG", false), followed by SetSeed(seed)
+
+
+
+ Use the specified instance of IRandomGenerator as random source.
+
+ This constructor performs no seeding of either the IRandomGenerator or the
+ constructed SecureRandom. It is the responsibility of the client to provide
+ proper seed material as necessary/appropriate for the given IRandomGenerator
+ implementation.
+
+ The source to generate all random bytes from.
+
+
+ base constructor.
+
+
+ create a SecurityUtilityException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Signer Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns an ObjectIdentifier for a given encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the OID is not available.
+
+
+
+ Utility class for creating IWrapper objects from their names/Oids
+
+
+
+ PEM generator for the original set of PEM objects used in Open SSL.
+
+
+ Class for reading OpenSSL PEM encoded streams containing
+ X509 certificates, PKCS8 encoded keys and PKCS7 objects.
+
+ In the case of PKCS7 objects the reader will return a CMS ContentInfo object. Keys and
+ Certificates will be returned using the appropriate java.security type.
+
+
+ Create a new PemReader
+
+ @param reader the Reader
+
+
+ Create a new PemReader with a password finder
+
+ @param reader the Reader
+ @param pFinder the password finder
+
+
+ Reads in a X509Certificate.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509CRL.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS10 certification request.
+
+ @return the certificate request.
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509 Attribute Certificate.
+
+ @return the X509 Attribute Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS7 object. This returns a ContentInfo object suitable for use with the CMS
+ API.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Read a Key Pair
+
+
+ General purpose writer for OpenSSL PEM objects.
+
+
+ The TextWriter object to write the output to.
+
+
+ Constructor for an unencrypted private key PEM object.
+
+ @param key private key to be encoded.
+
+
+ Constructor for an encrypted private key PEM object.
+
+ @param key private key to be encoded
+ @param algorithm encryption algorithm to use
+ @param provider provider to use
+ @throws NoSuchAlgorithmException if algorithm/mode cannot be found
+
+
+
+ A class for verifying and creating Pkcs10 Certification requests.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ The factory for signature calculators to sign the PKCS#10 request with.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Get the public key.
+
+ The public key.
+
+
+
+ Verify Pkcs10 Cert Request is valid.
+
+ true = valid.
+
+
+
+ A class for creating and verifying Pkcs10 Certification requests (this is an extension on ).
+ The requests are made using delay signing. This is useful for situations where
+ the private key is in another environment and not directly accessible (e.g. HSM)
+ So the first step creates the request, then the signing is done outside this
+ object and the signature is then used to complete the request.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+ After the object is constructed use the and finally the
+ SignRequest methods to finalize the request.
+
+
+
+ simply return the cert entry for the private key
+
+
+ Utility class for reencoding PKCS#12 files to definite length.
+
+
+ Just re-encode the outer layer of the PKCS#12 file to definite length encoding.
+
+ @param berPKCS12File - original PKCS#12 file
+ @return a byte array representing the DER encoding of the PFX structure
+ @throws IOException
+
+
+ Re-encode the PKCS#12 structure to definite length encoding at the inner layer
+ as well, recomputing the MAC accordingly.
+
+ @param berPKCS12File - original PKCS12 file.
+ @param provider - provider to use for MAC calculation.
+ @return a byte array representing the DER encoding of the PFX structure.
+ @throws IOException on parsing, encoding errors.
+
+
+
+ Returns the revocationDate.
+
+
+
+
+ Returns the certStatus.
+
+
+
+ Returns an immutable Set of X.509 attribute certificate
+ extensions that this PkixAttrCertChecker supports or
+ null if no extensions are supported.
+
+ Each element of the set is a String representing the
+ Object Identifier (OID) of the X.509 extension that is supported.
+
+
+ All X.509 attribute certificate extensions that a
+ PkixAttrCertChecker might possibly be able to process
+ should be included in the set.
+
+
+ @return an immutable Set of X.509 extension OIDs (in
+ String format) supported by this
+ PkixAttrCertChecker, or null if no
+ extensions are supported
+
+
+ Performs checks on the specified attribute certificate. Every handled
+ extension is rmeoved from the unresolvedCritExts
+ collection.
+
+ @param attrCert The attribute certificate to be checked.
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param holderCertPath The certificate path which belongs to the holder
+ certificate.
+ @param unresolvedCritExts a Collection of OID strings
+ representing the current set of unresolved critical extensions
+ @throws CertPathValidatorException if the specified attribute certificate
+ does not pass the check.
+
+
+ Returns a clone of this object.
+
+ @return a copy of this PkixAttrCertChecker
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ CertPathValidatorSpi implementation for X.509 Attribute Certificates la RFC 3281.
+
+ @see org.bouncycastle.x509.ExtendedPkixParameters
+
+
+ Validates an attribute certificate with the given certificate path.
+
+
+ params must be an instance of
+ ExtendedPkixParameters.
+
+ The target constraints in the params must be an
+ X509AttrCertStoreSelector with at least the attribute
+ certificate criterion set. Obey that also target informations may be
+ necessary to correctly validate this attribute certificate.
+
+ The attribute certificate issuer must be added to the trusted attribute
+ issuers with {@link ExtendedPkixParameters#setTrustedACIssuers(Set)}.
+
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param params The PKIX parameters.
+ @return A PKIXCertPathValidatorResult of the result of
+ validating the certPath.
+ @throws InvalidAlgorithmParameterException if params is
+ inappropriate for this validator.
+ @throws CertPathValidatorException if the verification fails.
+
+
+
+ Summary description for PkixBuilderParameters.
+
+
+
+ Returns an instance of PkixBuilderParameters.
+
+ This method can be used to get a copy from other
+ PKIXBuilderParameters, PKIXParameters,
+ and ExtendedPKIXParameters instances.
+
+
+ @param pkixParams The PKIX parameters to create a copy of.
+ @return An PkixBuilderParameters instance.
+
+
+
+ Excluded certificates are not used for building a certification path.
+
+ the excluded certificates.
+
+
+
+ Sets the excluded certificates which are not used for building a
+ certification path. If the ISet is null an
+ empty set is assumed.
+
+
+ The given set is cloned to protect it against subsequent modifications.
+
+ The excluded certificates to set.
+
+
+ Can alse handle ExtendedPKIXBuilderParameters and
+ PKIXBuilderParameters.
+
+ @param params Parameters to set.
+ @see org.bouncycastle.x509.ExtendedPKIXParameters#setParams(java.security.cert.PKIXParameters)
+
+
+ Makes a copy of this PKIXParameters object. Changes to the
+ copy will not affect the original and vice versa.
+
+ @return a copy of this PKIXParameters object
+
+
+ An immutable sequence of certificates (a certification path).
+
+ This is an abstract class that defines the methods common to all CertPaths.
+ Subclasses can handle different kinds of certificates (X.509, PGP, etc.).
+
+ All CertPath objects have a type, a list of Certificates, and one or more
+ supported encodings. Because the CertPath class is immutable, a CertPath
+ cannot change in any externally visible way after being constructed. This
+ stipulation applies to all public fields and methods of this class and any
+ added or overridden by subclasses.
+
+ The type is a string that identifies the type of Certificates in the
+ certification path. For each certificate cert in a certification path
+ certPath, cert.getType().equals(certPath.getType()) must be true.
+
+ The list of Certificates is an ordered List of zero or more Certificates.
+ This List and all of the Certificates contained in it must be immutable.
+
+ Each CertPath object must support one or more encodings so that the object
+ can be translated into a byte array for storage or transmission to other
+ parties. Preferably, these encodings should be well-documented standards
+ (such as PKCS#7). One of the encodings supported by a CertPath is considered
+ the default encoding. This encoding is used if no encoding is explicitly
+ requested (for the {@link #getEncoded()} method, for instance).
+
+ All CertPath objects are also Serializable. CertPath objects are resolved
+ into an alternate {@link CertPathRep} object during serialization. This
+ allows a CertPath object to be serialized into an equivalent representation
+ regardless of its underlying implementation.
+
+ CertPath objects can be created with a CertificateFactory or they can be
+ returned by other classes, such as a CertPathBuilder.
+
+ By convention, X.509 CertPaths (consisting of X509Certificates), are ordered
+ starting with the target certificate and ending with a certificate issued by
+ the trust anchor. That is, the issuer of one certificate is the subject of
+ the following one. The certificate representing the
+ {@link TrustAnchor TrustAnchor} should not be included in the certification
+ path. Unvalidated X.509 CertPaths may not follow these conventions. PKIX
+ CertPathValidators will detect any departure from these conventions that
+ cause the certification path to be invalid and throw a
+ CertPathValidatorException.
+
+ Concurrent Access
+
+ All CertPath objects must be thread-safe. That is, multiple threads may
+ concurrently invoke the methods defined in this class on a single CertPath
+ object (or more than one) with no ill effects. This is also true for the List
+ returned by CertPath.getCertificates.
+
+ Requiring CertPath objects to be immutable and thread-safe allows them to be
+ passed around to various pieces of code without worrying about coordinating
+ access. Providing this thread-safety is generally not difficult, since the
+ CertPath and List objects in question are immutable.
+
+ @see CertificateFactory
+ @see CertPathBuilder
+
+ CertPath implementation for X.509 certificates.
+
+
+
+ @param certs
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Returns an iteration of the encodings supported by this
+ certification path, with the default encoding
+ first. Attempts to modify the returned Iterator via its
+ remove method result in an UnsupportedOperationException.
+
+ @return an Iterator over the names of the supported encodings (as Strings)
+
+
+
+ Compares this certification path for equality with the specified object.
+ Two CertPaths are equal if and only if their types are equal and their
+ certificate Lists (and by implication the Certificates in those Lists)
+ are equal. A CertPath is never equal to an object that is not a CertPath.
+
+ This algorithm is implemented by this method. If it is overridden, the
+ behavior specified here must be maintained.
+
+ @param other
+ the object to test for equality with this certification path
+
+ @return true if the specified object is equal to this certification path,
+ false otherwise
+
+ @see Object#hashCode() Object.hashCode()
+
+
+ Returns the encoded form of this certification path, using
+ the default encoding.
+
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error occurs
+
+
+
+ Returns the encoded form of this certification path, using
+ the specified encoding.
+
+ @param encoding the name of the encoding to use
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error
+ occurs or the encoding requested is not supported
+
+
+
+
+ Returns the list of certificates in this certification
+ path.
+
+
+
+ Return a DERObject containing the encoded certificate.
+
+ @param cert the X509Certificate object to be encoded
+
+ @return the DERObject
+
+
+
+ Implements the PKIX CertPathBuilding algorithm for BouncyCastle.
+
+ @see CertPathBuilderSpi
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+
+ Summary description for PkixCertPathBuilderException.
+
+
+
+
+ Summary description for PkixCertPathBuilderResult.
+
+
+
+ * Initializes the internal state of this PKIXCertPathChecker.
+ *
+ * The forward flag specifies the order that certificates
+ * will be passed to the {@link #check check} method (forward or reverse). A
+ * PKIXCertPathChecker must support reverse checking
+ * and may support forward checking.
+ *
+ *
+ * @param forward
+ * the order that certificates are presented to the
+ * check method. If true,
+ * certificates are presented from target to most-trusted CA
+ * (forward); if false, from most-trusted CA to
+ * target (reverse).
+ * @exception CertPathValidatorException
+ * if this PKIXCertPathChecker is unable to
+ * check certificates in the specified order; it should never
+ * be thrown if the forward flag is false since reverse
+ * checking must be supported
+
+
+ Indicates if forward checking is supported. Forward checking refers to
+ the ability of the PKIXCertPathChecker to perform its
+ checks when certificates are presented to the check method
+ in the forward direction (from target to most-trusted CA).
+
+ @return true if forward checking is supported,
+ false otherwise
+
+
+ * Returns an immutable Set of X.509 certificate extensions
+ * that this PKIXCertPathChecker supports (i.e. recognizes,
+ * is able to process), or null if no extensions are
+ * supported.
+ *
+ * Each element of the set is a String representing the
+ * Object Identifier (OID) of the X.509 extension that is supported. The OID
+ * is represented by a set of nonnegative integers separated by periods.
+ *
+ * All X.509 certificate extensions that a PKIXCertPathChecker
+ * might possibly be able to process should be included in the set.
+ *
+ *
+ * @return an immutable Set of X.509 extension OIDs (in
+ * String format) supported by this
+ * PKIXCertPathChecker, or null if no
+ * extensions are supported
+
+
+ Performs the check(s) on the specified certificate using its internal
+ state and removes any critical extensions that it processes from the
+ specified collection of OID strings that represent the unresolved
+ critical extensions. The certificates are presented in the order
+ specified by the init method.
+
+ @param cert
+ the Certificate to be checked
+ @param unresolvedCritExts
+ a Collection of OID strings representing the
+ current set of unresolved critical extensions
+ @exception CertPathValidatorException
+ if the specified certificate does not pass the check
+
+
+ Returns a clone of this object. Calls the Object.clone()
+ method. All subclasses which maintain state must support and override
+ this method, if necessary.
+
+ @return a copy of this PKIXCertPathChecker
+
+
+ The Service Provider Interface (SPI)
+ for the {@link CertPathValidator CertPathValidator} class. All
+ CertPathValidator implementations must include a class (the
+ SPI class) that extends this class (CertPathValidatorSpi)
+ and implements all of its methods. In general, instances of this class
+ should only be accessed through the CertPathValidator class.
+ For details, see the Java Cryptography Architecture.
+
+ Concurrent Access
+
+ Instances of this class need not be protected against concurrent
+ access from multiple threads. Threads that need to access a single
+ CertPathValidatorSpi instance concurrently should synchronize
+ amongst themselves and provide the necessary locking before calling the
+ wrapping CertPathValidator object.
+
+ However, implementations of CertPathValidatorSpi may still
+ encounter concurrency issues, since multiple threads each
+ manipulating a different CertPathValidatorSpi instance need not
+ synchronize.
+
+ CertPathValidatorSpi implementation for X.509 Certificate validation a la RFC
+ 3280.
+
+
+
+ An exception indicating one of a variety of problems encountered when
+ validating a certification path.
+
+ A CertPathValidatorException provides support for wrapping
+ exceptions. The {@link #getCause getCause} method returns the throwable,
+ if any, that caused this exception to be thrown.
+
+ A CertPathValidatorException may also include the
+ certification path that was being validated when the exception was thrown
+ and the index of the certificate in the certification path that caused the
+ exception to be thrown. Use the {@link #getCertPath getCertPath} and
+ {@link #getIndex getIndex} methods to retrieve this information.
+
+ Concurrent Access
+
+ Unless otherwise specified, the methods defined in this class are not
+ thread-safe. Multiple threads that need to access a single
+ object concurrently should synchronize amongst themselves and
+ provide the necessary locking. Multiple threads each manipulating
+ separate objects need not synchronize.
+
+ @see CertPathValidator
+
+
+
+
+ Creates a PkixCertPathValidatorException with the given detail
+ message. A detail message is a String that describes this
+ particular exception.
+
+ the detail message
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message and cause.
+
+ the detail message
+ the cause (which is saved for later retrieval by the
+ {@link #getCause getCause()} method). (A null
+ value is permitted, and indicates that the cause is
+ nonexistent or unknown.)
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message, cause, certification path, and index.
+
+ the detail message (or null if none)
+ the cause (or null if none)
+ the certification path that was in the process of being
+ validated when the error was encountered
+ the index of the certificate in the certification path that *
+
+
+
+ Returns the detail message for this CertPathValidatorException.
+
+ the detail message, or null if neither the message nor cause were specified
+
+
+ Returns the certification path that was being validated when the
+ exception was thrown.
+
+ @return the CertPath that was being validated when the
+ exception was thrown (or null if not specified)
+
+
+ Returns the index of the certificate in the certification path that
+ caused the exception to be thrown. Note that the list of certificates in
+ a CertPath is zero based. If no index has been set, -1 is
+ returned.
+
+ @return the index that has been set, or -1 if none has been set
+
+
+
+ Summary description for PkixCertPathValidatorResult.
+
+
+
+
+ Summary description for PkixCertPathValidatorUtilities.
+
+
+
+
+ key usage bits
+
+
+
+
+ Search the given Set of TrustAnchor's for one that is the
+ issuer of the given X509 certificate.
+
+ the X509 certificate
+ a Set of TrustAnchor's
+ the TrustAnchor object if found or
+ null if not.
+
+ @exception
+
+
+
+ Returns the issuer of an attribute certificate or certificate.
+
+ The attribute certificate or certificate.
+ The issuer as X500Principal.
+
+
+ Return the next working key inheriting DSA parameters if necessary.
+
+ This methods inherits DSA parameters from the indexed certificate or
+ previous certificates in the certificate chain to the returned
+ PublicKey. The list is searched upwards, meaning the end
+ certificate is at position 0 and previous certificates are following.
+
+
+ If the indexed certificate does not contain a DSA key this method simply
+ returns the public key. If the DSA key already contains DSA parameters
+ the key is also only returned.
+
+
+ @param certs The certification path.
+ @param index The index of the certificate which contains the public key
+ which should be extended with DSA parameters.
+ @return The public key of the certificate in list position
+ index extended with DSA parameters if applicable.
+ @throws Exception if DSA parameters cannot be inherited.
+
+
+
+ Return a Collection of all certificates or attribute certificates found
+ in the X509Store's that are matching the certSelect criteriums.
+
+ a {@link Selector} object that will be used to select
+ the certificates
+ a List containing only X509Store objects. These
+ are used to search for certificates.
+ a Collection of all found or
+ objects.
+ May be empty but never null.
+
+
+
+ Add the CRL issuers from the cRLIssuer field of the distribution point or
+ from the certificate if not given to the issuer criterion of the
+ selector.
+
+ The issuerPrincipals are a collection with a single
+ X500Principal for X509Certificates. For
+ {@link X509AttributeCertificate}s the issuer may contain more than one
+ X500Principal.
+
+
+ @param dp The distribution point.
+ @param issuerPrincipals The issuers of the certificate or attribute
+ certificate which contains the distribution point.
+ @param selector The CRL selector.
+ @param pkixParams The PKIX parameters containing the cert stores.
+ @throws Exception if an exception occurs while processing.
+ @throws ClassCastException if issuerPrincipals does not
+ contain only X500Principals.
+
+
+ Fetches complete CRLs according to RFC 3280.
+
+ @param dp The distribution point for which the complete CRL
+ @param cert The X509Certificate or
+ {@link org.bouncycastle.x509.X509AttributeCertificate} for
+ which the CRL should be searched.
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @return A Set of X509CRLs with complete
+ CRLs.
+ @throws Exception if an exception occurs while picking the CRLs
+ or no CRLs are found.
+
+
+ Fetches delta CRLs according to RFC 3280 section 5.2.4.
+
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @param completeCRL The complete CRL the delta CRL is for.
+ @return A Set of X509CRLs with delta CRLs.
+ @throws Exception if an exception occurs while picking the delta
+ CRLs.
+
+
+ Find the issuer certificates of a given certificate.
+
+ @param cert
+ The certificate for which an issuer should be found.
+ @param pkixParams
+ @return A Collection object containing the issuer
+ X509Certificates. Never null.
+
+ @exception Exception
+ if an error occurs.
+
+
+
+ Extract the value of the given extension, if it exists.
+
+ The extension object.
+ The object identifier to obtain.
+ Asn1Object
+ if the extension cannot be read.
+
+
+
+ crl checking
+ Return a Collection of all CRLs found in the X509Store's that are
+ matching the crlSelect criteriums.
+
+ a {@link X509CRLStoreSelector} object that will be used
+ to select the CRLs
+ a List containing only {@link org.bouncycastle.x509.X509Store
+ X509Store} objects. These are used to search for CRLs
+ a Collection of all found {@link X509CRL X509CRL} objects. May be
+ empty but never null.
+
+
+
+ Returns the intersection of the permitted IP ranges in
+ permitted with ip.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ips The IP address with its subnet mask.
+ @return The Set of permitted IP ranges intersected with
+ ip.
+
+
+ Returns the union of the excluded IP ranges in excluded
+ with ip.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address with its subnet mask.
+ @return The Set of excluded IP ranges unified with
+ ip as byte arrays.
+
+
+ Calculates the union if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the union of both addresses.
+
+
+ Calculates the interesction if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the single IP address with its subnet
+ mask as a byte array or an empty Set.
+
+
+ Concatenates the IP address with its subnet mask.
+
+ @param ip The IP address.
+ @param subnetMask Its subnet mask.
+ @return The concatenated IP address with its subnet mask.
+
+
+ Splits the IP addresses and their subnet mask.
+
+ @param ipWithSubmask1 The first IP address with the subnet mask.
+ @param ipWithSubmask2 The second IP address with the subnet mask.
+ @return An array with two elements. Each element contains the IP address
+ and the subnet mask in this order.
+
+
+ Based on the two IP addresses and their subnet masks the IP range is
+ computed for each IP address - subnet mask pair and returned as the
+ minimum IP address and the maximum address of the range.
+
+ @param ip1 The first IP address.
+ @param subnetmask1 The subnet mask of the first IP address.
+ @param ip2 The second IP address.
+ @param subnetmask2 The subnet mask of the second IP address.
+ @return A array with two elements. The first/second element contains the
+ min and max IP address of the first/second IP address and its
+ subnet mask.
+
+
+ Checks if the IP ip is included in the permitted ISet
+ permitted.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is not permitted.
+
+
+ Checks if the IP ip is included in the excluded ISet
+ excluded.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is excluded.
+
+
+ Checks if the IP address ip is constrained by
+ constraint.
+
+ @param ip The IP address.
+ @param constraint The constraint. This is an IP address concatenated with
+ its subnetmask.
+ @return true if constrained, false
+ otherwise.
+
+
+ The common part of email1 and email2 is
+ added to the union union. If email1 and
+ email2 have nothing in common they are added both.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param union The union.
+
+
+ The most restricting part from email1 and
+ email2 is added to the intersection intersect.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param intersect The intersection.
+
+
+ Checks if the given GeneralName is in the permitted ISet.
+
+ @param name The GeneralName
+ @throws PkixNameConstraintValidatorException
+ If the name
+
+
+ Check if the given GeneralName is contained in the excluded ISet.
+
+ @param name The GeneralName.
+ @throws PkixNameConstraintValidatorException
+ If the name is
+ excluded.
+
+
+ Updates the permitted ISet of these name constraints with the intersection
+ with the given subtree.
+
+ @param permitted The permitted subtrees
+
+
+ Adds a subtree to the excluded ISet of these name constraints.
+
+ @param subtree A subtree with an excluded GeneralName.
+
+
+ Returns the maximum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The maximum IP address.
+
+
+ Returns the minimum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The minimum IP address.
+
+
+ Compares IP address ip1 with ip2. If ip1
+ is equal to ip2 0 is returned. If ip1 is bigger 1 is returned, -1
+ otherwise.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return 0 if ip1 is equal to ip2, 1 if ip1 is bigger, -1 otherwise.
+
+
+ Returns the logical OR of the IP addresses ip1 and
+ ip2.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The OR of ip1 and ip2.
+
+
+ Stringifies an IPv4 or v6 address with subnet mask.
+
+ @param ip The IP with subnet mask.
+ @return The stringified IP address.
+
+
+
+ Summary description for PkixParameters.
+
+
+
+ This is the default PKIX validity model. Actually there are two variants
+ of this: The PKIX model and the modified PKIX model. The PKIX model
+ verifies that all involved certificates must have been valid at the
+ current time. The modified PKIX model verifies that all involved
+ certificates were valid at the signing time. Both are indirectly choosen
+ with the {@link PKIXParameters#setDate(java.util.Date)} method, so this
+ methods sets the Date when all certificates must have been
+ valid.
+
+
+ This model uses the following validity model. Each certificate must have
+ been valid at the moment where is was used. That means the end
+ certificate must have been valid at the time the signature was done. The
+ CA certificate which signed the end certificate must have been valid,
+ when the end certificate was signed. The CA (or Root CA) certificate must
+ have been valid, when the CA certificate was signed and so on. So the
+ {@link PKIXParameters#setDate(java.util.Date)} method sets the time, when
+ the end certificate must have been valid. It is used e.g.
+ in the German signature law.
+
+
+ Creates an instance of PKIXParameters with the specified Set of
+ most-trusted CAs. Each element of the set is a TrustAnchor.
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+ @param trustAnchors
+ a Set of TrustAnchors
+
+ @exception InvalidAlgorithmParameterException
+ if the specified Set is empty
+ (trustAnchors.isEmpty() == true)
+ @exception NullPointerException
+ if the specified Set is null
+ @exception ClassCastException
+ if any of the elements in the Set are not of type
+ java.security.cert.TrustAnchor
+
+
+ Returns the required constraints on the target certificate. The
+ constraints are returned as an instance of CertSelector. If
+ null, no constraints are defined.
+
+ Note that the CertSelector returned is cloned to protect against
+ subsequent modifications.
+
+ @return a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #setTargetCertConstraints(CertSelector)
+
+
+ Sets the required constraints on the target certificate. The constraints
+ are specified as an instance of CertSelector. If null, no constraints are
+ defined.
+
+ Note that the CertSelector specified is cloned to protect against
+ subsequent modifications.
+
+ @param selector
+ a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #getTargetCertConstraints()
+
+
+ Returns an immutable Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. The
+ default return value is an empty Set, which is
+ interpreted as meaning that any policy would be acceptable.
+
+ @return an immutable Set of initial policy OIDs in String
+ format, or an empty Set (implying any policy is
+ acceptable). Never returns null.
+
+ @see #setInitialPolicies(java.util.Set)
+
+
+ Sets the Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. By
+ default, any policy is acceptable (i.e. all policies), so a user that
+ wants to allow any policy as acceptable does not need to call this
+ method, or can call it with an empty Set (or
+ null).
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+
+ @param initialPolicies
+ a Set of initial policy OIDs in String format (or
+ null)
+
+ @exception ClassCastException
+ if any of the elements in the set are not of type String
+
+ @see #getInitialPolicies()
+
+
+ Sets a List of additional certification path checkers. If
+ the specified List contains an object that is not a PKIXCertPathChecker,
+ it is ignored.
+
+ Each PKIXCertPathChecker specified implements additional
+ checks on a certificate. Typically, these are checks to process and
+ verify private extensions contained in certificates. Each
+ PKIXCertPathChecker should be instantiated with any
+ initialization parameters needed to execute the check.
+
+ This method allows sophisticated applications to extend a PKIX
+ CertPathValidator or CertPathBuilder. Each
+ of the specified PKIXCertPathCheckers will be called, in turn, by a PKIX
+ CertPathValidator or CertPathBuilder for
+ each certificate processed or validated.
+
+ Regardless of whether these additional PKIXCertPathCheckers are set, a
+ PKIX CertPathValidator or CertPathBuilder
+ must perform all of the required PKIX checks on each certificate. The one
+ exception to this rule is if the RevocationEnabled flag is set to false
+ (see the {@link #setRevocationEnabled(boolean) setRevocationEnabled}
+ method).
+
+ Note that the List supplied here is copied and each PKIXCertPathChecker
+ in the list is cloned to protect against subsequent modifications.
+
+ @param checkers
+ a List of PKIXCertPathCheckers. May be null, in which case no
+ additional checkers will be used.
+ @exception ClassCastException
+ if any of the elements in the list are not of type
+ java.security.cert.PKIXCertPathChecker
+ @see #getCertPathCheckers()
+
+
+ Returns the List of certification path checkers. Each PKIXCertPathChecker
+ in the returned IList is cloned to protect against subsequent modifications.
+
+ @return an immutable List of PKIXCertPathCheckers (may be empty, but not
+ null)
+
+ @see #setCertPathCheckers(java.util.List)
+
+
+ Adds a PKIXCertPathChecker to the list of certification
+ path checkers. See the {@link #setCertPathCheckers setCertPathCheckers}
+ method for more details.
+
+ Note that the PKIXCertPathChecker is cloned to protect
+ against subsequent modifications.
+
+ @param checker a PKIXCertPathChecker to add to the list of
+ checks. If null, the checker is ignored (not added to list).
+
+
+ Method to support Clone() under J2ME.
+ super.Clone() does not exist and fields are not copied.
+
+ @param params Parameters to set. If this are
+ ExtendedPkixParameters they are copied to.
+
+
+ Whether delta CRLs should be used for checking the revocation status.
+ Defaults to false.
+
+
+ The validity model.
+ @see #CHAIN_VALIDITY_MODEL
+ @see #PKIX_VALIDITY_MODEL
+
+
+ Sets the Bouncy Castle Stores for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ The IList is cloned.
+
+
+ @param stores A list of stores to use.
+ @see #getStores
+ @throws ClassCastException if an element of stores is not
+ a {@link Store}.
+
+
+ Adds a Bouncy Castle {@link Store} to find CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ This method should be used to add local stores, like collection based
+ X.509 stores, if available. Local stores should be considered first,
+ before trying to use additional (remote) locations, because they do not
+ need possible additional network traffic.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores
+
+
+ Adds an additional Bouncy Castle {@link Store} to find CRLs, certificates,
+ attribute certificates or cross certificates.
+
+ You should not use this method. This method is used for adding additional
+ X.509 stores, which are used to add (remote) locations, e.g. LDAP, found
+ during X.509 object processing, e.g. in certificates or CRLs. This method
+ is used in PKIX certification path processing.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores()
+
+
+ Returns an IList of additional Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of additional Bouncy Castle
+ Stores. Never null.
+
+ @see #addAddionalStore(Store)
+
+
+ Returns an IList of Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of Bouncy Castle
+ Stores. Never null.
+
+ @see #setStores(IList)
+
+
+ Returns if additional {@link X509Store}s for locations like LDAP found
+ in certificates or CRLs should be used.
+
+ @return Returns true if additional stores are used.
+
+
+ Sets if additional {@link X509Store}s for locations like LDAP found in
+ certificates or CRLs should be used.
+
+ @param enabled true if additional stores are used.
+
+
+ Returns the required constraints on the target certificate or attribute
+ certificate. The constraints are returned as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector returned is cloned to protect
+ against subsequent modifications.
+
+ @return a IX509Selector specifying the constraints on the
+ target certificate or attribute certificate (or null)
+ @see #setTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Sets the required constraints on the target certificate or attribute
+ certificate. The constraints are specified as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector specified is cloned to protect
+ against subsequent modifications.
+
+
+ @param selector a IX509Selector specifying the constraints on
+ the target certificate or attribute certificate (or
+ null)
+ @see #getTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Returns the trusted attribute certificate issuers. If attribute
+ certificates is verified the trusted AC issuers must be set.
+
+ The returned ISet consists of TrustAnchors.
+
+ The returned ISet is immutable. Never null
+
+
+ @return Returns an immutable set of the trusted AC issuers.
+
+
+ Sets the trusted attribute certificate issuers. If attribute certificates
+ is verified the trusted AC issuers must be set.
+
+ The trustedACIssuers must be a ISet of
+ TrustAnchor
+
+ The given set is cloned.
+
+
+ @param trustedACIssuers The trusted AC issuers to set. Is never
+ null.
+ @throws ClassCastException if an element of stores is not
+ a TrustAnchor.
+
+
+ Returns the necessary attributes which must be contained in an attribute
+ certificate.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the necessary AC attributes.
+
+
+ Sets the necessary which must be contained in an attribute certificate.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param necessaryACAttributes The necessary AC attributes to set.
+ @throws ClassCastException if an element of
+ necessaryACAttributes is not a
+ String.
+
+
+ Returns the attribute certificates which are not allowed.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the prohibited AC attributes. Is never null.
+
+
+ Sets the attribute certificates which are not allowed.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param prohibitedACAttributes The prohibited AC attributes to set.
+ @throws ClassCastException if an element of
+ prohibitedACAttributes is not a
+ String.
+
+
+ Returns the attribute certificate checker. The returned set contains
+ {@link PKIXAttrCertChecker}s and is immutable.
+
+ @return Returns the attribute certificate checker. Is never
+ null.
+
+
+ Sets the attribute certificate checkers.
+
+ All elements in the ISet must a {@link PKIXAttrCertChecker}.
+
+
+ The given set is cloned.
+
+
+ @param attrCertCheckers The attribute certificate checkers to set. Is
+ never null.
+ @throws ClassCastException if an element of attrCertCheckers
+ is not a PKIXAttrCertChecker.
+
+
+
+ Summary description for PkixPolicyNode.
+
+
+
+ Constructors
+
+
+
+ This class helps to handle CRL revocation reasons mask. Each CRL handles a
+ certain set of revocation reasons.
+
+
+
+
+ Constructs are reason mask with the reasons.
+
+ The reasons.
+
+
+
+ A reason mask with no reason.
+
+
+
+
+ A mask with all revocation reasons.
+
+
+
+ Adds all reasons from the reasons mask to this mask.
+
+ @param mask The reasons mask to add.
+
+
+
+ Returns true if this reasons mask contains all possible
+ reasons.
+
+ true if this reasons mask contains all possible reasons.
+
+
+
+
+ Intersects this mask with the given reasons mask.
+
+ mask The mask to intersect with.
+ The intersection of this and teh given mask.
+
+
+
+ Returns true if the passed reasons mask has new reasons.
+
+ The reasons mask which should be tested for new reasons.
+ true if the passed reasons mask has new reasons.
+
+
+
+ Returns the reasons in this mask.
+
+
+
+ If the complete CRL includes an issuing distribution point (IDP) CRL
+ extension check the following:
+
+ (i) If the distribution point name is present in the IDP CRL extension
+ and the distribution field is present in the DP, then verify that one of
+ the names in the IDP matches one of the names in the DP. If the
+ distribution point name is present in the IDP CRL extension and the
+ distribution field is omitted from the DP, then verify that one of the
+ names in the IDP matches one of the names in the cRLIssuer field of the
+ DP.
+
+
+ (ii) If the onlyContainsUserCerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate does not include the basic
+ constraints extension with the cA boolean asserted.
+
+
+ (iii) If the onlyContainsCACerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate includes the basic constraints
+ extension with the cA boolean asserted.
+
+
+ (iv) Verify that the onlyContainsAttributeCerts boolean is not asserted.
+
+
+ @param dp The distribution point.
+ @param cert The certificate.
+ @param crl The CRL.
+ @throws AnnotatedException if one of the conditions is not met or an error occurs.
+
+
+ If the DP includes cRLIssuer, then verify that the issuer field in the
+ complete CRL matches cRLIssuer in the DP and that the complete CRL
+ contains an
+ g distribution point extension with the indirectCRL
+ boolean asserted. Otherwise, verify that the CRL issuer matches the
+ certificate issuer.
+
+ @param dp The distribution point.
+ @param cert The certificate ot attribute certificate.
+ @param crl The CRL for cert.
+ @throws AnnotatedException if one of the above conditions does not apply or an error
+ occurs.
+
+
+ Obtain and validate the certification path for the complete CRL issuer.
+ If a key usage extension is present in the CRL issuer's certificate,
+ verify that the cRLSign bit is set.
+
+ @param crl CRL which contains revocation information for the certificate
+ cert.
+ @param cert The attribute certificate or certificate to check if it is
+ revoked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param paramsPKIX paramsPKIX PKIX parameters.
+ @param certPathCerts The certificates on the certification path.
+ @return A Set with all keys of possible CRL issuer
+ certificates.
+ @throws AnnotatedException if the CRL is not valid or the status cannot be checked or
+ some error occurs.
+
+
+ Checks a distribution point for revocation information for the
+ certificate cert.
+
+ @param dp The distribution point to consider.
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param certStatus The current certificate revocation status.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ Checks a certificate if it is revoked.
+
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param sign The issuer certificate of the certificate cert.
+ @param workingPublicKey The public key of the issuer certificate sign.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ If use-deltas is set, verify the issuer and scope of the delta CRL.
+
+ @param deltaCRL The delta CRL.
+ @param completeCRL The complete CRL.
+ @param pkixParams The PKIX paramaters.
+ @throws AnnotatedException if an exception occurs.
+
+
+ Checks if an attribute certificate is revoked.
+
+ @param attrCert Attribute certificate to check if it is revoked.
+ @param paramsPKIX PKIX parameters.
+ @param issuerCert The issuer certificate of the attribute certificate
+ attrCert.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+
+ @throws CertPathValidatorException if the certificate is revoked or the
+ status cannot be checked or some error occurs.
+
+
+ Searches for a holder public key certificate and verifies its
+ certification path.
+
+ @param attrCert the attribute certificate.
+ @param pkixParams The PKIX parameters.
+ @return The certificate path of the holder certificate.
+ @throws Exception if
+
+ - no public key certificate can be found although holder
+ information is given by an entity name or a base certificate
+ ID
+ - support classes cannot be created
+ - no certification path for the public key certificate can
+ be built
+
+
+
+
+ Checks a distribution point for revocation information for the
+ certificate attrCert.
+
+ @param dp The distribution point to consider.
+ @param attrCert The attribute certificate which should be checked.
+ @param paramsPKIX PKIX parameters.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param issuerCert Certificate to check if it is revoked.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+ @throws Exception if the certificate is revoked or the status
+ cannot be checked or some error occurs.
+
+
+
+ A trust anchor or most-trusted Certification Authority (CA).
+
+ This class represents a "most-trusted CA", which is used as a trust anchor
+ for validating X.509 certification paths. A most-trusted CA includes the
+ public key of the CA, the CA's name, and any constraints upon the set of
+ paths which may be validated using this key. These parameters can be
+ specified in the form of a trusted X509Certificate or as individual
+ parameters.
+
+
+
+
+ Creates an instance of TrustAnchor with the specified X509Certificate and
+ optional name constraints, which are intended to be used as additional
+ constraints when validating an X.509 certification path.
+ The name constraints are specified as a byte array. This byte array
+ should contain the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459 and
+ X.509. The ASN.1 definition of this structure appears below.
+
+
+ NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+ GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+ GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+ BaseDistance ::= INTEGER (0..MAX)
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+
+ Note that the name constraints byte array supplied is cloned to protect
+ against subsequent modifications.
+
+ a trusted X509Certificate
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ if the specified X509Certificate is null
+
+
+
+ Creates an instance of TrustAnchor where the
+ most-trusted CA is specified as an X500Principal and public key.
+
+
+
+ Name constraints are an optional parameter, and are intended to be used
+ as additional constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459
+ and X.509. The ASN.1 notation for this structure is supplied in the
+ documentation for the other constructors.
+
+ Note that the name constraints byte array supplied here is cloned to
+ protect against subsequent modifications.
+
+
+ the name of the most-trusted CA as X509Name
+ the public key of the most-trusted CA
+
+ a byte array containing the ASN.1 DER encoding of a NameConstraints extension to
+ be used for checking name constraints. Only the value of the extension is included,
+ not the OID or criticality flag. Specify null to omit the parameter.
+
+
+ if caPrincipal or pubKey is null
+
+
+
+
+ Creates an instance of TrustAnchor where the most-trusted
+ CA is specified as a distinguished name and public key. Name constraints
+ are an optional parameter, and are intended to be used as additional
+ constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they would
+ appear in the NameConstraints structure defined in RFC 2459 and X.509.
+
+ the X.500 distinguished name of the most-trusted CA in RFC
+ 2253 string format
+ the public key of the most-trusted CA
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ throws NullPointerException, IllegalArgumentException
+
+
+
+ Returns the most-trusted CA certificate.
+
+
+
+
+ Returns the name of the most-trusted CA as an X509Name.
+
+
+
+
+ Returns the name of the most-trusted CA in RFC 2253 string format.
+
+
+
+
+ Returns the public key of the most-trusted CA.
+
+
+
+
+ Decode the name constraints and clone them if not null.
+
+
+
+
+ Returns a formatted string describing the TrustAnchor.
+
+ a formatted string describing the TrustAnchor
+
+
+ Base class for an RFC 3161 Time Stamp Request.
+
+
+ Create a TimeStampRequest from the past in byte array.
+
+ @param req byte array containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Create a TimeStampRequest from the past in input stream.
+
+ @param in input stream containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Validate the timestamp request, checking the digest to see if it is of an
+ accepted type and whether it is of the correct length for the algorithm specified.
+
+ @param algorithms a set of string OIDS giving accepted algorithms.
+ @param policies if non-null a set of policies we are willing to sign under.
+ @param extensions if non-null a set of extensions we are willing to accept.
+ @throws TspException if the request is invalid, or processing fails.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Request objects.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ Base class for an RFC 3161 Time Stamp Response object.
+
+
+ Create a TimeStampResponse from a byte array containing an ASN.1 encoding.
+
+ @param resp the byte array containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the byte array doesn't represent an ASN.1 encoding.
+
+
+ Create a TimeStampResponse from an input stream containing an ASN.1 encoding.
+
+ @param input the input stream containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the stream doesn't represent an ASN.1 encoding.
+
+
+ Check this response against to see if it a well formed response for
+ the passed in request. Validation will include checking the time stamp
+ token if the response status is GRANTED or GRANTED_WITH_MODS.
+
+ @param request the request to be checked against
+ @throws TspException if the request can not match this response.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Responses.
+
+
+ Return an appropriate TimeStampResponse.
+
+ If genTime is null a timeNotAvailable error response will be returned.
+
+ @param request the request this response is for.
+ @param serialNumber serial number for the response token.
+ @param genTime generation time for the response token.
+ @param provider provider to use for signature calculation.
+ @return
+ @throws NoSuchAlgorithmException
+ @throws NoSuchProviderException
+ @throws TSPException
+
+
+
+ Generate a TimeStampResponse with chosen status and FailInfoField.
+
+ @param status the PKIStatus to set.
+ @param failInfoField the FailInfoField to set.
+ @param statusString an optional string describing the failure.
+ @return a TimeStampResponse with a failInfoField and optional statusString
+ @throws TSPException in case the response could not be created
+
+
+ Validate the time stamp token.
+
+ To be valid the token must be signed by the passed in certificate and
+ the certificate must be the one referred to by the SigningCertificate
+ attribute included in the hashed attributes of the token. The
+ certificate must also have the ExtendedKeyUsageExtension with only
+ KeyPurposeID.IdKPTimeStamping and have been valid at the time the
+ timestamp was created.
+
+
+ A successful call to validate means all the above are true.
+
+
+
+ Return the underlying CmsSignedData object.
+
+ @return the underlying CMS structure.
+
+
+ Return a ASN.1 encoded byte stream representing the encoded object.
+
+ @throws IOException if encoding fails.
+
+
+ basic creation - only the default attributes will be included here.
+
+
+ create with a signer with extra signed/unsigned attributes.
+
+
+ @return the nonce value, null if there isn't one.
+
+
+ Recognised hash algorithms for the time stamp protocol.
+
+
+ Fetches the signature time-stamp attributes from a SignerInformation object.
+ Checks that the MessageImprint for each time-stamp matches the signature field.
+ (see RFC 3161 Appendix A).
+
+ @param signerInfo a SignerInformation to search for time-stamps
+ @return a collection of TimeStampToken objects
+ @throws TSPValidationException
+
+
+ Validate the passed in certificate as being of the correct type to be used
+ for time stamping. To be valid it must have an ExtendedKeyUsage extension
+ which has a key purpose identifier of id-kp-timeStamping.
+
+ @param cert the certificate of interest.
+ @throws TspValidationException if the certicate fails on one of the check points.
+
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Exception thrown if a TSP request or response fails to validate.
+
+ If a failure code is associated with the exception it can be retrieved using
+ the getFailureCode() method.
+
+
+ Return the failure code associated with this exception - if one is set.
+
+ @return the failure code if set, -1 otherwise.
+
+
+ General array utilities.
+
+
+
+ Are two arrays equal.
+
+ Left side.
+ Right side.
+ True if equal.
+
+
+
+ A constant time equals comparison - does not terminate early if
+ test will fail.
+
+ first array
+ second array
+ true if arrays equal, false otherwise.
+
+
+ Make a copy of a range of bytes from the passed in data array. The range can
+ extend beyond the end of the input array, in which case the return array will
+ be padded with zeroes.
+
+ @param data the array from which the data is to be copied.
+ @param from the start index at which the copying should take place.
+ @param to the final index of the range (exclusive).
+
+ @return a new byte array containing the range given.
+
+
+ BigInteger utilities.
+
+
+ Return the passed in value as an unsigned byte array.
+
+ @param value value to be converted.
+ @return a byte array without a leading zero byte if present in the signed encoding.
+
+
+ Return the passed in value as an unsigned byte array of specified length, zero-extended as necessary.
+
+ @param length desired length of result array.
+ @param n value to be converted.
+ @return a byte array of specified length, with leading zeroes as necessary given the size of n.
+
+
+ Return a random BigInteger not less than 'min' and not greater than 'max'
+
+ @param min the least value that may be generated
+ @param max the greatest value that may be generated
+ @param random the source of randomness
+ @return a random BigInteger value in the range [min,max]
+
+
+
+ Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value.
+
+ A UTC DateTime value not before epoch.
+ Number of whole milliseconds after epoch.
+ 'dateTime' is before epoch.
+
+
+
+ Create a DateTime value from the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+ Number of milliseconds since the epoch.
+ A UTC DateTime value
+
+
+
+ Return the current number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a base 64 output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A buffering class to allow translation from one format to another to
+ be done in discrete chunks.
+
+
+
+
+ Create a buffered Decoder.
+
+ The translater to use.
+ The size of the buffer.
+
+
+
+ Process one byte of data.
+
+ Data in.
+ Byte array for the output.
+ The offset in the output byte array to start writing from.
+ The amount of output bytes.
+
+
+
+ Process data from a byte array.
+
+ The input data.
+ Start position within input data array.
+ Amount of data to process from input data array.
+ Array to store output.
+ Position in output array to start writing from.
+ The amount of output bytes.
+
+
+
+ A class that allows encoding of data using a specific encoder to be processed in chunks.
+
+
+
+
+ Create.
+
+ The translator to use.
+ Size of the chunks.
+
+
+
+ Process one byte of data.
+
+ The byte.
+ An array to store output in.
+ Offset within output array to start writing from.
+
+
+
+
+ Process data from a byte array.
+
+ Input data Byte array containing data to be processed.
+ Start position within input data array.
+ Amount of input data to be processed.
+ Output data array.
+ Offset within output data array to start writing to.
+ The amount of data written.
+
+
+
+ Class to decode and encode Hex.
+
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a Hex output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A hex translator.
+
+
+
+
+ Return encoded block size.
+
+ 2
+
+
+
+ Encode some data.
+
+ Input data array.
+ Start position within input data array.
+ The amount of data to process.
+ The output data array.
+ The offset within the output data array to start writing from.
+ Amount of data encoded.
+
+
+
+ Returns the decoded block size.
+
+ 1
+
+
+
+ Decode data from a byte array.
+
+ The input data array.
+ Start position within input data array.
+ The amounty of data to process.
+ The output data array.
+ The position within the output data array to start writing from.
+ The amount of data written.
+
+
+ Encode and decode byte arrays (typically from binary to 7-bit ASCII
+ encodings).
+
+
+
+ Translator interface.
+
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Encode the input data producing a URL safe base 64 encoded byte array.
+
+ @return a byte array containing the URL safe base 64 encoded data.
+
+
+ Encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Decode the URL safe base 64 encoded input data - white space will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the URL safe base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the URL safe base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the URL safe base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+
+ Produce a copy of this object with its configuration and in its current state.
+
+
+ The returned object may be used simply to store the state, or may be used as a similar object
+ starting from the copied state.
+
+
+
+
+ Restore a copied object state into this object.
+
+
+ Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
+
+ an object originally {@link #copy() copied} from an object of the same type as this instance.
+ if the provided object is not of the correct type.
+ if the other parameter is in some other way invalid.
+
+
+
+ A
+
+
+
+
+
+ A
+
+
+ A
+
+
+
+
+
+ A
+
+
+
+
+ A generic PEM writer, based on RFC 1421
+
+
+ Base constructor.
+
+ @param out output stream to use.
+
+
+ Return the number of bytes or characters required to contain the
+ passed in object if it is PEM encoded.
+
+ @param obj pem object to be output
+ @return an estimate of the number of bytes
+
+
+
+ Pipe all bytes from inStr to outStr, throwing StreamFlowException if greater
+ than limit bytes in inStr.
+
+
+ A
+
+
+ A
+
+
+ A
+
+ The number of bytes actually transferred, if not greater than limit
+
+
+
+
+
+
+ Exception to be thrown on a failure to reset an object implementing Memoable.
+
+ The exception extends InvalidCastException to enable users to have a single handling case,
+ only introducing specific handling of this one if required.
+
+
+
+ Basic Constructor.
+
+ @param msg message to be associated with this exception.
+
+
+ Validate the given IPv4 or IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address, false otherwise
+
+
+ Validate the given IPv4 or IPv6 address and netmask.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address with netmask, false otherwise
+
+
+ Validate the given IPv4 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ Validate the given IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ General string utilities.
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ The Holder object.
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+
+ Constructs a holder for v2 attribute certificates with a hash value for
+ some type of object.
+
+ digestedObjectType can be one of the following:
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+ This cannot be used if a v1 attribute certificate is used.
+
+ @param digestedObjectType The digest object type.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param otherObjectTypeID The object type ID if
+ digestedObjectType is
+ otherObjectDigest.
+ @param objectDigest The hash value.
+
+
+ Returns the digest object type if an object digest info is used.
+
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+
+ @return The digest object type or -1 if no object digest info is set.
+
+
+ Returns the other object type ID if an object digest info is used.
+
+ @return The other object type ID or null if no object
+ digest info is set.
+
+
+ Returns the hash if an object digest info is used.
+
+ @return The hash or null if no object digest info is set.
+
+
+ Returns the digest algorithm ID if an object digest info is used.
+
+ @return The digest algorithm ID or null if no object
+ digest info is set.
+
+
+ Return any principal objects inside the attribute certificate holder entity names field.
+
+ @return an array of IPrincipal objects (usually X509Name), null if no entity names field is set.
+
+
+ Return the principals associated with the issuer attached to this holder
+
+ @return an array of principals, null if no BaseCertificateID is set.
+
+
+ Return the serial number associated with the issuer attached to this holder.
+
+ @return the certificate serial number, null if no BaseCertificateID is set.
+
+
+ Carrying class for an attribute certificate issuer.
+
+
+ Set the issuer directly with the ASN.1 structure.
+
+ @param issuer The issuer
+
+
+ Return any principal objects inside the attribute certificate issuer object.
+ An array of IPrincipal objects (usually X509Principal).
+
+
+ A high level authority key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Create an AuthorityKeyIdentifier using the passed in certificate's public
+ key, issuer and serial number.
+
+ @param certificate the certificate providing the information.
+ @throws CertificateParsingException if there is a problem processing the certificate
+
+
+ Create an AuthorityKeyIdentifier using just the hash of the
+ public key.
+
+ @param pubKey the key to generate the hash from.
+ @throws InvalidKeyException if there is a problem using the key.
+
+
+ A high level subject key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Interface for an X.509 Attribute Certificate.
+
+
+ The version number for the certificate.
+
+
+ The serial number for the certificate.
+
+
+ The UTC DateTime before which the certificate is not valid.
+
+
+ The UTC DateTime after which the certificate is not valid.
+
+
+ The holder of the certificate.
+
+
+ The issuer details for the certificate.
+
+
+ Return the attributes contained in the attribute block in the certificate.
+ An array of attributes.
+
+
+ Return the attributes with the same type as the passed in oid.
+ The object identifier we wish to match.
+ An array of matched attributes, null if there is no match.
+
+
+ Return an ASN.1 encoded byte array representing the attribute certificate.
+ An ASN.1 encoded byte array.
+ If the certificate cannot be encoded.
+
+
+
+ Get all critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ Get all non-critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ A utility class that will extract X509Principal objects from X.509 certificates.
+
+ Use this in preference to trying to recreate a principal from a string, not all
+ DNs are what they should be, so it's best to leave them encoded where they
+ can be.
+
+
+
+ Return the issuer of the given cert as an X509Principal.
+
+
+ Return the subject of the given cert as an X509Principal.
+
+
+ Return the issuer of the given CRL as an X509Principal.
+
+
+ This class is an Selector like implementation to select
+ attribute certificates from a given set of criteria.
+
+ @see org.bouncycastle.x509.X509AttributeCertificate
+ @see org.bouncycastle.x509.X509Store
+
+
+
+ Decides if the given attribute certificate should be selected.
+
+ The attribute certificate to be checked.
+ true if the object matches this selector.
+
+
+ The attribute certificate which must be matched.
+ If null is given, any will do.
+
+
+ The criteria for validity
+ If null is given any will do.
+
+
+ The holder.
+ If null is given any will do.
+
+
+ The issuer.
+ If null is given any will do.
+
+
+ The serial number.
+ If null is given any will do.
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name The name as a GeneralName (not null)
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the name in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target names criteria. If null is
+ given any will do.
+
+ The collection consists of either GeneralName objects or byte[] arrays representing
+ DER encoded GeneralName structures.
+
+
+ @param names A collection of target names.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetName(byte[])
+ @see #AddTargetName(GeneralName)
+
+
+ Gets the target names. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target names
+ @see #setTargetNames(Collection)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param group The group as GeneralName form (not null)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the group in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target groups criteria. If null is
+ given any will do.
+
+ The collection consists of GeneralName objects or byte[]
+ representing DER encoded GeneralNames.
+
+
+ @param names A collection of target groups.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetGroup(byte[])
+ @see #AddTargetGroup(GeneralName)
+
+
+ Gets the target groups. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target groups.
+ @see #setTargetGroups(Collection)
+
+
+
+ This class is an IX509Selector implementation to select
+ certificate pairs, which are e.g. used for cross certificates. The set of
+ criteria is given from two X509CertStoreSelector objects,
+ each of which, if present, must match the respective component of a pair.
+
+
+
+ The certificate pair which is used for testing on equality.
+
+
+ The certificate selector for the forward part.
+
+
+ The certificate selector for the reverse part.
+
+
+
+ Decides if the given certificate pair should be selected. If
+ obj is not a X509CertificatePair, this method
+ returns false.
+
+ The X509CertificatePair to be tested.
+ true if the object matches this selector.
+
+
+
+ An ISet of DerObjectIdentifier objects.
+
+
+
+ A simple collection backed store.
+
+
+ Basic constructor.
+
+ @param collection - initial contents for the store, this is copied.
+
+
+ Return the matches in the collection for the passed in selector.
+
+ @param selector the selector to match against.
+ @return a possibly empty collection of matching objects.
+
+
+ This class contains a collection for collection based X509Stores.
+
+
+
+ Constructor.
+
+ The collection is copied.
+
+
+ The collection containing X.509 object types.
+ If collection is null.
+
+
+ Returns a copy of the ICollection.
+
+
+ Returns a formatted string describing the parameters.
+
+
+
+ An ICollection of X509Name objects
+
+
+
+ The attribute certificate being checked. This is not a criterion.
+ Rather, it is optional information that may help a {@link X509Store} find
+ CRLs that would be relevant when checking revocation for the specified
+ attribute certificate. If null is specified, then no such
+ optional information is provided.
+
+ @param attrCert the IX509AttributeCertificate being checked (or
+ null)
+ @see #getAttrCertificateChecking()
+
+
+ If true only complete CRLs are returned. Defaults to
+ false.
+
+ @return true if only complete CRLs are returned.
+
+
+ Returns if this selector must match CRLs with the delta CRL indicator
+ extension set. Defaults to false.
+
+ @return Returns true if only CRLs with the delta CRL
+ indicator extension are selected.
+
+
+ The issuing distribution point.
+
+ The issuing distribution point extension is a CRL extension which
+ identifies the scope and the distribution point of a CRL. The scope
+ contains among others information about revocation reasons contained in
+ the CRL. Delta CRLs and complete CRLs must have matching issuing
+ distribution points.
+
+ The byte array is cloned to protect against subsequent modifications.
+
+ You must also enable or disable this criteria with
+ {@link #setIssuingDistributionPointEnabled(bool)}.
+
+ @param issuingDistributionPoint The issuing distribution point to set.
+ This is the DER encoded OCTET STRING extension value.
+ @see #getIssuingDistributionPoint()
+
+
+ Whether the issuing distribution point criteria should be applied.
+ Defaults to false.
+
+ You may also set the issuing distribution point criteria if not a missing
+ issuing distribution point should be assumed.
+
+ @return Returns if the issuing distribution point check is enabled.
+
+
+ The maximum base CRL number. Defaults to null.
+
+ @return Returns the maximum base CRL number.
+ @see #setMaxBaseCRLNumber(BigInteger)
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+ Class for carrying the values in an X.509 Attribute.
+
+
+ @param at an object representing an attribute.
+
+
+ Create an X.509 Attribute with the type given by the passed in oid and
+ the value represented by an ASN.1 Set containing value.
+
+ @param oid type of the attribute
+ @param value value object to go into the atribute's value set.
+
+
+ Create an X.59 Attribute with the type given by the passed in oid and the
+ value represented by an ASN.1 Set containing the objects in value.
+
+ @param oid type of the attribute
+ @param value vector of values to go in the attribute's value set.
+
+
+
+ An Object representing an X509 Certificate.
+ Has static methods for loading Certificates encoded in many forms that return X509Certificate Objects.
+
+
+
+
+ Return true if the current time is within the start and end times nominated on the certificate.
+
+ true id certificate is valid for the current time.
+
+
+
+ Return true if the nominated time is within the start and end times nominated on the certificate.
+
+ The time to test validity against.
+ True if certificate is valid for nominated time.
+
+
+
+ Checks if the current date is within certificate's validity period.
+
+
+
+
+ Checks if the given date is within certificate's validity period.
+
+ if the certificate is expired by given date
+ if the certificate is not yet valid on given date
+
+
+
+ Return the certificate's version.
+
+ An integer whose value Equals the version of the cerficate.
+
+
+
+ Return a BigInteger containing the serial number.
+
+ The Serial number.
+
+
+
+ Get the Issuer Distinguished Name. (Who signed the certificate.)
+
+ And X509Object containing name and value pairs.
+
+
+
+ Get the subject of this certificate.
+
+ An X509Name object containing name and value pairs.
+
+
+
+ The time that this certificate is valid from.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ The time that this certificate is valid up to.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ Return the Der encoded TbsCertificate data.
+ This is the certificate component less the signature.
+ To Get the whole certificate call the GetEncoded() member.
+
+ A byte array containing the Der encoded Certificate component.
+
+
+
+ The signature.
+
+ A byte array containg the signature of the certificate.
+
+
+
+ A meaningful version of the Signature Algorithm. (EG SHA1WITHRSA)
+
+ A sting representing the signature algorithm.
+
+
+
+ Get the Signature Algorithms Object ID.
+
+ A string containg a '.' separated object id.
+
+
+
+ Get the signature algorithms parameters. (EG DSA Parameters)
+
+ A byte array containing the Der encoded version of the parameters or null if there are none.
+
+
+
+ Get the issuers UID.
+
+ A DerBitString.
+
+
+
+ Get the subjects UID.
+
+ A DerBitString.
+
+
+
+ Get a key usage guidlines.
+
+
+
+
+ Get the public key of the subject of the certificate.
+
+ The public key parameters.
+
+
+
+ Return a Der encoded version of this certificate.
+
+ A byte array.
+
+
+
+ Verify the certificate's signature using the nominated public key.
+
+ An appropriate public key parameter object, RsaPublicKeyParameters, DsaPublicKeyParameters or ECDsaPublicKeyParameters
+ True if the signature is valid.
+ If key submitted is not of the above nominated types.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+
+ This class contains a cross certificate pair. Cross certificates pairs may
+ contain two cross signed certificates from two CAs. A certificate from the
+ other CA to this CA is contained in the forward certificate, the certificate
+ from this CA to the other CA is contained in the reverse certificate.
+
+
+
+ Constructor
+ Certificate from the other CA to this CA.
+ Certificate from this CA to the other CA.
+
+
+ Constructor from a ASN.1 CertificatePair structure.
+ The CertificatePair ASN.1 object.
+
+
+ Returns the certificate from the other CA to this CA.
+
+
+ Returns the certificate from this CA to the other CA.
+
+
+ class for dealing with X509 certificates.
+
+ At the moment this will deal with "-----BEGIN CERTIFICATE-----" to "-----END CERTIFICATE-----"
+ base 64 encoded certs, as well as the BER binaries of certificates and some classes of PKCS#7
+ objects.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRLs
+
+ Authority Key Identifier
+ Issuer Alternative Name
+ CRL Number
+ Delta CRL Indicator (critical)
+ Issuing Distribution Point (critical)
+
+
+
+ Verify the CRL's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the CRL's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the CRL algorithm is invalid.
+
+
+ Returns a string representation of this CRL.
+
+ @return a string representation of this CRL.
+
+
+ Checks whether the given certificate is on this CRL.
+
+ @param cert the certificate to check for.
+ @return true if the given certificate is on this CRL,
+ false otherwise.
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRL Entries
+
+ ReasonCode Hode Instruction Code Invalidity Date Certificate Issuer
+ (critical)
+
+
+ Constructor for CRLEntries of indirect CRLs. If isIndirect
+ is false {@link #getCertificateIssuer()} will always
+ return null, previousCertificateIssuer is
+ ignored. If this isIndirect is specified and this CrlEntry
+ has no certificate issuer CRL entry extension
+ previousCertificateIssuer is returned by
+ {@link #getCertificateIssuer()}.
+
+ @param c
+ TbsCertificateList.CrlEntry object.
+ @param isIndirect
+ true if the corresponding CRL is a indirect
+ CRL.
+ @param previousCertificateIssuer
+ Certificate issuer of the previous CrlEntry.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate revocation list (CRL) object and initializes
+ it with the data read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the CRLs read from
+ the given input stream inStream.
+
+ The inStream may contain a sequence of DER-encoded CRLs, or
+ a PKCS#7 CRL set. This is a PKCS#7 SignedData object, with the
+ only significant field being crls. In particular the signature
+ and the contents are ignored.
+
+
+
+ Get non critical extensions.
+
+ A set of non critical extension oids.
+
+
+
+ Get any critical extensions.
+
+ A sorted list of critical entension.
+
+
+
+ Get the value of a given extension.
+
+ The object ID of the extension.
+ An Asn1OctetString object if that extension is found or null if not.
+
+
+ A holding class for constructing an X509 Key Usage extension.
+
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509KeyUsage.keyEncipherment | X509KeyUsage.dataEncipherment)
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Class to Generate X509V1 Certificates.
+
+
+
+
+ Default Constructor.
+
+
+
+
+ Reset the generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can get.
+ The serial number.
+
+
+
+ Set the issuer distinguished name.
+ The issuer is the entity whose private key is used to sign the certificate.
+
+ The issuers DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the subject distinguished name.
+ The subject describes the entity associated with the public key.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+ This can be either a name or an OID, names are treated as case insensitive.
+
+ string representation of the algorithm name
+
+
+
+ Generate a new X509Certificate.
+
+ The private key of the issuer used to sign this certificate.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate specifying a SecureRandom instance that you would like to use.
+
+ The private key of the issuer used to sign this certificate.
+ The Secure Random you want to use.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ An implementation of a version 2 X.509 Attribute Certificate.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+ Class to produce an X.509 Version 2 AttributeCertificate.
+
+
+ Reset the generator
+
+
+ Set the Holder of this Attribute Certificate.
+
+
+ Set the issuer.
+
+
+ Set the serial number for the certificate.
+
+
+
+ Set the signature algorithm. This can be either a name or an OID, names
+ are treated as case insensitive.
+
+ The algorithm name.
+
+
+ Add an attribute.
+
+
+ Add a given extension field for the standard extensions tag.
+
+
+
+ Add a given extension field for the standard extensions tag.
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject,
+ using the supplied source of randomness, if required.
+
+
+
+
+ Generate a new X.509 Attribute Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An IX509AttributeCertificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ class to produce an X.509 Version 2 CRL.
+
+
+ reset the generator
+
+
+ Set the issuer distinguished name - the issuer is the entity whose private key is used to sign the
+ certificate.
+
+
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with an Invalidity Date extension as well as a CrlReason extension.
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with extensions.
+
+
+
+ Add the CRLEntry objects contained in a previous CRL.
+
+ @param other the X509Crl to source the other entries from.
+
+
+
+ Set the signature algorithm that will be used to sign this CRL.
+
+
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Crl.
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject using the specified secure random.
+
+ The private key of the issuer that is signing this certificate.
+ Your Secure Random instance.
+ An X509Crl.
+
+
+
+ Generate a new X509Crl using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Crl.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
+ A class to Generate Version 3 X509Certificates.
+
+
+
+
+ Reset the Generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can Get.
+ The serial number.
+
+
+
+ Set the distinguished name of the issuer.
+ The issuer is the entity which is signing the certificate.
+
+ The issuer's DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the DN of the entity that this certificate is about.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+
+
+
+
+
+ Set the subject unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Set the issuer unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3).
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension using a string with a dotted decimal OID.
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3),
+ copying the extension value from another certificate.
+
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ copying the extension value from another certificate.
+ @throws CertificateParsingException if the extension cannot be extracted.
+
+
+
+ Generate an X509Certificate.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Certificate.
+
+
+
+ Generate an X509Certificate using your own SecureRandom.
+
+ The private key of the issuer that is signing this certificate.
+ You Secure Random instance.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ Base class for both the compress and decompress classes.
+ Holds common arrays, and static data.
+
+ @author Keiron Liddle
+
+
+ An input stream that decompresses from the BZip2 format (with the file
+ header chars) to be read as any other stream.
+
+ @author Keiron Liddle
+
+ NB: note this class has been modified to read the leading BZ from the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+ An output stream that compresses into the BZip2 format (with the file
+ header chars) into another stream.
+
+ @author Keiron Liddle
+
+ TODO: Update to BZip2 1.0.1
+ NB: note this class has been modified to add a leading BZ to the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+
+ modified by Oliver Merkel, 010128
+
+
+
+ A simple class the hold and calculate the CRC for sanity checking
+ of the data.
+
+ @author Keiron Liddle
+
+
+
diff --git a/packages/Portable.BouncyCastle.1.8.2/lib/netstandard2.0/BouncyCastle.Crypto.dll b/packages/Portable.BouncyCastle.1.8.2/lib/netstandard2.0/BouncyCastle.Crypto.dll
new file mode 100644
index 0000000..9265a58
Binary files /dev/null and b/packages/Portable.BouncyCastle.1.8.2/lib/netstandard2.0/BouncyCastle.Crypto.dll differ
diff --git a/packages/Portable.BouncyCastle.1.8.2/lib/netstandard2.0/BouncyCastle.Crypto.xml b/packages/Portable.BouncyCastle.1.8.2/lib/netstandard2.0/BouncyCastle.Crypto.xml
new file mode 100644
index 0000000..e43aa62
--- /dev/null
+++ b/packages/Portable.BouncyCastle.1.8.2/lib/netstandard2.0/BouncyCastle.Crypto.xml
@@ -0,0 +1,25101 @@
+
+
+
+ BouncyCastle.Crypto
+
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ Return the DER encoding of the object, null if the DER encoding can not be made.
+
+ @return a DER byte array, null otherwise.
+
+
+ a general purpose ASN.1 decoder - note: this class differs from the
+ others in that it returns null after it has read the last object in
+ the stream. If an ASN.1 Null is encountered a Der/BER Null object is
+ returned.
+
+
+ Create an ASN1InputStream where no DER object will be longer than limit.
+
+ @param input stream containing ASN.1 encoded data.
+ @param limit maximum size of a DER encoded object.
+
+
+ Create an ASN1InputStream based on the input byte array. The length of DER objects in
+ the stream is automatically limited to the length of the input array.
+
+ @param input array containing ASN.1 encoded data.
+
+
+ build an object given its tag and the number of bytes to construct it from.
+
+
+ A Null object.
+
+
+ Create a base ASN.1 object from a byte array.
+ The byte array to parse.
+ The base ASN.1 object represented by the byte array.
+
+ If there is a problem parsing the data, or parsing an object did not exhaust the available data.
+
+
+
+ Read a base ASN.1 object from a stream.
+ The stream to parse.
+ The base ASN.1 object represented by the byte array.
+ If there is a problem parsing the data.
+
+
+ return an Octet string from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return an Octet string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ @param string the octets making up the octet string.
+
+
+ return an Asn1Sequence from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 sequence from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ sequence - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sequences you really should
+ be using this method.
+
+ @param obj the tagged object.
+ @param explicitly true if the object is meant to be explicitly tagged,
+ false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return the object at the sequence position indicated by index.
+
+ @param index the sequence number (starting at zero) of the object
+ @return the object at the sequence position indicated by index.
+
+
+ return an ASN1Set from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 set from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ set - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sets you really should
+ be using this method.
+
+ @param obj the tagged object.
+ @param explicitly true if the object is meant to be explicitly tagged
+ false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return the object at the set position indicated by index.
+
+ @param index the set number (starting at zero) of the object
+ @return the object at the set position indicated by index.
+
+
+ ASN.1 TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if the object is explicitly tagged.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ return whether or not the object may be explicitly tagged.
+
+ Note: if the object has been read from an input stream, the only
+ time you can be sure if isExplicit is returning the true state of
+ affairs is if it returns false. An implicitly tagged object may appear
+ to be explicitly tagged, so you need to understand the context under
+ which the reading was done as well, see GetObject below.
+
+
+ return whatever was following the tag.
+
+ Note: tagged objects are generally context dependent if you're
+ trying to extract a tagged object you should be going via the
+ appropriate GetInstance method.
+
+
+ Return the object held in this tagged object as a parser assuming it has
+ the type of the passed in tag. If the object doesn't have a parser
+ associated with it, the base object is returned.
+
+
+
+
+
+ SHA-2.SHA-256; 1.3.6.1.4.1.22554.1.2.1
+
+
+ SHA-2.SHA-384; 1.3.6.1.4.1.22554.1.2.2
+
+
+ SHA-2.SHA-512; 1.3.6.1.4.1.22554.1.2.3
+
+
+ SHA-2.SHA-224; 1.3.6.1.4.1.22554.1.2.4
+
+
+ PKCS-5(1)|PKCS-12(2)
+ SHA-1.PKCS5; 1.3.6.1.4.1.22554.1.1.1
+
+
+ SHA-1.PKCS12; 1.3.6.1.4.1.22554.1.1.2
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.1
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.2
+
+
+ AES(1) . (CBC-128(2)|CBC-192(22)|CBC-256(42))
+ 1.3.6.1.4.1.22554.1.1.2.1.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.42
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.42
+
+
+ signature(2) algorithms
+
+
+ Sphincs-256
+
+
+ XMSS
+
+
+ XMSS^MT
+
+
+ key_exchange(3) algorithms
+
+
+ NewHope
+
+
+ A BER Null object.
+
+
+ convert a vector of octet strings into a single byte string
+
+
+ The octets making up the octet string.
+
+
+ return the DER octets that make up this string.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty sequence
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ BER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+
+ CAKeyUpdAnnContent ::= SEQUENCE {
+ oldWithNew CmpCertificate, -- old pub signed with new priv
+ newWithOld CmpCertificate, -- new pub signed with old priv
+ newWithNew CmpCertificate -- new pub signed with new priv
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertConfirmContent ::= SEQUENCE OF CertStatus
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertifiedKeyPair ::= SEQUENCE {
+ certOrEncCert CertOrEncCert,
+ privateKey [0] EncryptedValue OPTIONAL,
+ -- see [CRMF] for comment on encoding
+ publicationInfo [1] PKIPublicationInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertOrEncCert ::= CHOICE {
+ certificate [0] CMPCertificate,
+ encryptedCert [1] EncryptedValue
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRepMessage ::= SEQUENCE {
+ caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL,
+ response SEQUENCE OF CertResponse
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertResponse ::= SEQUENCE {
+ certReqId INTEGER,
+ -- to match this response with corresponding request (a value
+ -- of -1 is to be used if certReqId is not specified in the
+ -- corresponding request)
+ status PKIStatusInfo,
+ certifiedKeyPair CertifiedKeyPair OPTIONAL,
+ rspInfo OCTET STRING OPTIONAL
+ -- analogous to the id-regInfo-utf8Pairs string defined
+ -- for regInfo in CertReqMsg [CRMF]
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertStatus ::= SEQUENCE {
+ certHash OCTET STRING,
+ -- the hash of the certificate, using the same hash algorithm
+ -- as is used to create and verify the certificate signature
+ certReqId INTEGER,
+ -- to match this confirmation with the corresponding req/rep
+ statusInfo PKIStatusInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Note: the addition of attribute certificates is a BC extension.
+
+
+
+ CMPCertificate ::= CHOICE {
+ x509v3PKCert Certificate
+ x509v2AttrCert [1] AttributeCertificate
+ }
+
+ Note: the addition of attribute certificates is a BC extension.
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CrlAnnContent ::= SEQUENCE OF CertificateList
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenRepContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+ Example InfoTypeAndValue contents include, but are not limited
+ to, the following (un-comment in this ASN.1 module and use as
+ appropriate for a given environment):
+
+ id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1}
+ CAProtEncCertValue ::= CMPCertificate
+ id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
+ SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3}
+ EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
+ PreferredSymmAlgValue ::= AlgorithmIdentifier
+ id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5}
+ CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent
+ id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6}
+ CurrentCRLValue ::= CertificateList
+ id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7}
+ UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER
+ id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10}
+ KeyPairParamReqValue ::= OBJECT IDENTIFIER
+ id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11}
+ KeyPairParamRepValue ::= AlgorithmIdentifer
+ id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12}
+ RevPassphraseValue ::= EncryptedValue
+ id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13}
+ ImplicitConfirmValue ::= NULL
+ id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14}
+ ConfirmWaitTimeValue ::= GeneralizedTime
+ id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15}
+ OrigPKIMessageValue ::= PKIMessages
+ id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16}
+ SuppLangTagsValue ::= SEQUENCE OF UTF8String
+
+ where
+
+ id-pkix OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
+ and
+ id-it OBJECT IDENTIFIER ::= {id-pkix 4}
+
+
+
+
+ InfoTypeAndValue ::= SEQUENCE {
+ infoType OBJECT IDENTIFIER,
+ infoValue ANY DEFINED BY infoType OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ KeyRecRepContent ::= SEQUENCE {
+ status PKIStatusInfo,
+ newSigCert [0] CMPCertificate OPTIONAL,
+ caCerts [1] SEQUENCE SIZE (1..MAX) OF
+ CMPCertificate OPTIONAL,
+ keyPairHist [2] SEQUENCE SIZE (1..MAX) OF
+ CertifiedKeyPair OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OobCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the Der encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PbmParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiBody.
+ @param type one of the TYPE_* constants
+ @param content message content
+
+
+
+ PkiBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiConfirmContent ::= NULL
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIFailureInfo ::= BIT STRING {
+ badAlg (0),
+ -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2),
+ -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5),
+ -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+ certRevoked (10),
+ certConfirmed (11),
+ wrongIntegrity (12),
+ badRecipientNonce (13),
+ timeNotAvailable (14),
+ -- the TSA's time source is not available
+ unacceptedPolicy (15),
+ -- the requested TSA policy is not supported by the TSA
+ unacceptedExtension (16),
+ -- the requested extension is not supported by the TSA
+ addInfoNotAvailable (17)
+ -- the additional information requested could not be understood
+ -- or is not available
+ badSenderNonce (18),
+ badCertTemplate (19),
+ signerNotTrusted (20),
+ transactionIdInUse (21),
+ unsupportedVersion (22),
+ notAuthorized (23),
+ systemUnavail (24),
+ systemFailure (25),
+ -- the request cannot be handled due to system failure
+ duplicateCertReq (26)
+
+
+
+ Basic constructor.
+
+
+ Return the number of string elements present.
+
+ @return number of elements present.
+
+
+ Return the UTF8STRING at index.
+
+ @param index index of the string of interest
+ @return the string at index.
+
+
+
+ PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
+
+
+
+ Value for a "null" recipient or sender.
+
+
+
+ PkiHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiMessage.
+
+ @param header message header
+ @param body message body
+ @param protection message protection (may be null)
+ @param extraCerts extra certificates (may be null)
+
+
+
+ PkiMessage ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody,
+ protection [0] PKIProtection OPTIONAL,
+ extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiMessages ::= SEQUENCE SIZE (1..MAX) OF PkiMessage
+
+ @return a basic ASN.1 object representation.
+
+
+ @param status
+
+
+ @param status
+ @param statusString
+
+
+
+ PkiStatusInfo ::= SEQUENCE {
+ status PKIStatus, (INTEGER)
+ statusString PkiFreeText OPTIONAL,
+ failInfo PkiFailureInfo OPTIONAL (BIT STRING)
+ }
+
+ PKIStatus:
+ granted (0), -- you got exactly what you asked for
+ grantedWithMods (1), -- you got something like what you asked for
+ rejection (2), -- you don't get it, more information elsewhere in the message
+ waiting (3), -- the request body part has not yet been processed, expect to hear more later
+ revocationWarning (4), -- this message contains a warning that a revocation is imminent
+ revocationNotification (5), -- notification that a revocation has occurred
+ keyUpdateWarning (6) -- update already done for the oldCertId specified in CertReqMsg
+
+ PkiFailureInfo:
+ badAlg (0), -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2), -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5), -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+
+
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PollReqContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyChallContent ::= SEQUENCE OF Challenge
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyRespContent ::= SEQUENCE OF INTEGER
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ProtectedPart ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevAnnContent ::= SEQUENCE {
+ status PKIStatus,
+ certId CertId,
+ willBeRevokedAt GeneralizedTime,
+ badSinceDate GeneralizedTime,
+ crlDetails Extensions OPTIONAL
+ -- extra CRL details (e.g., crl number, reason, location, etc.)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevReqContent ::= SEQUENCE OF RevDetails
+
+ @return a basic ASN.1 object representation.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attribute ::= SEQUENCE {
+ attrType OBJECT IDENTIFIER,
+ attrValues SET OF AttributeValue
+ }
+
+
+
+
+ Attributes ::=
+ SET SIZE(1..MAX) OF Attribute -- according to RFC 5652
+
+ @return
+
+
+ Return the first attribute matching the given OBJECT IDENTIFIER
+
+
+ Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be
+ empty if there are no attributes of the required type present.
+
+ @param oid type of attribute required.
+ @return a vector of all the attributes found of type oid.
+
+
+ Return a new table with the passed in attribute added.
+
+ @param attrType
+ @param attrValue
+ @return
+
+
+ return an AuthenticatedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthenticatedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ The other Revocation Info arc
+ id-ri OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7) ri(16) }
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= Sequence {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ return a CompressedData object from a tagged object.
+
+ @param ato the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a CompressedData object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= SEQUENCE {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ MQVuserKeyingMaterial ::= SEQUENCE {
+ ephemeralPublicKey OriginatorPublicKey,
+ addedukm [0] EXPLICIT UserKeyingMaterial OPTIONAL }
+
+
+
+ return an EncryptedContentInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedData ::= SEQUENCE {
+ version CMSVersion,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ return an EnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an EnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= Sequence {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ return a KekIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekIdentifier ::= Sequence {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+
+
+ return a KekRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 4
+ kekID KekIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return an KeyAgreeRecipientIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an KeyAgreeRecipientIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyAgreeRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ rKeyId [0] IMPLICIT RecipientKeyIdentifier
+ }
+
+
+
+ return a KeyAgreeRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KeyAgreeRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ * Produce an object suitable for an Asn1OutputStream.
+ *
+ * KeyAgreeRecipientInfo ::= Sequence {
+ * version CMSVersion, -- always set to 3
+ * originator [0] EXPLICIT OriginatorIdentifierOrKey,
+ * ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
+ * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ * recipientEncryptedKeys RecipientEncryptedKeys
+ * }
+ *
+ * UserKeyingMaterial ::= OCTET STRING
+ *
+
+
+ return a KeyTransRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyTransRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 0 or 2
+ rid RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+
+ MetaData ::= SEQUENCE {
+ hashProtected BOOLEAN,
+ fileName UTF8String OPTIONAL,
+ mediaType IA5String OPTIONAL,
+ otherMetaData Attributes OPTIONAL
+ }
+
+ @return
+
+
+ return an OriginatorIdentifierOrKey object from a tagged object.
+
+ @param o the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorIdentifierOrKey object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorKey [1] OriginatorPublicKey
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ return an OriginatorInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorInfo ::= Sequence {
+ certs [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL
+ }
+
+
+
+ return an OriginatorPublicKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorPublicKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorPublicKey ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+ }
+
+
+
+ return an OtherKeyAttribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherKeyAttribute ::= Sequence {
+ keyAttrId OBJECT IDENTIFIER,
+ keyAttr ANY DEFINED BY keyAttrId OPTIONAL
+ }
+
+
+
+ return a OtherRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherRecipientInfo ::= Sequence {
+ oriType OBJECT IDENTIFIER,
+ oriValue ANY DEFINED BY oriType }
+
+
+
+ return a OtherRevocationInfoFormat object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRevocationInfoFormat object from the given object.
+
+ @param obj the object we want converted.
+ @exception IllegalArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ OtherRevocationInfoFormat ::= SEQUENCE {
+ otherRevInfoFormat OBJECT IDENTIFIER,
+ otherRevInfo ANY DEFINED BY otherRevInfoFormat }
+
+
+
+ return a PasswordRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a PasswordRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ PasswordRecipientInfo ::= Sequence {
+ version CMSVersion, -- Always set to 0
+ keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
+ OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+
+
+ return an RecipientEncryptedKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientEncryptedKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientEncryptedKey ::= SEQUENCE {
+ rid KeyAgreeRecipientIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return a RecipientIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientInfo ::= CHOICE {
+ ktri KeyTransRecipientInfo,
+ kari [1] KeyAgreeRecipientInfo,
+ kekri [2] KekRecipientInfo,
+ pwri [3] PasswordRecipientInfo,
+ ori [4] OtherRecipientInfo }
+
+
+
+ return a RecipientKeyIdentifier object from a tagged object.
+
+ @param _ato the tagged object holding the object we want.
+ @param _explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientKeyIdentifier object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientKeyIdentifier ::= Sequence {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+
+ ScvpReqRes ::= SEQUENCE {
+ request [0] EXPLICIT ContentInfo OPTIONAL,
+ response ContentInfo }
+
+ @return the ASN.1 primitive representation.
+
+
+ a signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+
+ SignedData ::= SEQUENCE {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+ return a SignerIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ SignerIdentifier sid,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+
+ TimeStampAndCRL ::= SEQUENCE {
+ timeStamp TimeStampToken, -- according to RFC 3161
+ crl CertificateList OPTIONAL -- according to RFC 5280
+ }
+
+ @return
+
+
+
+ TimeStampedData ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ dataUri IA5String OPTIONAL,
+ metaData MetaData OPTIONAL,
+ content OCTET STRING OPTIONAL,
+ temporalEvidence Evidence
+ }
+
+ @return
+
+
+
+ TimeStampTokenEvidence ::=
+ SEQUENCE SIZE(1..MAX) OF TimeStampAndCrl
+
+ @return
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertId ::= SEQUENCE {
+ issuer GeneralName,
+ serialNumber INTEGER }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new CertReqMsg.
+ @param certReq CertRequest
+ @param popo may be null
+ @param regInfo may be null
+
+
+
+ CertReqMsg ::= SEQUENCE {
+ certReq CertRequest,
+ pop ProofOfPossession OPTIONAL,
+ -- content depends upon key type
+ regInfo SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRequest ::= SEQUENCE {
+ certReqId INTEGER, -- ID for matching request and reply
+ certTemplate CertTemplate, -- Selected fields of cert to be issued
+ controls Controls OPTIONAL } -- Attributes affecting issuance
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Sets the X.509 version. Note: for X509v3, use 2 here.
+
+
+ Sets the issuer unique ID (deprecated in X.509v3)
+
+
+ Sets the subject unique ID (deprecated in X.509v3)
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ EncKeyWithID ::= SEQUENCE {
+ privateKey PrivateKeyInfo,
+ identifier CHOICE {
+ string UTF8String,
+ generalName GeneralName
+ } OPTIONAL
+ }
+
+ @return
+
+
+
+ EncryptedKey ::= CHOICE {
+ encryptedValue EncryptedValue, -- deprecated
+ envelopedData [0] EnvelopedData }
+ -- The encrypted private key MUST be placed in the envelopedData
+ -- encryptedContentInfo encryptedContent OCTET STRING.
+
+
+
+
+ EncryptedValue ::= SEQUENCE {
+ intendedAlg [0] AlgorithmIdentifier OPTIONAL,
+ -- the intended algorithm for which the value will be used
+ symmAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- the symmetric algorithm used to encrypt the value
+ encSymmKey [2] BIT STRING OPTIONAL,
+ -- the (encrypted) symmetric key used to encrypt the value
+ keyAlg [3] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used to encrypt the symmetric key
+ valueHint [4] OCTET STRING OPTIONAL,
+ -- a brief description or identifier of the encValue content
+ -- (may be meaningful only to the sending entity, and used only
+ -- if EncryptedValue might be re-examined by the sending entity
+ -- in the future)
+ encValue BIT STRING }
+ -- the encrypted value itself
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OptionalValidity ::= SEQUENCE {
+ notBefore [0] Time OPTIONAL,
+ notAfter [1] Time OPTIONAL } --at least one MUST be present
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiArchiveOptions ::= CHOICE {
+ encryptedPrivKey [0] EncryptedKey,
+ -- the actual value of the private key
+ keyGenParameters [1] KeyGenParameters,
+ -- parameters which allow the private key to be re-generated
+ archiveRemGenPrivKey [2] BOOLEAN }
+ -- set to TRUE if sender wishes receiver to archive the private
+ -- key of a key pair that the receiver generates in response to
+ -- this request; set to FALSE if no archival is desired.
+
+
+
+
+ PkiPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+ @return a basic ASN.1 object representation.
+
+
+ Password-based MAC value for use with POPOSigningKeyInput.
+
+
+ Creates a new PKMACValue.
+ @param params parameters for password-based MAC
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+ Creates a new PKMACValue.
+ @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+
+ PKMACValue ::= SEQUENCE {
+ algId AlgorithmIdentifier,
+ -- algorithm value shall be PasswordBasedMac 1.2.840.113533.7.66.13
+ -- parameter value is PBMParameter
+ value BIT STRING }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoPrivKey ::= CHOICE {
+ thisMessage [0] BIT STRING, -- Deprecated
+ -- possession is proven in this message (which contains the private
+ -- key itself (encrypted for the CA))
+ subsequentMessage [1] SubsequentMessage,
+ -- possession will be proven in a subsequent message
+ dhMAC [2] BIT STRING, -- Deprecated
+ agreeMAC [3] PKMACValue,
+ encryptedKey [4] EnvelopedData }
+
+
+
+ Creates a new Proof of Possession object for a signing key.
+ @param poposkIn the PopoSigningKeyInput structure, or null if the
+ CertTemplate includes both subject and publicKey values.
+ @param aid the AlgorithmIdentifier used to sign the proof of possession.
+ @param signature a signature over the DER-encoded value of poposkIn,
+ or the DER-encoded value of certReq if poposkIn is null.
+
+
+
+ PopoSigningKey ::= SEQUENCE {
+ poposkInput [0] PopoSigningKeyInput OPTIONAL,
+ algorithmIdentifier AlgorithmIdentifier,
+ signature BIT STRING }
+ -- The signature (using "algorithmIdentifier") is on the
+ -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg
+ -- certReq CertTemplate contains the subject and publicKey values,
+ -- then poposkInput MUST be omitted and the signature MUST be
+ -- computed on the DER-encoded value of CertReqMsg certReq. If
+ -- the CertReqMsg certReq CertTemplate does not contain the public
+ -- key and subject values, then poposkInput MUST be present and
+ -- MUST be signed. This strategy ensures that the public key is
+ -- not present in both the poposkInput and CertReqMsg certReq
+ -- CertTemplate fields.
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PopoSigningKeyInput with sender name as authInfo.
+
+
+ Creates a new PopoSigningKeyInput using password-based MAC.
+
+
+ Returns the sender field, or null if authInfo is publicKeyMac
+
+
+ Returns the publicKeyMac field, or null if authInfo is sender
+
+
+
+ PopoSigningKeyInput ::= SEQUENCE {
+ authInfo CHOICE {
+ sender [0] GeneralName,
+ -- used only if an authenticated identity has been
+ -- established for the sender (e.g., a DN from a
+ -- previously-issued and currently-valid certificate
+ publicKeyMac PKMacValue },
+ -- used if no authenticated GeneralName currently exists for
+ -- the sender; publicKeyMac contains a password-based MAC
+ -- on the DER-encoded value of publicKey
+ publicKey SubjectPublicKeyInfo } -- from CertTemplate
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a ProofOfPossession with type raVerified.
+
+
+ Creates a ProofOfPossession for a signing key.
+
+
+ Creates a ProofOfPossession for key encipherment or agreement.
+ @param type one of TYPE_KEY_ENCIPHERMENT or TYPE_KEY_AGREEMENT
+
+
+
+ ProofOfPossession ::= CHOICE {
+ raVerified [0] NULL,
+ -- used if the RA has already verified that the requester is in
+ -- possession of the private key
+ signature [1] PopoSigningKey,
+ keyEncipherment [2] PopoPrivKey,
+ keyAgreement [3] PopoPrivKey }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ SinglePubInfo ::= SEQUENCE {
+ pubMethod INTEGER {
+ dontCare (0),
+ x500 (1),
+ web (2),
+ ldap (3) },
+ pubLocation GeneralName OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Table of the available named parameters for GOST 3410-2001 / 2012.
+
+
+
+ return the ECDomainParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+
+ Gost28147-89-Parameters ::=
+ SEQUENCE {
+ iv Gost28147-89-IV,
+ encryptionParamSet OBJECT IDENTIFIER
+ }
+
+ Gost28147-89-IV ::= OCTET STRING (SIZE (8))
+
+
+
+ table of the available named parameters for GOST 3410-94.
+
+
+ return the GOST3410ParamSetParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for parameters
+ contained in this structure.
+
+
+ Base class for an application specific object
+
+
+ Return the enclosed object assuming explicit tagging.
+
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ Return the enclosed object assuming implicit tagging.
+
+ @param derTagNo the type tag that should be applied to the object's contents.
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ return a Bit string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Bit string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ @param data the octets making up the bit string.
+ @param padBits the number of extra bits at the end of the string.
+
+
+ Return the octets contained in this BIT STRING, checking that this BIT STRING really
+ does represent an octet aligned string. Only use this method when the standard you are
+ following dictates that the BIT STRING will be octet aligned.
+
+ @return a copy of the octet aligned data.
+
+
+ @return the value of the bit string as an int (truncating if necessary)
+
+
+ Der BMPString object.
+
+
+ return a BMP string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a BMP string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a bool from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a DerBoolean from the passed in bool.
+
+
+ return a Boolean from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Enumerated from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Class representing the DER-type External
+
+
+ Creates a new instance of DerExternal
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param externalData The external data in its encoded form.
+
+
+ Creates a new instance of DerExternal.
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param encoding The encoding to be used for the external data
+ @param externalData The external data
+
+
+ The encoding of the content. Valid values are
+
+ 0 single-ASN1-type
+ 1 OCTET STRING
+ 2 BIT STRING
+
+
+
+ Generalized time object.
+
+
+ return a generalized time from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Generalized Time object from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYYYMMDDHHMMSS[.f]Z, or without the Z
+ for local time, or Z+-HHMM on the end, for difference between local
+ time and UTC time. The fractional second amount f must consist of at
+ least one number with trailing zeroes removed.
+
+ @param time the time string.
+ @exception ArgumentException if string is an illegal format.
+
+
+ base constructor from a local time object
+
+
+ Return the time.
+ @return The time string as it appeared in the encoded object.
+
+
+ return the time - always in the form of
+ YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyyyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+
+ return a Graphic String from the passed in object
+
+ @param obj a DerGraphicString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ return a Graphic String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der IA5String object - this is an ascii string.
+
+
+ return a IA5 string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an IA5 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in an IA5String.
+
+
+ return true if the passed in String can be represented without
+ loss as an IA5String, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Integer from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ in some cases positive values Get crammed into a space,
+ that's not quite big enough...
+
+
+ A Null object.
+
+
+ Der NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
+
+
+ return a Numeric string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Numeric string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation..
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a NumericString.
+
+
+ Return true if the string can be represented as a NumericString ('0'..'9', ' ')
+
+ @param str string to validate.
+ @return true if numeric, fale otherwise.
+
+
+ return an Oid from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an object Identifier from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Return true if this oid is an extension of the passed in branch, stem.
+ @param stem the arc or branch that is a possible parent.
+ @return true if the branch is on the passed in stem, false otherwise.
+
+
+ The octets making up the octet string.
+
+
+ Der PrintableString object.
+
+
+ return a printable string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Printable string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor - this does not validate the string
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a PrintableString.
+
+
+ return true if the passed in String can be represented without
+ loss as a PrintableString, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ A Der encoded set object
+
+
+ create an empty set
+
+
+ @param obj - a single object that makes up the set.
+
+
+ @param v - a vector of objects making up the set.
+
+
+ Der T61String (also the teletex string) - 8-bit characters
+
+
+ return a T61 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an T61 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - with string.
+
+
+ DER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+ Der UniversalString object.
+
+
+ return a Universal string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Universal string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ UTC time object.
+
+
+ return an UTC Time from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTC Time from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYMMDDHHMMSSZ (it used to be that seconds were
+ never encoded. When you're creating one of these objects from scratch, that's
+ what you want to use, otherwise we'll try to deal with whatever Gets read from
+ the input stream... (this is why the input format is different from the GetTime()
+ method output).
+
+ @param time the time string.
+
+
+ base constructor from a DateTime object
+
+
+ return the time as a date based on whatever a 2 digit year will return. For
+ standardised processing use ToAdjustedDateTime().
+
+ @return the resulting date
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time as an adjusted date
+ in the range of 1950 - 2049.
+
+ @return a date in the range of 1950 to 2049.
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time - always in the form of
+ YYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+ Note: In some cases, due to the local date processing, this
+ may lead to unexpected results. If you want to stick the normal
+ convention of 1950 to 2049 use the GetAdjustedTime() method.
+
+
+
+ Return a time string as an adjusted date with a 4 digit year.
+ This goes in the range of 1950 - 2049.
+
+
+
+ Der UTF8String object.
+
+
+ return an UTF8 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTF8 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a Videotex String from the passed in object
+
+ @param obj a DERVideotexString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ return a Videotex String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der VisibleString object.
+
+
+ return a Visible string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Visible string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+
+ RFC 3126: 4.3.1 Certificate Values Attribute Definition
+
+ CertificateValues ::= SEQUENCE OF Certificate
+
+
+
+
+
+ CommitmentTypeIndication ::= SEQUENCE {
+ commitmentTypeId CommitmentTypeIdentifier,
+ commitmentTypeQualifier SEQUENCE SIZE (1..MAX) OF
+ CommitmentTypeQualifier OPTIONAL }
+
+
+
+ Commitment type qualifiers, used in the Commitment-Type-Indication attribute (RFC3126).
+
+
+ CommitmentTypeQualifier ::= SEQUENCE {
+ commitmentTypeIdentifier CommitmentTypeIdentifier,
+ qualifier ANY DEFINED BY commitmentTypeIdentifier OPTIONAL }
+
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param as CommitmentTypeQualifier structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a DER-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+ RFC 3126: 4.2.1 Complete Certificate Refs Attribute Definition
+
+ CompleteCertificateRefs ::= SEQUENCE OF OtherCertID
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CompleteRevocationRefs ::= SEQUENCE OF CrlOcspRef
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlIdentifier ::= SEQUENCE
+ {
+ crlissuer Name,
+ crlIssuedTime UTCTime,
+ crlNumber INTEGER OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CRLListID ::= SEQUENCE
+ {
+ crls SEQUENCE OF CrlValidatedID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlOcspRef ::= SEQUENCE {
+ crlids [0] CRLListID OPTIONAL,
+ ocspids [1] OcspListID OPTIONAL,
+ otherRev [2] OtherRevRefs OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlValidatedID ::= SEQUENCE {
+ crlHash OtherHash,
+ crlIdentifier CrlIdentifier OPTIONAL}
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspIdentifier ::= SEQUENCE {
+ ocspResponderID ResponderID,
+ -- As in OCSP response data
+ producedAt GeneralizedTime
+ -- As in OCSP response data
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspListID ::= SEQUENCE {
+ ocspResponses SEQUENCE OF OcspResponsesID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspResponsesID ::= SEQUENCE {
+ ocspIdentifier OcspIdentifier,
+ ocspRepHash OtherHash OPTIONAL
+ }
+
+
+
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+
+
+
+
+
+ OtherHash ::= CHOICE {
+ sha1Hash OtherHashValue, -- This contains a SHA-1 hash
+ otherHash OtherHashAlgAndValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ Summary description for OtherHashAlgAndValue.
+
+
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OtherHashValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OtherRevRefs ::= SEQUENCE
+ {
+ otherRevRefType OtherRevRefType,
+ otherRevRefs ANY DEFINED BY otherRevRefType
+ }
+
+ OtherRevRefType ::= OBJECT IDENTIFIER
+
+
+
+
+
+ RFC 3126: 4.3.2 Revocation Values Attribute Definition
+
+ OtherRevVals ::= SEQUENCE
+ {
+ otherRevValType OtherRevValType,
+ otherRevVals ANY DEFINED BY otherRevValType
+ }
+
+ OtherRevValType ::= OBJECT IDENTIFIER
+
+
+
+
+
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+
+
+
+
+ RFC 5126: 6.3.4. revocation-values Attribute Definition
+
+ RevocationValues ::= SEQUENCE {
+ crlVals [0] SEQUENCE OF CertificateList OPTIONAL,
+ ocspVals [1] SEQUENCE OF BasicOCSPResponse OPTIONAL,
+ otherRevVals [2] OtherRevVals OPTIONAL
+ }
+
+
+
+
+
+
+ SignaturePolicyId ::= SEQUENCE {
+ sigPolicyIdentifier SigPolicyId,
+ sigPolicyHash SigPolicyHash,
+ sigPolicyQualifiers SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo OPTIONAL
+ }
+
+ SigPolicyId ::= OBJECT IDENTIFIER
+
+ SigPolicyHash ::= OtherHashAlgAndValue
+
+
+
+
+
+
+ SignaturePolicyIdentifier ::= CHOICE {
+ SignaturePolicyId SignaturePolicyId,
+ SignaturePolicyImplied SignaturePolicyImplied
+ }
+
+ SignaturePolicyImplied ::= NULL
+
+
+
+
+
+
+ SignerAttribute ::= SEQUENCE OF CHOICE {
+ claimedAttributes [0] ClaimedAttributes,
+ certifiedAttributes [1] CertifiedAttributes }
+
+ ClaimedAttributes ::= SEQUENCE OF Attribute
+ CertifiedAttributes ::= AttributeCertificate -- as defined in RFC 3281: see clause 4.1.
+
+
+
+ Signer-Location attribute (RFC3126).
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1.. MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+
+
+ SigPolicyQualifierInfo ::= SEQUENCE {
+ sigPolicyQualifierId SigPolicyQualifierId,
+ sigQualifier ANY DEFINED BY sigPolicyQualifierId
+ }
+
+ SigPolicyQualifierId ::= OBJECT IDENTIFIER
+
+
+
+
+ constructor
+
+
+
+ ContentHints ::= SEQUENCE {
+ contentDescription UTF8String (SIZE (1..MAX)) OPTIONAL,
+ contentType ContentType }
+
+
+
+ Create from OCTET STRING whose octets represent the identifier.
+
+
+ Create from byte array representing the identifier.
+
+
+ The definition of ContentIdentifier is
+
+ ContentIdentifier ::= OCTET STRING
+
+ id-aa-contentIdentifier OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 7 }
+
+
+ constructor
+
+
+
+ EssCertID ::= SEQUENCE {
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+
+
+
+ EssCertIDv2 ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier
+ DEFAULT {algorithm id-sha256},
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+ Hash ::= OCTET STRING
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serialNumber CertificateSerialNumber
+ }
+
+
+
+ constructor
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+ OtherHash ::= CHOICE {
+ sha1Hash OCTET STRING,
+ otherHash OtherHashAlgAndValue }
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OCTET STRING }
+
+
+
+
+ constructors
+
+
+ The definition of OtherSigningCertificate is
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-ets-otherSigCert OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 19 }
+
+
+ constructors
+
+
+ The definition of SigningCertificate is
+
+ SigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF EssCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 12 }
+
+
+ The definition of SigningCertificateV2 is
+
+ SigningCertificateV2 ::= SEQUENCE {
+ certs SEQUENCE OF EssCertIDv2,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 47 }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ 1.3.6.1.4.1.11591.15 - ellipticCurve
+
+
+ Marker interface for CHOICE objects - if you implement this in a roll-your-own
+ object, any attempt to tag the object implicitly will convert the tag to an
+ explicit one as the encoding rules require.
+
+ If you use this interface your class should also implement the getInstance
+ pattern which takes a tag object and the tagging mode used.
+
+
+
+ basic interface for Der string objects.
+
+
+ The CscaMasterList object. This object can be wrapped in a
+ CMSSignedData to be published in LDAP.
+
+
+ CscaMasterList ::= SEQUENCE {
+ version CscaMasterListVersion,
+ certList SET OF Certificate }
+
+ CscaMasterListVersion :: INTEGER {v0(0)}
+
+
+
+ The DataGroupHash object.
+
+ DataGroupHash ::= SEQUENCE {
+ dataGroupNumber DataGroupNumber,
+ dataGroupHashValue OCTET STRING }
+
+ DataGroupNumber ::= INTEGER {
+ dataGroup1 (1),
+ dataGroup1 (2),
+ dataGroup1 (3),
+ dataGroup1 (4),
+ dataGroup1 (5),
+ dataGroup1 (6),
+ dataGroup1 (7),
+ dataGroup1 (8),
+ dataGroup1 (9),
+ dataGroup1 (10),
+ dataGroup1 (11),
+ dataGroup1 (12),
+ dataGroup1 (13),
+ dataGroup1 (14),
+ dataGroup1 (15),
+ dataGroup1 (16) }
+
+
+
+
+ The LDSSecurityObject object (V1.8).
+
+ LDSSecurityObject ::= SEQUENCE {
+ version LDSSecurityObjectVersion,
+ hashAlgorithm DigestAlgorithmIdentifier,
+ dataGroupHashValues SEQUENCE SIZE (2..ub-DataGroups) OF DataHashGroup,
+ ldsVersionInfo LDSVersionInfo OPTIONAL
+ -- if present, version MUST be v1 }
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier,
+
+ LDSSecurityObjectVersion :: INTEGER {V0(0)}
+
+
+
+
+ LDSVersionInfo ::= SEQUENCE {
+ ldsVersion PRINTABLE STRING
+ unicodeVersion PRINTABLE STRING
+ }
+
+ @return
+
+
+ The id-isismtt-cp-accredited OID indicates that the certificate is a
+ qualified certificate according to Directive 1999/93/EC of the European
+ Parliament and of the Council of 13 December 1999 on a Community
+ Framework for Electronic Signatures, which additionally conforms the
+ special requirements of the SigG and has been issued by an accredited CA.
+
+
+ Certificate extensionDate of certificate generation
+
+
+ DateOfCertGenSyntax ::= GeneralizedTime
+
+
+
+ Attribute to indicate that the certificate holder may sign in the name of
+ a third person. May also be used as extension in a certificate.
+
+
+ Attribute to indicate admissions to certain professions. May be used as
+ attribute in attribute certificate or as extension in a certificate
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST
+ be used in new certificates in place of the extension/attribute
+ MonetaryLimit since January 1, 2004. For the sake of backward
+ compatibility with certificates already in use, SigG conforming
+ components MUST support MonetaryLimit (as well as QcEuLimitValue).
+
+
+ A declaration of majority. May be used as attribute in attribute
+ certificate or as extension in a certificate
+
+
+
+ Serial number of the smart card containing the corresponding private key
+
+
+ ICCSNSyntax ::= OCTET STRING (SIZE(8..20))
+
+
+
+
+ Reference for a file of a smartcard that stores the public key of this
+ certificate and that is used as �security anchor�.
+
+
+ PKReferenceSyntax ::= OCTET STRING (SIZE(20))
+
+
+
+ Some other restriction regarding the usage of this certificate. May be
+ used as attribute in attribute certificate or as extension in a
+ certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Restriction
+
+
+
+ (Single)Request extension: Clients may include this extension in a
+ (single) Request to request the responder to send the certificate in the
+ response message along with the status information. Besides the LDAP
+ service, this extension provides another mechanism for the distribution
+ of certificates, which MAY optionally be provided by certificate
+ repositories.
+
+
+ RetrieveIfAllowed ::= BOOLEAN
+
+
+
+ SingleOCSPResponse extension: The certificate requested by the client by
+ inserting the RetrieveIfAllowed extension in the request, will be
+ returned in this extension.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate
+
+
+ Base ObjectIdentifier for naming authorities
+
+
+ SingleOCSPResponse extension: Date, when certificate has been published
+ in the directory and status information has become available. Currently,
+ accrediting authorities enforce that SigG-conforming OCSP servers include
+ this extension in the responses.
+
+
+ CertInDirSince ::= GeneralizedTime
+
+
+
+ Hash of a certificate in OCSP.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.CertHash
+
+
+
+ NameAtBirth ::= DirectoryString(SIZE(1..64)
+
+
+ Used in
+ {@link Org.BouncyCastle.Asn1.X509.SubjectDirectoryAttributes SubjectDirectoryAttributes}
+
+
+ Some other information of non-restrictive nature regarding the usage of
+ this certificate. May be used as attribute in atribute certificate or as
+ extension in a certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdditionalInformationSyntax
+
+
+ Indicates that an attribute certificate exists, which limits the
+ usability of this public key certificate. Whenever verifying a signature
+ with the help of this certificate, the content of the corresponding
+ attribute certificate should be concerned. This extension MUST be
+ included in a PKC, if a corresponding attribute certificate (having the
+ PKC as base certificate) contains some attribute that restricts the
+ usability of the PKC too. Attribute certificates with restricting content
+ MUST always be included in the signed document.
+
+
+ LiabilityLimitationFlagSyntax ::= BOOLEAN
+
+
+
+ ISIS-MTT PROFILE: The responder may include this extension in a response to
+ send the hash of the requested certificate to the responder. This hash is
+ cryptographically bound to the certificate and serves as evidence that the
+ certificate is known to the responder (i.e. it has been issued and is present
+ in the directory). Hence, this extension is a means to provide a positive
+ statement of availability as described in T8.[8]. As explained in T13.[1],
+ clients may rely on this information to be able to validate signatures after
+ the expiry of the corresponding certificate. Hence, clients MUST support this
+ extension. If a positive statement of availability is to be delivered, this
+ extension syntax and OID MUST be used.
+
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertHash:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param hashAlgorithm The hash algorithm identifier.
+ @param certificateHash The hash of the whole DER encoding of the certificate.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ ISIS-MTT-Optional: The certificate requested by the client by inserting the
+ RetrieveIfAllowed extension in the request, will be returned in this
+ extension.
+
+ ISIS-MTT-SigG: The signature act allows publishing certificates only then,
+ when the certificate owner gives his isExplicit permission. Accordingly, there
+ may be �nondownloadable� certificates, about which the responder must provide
+ status information, but MUST NOT include them in the response. Clients may
+ get therefore the following three kind of answers on a single request
+ including the RetrieveIfAllowed extension:
+
+ - a) the responder supports the extension and is allowed to publish the
+ certificate: RequestedCertificate returned including the requested
+ certificate
+ - b) the responder supports the extension but is NOT allowed to publish
+ the certificate: RequestedCertificate returned including an empty OCTET
+ STRING
+ - c) the responder does not support the extension: RequestedCertificate is
+ not included in the response
+
+ Clients requesting RetrieveIfAllowed MUST be able to handle these cases. If
+ any of the OCTET STRING options is used, it MUST contain the DER encoding of
+ the requested certificate.
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+
+ Constructor from a given details.
+
+ Only one parameter can be given. All other must be null.
+
+ @param certificate Given as Certificate
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ Some other information of non-restrictive nature regarding the usage of this
+ certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+
+ Constructor from a given details.
+
+ @param information The describtion of the information.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @return an Asn1Object
+
+
+ An Admissions structure.
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ Parameter professionInfos is mandatory.
+
+ @param admissionAuthority The admission authority.
+ @param namingAuthority The naming authority.
+ @param professionInfos The profession infos.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate admissions to certain professions.
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+
+ ISIS-MTT PROFILE: The relatively complex structure of AdmissionSyntax
+ supports the following concepts and requirements:
+
+ - External institutions (e.g. professional associations, chambers, unions,
+ administrative bodies, companies, etc.), which are responsible for granting
+ and verifying professional admissions, are indicated by means of the data
+ field admissionAuthority. An admission authority is indicated by a
+ GeneralName object. Here an X.501 directory name (distinguished name) can be
+ indicated in the field directoryName, a URL address can be indicated in the
+ field uniformResourceIdentifier, and an object identifier can be indicated in
+ the field registeredId.
+ - The names of authorities which are responsible for the administration of
+ title registers are indicated in the data field namingAuthority. The name of
+ the authority can be identified by an object identifier in the field
+ namingAuthorityId, by means of a text string in the field
+ namingAuthorityText, by means of a URL address in the field
+ namingAuthorityUrl, or by a combination of them. For example, the text string
+ can contain the name of the authority, the country and the name of the title
+ register. The URL-option refers to a web page which contains lists with
+ officially registered professions (text and possibly OID) as well as
+ further information on these professions. Object identifiers for the
+ component namingAuthorityId are grouped under the OID-branch
+ id-isis-at-namingAuthorities and must be applied for.
+ - See http://www.teletrust.de/anwend.asp?Id=30200&Sprache=E_&HomePG=0
+ for an application form and http://www.teletrust.de/links.asp?id=30220,11
+ for an overview of registered naming authorities.
+ - By means of the data type ProfessionInfo certain professions,
+ specializations, disciplines, fields of activity, etc. are identified. A
+ profession is represented by one or more text strings, resp. profession OIDs
+ in the fields professionItems and professionOIDs and by a registration number
+ in the field registrationNumber. An indication in text form must always be
+ present, whereas the other indications are optional. The component
+ addProfessionInfo may contain additional applicationspecific information in
+ DER-encoded form.
+
+
+ By means of different namingAuthority-OIDs or profession OIDs hierarchies of
+ professions, specializations, disciplines, fields of activity, etc. can be
+ expressed. The issuing admission authority should always be indicated (field
+ admissionAuthority), whenever a registration number is presented. Still,
+ information on admissions can be given without indicating an admission or a
+ naming authority by the exclusive use of the component professionItems. In
+ this case the certification authority is responsible for the verification of
+ the admission information.
+
+
+
+ This attribute is single-valued. Still, several admissions can be captured in
+ the sequence structure of the component contentsOfAdmissions of
+ AdmissionSyntax or in the component professionInfos of Admissions. The
+ component admissionAuthority of AdmissionSyntax serves as default value for
+ the component admissionAuthority of Admissions. Within the latter component
+ the default value can be overwritten, in case that another authority is
+ responsible. The component namingAuthority of Admissions serves as a default
+ value for the component namingAuthority of ProfessionInfo. Within the latter
+ component the default value can be overwritten, in case that another naming
+ authority needs to be recorded.
+
+ The length of the string objects is limited to 128 characters. It is
+ recommended to indicate a namingAuthorityURL in all issued attribute
+ certificates. If a namingAuthorityURL is indicated, the field professionItems
+ of ProfessionInfo should contain only registered titles. If the field
+ professionOIDs exists, it has to contain the OIDs of the professions listed
+ in professionItems in the same order. In general, the field professionInfos
+ should contain only one entry, unless the admissions that are to be listed
+ are logically connected (e.g. they have been issued under the same admission
+ number).
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Admissions
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ @param admissionAuthority The admission authority.
+ @param contentsOfAdmissions The admissions.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the admissionAuthority if present, null otherwise.
+
+
+ @return Returns the contentsOfAdmissions.
+
+
+ A declaration of majority.
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ fullAgeAtCountry indicates the majority of the owner with respect to the laws
+ of a specific country.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ @return an Asn1Object
+
+
+ @return notYoungerThan if that's what we are, -1 otherwise
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST be
+ used in new certificates in place of the extension/attribute MonetaryLimit
+ since January 1, 2004. For the sake of backward compatibility with
+ certificates already in use, components SHOULD support MonetaryLimit (as well
+ as QcEuLimitValue).
+
+ Indicates a monetary limit within which the certificate holder is authorized
+ to act. (This value DOES NOT express a limit on the liability of the
+ certification authority).
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ currency must be the ISO code.
+
+ value = amount�10*exponent
+
+
+ Constructor from a given details.
+
+
+ value = amount�10^exponent
+
+ @param currency The currency. Must be the ISO code.
+ @param amount The amount
+ @param exponent The exponent
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ @return an Asn1Object
+
+
+ Names of authorities which are responsible for the administration of title
+ registers.
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+
+ Profession OIDs should always be defined under the OID branch of the
+ responsible naming authority. At the time of this writing, the work group
+ �Recht, Wirtschaft, Steuern� (�Law, Economy, Taxes�) is registered as the
+ first naming authority under the OID id-isismtt-at-namingAuthorities.
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ @return Returns the namingAuthorityID.
+
+
+ @return Returns the namingAuthorityText.
+
+
+ @return Returns the namingAuthorityUrl.
+
+
+ Constructor from given details.
+
+ All parameters can be combined.
+
+ @param namingAuthorityID ObjectIdentifier for naming authority.
+ @param namingAuthorityUrl URL for naming authority.
+ @param namingAuthorityText Textual representation of naming authority.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate that the certificate holder may sign in the name of a
+ third person.
+
+ ISIS-MTT PROFILE: The corresponding ProcurationSyntax contains either the
+ name of the person who is represented (subcomponent thirdPerson) or a
+ reference to his/her base certificate (in the component signingFor,
+ subcomponent certRef), furthermore the optional components country and
+ typeSubstitution to indicate the country whose laws apply, and respectively
+ the type of procuration (e.g. manager, procuration, custody).
+
+
+ ISIS-MTT PROFILE: The GeneralName MUST be of type directoryName and MAY only
+ contain: - RFC3039 attributes, except pseudonym (countryName, commonName,
+ surname, givenName, serialNumber, organizationName, organizationalUnitName,
+ stateOrProvincename, localityName, postalAddress) and - SubjectDirectoryName
+ attributes (title, dateOfBirth, placeOfBirth, gender, countryOfCitizenship,
+ countryOfResidence and NameAtBirth).
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param certRef Reference to certificate of the person who is represented.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param thirdPerson The GeneralName of the person who is represented.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @return an Asn1Object
+
+
+ Professions, specializations, disciplines, fields of activity, etc.
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+ Rechtsanw�ltin
+
+
+ Rechtsanwalt
+
+
+ Rechtsbeistand
+
+
+ Steuerberaterin
+
+
+ Steuerberater
+
+
+ Steuerbevollm�chtigte
+
+
+ Steuerbevollm�chtigter
+
+
+ Notarin
+
+
+ Notar
+
+
+ Notarvertreterin
+
+
+ Notarvertreter
+
+
+ Notariatsverwalterin
+
+
+ Notariatsverwalter
+
+
+ Wirtschaftspr�ferin
+
+
+ Wirtschaftspr�fer
+
+
+ Vereidigte Buchpr�ferin
+
+
+ Vereidigter Buchpr�fer
+
+
+ Patentanw�ltin
+
+
+ Patentanwalt
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ professionItems is mandatory, all other parameters are
+ optional.
+
+ @param namingAuthority The naming authority.
+ @param professionItems Directory strings of the profession.
+ @param professionOids DERObjectIdentfier objects for the
+ profession.
+ @param registrationNumber Registration number.
+ @param addProfessionInfo Additional infos in encoded form.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the addProfessionInfo.
+
+
+ @return Returns the namingAuthority.
+
+
+ @return Returns the professionItems.
+
+
+ @return Returns the professionOids.
+
+
+ @return Returns the registrationNumber.
+
+
+ Some other restriction regarding the usage of this certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ Constructor from DirectoryString.
+
+ The DirectoryString is of type RestrictionSyntax:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @param restriction A IAsn1String.
+
+
+ Constructor from a given details.
+
+ @param restriction The description of the restriction.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ @return an Asn1Object
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ cast5CBCParameters ::= Sequence {
+ iv OCTET STRING DEFAULT 0,
+ -- Initialization vector
+ keyLength Integer
+ -- Key length, in bits
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IDEA-CBCPar ::= Sequence {
+ iv OCTET STRING OPTIONAL -- exactly 8 octets
+ }
+
+
+
+ The NetscapeCertType object.
+
+ NetscapeCertType ::= BIT STRING {
+ SSLClient (0),
+ SSLServer (1),
+ S/MIME (2),
+ Object Signing (3),
+ Reserved (4),
+ SSL CA (5),
+ S/MIME CA (6),
+ Object Signing CA (7) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509NetscapeCertType.sslCA | X509NetscapeCertType.smimeCA)
+
+
+ This is designed to parse
+ the PublicKeyAndChallenge created by the KEYGEN tag included by
+ Mozilla based browsers.
+
+ PublicKeyAndChallenge ::= SEQUENCE {
+ spki SubjectPublicKeyInfo,
+ challenge IA5STRING
+ }
+
+
+
+
+ Utility class for fetching curves using their NIST names as published in FIPS-PUB 186-3
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ From RFC 3657
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicOcspResponse ::= Sequence {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertID ::= Sequence {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ create a CertStatus object with a tag of zero.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertStatus ::= CHOICE {
+ good [0] IMPLICIT Null,
+ revoked [1] IMPLICIT RevokedInfo,
+ unknown [2] IMPLICIT UnknownInfo }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlID ::= Sequence {
+ crlUrl [0] EXPLICIT IA5String OPTIONAL,
+ crlNum [1] EXPLICIT Integer OPTIONAL,
+ crlTime [2] EXPLICIT GeneralizedTime OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspRequest ::= Sequence {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspResponse ::= Sequence {
+ responseStatus OcspResponseStatus,
+ responseBytes [0] EXPLICIT ResponseBytes OPTIONAL }
+
+
+
+ The OcspResponseStatus enumeration.
+
+ OcspResponseStatus ::= Enumerated {
+ successful (0), --Response has valid confirmations
+ malformedRequest (1), --Illegal confirmation request
+ internalError (2), --Internal error in issuer
+ tryLater (3), --Try again later
+ --(4) is not used
+ sigRequired (5), --Must sign the request
+ unauthorized (6) --Request unauthorized
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Request ::= Sequence {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponderID ::= CHOICE {
+ byName [1] Name,
+ byKey [2] KeyHash }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseBytes ::= Sequence {
+ responseType OBJECT IDENTIFIER,
+ response OCTET STRING }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseData ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ responderID ResponderID,
+ producedAt GeneralizedTime,
+ responses Sequence OF SingleResponse,
+ responseExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RevokedInfo ::= Sequence {
+ revocationTime GeneralizedTime,
+ revocationReason [0] EXPLICIT CRLReason OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ServiceLocator ::= Sequence {
+ issuer Name,
+ locator AuthorityInfoAccessSyntax OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Signature ::= Sequence {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL}
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SingleResponse ::= Sequence {
+ certID CertID,
+ certStatus CertStatus,
+ thisUpdate GeneralizedTime,
+ nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL,
+ singleExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ TBSRequest ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList Sequence OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+
+
+ class for breaking up an Oid into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Pkcs10 Certfication request object.
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+
+
+ Pkcs10 CertificationRequestInfo object.
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ The EncryptedData object.
+
+ EncryptedData ::= Sequence {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo
+ }
+
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+ EncryptedContent ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedPrivateKeyInfo ::= Sequence {
+ encryptionAlgorithm AlgorithmIdentifier {{KeyEncryptionAlgorithms}},
+ encryptedData EncryptedData
+ }
+
+ EncryptedData ::= OCTET STRING
+
+ KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= {
+ ... -- For local profiles
+ }
+
+
+
+
+ MacData ::= SEQUENCE {
+ mac DigestInfo,
+ macSalt OCTET STRING,
+ iterations INTEGER DEFAULT 1
+ -- Note: The default is for historic reasons and its use is deprecated. A
+ -- higher value, like 1024 is recommended.
+
+ @return the basic DERObject construction.
+
+
+ the infamous Pfx from Pkcs12
+
+
+ PKCS#1: 1.2.840.113549.1.1.15
+
+
+ PKCS#1: 1.2.840.113549.1.1.16
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.6.2.37 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.6.2.38 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.54 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.43 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.40 RFC7030
+
+
+ write out an RSA private key with its associated information
+ as described in Pkcs8.
+
+ PrivateKeyInfo ::= Sequence {
+ version Version,
+ privateKeyAlgorithm AlgorithmIdentifier {{PrivateKeyAlgorithms}},
+ privateKey PrivateKey,
+ attributes [0] IMPLICIT Attributes OPTIONAL
+ }
+ Version ::= Integer {v1(0)} (v1,...)
+
+ PrivateKey ::= OCTET STRING
+
+ Attributes ::= Set OF Attr
+
+
+
+ The default version
+
+
+
+ RSAES-OAEP-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ pSourceAlgorithm [2] PKCS1PSourceAlgorithms DEFAULT pSpecifiedEmpty
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+ PKCS1PSourceAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-pSpecified PARAMETERS OCTET STRING },
+ ... -- Allows for future expansion --
+ }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RsaPrivateKey ::= Sequence {
+ version Version,
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ privateExponent Integer, -- d
+ prime1 Integer, -- p
+ prime2 Integer, -- q
+ exponent1 Integer, -- d mod (p-1)
+ exponent2 Integer, -- d mod (q-1)
+ coefficient Integer -- (inverse of q) mod p
+ }
+
+ Version ::= Integer
+
+ This routine is written to output Pkcs1 version 0, private keys.
+
+
+ The default version
+
+
+
+ RSASSA-PSS-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ saltLength [2] INTEGER DEFAULT 20,
+ trailerField [3] TrailerField DEFAULT trailerFieldBC
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+
+ TrailerField ::= INTEGER { trailerFieldBC(1) }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ a Pkcs#7 signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates
+ [0] IMPLICIT ExtendedCertificatesAndCertificates
+ OPTIONAL,
+ crls
+ [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos }
+
+
+
+ a Pkcs#7 signer info object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ the elliptic curve private key object from SEC 1
+
+
+ ECPrivateKey ::= SEQUENCE {
+ version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
+ privateKey OCTET STRING,
+ parameters [0] Parameters OPTIONAL,
+ publicKey [1] BIT STRING OPTIONAL }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ EllipticCurve OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0)
+ }
+
+
+ Handler class for dealing with S/MIME Capabilities
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ returns an ArrayList with 0 or more objects of all the capabilities
+ matching the passed in capability Oid. If the Oid passed is null the
+ entire set is returned.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapabilities ::= Sequence OF SMIMECapability
+
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapability ::= Sequence {
+ capabilityID OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY capabilityID OPTIONAL
+ }
+
+
+
+ Handler for creating a vector S/MIME Capabilities
+
+
+ The SmimeEncryptionKeyPreference object.
+
+ SmimeEncryptionKeyPreference ::= CHOICE {
+ issuerAndSerialNumber [0] IssuerAndSerialNumber,
+ receipentKeyId [1] RecipientKeyIdentifier,
+ subjectAltKeyIdentifier [2] SubjectKeyIdentifier
+ }
+
+
+
+ @param sKeyId the subjectKeyIdentifier value (normally the X.509 one)
+
+
+ elliptic curves defined in "ECC Brainpool Standard Curves and Curve Generation"
+ http://www.ecc-brainpool.org/download/draft_pkix_additional_ecc_dp.txt
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+
+ Accuracy ::= SEQUENCE {
+ seconds INTEGER OPTIONAL,
+ millis [0] INTEGER (1..999) OPTIONAL,
+ micros [1] INTEGER (1..999) OPTIONAL
+ }
+
+
+
+ @param o
+ @return a MessageImprint object.
+
+
+
+ MessageImprint ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashedMessage OCTET STRING }
+
+
+
+
+ TimeStampReq ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ messageImprint MessageImprint,
+ --a hash algorithm OID and the hash value of the data to be
+ --time-stamped
+ reqPolicy TSAPolicyId OPTIONAL,
+ nonce INTEGER OPTIONAL,
+ certReq BOOLEAN DEFAULT FALSE,
+ extensions [0] IMPLICIT Extensions OPTIONAL
+ }
+
+
+
+
+ TimeStampResp ::= SEQUENCE {
+ status PkiStatusInfo,
+ timeStampToken TimeStampToken OPTIONAL }
+
+
+
+
+
+ TstInfo ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ policy TSAPolicyId,
+ messageImprint MessageImprint,
+ -- MUST have the same value as the similar field in
+ -- TimeStampReq
+ serialNumber INTEGER,
+ -- Time-Stamping users MUST be ready to accommodate integers
+ -- up to 160 bits.
+ genTime GeneralizedTime,
+ accuracy Accuracy OPTIONAL,
+ ordering BOOLEAN DEFAULT FALSE,
+ nonce INTEGER OPTIONAL,
+ -- MUST be present if the similar field was present
+ -- in TimeStampReq. In that case it MUST have the same value.
+ tsa [0] GeneralName OPTIONAL,
+ extensions [1] IMPLICIT Extensions OPTIONAL }
+
+
+
+
+
+ Base OID: 1.2.804.2.1.1.1
+
+
+ DSTU4145 Little Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1
+
+
+ DSTU4145 Big Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1.1
+
+
+ DSTU7564 256-bit digest presentation.
+
+
+ DSTU7564 384-bit digest presentation.
+
+
+ DSTU7564 512-bit digest presentation.
+
+
+ DSTU7564 256-bit mac presentation.
+
+
+ DSTU7564 384-bit mac presentation.
+
+
+ DSTU7564 512-bit mac presentation.
+
+
+ DSTU7624 in ECB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 512 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 128 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 256 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 512 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 512 bit block/key presentation
+
+
+ dump a Der object as a formatted string with indentation
+
+ @param obj the Asn1Object to be dumped out.
+
+
+ dump out a DER object as a formatted string, in non-verbose mode
+
+ @param obj the Asn1Encodable to be dumped out.
+ @return the resulting string.
+
+
+ Dump out the object as a string
+
+ @param obj the Asn1Encodable to be dumped out.
+ @param verbose if true, dump out the contents of octet and bit strings.
+ @return the resulting string.
+
+
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+ The AccessDescription object.
+
+ AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+
+
+ create an AccessDescription with the oid and location provided.
+
+
+
+ @return the access method.
+
+
+
+ @return the access location
+
+
+
+ Return the OID in the Algorithm entry of this identifier.
+
+
+
+
+ Return the parameters structure in the Parameters entry of this identifier.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AlgorithmIdentifier ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+
+
+
+
+ Don't use this one if you are trying to be RFC 3281 compliant.
+ Use it for v1 attribute certificates only.
+
+ Our GeneralNames structure
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertValidityPeriod ::= Sequence {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ @param obj
+ @return
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificate ::= Sequence {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= Integer { v2(1) }
+
+
+
+ The AuthorityInformationAccess object.
+
+ id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+ AuthorityInfoAccessSyntax ::=
+ Sequence SIZE (1..MAX) OF AccessDescription
+ AccessDescription ::= Sequence {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+ id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+ id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+
+
+
+ create an AuthorityInformationAccess with the oid and location provided.
+
+
+ The AuthorityKeyIdentifier object.
+
+ id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+ AuthorityKeyIdentifier ::= Sequence {
+ keyIdentifier [0] IMPLICIT KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] IMPLICIT GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] IMPLICIT CertificateSerialNumber OPTIONAL }
+
+ KeyIdentifier ::= OCTET STRING
+
+
+
+
+ *
+ * Calulates the keyidentifier using a SHA1 hash over the BIT STRING
+ * from SubjectPublicKeyInfo as defined in RFC2459.
+ *
+ * Example of making a AuthorityKeyIdentifier:
+ *
+ * SubjectPublicKeyInfo apki = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(
+ * publicKey.getEncoded()).readObject());
+ * AuthorityKeyIdentifier aki = new AuthorityKeyIdentifier(apki);
+ *
+ *
+ *
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided as well.
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided.
+
+
+ create an AuthorityKeyIdentifier with a precomputed key identifier
+
+
+ create an AuthorityKeyIdentifier with a precomupted key identifier
+ and the GeneralNames tag and the serial number provided as well.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ create a cA=true object for the given path length constraint.
+
+ @param pathLenConstraint
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicConstraints := Sequence {
+ cA Boolean DEFAULT FALSE,
+ pathLenConstraint Integer (0..MAX) OPTIONAL
+ }
+
+
+
+ PKIX RFC-2459
+
+ The X.509 v2 CRL syntax is as follows. For signature calculation,
+ the data that is to be signed is ASN.1 Der encoded.
+
+
+ CertificateList ::= Sequence {
+ tbsCertList TbsCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING }
+
+
+
+ This class helps to support crossCerfificatePairs in a LDAP directory
+ according RFC 2587
+
+
+ crossCertificatePairATTRIBUTE::={
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID joint-iso-ccitt(2) ds(5) attributeType(4) crossCertificatePair(40)}
+
+
+ The forward elements of the crossCertificatePair attribute of a
+ CA's directory entry shall be used to store all, except self-issued
+ certificates issued to this CA. Optionally, the reverse elements of the
+ crossCertificatePair attribute, of a CA's directory entry may contain a
+ subset of certificates issued by this CA to other CAs. When both the forward
+ and the reverse elements are present in a single attribute value, issuer name
+ in one certificate shall match the subject name in the other and vice versa,
+ and the subject public key in one certificate shall be capable of verifying
+ the digital signature on the other certificate and vice versa.
+
+ When a reverse element is present, the forward element value and the reverse
+ element value need not be stored in the same attribute value; in other words,
+ they can be stored in either a single attribute value or two attribute
+ values.
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertificatePair:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param forward Certificates issued to this CA.
+ @param reverse Certificates issued by this CA to other CAs.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @return a DERObject
+
+
+ @return Returns the forward.
+
+
+ @return Returns the reverse.
+
+
+ Construct a CertificatePolicies object containing one PolicyInformation.
+
+ @param name the name to be contained.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation
+
+
+
+ CertPolicyId, used in the CertificatePolicies and PolicyMappings
+ X509V3 Extensions.
+
+
+ CertPolicyId ::= OBJECT IDENTIFIER
+
+
+
+ Return the distribution points making up the sequence.
+
+ @return DistributionPoint[]
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlDistPoint ::= Sequence SIZE {1..MAX} OF DistributionPoint
+
+
+
+ The CRLNumber object.
+
+ CRLNumber::= Integer(0..MAX)
+
+
+
+ The CRLReason enumeration.
+
+ CRLReason ::= Enumerated {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10)
+ }
+
+
+
+ The DigestInfo object.
+
+ DigestInfo::=Sequence{
+ digestAlgorithm AlgorithmIdentifier,
+ digest OCTET STRING }
+
+
+
+ DisplayText class, used in
+ CertificatePolicies X509 V3 extensions (in policy qualifiers).
+
+ It stores a string in a chosen encoding.
+
+ DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Constant corresponding to ia5String encoding.
+
+
+
+ Constant corresponding to bmpString encoding.
+
+
+
+ Constant corresponding to utf8String encoding.
+
+
+
+ Constant corresponding to visibleString encoding.
+
+
+
+ Describe constant DisplayTextMaximumSize here.
+
+
+
+ Creates a new DisplayText instance.
+
+ @param type the desired encoding type for the text.
+ @param text the text to store. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+
+ @param text the text to encapsulate. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+ Useful when reading back a DisplayText class
+ from it's Asn1Encodable form.
+
+ @param contents an Asn1Encodable instance.
+
+
+ Returns the stored string object.
+
+ @return the stored text as a string.
+
+
+ The DistributionPoint object.
+
+ DistributionPoint ::= Sequence {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+ }
+
+
+
+ The DistributionPointName object.
+
+ DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RDN
+ }
+
+
+
+ The extendedKeyUsage object.
+
+ extendedKeyUsage ::= Sequence SIZE (1..MAX) OF KeyPurposeId
+
+
+
+ Returns all extended key usages.
+ The returned ArrayList contains DerObjectIdentifier instances.
+ @return An ArrayList with all key purposes.
+
+
+ The GeneralName object.
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+ OtherName ::= Sequence {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+ EDIPartyName ::= Sequence {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+
+
+ When the subjectAltName extension contains an Internet mail address,
+ the address MUST be included as an rfc822Name. The format of an
+ rfc822Name is an "addr-spec" as defined in RFC 822 [RFC 822].
+
+ When the subjectAltName extension contains a domain name service
+ label, the domain name MUST be stored in the dNSName (an IA5String).
+ The name MUST be in the "preferred name syntax," as specified by RFC
+ 1034 [RFC 1034].
+
+ When the subjectAltName extension contains a URI, the name MUST be
+ stored in the uniformResourceIdentifier (an IA5String). The name MUST
+ be a non-relative URL, and MUST follow the URL syntax and encoding
+ rules specified in [RFC 1738]. The name must include both a scheme
+ (e.g., "http" or "ftp") and a scheme-specific-part. The scheme-
+ specific-part must include a fully qualified domain name or IP
+ address as the host.
+
+ When the subjectAltName extension contains a iPAddress, the address
+ MUST be stored in the octet string in "network byte order," as
+ specified in RFC 791 [RFC 791]. The least significant bit (LSB) of
+ each octet is the LSB of the corresponding byte in the network
+ address. For IP Version 4, as specified in RFC 791, the octet string
+ MUST contain exactly four octets. For IP Version 6, as specified in
+ RFC 1883, the octet string MUST contain exactly sixteen octets [RFC
+ 1883].
+
+
+ Create a GeneralName for the given tag from the passed in string.
+
+ This constructor can handle:
+
+ - rfc822Name
+ - iPAddress
+ - directoryName
+ - dNSName
+ - uniformResourceIdentifier
+ - registeredID
+
+ For x400Address, otherName and ediPartyName there is no common string
+ format defined.
+
+ Note: A directory name can be encoded in different ways into a byte
+ representation. Be aware of this if the byte representation is used for
+ comparing results.
+
+
+ @param tag tag number
+ @param name string representation of name
+ @throws ArgumentException if the string encoding is not correct or
+ not supported.
+
+
+ Construct a GeneralNames object containing one GeneralName.
+ The name to be contained.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ GeneralNames ::= Sequence SIZE {1..MAX} OF GeneralName
+
+
+
+ Class for containing a restriction object subtrees in NameConstraints. See
+ RFC 3280.
+
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.NameConstraints
+
+
+
+ Constructor from a given details.
+
+ According RFC 3280, the minimum and maximum fields are not used with any
+ name forms, thus minimum MUST be zero, and maximum MUST be absent.
+
+ If minimum is null, zero is assumed, if
+ maximum is null, maximum is absent.
+
+ @param baseName
+ A restriction.
+ @param minimum
+ Minimum
+
+ @param maximum
+ Maximum
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @return a DERObject
+
+
+ The Holder object.
+
+ For an v2 attribute certificate this is:
+
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ For an v1 attribute certificate this is:
+
+
+ subject CHOICE {
+ baseCertificateID [0] IssuerSerial,
+ -- associated with a Public Key Certificate
+ subjectName [1] GeneralNames },
+ -- associated with a name
+
+
+
+
+ Constructor for a holder for an v1 attribute certificate.
+
+ @param tagObj The ASN.1 tagged holder object.
+
+
+ Constructor for a holder for an v2 attribute certificate. *
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructs a holder from a IssuerSerial.
+ @param baseCertificateID The IssuerSerial.
+ @param version The version of the attribute certificate.
+
+
+ Returns 1 for v2 attribute certificates or 0 for v1 attribute
+ certificates.
+ @return The version of the attribute certificate.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+ @param version The version of the attribute certificate.
+
+
+ Constructs a holder from an object digest info.
+
+ @param objectDigestInfo The object digest info object.
+
+
+ Returns the entityName for an v2 attribute certificate or the subjectName
+ for an v1 attribute certificate.
+
+ @return The entityname or subjectname.
+
+
+ The Holder object.
+
+ Holder ::= Sequence {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ Implementation of IetfAttrSyntax as specified by RFC3281.
+
+
+
+
+
+
+
+
+ IetfAttrSyntax ::= Sequence {
+ policyAuthority [0] GeneralNames OPTIONAL,
+ values Sequence OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IssuerSerial ::= Sequence {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUid UniqueIdentifier OPTIONAL
+ }
+
+
+
+
+ IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+
+
+ Constructor from given details.
+
+ @param distributionPoint
+ May contain an URI as pointer to most current CRL.
+ @param onlyContainsUserCerts Covers revocation information for end certificates.
+ @param onlyContainsCACerts Covers revocation information for CA certificates.
+
+ @param onlySomeReasons
+ Which revocation reasons does this point cover.
+ @param indirectCRL
+ If true then the CRL contains revocation
+ information about certificates ssued by other CAs.
+ @param onlyContainsAttributeCerts Covers revocation information for attribute certificates.
+
+
+ Constructor from Asn1Sequence
+
+
+ @return Returns the distributionPoint.
+
+
+ @return Returns the onlySomeReasons.
+
+
+ The KeyPurposeID object.
+
+ KeyPurposeID ::= OBJECT IDENTIFIER
+
+
+
+ The KeyUsage object.
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (KeyUsage.keyEncipherment | KeyUsage.dataEncipherment)
+
+
+ Constructor from a given details.
+
+ permitted and excluded are Vectors of GeneralSubtree objects.
+
+ @param permitted Permitted subtrees
+ @param excluded Excluded subtrees
+
+
+ NoticeReference class, used in
+ CertificatePolicies X509 V3 extensions
+ (in policy qualifiers).
+
+
+ NoticeReference ::= Sequence {
+ organization DisplayText,
+ noticeNumbers Sequence OF Integer }
+
+
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param numbers a Vector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization displayText
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+ Useful for reconstructing a NoticeReference
+ instance from its encodable/encoded form.
+
+ @param as an Asn1Sequence value obtained from either
+ calling @{link ToAsn1Object()} for a NoticeReference
+ instance or from parsing it from a Der-encoded stream.
+
+
+ Describe ToAsn1Object method here.
+
+ @return a Asn1Object value
+
+
+ ObjectDigestInfo ASN.1 structure used in v2 attribute certificates.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+
+ The public key is hashed.
+
+
+ The public key certificate is hashed.
+
+
+ An other object is hashed.
+
+
+ Constructor from given details.
+
+ If digestedObjectType is not {@link #publicKeyCert} or
+ {@link #publicKey} otherObjectTypeID must be given,
+ otherwise it is ignored.
+
+ @param digestedObjectType The digest object type.
+ @param otherObjectTypeID The object type ID for
+ otherObjectDigest.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param objectDigest The hash value.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+ PolicyMappings V3 extension, described in RFC3280.
+
+ PolicyMappings ::= Sequence SIZE (1..MAX) OF Sequence {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+
+ @see RFC 3280, section 4.2.1.6
+
+
+ Creates a new PolicyMappings instance.
+
+ @param seq an Asn1Sequence constructed as specified
+ in RFC 3280
+
+
+ Creates a new PolicyMappings instance.
+
+ @param mappings a HashMap value that maps
+ string oids
+ to other string oids.
+
+
+ PolicyQualifierId, used in the CertificatePolicies
+ X509V3 extension.
+
+
+ id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+
+
+ Policy qualifiers, used in the X509V3 CertificatePolicies
+ extension.
+
+
+ PolicyQualifierInfo ::= Sequence {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param policyQualifierId a PolicyQualifierId value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new PolicyQualifierInfo containing a
+ cPSuri qualifier.
+
+ @param cps the CPS (certification practice statement) uri as a
+ string.
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param as PolicyQualifierInfo X509 structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a Der-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+
+ PrivateKeyUsagePeriod ::= SEQUENCE
+ {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+
+
+
+
+ The BiometricData object.
+
+ BiometricData ::= SEQUENCE {
+ typeOfBiometricData TypeOfBiometricData,
+ hashAlgorithm AlgorithmIdentifier,
+ biometricDataHash OCTET STRING,
+ sourceDataUri IA5String OPTIONAL }
+
+
+
+ The Iso4217CurrencyCode object.
+
+ Iso4217CurrencyCode ::= CHOICE {
+ alphabetic PrintableString (SIZE 3), --Recommended
+ numeric INTEGER (1..999) }
+ -- Alphabetic or numeric currency code as defined in ISO 4217
+ -- It is recommended that the Alphabetic form is used
+
+
+
+ The MonetaryValue object.
+
+ MonetaryValue ::= SEQUENCE {
+ currency Iso4217CurrencyCode,
+ amount INTEGER,
+ exponent INTEGER }
+ -- value = amount * 10^exponent
+
+
+
+ The QCStatement object.
+
+ QCStatement ::= SEQUENCE {
+ statementId OBJECT IDENTIFIER,
+ statementInfo ANY DEFINED BY statementId OPTIONAL}
+
+
+
+ The SemanticsInformation object.
+
+ SemanticsInformation ::= SEQUENCE {
+ semanticsIdentifier OBJECT IDENTIFIER OPTIONAL,
+ nameRegistrationAuthorities NameRegistrationAuthorities
+ OPTIONAL }
+ (WITH COMPONENTS {..., semanticsIdentifier PRESENT}|
+ WITH COMPONENTS {..., nameRegistrationAuthorities PRESENT})
+
+ NameRegistrationAuthorities ::= SEQUENCE SIZE (1..MAX) OF
+ GeneralName
+
+
+
+ The TypeOfBiometricData object.
+
+ TypeOfBiometricData ::= CHOICE {
+ predefinedBiometricType PredefinedBiometricType,
+ biometricDataOid OBJECT IDENTIFIER }
+
+ PredefinedBiometricType ::= INTEGER {
+ picture(0),handwritten-signature(1)}
+ (picture|handwritten-signature)
+
+
+
+ The ReasonFlags object.
+
+ ReasonFlags ::= BIT STRING {
+ unused(0),
+ keyCompromise(1),
+ cACompromise(2),
+ affiliationChanged(3),
+ superseded(4),
+ cessationOfOperation(5),
+ certficateHold(6)
+ }
+
+
+
+ @param reasons - the bitwise OR of the Key Reason flags giving the
+ allowed uses for the key.
+
+
+ Implementation of the RoleSyntax object as specified by the RFC3281.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ RoleSyntax factory method.
+ @param obj the object used to construct an instance of
+ RoleSyntax. It must be an instance of RoleSyntax
+ or Asn1Sequence.
+ @return the instance of RoleSyntax built from the
+ supplied object.
+ @throws java.lang.ArgumentException if the object passed
+ to the factory is not an instance of RoleSyntax or
+ Asn1Sequence.
+
+
+ Constructor.
+ @param roleAuthority the role authority of this RoleSyntax.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Constructor. Invoking this constructor is the same as invoking
+ new RoleSyntax(null, roleName).
+ @param roleName the role name of this RoleSyntax.
+
+
+ Utility constructor. Takes a string argument representing
+ the role name, builds a GeneralName to hold the role name
+ and calls the constructor that takes a GeneralName.
+ @param roleName
+
+
+ Constructor that builds an instance of RoleSyntax by
+ extracting the encoded elements from the Asn1Sequence
+ object supplied.
+ @param seq an instance of Asn1Sequence that holds
+ the encoded elements used to build this RoleSyntax.
+
+
+ Gets the role authority of this RoleSyntax.
+ @return an instance of GeneralNames holding the
+ role authority of this RoleSyntax.
+
+
+ Gets the role name of this RoleSyntax.
+ @return an instance of GeneralName holding the
+ role name of this RoleSyntax.
+
+
+ Gets the role name as a java.lang.string object.
+ @return the role name of this RoleSyntax represented as a
+ string object.
+
+
+ Gets the role authority as a string[] object.
+ @return the role authority of this RoleSyntax represented as a
+ string[] array.
+
+
+ Implementation of the method ToAsn1Object as
+ required by the superclass ASN1Encodable.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RSAPublicKey ::= Sequence {
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ }
+
+
+
+ Structure for a name or pseudonym.
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.PersonalData
+
+
+
+ Constructor from DERString.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+ @param pseudonym pseudonym value to use.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param pseudonym The pseudonym.
+
+
+ Constructor from a given details.
+
+ @param surname The surname.
+ @param givenName A sequence of directory strings making up the givenName
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @return an Asn1Object
+
+
+ Contains personal data for the otherName field in the subjectAltNames
+ extension.
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.NameOrPseudonym
+ @see org.bouncycastle.asn1.x509.sigi.SigIObjectIdentifiers
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param nameOrPseudonym Name or pseudonym.
+ @param nameDistinguisher Name distinguisher.
+ @param dateOfBirth Date of birth.
+ @param placeOfBirth Place of birth.
+ @param gender Gender.
+ @param postalAddress Postal Address.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Object Identifiers of SigI specifciation (German Signature Law
+ Interoperability specification).
+
+
+ Key purpose IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Certificate policy IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Other Name IDs for German SigI (Signature Interoperability Specification)
+
+
+ To be used for for the generation of directory service certificates.
+
+
+ ID for PersonalData
+
+
+ Certificate is conform to german signature law.
+
+
+ This extension may contain further X.500 attributes of the subject. See also
+ RFC 3039.
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @see org.bouncycastle.asn1.x509.X509Name for AttributeType ObjectIdentifiers.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type SubjectDirectoryAttributes:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @param seq
+ The ASN.1 sequence.
+
+
+ Constructor from an ArrayList of attributes.
+
+ The ArrayList consists of attributes of type {@link Attribute Attribute}
+
+ @param attributes The attributes.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @return a DERObject
+
+
+ @return Returns the attributes.
+
+
+ The SubjectKeyIdentifier object.
+
+ SubjectKeyIdentifier::= OCTET STRING
+
+
+
+ Calculates the keyIdentifier using a SHA1 hash over the BIT STRING
+ from SubjectPublicKeyInfo as defined in RFC3280.
+
+ @param spki the subject public key info.
+
+
+ Return a RFC 3280 type 1 key identifier. As in:
+
+ (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the
+ value of the BIT STRING subjectPublicKey (excluding the tag,
+ length, and number of unused bits).
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ Return a RFC 3280 type 2 key identifier. As in:
+
+ (2) The keyIdentifier is composed of a four bit type field with
+ the value 0100 followed by the least significant 60 bits of the
+ SHA-1 hash of the value of the BIT STRING subjectPublicKey.
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ The object that contains the public key stored in a certficate.
+
+ The GetEncoded() method in the public keys in the JCE produces a DER
+ encoded one of these.
+
+
+ for when the public key is an encoded object - if the bitstring
+ can't be decoded this routine raises an IOException.
+
+ @exception IOException - if the bit string doesn't represent a Der
+ encoded object.
+
+
+ for when the public key is raw bits...
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SubjectPublicKeyInfo ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING }
+
+
+
+ Target structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+
+ The targetCert field is currently not supported and must not be used
+ according to RFC 3281.
+
+
+ Creates an instance of a Target from the given object.
+
+ obj can be a Target or a {@link Asn1TaggedObject}
+
+ @param obj The object.
+ @return A Target instance.
+ @throws ArgumentException if the given object cannot be
+ interpreted as Target.
+
+
+ Constructor from Asn1TaggedObject.
+
+ @param tagObj The tagged object.
+ @throws ArgumentException if the encoding is wrong.
+
+
+ Constructor from given details.
+
+ Exactly one of the parameters must be not null.
+
+ @param type the choice type to apply to the name.
+ @param name the general name.
+ @throws ArgumentException if type is invalid.
+
+
+ @return Returns the targetGroup.
+
+
+ @return Returns the targetName.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+ @return an Asn1Object
+
+
+ Target information extension for attributes certificates according to RFC
+ 3281.
+
+
+ SEQUENCE OF Targets
+
+
+
+
+ Creates an instance of a TargetInformation from the given object.
+
+ obj can be a TargetInformation or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A TargetInformation instance.
+ @throws ArgumentException if the given object cannot be interpreted as TargetInformation.
+
+
+ Constructor from a Asn1Sequence.
+
+ @param seq The Asn1Sequence.
+ @throws ArgumentException if the sequence does not contain
+ correctly encoded Targets elements.
+
+
+ Returns the targets in this target information extension.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Constructs a target information from a single targets element.
+ According to RFC 3281 only one targets element must be produced.
+
+ @param targets A Targets instance.
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given they must be merged in
+ into one targets element.
+
+ @param targets An array with {@link Targets}.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SEQUENCE OF Targets
+
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given in the constructor they are merged into one
+ targets element. If this was produced from a
+ {@link Org.BouncyCastle.Asn1.Asn1Sequence} the encoding is kept.
+
+ @return an Asn1Object
+
+
+ Targets structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.Target
+ @see org.bouncycastle.asn1.x509.TargetInformation
+
+
+ Creates an instance of a Targets from the given object.
+
+ obj can be a Targets or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A Targets instance.
+ @throws ArgumentException if the given object cannot be interpreted as Target.
+
+
+ Constructor from Asn1Sequence.
+
+ @param targets The ASN.1 SEQUENCE.
+ @throws ArgumentException if the contents of the sequence are
+ invalid.
+
+
+ Constructor from given targets.
+
+ The ArrayList is copied.
+
+ @param targets An ArrayList of {@link Target}s.
+ @see Target
+ @throws ArgumentException if the ArrayList contains not only Targets.
+
+
+ Returns the targets in an ArrayList.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Targets ::= SEQUENCE OF Target
+
+
+ @return an Asn1Object
+
+
+ The TbsCertificate object.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+ Note: issuerUniqueID and subjectUniqueID are both deprecated by the IETF. This class
+ will parse them, but you really shouldn't be creating new ones.
+
+
+ PKIX RFC-2459 - TbsCertList object.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+
+ Return our time as DateTime.
+
+ A date time.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+ UserNotice class, used in
+ CertificatePolicies X509 extensions (in policy
+ qualifiers).
+
+ UserNotice ::= Sequence {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+
+
+ @see PolicyQualifierId
+ @see PolicyInformation
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param explicitText a DisplayText value
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param str the explicitText field as a string.
+
+
+ Creates a new UserNotice instance.
+ Useful from reconstructing a UserNotice instance
+ from its encodable/encoded form.
+
+ @param as an ASN1Sequence value obtained from either
+ calling @{link toASN1Object()} for a UserNotice
+ instance or from parsing it from a DER-encoded stream.
+
+
+ Generator for Version 1 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ }
+
+
+
+
+ Generator for Version 2 AttributeCertificateInfo
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+
+
+
+ @param attribute
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ V2Form ::= Sequence {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST NOT
+ -- be present in this profile
+ }
+
+
+
+ Generator for Version 2 TbsCertList structures.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+ Note: This class may be subject to change
+
+
+ Generator for Version 3 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+
+
+ an X509Certificate structure.
+
+ Certificate ::= Sequence {
+ tbsCertificate TbsCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+
+
+ The default converter for X509 DN entries when going from their
+ string value to ASN.1 strings.
+
+
+ Apply default conversion for the given value depending on the oid
+ and the character range of the value.
+
+ @param oid the object identifier for the DN entry
+ @param value the value associated with it
+ @return the ASN.1 equivalent for the string value.
+
+
+ an object for the elements in the X.509 V3 extension block.
+
+
+ Convert the value of the passed in extension to an object.
+ The extension to parse.
+ The object the value string contains.
+ If conversion is not possible.
+
+
+ Subject Directory Attributes
+
+
+ Subject Key Identifier
+
+
+ Key Usage
+
+
+ Private Key Usage Period
+
+
+ Subject Alternative Name
+
+
+ Issuer Alternative Name
+
+
+ Basic Constraints
+
+
+ CRL Number
+
+
+ Reason code
+
+
+ Hold Instruction Code
+
+
+ Invalidity Date
+
+
+ Delta CRL indicator
+
+
+ Issuing Distribution Point
+
+
+ Certificate Issuer
+
+
+ Name Constraints
+
+
+ CRL Distribution Points
+
+
+ Certificate Policies
+
+
+ Policy Mappings
+
+
+ Authority Key Identifier
+
+
+ Policy Constraints
+
+
+ Extended Key Usage
+
+
+ Freshest CRL
+
+
+ Inhibit Any Policy
+
+
+ Authority Info Access
+
+
+ Subject Info Access
+
+
+ Logo Type
+
+
+ BiometricInfo
+
+
+ QCStatements
+
+
+ Audit identity extension in attribute certificates.
+
+
+ NoRevAvail extension in attribute certificates.
+
+
+ TargetInformation extension in attribute certificates.
+
+
+ Expired Certificates on CRL extension
+
+
+ Constructor from Asn1Sequence.
+
+ the extensions are a list of constructed sequences, either with (Oid, OctetString) or (Oid, Boolean, OctetString)
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ return an Enumeration of the extension field's object ids.
+
+
+ return the extension represented by the object identifier
+ passed in.
+
+ @return the extension if it's present, null otherwise.
+
+
+
+ Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+ Extension ::= SEQUENCE {
+ extnId EXTENSION.&id ({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+
+
+ Generator for X.509 extensions
+
+
+ Reset the generator
+
+
+
+ Add an extension with the given oid and the passed in value to be included
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The ASN.1 object to be included in the extension.
+
+
+
+ Add an extension with the given oid and the passed in byte array to be wrapped
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The byte array to be wrapped.
+
+
+ Return true if there are no extension present in this generator.
+ True if empty, false otherwise
+
+
+ Generate an X509Extensions object based on the current state of the generator.
+ An X509Extensions object
+
+
+
+ RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+ RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY }
+
+
+
+ country code - StringType(SIZE(2))
+
+
+ organization - StringType(SIZE(1..64))
+
+
+ organizational unit name - StringType(SIZE(1..64))
+
+
+ Title
+
+
+ common name - StringType(SIZE(1..64))
+
+
+ street - StringType(SIZE(1..64))
+
+
+ device serial number name - StringType(SIZE(1..64))
+
+
+ locality name - StringType(SIZE(1..64))
+
+
+ state, or province name - StringType(SIZE(1..64))
+
+
+ Naming attributes of type X520name
+
+
+ businessCategory - DirectoryString(SIZE(1..128)
+
+
+ postalCode - DirectoryString(SIZE(1..40)
+
+
+ dnQualifier - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 Pseudonym - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Z
+
+
+ RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128)
+
+
+ RFC 3039 DateOfBirth - PrintableString (SIZE(1)) -- "M", "F", "m" or "f"
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF
+ DirectoryString(SIZE(1..30))
+
+
+ RFC 2256 dmdName
+
+
+ id-at-telephoneNumber
+
+
+ id-at-organizationIdentifier
+
+
+ id-at-name
+
+
+ Email address (RSA PKCS#9 extension) - IA5String.
+ Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.
+
+
+ more from PKCS#9
+
+
+ email address in Verisign certificates
+
+
+ LDAP User id.
+
+
+ determines whether or not strings should be processed and printed
+ from back to front.
+
+
+ default look up table translating OID values into their common symbols following
+ the convention in RFC 2253 with a few extras
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 2253
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 1779
+
+
+
+ look up table translating common symbols into their OIDS.
+
+
+ Return a X509Name based on the passed in tagged object.
+
+ @param obj tag object holding name.
+ @param explicitly true if explicitly tagged false otherwise.
+ @return the X509Name
+
+
+ Constructor from Asn1Sequence
+
+ the principal will be a list of constructed sets, each containing an (OID, string) pair.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. If reverse
+ is true, create the encoded version of the sequence starting from the
+ last element in the string.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter. If reverse is true the ASN.1 sequence representing the DN will
+ be built by starting at the end of the string, rather than the start.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically.
+
+ If reverse is true, create the encoded version of the sequence
+ starting from the last element in the string.
+ @param reverse true if we should start scanning from the end (RFC 2553).
+ @param lookUp table of names and their oids.
+ @param dirName the X.500 string to be parsed.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically. The passed in converter is used to convert the
+ string values to the right of each equals sign to their ASN.1 counterparts.
+
+ @param reverse true if we should start scanning from the end, false otherwise.
+ @param lookUp table of names and oids.
+ @param dirName the string dirName
+ @param converter the converter to convert string values into their ASN.1 equivalents
+
+
+ return an IList of the oids in the name, in the order they were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found, with the DN label corresponding to passed in oid.
+
+
+ The X509Name object to test equivalency against.
+ If true, the order of elements must be the same,
+ as well as the values associated with each element.
+
+
+ test for equivalence - note: case is ignored.
+
+
+ convert the structure to a string - if reverse is true the
+ oids and values are listed out starting with the last element
+ in the sequence (ala RFC 2253), otherwise the string will begin
+ with the first element of the structure. If no string definition
+ for the oid is found in oidSymbols the string value of the oid is
+ added. Two standard symbol tables are provided DefaultSymbols, and
+ RFC2253Symbols as part of this class.
+
+ @param reverse if true start at the end of the sequence and work back.
+ @param oidSymbols look up table strings for oids.
+
+
+ * It turns out that the number of standard ways the fields in a DN should be
+ * encoded into their ASN.1 counterparts is rapidly approaching the
+ * number of machines on the internet. By default the X509Name class
+ * will produce UTF8Strings in line with the current recommendations (RFC 3280).
+ *
+ * An example of an encoder look like below:
+ *
+ * public class X509DirEntryConverter
+ * : X509NameEntryConverter
+ * {
+ * public Asn1Object GetConvertedValue(
+ * DerObjectIdentifier oid,
+ * string value)
+ * {
+ * if (str.Length() != 0 && str.charAt(0) == '#')
+ * {
+ * return ConvertHexEncoded(str, 1);
+ * }
+ * if (oid.Equals(EmailAddress))
+ * {
+ * return new DerIA5String(str);
+ * }
+ * else if (CanBePrintable(str))
+ * {
+ * return new DerPrintableString(str);
+ * }
+ * else if (CanBeUTF8(str))
+ * {
+ * return new DerUtf8String(str);
+ * }
+ * else
+ * {
+ * return new DerBmpString(str);
+ * }
+ * }
+ * }
+ *
+ *
+
+
+ Convert an inline encoded hex string rendition of an ASN.1
+ object back into its corresponding ASN.1 object.
+
+ @param str the hex encoded object
+ @param off the index at which the encoding starts
+ @return the decoded object
+
+
+ return true if the passed in string can be represented without
+ loss as a PrintableString, false otherwise.
+
+
+ Convert the passed in string value into the appropriate ASN.1
+ encoded object.
+
+ @param oid the oid associated with the value in the DN.
+ @param value the value of the particular DN component.
+ @return the ASN.1 equivalent for the value.
+
+
+ class for breaking up an X500 Name into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ A general class that reads all X9.62 style EC curve tables.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve. The routine returns null if the curve is not present.
+
+ @param name the name of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve.
+
+ @param oid the object id of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return an enumeration of the names of the available curves.
+
+ @return an enumeration of the names of the available curves.
+
+
+ ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeySpecificInfo ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ counter OCTET STRING SIZE (4..4)
+ }
+
+
+
+ ANS.1 def for Diffie-Hellman key exchange OtherInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherInfo ::= Sequence {
+ keyInfo KeySpecificInfo,
+ partyAInfo [0] OCTET STRING OPTIONAL,
+ suppPubInfo [2] OCTET STRING
+ }
+
+
+
+ table of the current named curves defined in X.962 EC-DSA.
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Parameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve CURVES.&id({CurveNames}),
+ implicitlyCA Null
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve Curve structure. See
+ X9.62, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Curve ::= Sequence {
+ a FieldElement,
+ b FieldElement,
+ seed BIT STRING OPTIONAL
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve ECParameters structure. See
+ X9.62, for further details.
+
+
+ Return the ASN.1 entry representing the Curve.
+
+ @return the X9Curve for the curve in these parameters.
+
+
+ Return the ASN.1 entry representing the FieldID.
+
+ @return the X9FieldID for the FieldID in these parameters.
+
+
+ Return the ASN.1 entry representing the base point G.
+
+ @return the X9ECPoint for the base point in these parameters.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECParameters ::= Sequence {
+ version Integer { ecpVer1(1) } (ecpVer1),
+ fieldID FieldID {{FieldTypes}},
+ curve X9Curve,
+ base X9ECPoint,
+ order Integer,
+ cofactor Integer OPTIONAL
+ }
+
+
+
+ class for describing an ECPoint as a Der object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECPoint ::= OCTET STRING
+
+
+ Octet string produced using ECPoint.GetEncoded().
+
+
+ Class for processing an ECFieldElement as a DER object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ FieldElement ::= OCTET STRING
+
+
+
+ - if q is an odd prime then the field element is
+ processed as an Integer and converted to an octet string
+ according to x 9.62 4.3.1.
+ - if q is 2m then the bit string
+ contained in the field element is converted into an octet
+ string with the same ordering padded at the front if necessary.
+
+
+
+
+
+ ASN.1 def for Elliptic-Curve Field ID structure. See
+ X9.62, for further details.
+
+
+ Constructor for elliptic curves over prime fields
+ F2.
+ @param primeP The prime p defining the prime field.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)..
+
+
+ Produce a Der encoding of the following structure.
+
+ FieldID ::= Sequence {
+ fieldType FIELD-ID.&id({IOSet}),
+ parameters FIELD-ID.&Type({IOSet}{@fieldType})
+ }
+
+
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) x9-57 (10040) x9cm(4) 3 }
+
+
+ X9.63
+
+
+ X9.42
+
+
+ reader for Base64 armored objects - read the headers and then start returning
+ bytes when the data is reached. An IOException is thrown if the CRC check
+ fails.
+
+
+ decode the base 64 encoded input data.
+
+ @return the offset the data starts in out.
+
+
+ Create a stream for reading a PGP armoured message, parsing up to a header
+ and then reading the data that follows.
+
+ @param input
+
+
+ Create an armoured input stream which will assume the data starts
+ straight away, or parse for headers first depending on the value of
+ hasHeaders.
+
+ @param input
+ @param hasHeaders true if headers are to be looked for, false otherwise.
+
+
+ @return true if we are inside the clear text section of a PGP
+ signed message.
+
+
+ @return true if the stream is actually at end of file.
+
+
+ Return the armor header line (if there is one)
+ @return the armor header line, null if none present.
+
+
+ Return the armor headers (the lines after the armor header line),
+ @return an array of armor headers, null if there aren't any.
+
+
+ Basic output stream.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+
+ Set an additional header entry. A null value will clear the entry for name.
+
+ @param name the name of the header entry.
+ @param v the value of the header entry.
+
+
+ Reset the headers to only contain a Version string (if one is present).
+
+
+ Start a clear text signed message.
+ @param hashAlgorithm
+
+
+ Note: Close() does not close the underlying stream. So it is possible to write
+ multiple objects using armoring to a single stream.
+
+
+ Basic type for a image attribute packet.
+
+
+ Reader for PGP objects.
+
+
+ Returns the next packet tag in the stream.
+
+
+
+ A stream that overlays our input stream, allowing the user to only read a segment of it.
+ NB: dataLength will be negative if the segment length is in the upper range above 2**31.
+
+
+
+ Base class for a PGP object.
+
+
+ Basic output stream.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+
+
+ Create a stream representing an old style partial object.
+ Output stream to write to.
+ The packet tag for the object.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+ If true, the header is written out in old format.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Buffer to use for collecting chunks.
+
+
+ Flush the underlying stream.
+
+
+ Finish writing out the current packet without closing the underlying stream.
+
+
+ Generic compressed data object.
+
+
+ The algorithm tag value.
+
+
+ Basic tags for compression algorithms.
+
+
+ Basic type for a PGP packet.
+
+
+ Base class for a DSA public key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for a DSA secret key.
+
+
+ @param in
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ @return x
+
+
+ Base class for an ECDH Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an ECDSA Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an EC Public Key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an EC Secret Key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal public key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal secret key.
+
+
+ @param in
+
+
+ @param x
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Basic packet for an experimental packet.
+
+
+ Basic tags for hash algorithms.
+
+
+ Base interface for a PGP key.
+
+
+
+ The base format for this key - in the case of the symmetric keys it will generally
+ be raw indicating that the key is just a straight byte representation, for an asymmetric
+ key the format will be PGP, indicating the key is a string of MPIs encoded in PGP format.
+
+ "RAW" or "PGP".
+
+
+ Note: you can only read from this once...
+
+
+ Generic literal data packet.
+
+
+ The format tag value.
+
+
+ The modification time of the file in milli-seconds (since Jan 1, 1970 UTC)
+
+
+ Basic type for a marker packet.
+
+
+ Basic packet for a modification detection code packet.
+
+
+ A multiple precision integer
+
+
+ Generic signature object
+
+
+ The encryption algorithm tag.
+
+
+ The hash algorithm tag.
+
+
+ Basic PGP packet tag types.
+
+
+ Public Key Algorithm tag numbers.
+
+
+ Basic packet for a PGP public key.
+
+
+ Basic packet for a PGP public key.
+
+
+ Construct a version 4 public key packet.
+
+
+ Basic packet for a PGP public subkey
+
+
+ Construct a version 4 public subkey packet.
+
+
+ Base class for an RSA public key.
+
+
+ Construct an RSA public key from the passed in stream.
+
+
+ The modulus.
+ The public exponent.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an RSA secret (or priate) key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ The string to key specifier class.
+
+
+ The hash algorithm.
+
+
+ The IV for the key generation algorithm.
+
+
+ The iteration count
+
+
+ The protection mode - only if GnuDummyS2K
+
+
+ Basic packet for a PGP secret key.
+
+
+ Basic packet for a PGP secret key.
+
+
+ Generic signature packet.
+
+
+ Generate a version 4 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param hashedData
+ @param unhashedData
+ @param fingerprint
+ @param signature
+
+
+ Generate a version 2/3 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param fingerprint
+ @param signature
+
+
+ return the keyId
+ @return the keyId that created the signature.
+
+
+ return the signature trailer that must be included with the data
+ to reconstruct the signature
+
+ @return byte[]
+
+
+ * return the signature as a set of integers - note this is normalised to be the
+ * ASN.1 encoding of what appears in the signature packet.
+
+
+ Return the byte encoding of the signature section.
+ @return uninterpreted signature bytes.
+
+
+ Return the creation time in milliseconds since 1 Jan., 1970 UTC.
+
+
+ Basic type for a PGP Signature sub-packet.
+
+
+ Return the generic data making up the packet.
+
+
+ reader for signature sub-packets
+
+
+ Basic PGP signature sub-packet tag types.
+
+
+ Packet embedded signature
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ Identifier for the modification detection feature
+
+
+ Returns if modification detection is supported.
+
+
+ Returns if a particular feature is supported.
+
+
+ Sets support for a particular feature.
+
+
+ packet giving signature creation time.
+
+
+ packet giving time after creation at which the key expires.
+
+
+ Return the number of seconds after creation time a key is valid for.
+
+ @return second count for key validity.
+
+
+ Packet holding the key flag values.
+
+
+
+ Return the flag values contained in the first 4 octets (note: at the moment
+ the standard only uses the first one).
+
+
+
+ Class provided a NotationData object according to
+ RFC2440, Chapter 5.2.3.15. Notation Data
+
+
+ packet giving signature creation time.
+
+
+ packet giving whether or not the signature is signed using the primary user ID for the key.
+
+
+ packet giving whether or not is revocable.
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ return time in seconds before signature expires after creation time.
+
+
+ packet giving the User ID of the signer.
+
+
+ packet giving trust.
+
+
+
+ Represents revocation key OpenPGP signature sub packet.
+
+
+
+
+ Represents revocation reason OpenPGP signature sub packet.
+
+
+
+ Basic type for a symmetric key encrypted packet.
+
+
+ Basic tags for symmetric key algorithms
+
+
+ Basic type for a symmetric encrypted session key packet
+
+
+ @return int
+
+
+ @return S2k
+
+
+ @return byte[]
+
+
+ @return int
+
+
+ Basic type for a trust packet.
+
+
+ Basic type for a user attribute packet.
+
+
+ Basic type for a user attribute sub-packet.
+
+
+ return the generic data making up the packet.
+
+
+ reader for user attribute sub-packets
+
+
+ Basic PGP user attribute sub-packet tag types.
+
+
+ Basic type for a user ID packet.
+
+
+ Compressed data objects
+
+
+ The algorithm used for compression
+
+
+ Get the raw input stream contained in the object.
+
+
+ Return an uncompressed input stream which allows reading of the compressed data.
+
+
+ Class for producing compressed data packets.
+
+
+
+
+ Return an output stream which will save the data being written to
+ the compressed object.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Stream to be used for output.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+
+ Return an output stream which will compress the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+ Note: using this may break compatibility with RFC 1991 compliant tools.
+ Only recent OpenPGP implementations are capable of accepting these streams.
+
+
+ Stream to be used for output.
+ The buffer to use.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+ Close the compressed object.summary>
+
+
+
+ Thrown if the IV at the start of a data stream indicates the wrong key is being used.
+
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return true if the message is integrity protected.
+ True, if there is a modification detection code namespace associated
+ with this stream.
+
+
+ Note: This can only be called after the message has been read.
+ True, if the message verifies, false otherwise
+
+
+ Generator for encrypted objects.
+
+
+ Existing SecureRandom constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+
+
+ Creates a cipher stream which will have an integrity packet associated with it.
+
+
+ Base constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+ PGP 2.6.x compatibility required.
+
+
+
+ Add a PBE encryption method to the encrypted object using the default algorithm (S2K_SHA1).
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Add a public key encrypted session key to the encrypted object.
+
+
+
+
+ If buffer is non null stream assumed to be partial, otherwise the length will be used
+ to output a fixed length packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+
+
+
+
+ Close off the encrypted object - this is equivalent to calling Close() on the stream
+ returned by the Open() method.
+
+
+ Note: This does not close the underlying output stream, only the stream on top of
+ it created by the Open() method.
+
+
+
+
+ A holder for a list of PGP encryption method packets.
+
+
+ Generic exception class for PGP encoding/decoding problems.
+
+
+ Key flag values for the KeyFlags subpacket.
+
+
+
+ General class to handle JCA key pairs and convert them into OpenPGP ones.
+
+ A word for the unwary, the KeyId for an OpenPGP public key is calculated from
+ a hash that includes the time of creation, if you pass a different date to the
+ constructor below with the same public private key pair the KeyIs will not be the
+ same as for previous generations of the key, so ideally you only want to do
+ this once.
+
+
+
+
+ Create a key pair from a PgpPrivateKey and a PgpPublicKey.
+ The public key.
+ The private key.
+
+
+ The keyId associated with this key pair.
+
+
+
+ Generator for a PGP master and subkey ring.
+ This class will generate both the secret and public key rings
+
+
+
+
+ Create a new key ring generator using old style checksumming. It is recommended to use
+ SHA1 checksumming where possible.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+ The key pair.
+ The hash algorithm.
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ exception adding subkey:
+
+
+
+ Return the secret key ring.
+
+
+ Return the public key ring that corresponds to the secret key ring.
+
+
+
+ Thrown if the key checksum is invalid.
+
+
+
+ Class for processing literal data objects.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+ The format of the data stream - Binary or Text
+
+
+ The file name that's associated with the data stream.
+
+
+ Return the file name as an unintrepreted byte array.
+
+
+ The modification time for the file.
+
+
+ The raw input stream for the data stream.
+
+
+ The input stream representing the data stream.
+
+
+ Class for producing literal data packets.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+
+ Generates literal data objects in the old format.
+ This is important if you need compatibility with PGP 2.6.x.
+
+ If true, uses old format.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The length of the data we will write.
+ The time of last modification we want stored.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet,
+ as an indefinite length stream. The stream is written out as a series of partial
+ packets with a chunk size determined by the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The time of last modification we want stored.
+ The buffer to use for collecting data to put into chunks.
+
+
+
+
+ Open a literal data packet for the passed in FileInfo object, returning
+ an output stream for saving the file contents.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The FileInfo object containg the packet details.
+
+
+
+ Close the literal data packet - this is equivalent to calling Close()
+ on the stream returned by the Open() method.
+
+
+
+
+ A PGP marker packet - in general these should be ignored other than where
+ the idea is to preserve the original input stream.
+
+
+
+
+ General class for reading a PGP object stream.
+
+ Note: if this class finds a PgpPublicKey or a PgpSecretKey it
+ will create a PgpPublicKeyRing, or a PgpSecretKeyRing for each
+ key found. If all you are trying to do is read a key ring file use
+ either PgpPublicKeyRingBundle or PgpSecretKeyRingBundle.
+
+
+
+ Return the next object in the stream, or null if the end is reached.
+ On a parse error
+
+
+
+ Return all available objects in a list.
+
+ An IList containing all objects from this factory, in order.
+
+
+ A one pass signature object.
+
+
+ Initialise the signature object for verification.
+
+
+ Verify the calculated signature against the passed in PgpSignature.
+
+
+ Holder for a list of PgpOnePassSignature objects.
+
+
+ Padding functions.
+
+
+ A password based encryption object.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ General class to contain a private key for use with other OpenPGP objects.
+
+
+
+ Create a PgpPrivateKey from a keyID, the associated public data packet, and a regular private key.
+
+ ID of the corresponding public key.
+ the public key data packet to be associated with this private key.
+ the private key data packet to be associated with this private key.
+
+
+ The keyId associated with the contained private key.
+
+
+ The public key packet associated with this private key, if available.
+
+
+ The contained private key.
+
+
+ General class to handle a PGP public key object.
+
+
+
+ Create a PgpPublicKey from the passed in lightweight one.
+
+
+ Note: the time passed in affects the value of the key's keyId, so you probably only want
+ to do this once for a lightweight key, or make sure you keep track of the time you used.
+
+ Asymmetric algorithm type representing the public key.
+ Actual public key to associate.
+ Date of creation.
+ If pubKey is not public.
+ On key creation problem.
+
+
+ Constructor for a sub-key.
+
+
+ Copy constructor.
+ The public key to copy.
+
+
+ The version of this key.
+
+
+ The creation time of this key.
+
+
+ The number of valid days from creation time - zero means no expiry.
+ WARNING: This method will return 1 for keys with version > 3 that expire in less than 1 day
+
+
+ Return the trust data associated with the public key, if present.
+ A byte array with trust data, null otherwise.
+
+
+ The number of valid seconds from creation time - zero means no expiry.
+
+
+ The keyId associated with the public key.
+
+
+ The fingerprint of the key
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for encryption.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for encryption.
+
+
+
+ True, if this is a master key.
+
+
+ The algorithm code associated with the public key.
+
+
+ The strength of the key in bits.
+
+
+ The public key contained in the object.
+ A lightweight public key.
+ If the key algorithm is not recognised.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of PgpUserAttributeSubpacketVector objects.
+
+
+ Allows enumeration of any signatures associated with the passed in id.
+ The ID to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures associated with the passed in user attributes.
+ The vector of user attributes to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures of the passed in type that are on this key.
+ The type of the signature to be returned.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of all signatures/certifications associated with this key.
+ An IEnumerable with all signatures/certifications.
+
+
+ Return all signatures/certifications directly associated with this key (ie, not to a user id).
+
+ @return an iterator (possibly empty) with all signatures/certifications.
+
+
+ Check whether this (sub)key has a revocation signature on it.
+ True, if this (sub)key has been revoked.
+
+
+ Add a certification for an id to the given public key.
+ The key the certification is to be added to.
+ The ID the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+ Add a certification for the given UserAttributeSubpackets to the given public key.
+ The key the certification is to be added to.
+ The attributes the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+
+ Remove any certifications associated with a user attribute subpacket on a key.
+
+ The key the certifications are to be removed from.
+ The attributes to be removed.
+
+ The re-certified key, or null if the user attribute subpacket was not found on the key.
+
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from.
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given user attributes on a key.
+ The key the certifications are to be removed from.
+ The user attributes that the certfication is to be removed from.
+ The certification to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Add a revocation or some other key certification to a key.
+ The key the revocation is to be added to.
+ The key signature to be added.
+ The new changed public key object.
+
+
+ Remove a certification from the key.
+ The key the certifications are to be removed from.
+ The certfication to be removed.
+ The modified key, null if the certification was not found.
+
+
+ A public key encrypted data object.
+
+
+ The key ID for the key used to encrypt the data.
+
+
+
+ Return the algorithm code for the symmetric algorithm used to encrypt the data.
+
+
+
+ Return the decrypted data stream for the packet.
+
+
+
+ Class to hold a single master public key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpPublicKeyRingBundle class.
+
+
+
+
+ Return the first public key in the ring.
+
+
+ Return the public key referred to by the passed in key ID if it is present.
+
+
+ Allows enumeration of all the public keys.
+ An IEnumerable of PgpPublicKey objects.
+
+
+
+ Returns a new key ring with the public key passed in either added or
+ replacing an existing one.
+
+ The public key ring to be modified.
+ The public key to be inserted.
+ A new PgpPublicKeyRing
+
+
+ Returns a new key ring with the public key passed in removed from the key ring.
+ The public key ring to be modified.
+ The public key to be removed.
+ A new PgpPublicKeyRing, or null if pubKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire public key file in one hit this is the class for you.
+
+
+
+ Build a PgpPublicKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpPublicKeyRing.
+
+
+ Return the number of key rings in this collection.
+
+
+ Allow enumeration of the public key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP public key associated with the given key id.
+ The ID of the public key to return.
+
+
+ Return the public key ring which contains the key referred to by keyId
+ key ID to match against
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in public key ring.
+
+ The PgpPublicKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpPublicKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in public key ring removed.
+
+ The PgpPublicKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpPublicKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ General class to handle a PGP secret key object.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for signing.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for use with signing.
+
+
+
+ True, if this is a master key.
+
+
+ Detect if the Secret Key's Private Key is empty or not
+
+
+ The algorithm the key is encrypted with.
+
+
+ The key ID of the public key associated with this key.
+
+
+ Return the S2K usage associated with this key.
+
+
+ Return the S2K used to process this key.
+
+
+ The public key associated with this key.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of string objects.
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+ Replace the passed the public key on the passed in secret key.
+ Secret key to change.
+ New public key.
+ A new secret key.
+ If KeyId's do not match.
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+
+
+ Class to hold a single master secret key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpSecretKeyRingBundle class.
+
+
+
+
+ Return the public key for the master key.
+
+
+ Return the master private key.
+
+
+ Allows enumeration of the secret keys.
+ An IEnumerable of PgpSecretKey objects.
+
+
+
+ Return an iterator of the public keys in the secret key ring that
+ have no matching private key. At the moment only personal certificate data
+ appears in this fashion.
+
+ An IEnumerable of unattached, or extra, public keys.
+
+
+
+ Replace the public key set on the secret ring with the corresponding key off the public ring.
+
+ Secret ring to be changed.
+ Public ring containing the new public key set.
+
+
+
+ Return a copy of the passed in secret key ring, with the master key and sub keys encrypted
+ using a new password and the passed in algorithm.
+
+ The PgpSecretKeyRing to be copied.
+ The current password for key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Returns a new key ring with the secret key passed in either added or
+ replacing an existing one with the same key ID.
+
+ The secret key ring to be modified.
+ The secret key to be inserted.
+ A new PgpSecretKeyRing
+
+
+ Returns a new key ring with the secret key passed in removed from the key ring.
+ The secret key ring to be modified.
+ The secret key to be removed.
+ A new PgpSecretKeyRing, or null if secKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire secret key file in one hit this is the class for you.
+
+
+
+ Build a PgpSecretKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpSecretKeyRing.
+
+
+ Return the number of rings in this collection.
+
+
+ Allow enumeration of the secret key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP secret key associated with the given key id.
+ The ID of the secret key to return.
+
+
+ Return the secret key ring which contains the key referred to by keyId
+ The ID of the secret key
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in secret key ring.
+
+ The PgpSecretKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpSecretKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in secret key ring removed.
+
+ The PgpSecretKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpSecretKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ A PGP signature object.
+
+
+ The OpenPGP version number for this signature.
+
+
+ The key algorithm associated with this signature.
+
+
+ The hash algorithm associated with this signature.
+
+
+ Return true if this signature represents a certification.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in user attributes.
+
+ User attributes the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in ID.
+
+ ID the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+ Verify a certification for the passed in key against the passed in master key.
+ The key we are verifying against.
+ The key we are verifying.
+ True, if the certification is valid, false otherwise.
+
+
+ Verify a key certification, such as revocation, for the passed in key.
+ The key we are checking.
+ True, if the certification is valid, false otherwise.
+
+
+ The ID of the key that created the signature.
+
+
+ The creation time of this signature.
+
+
+
+ Return true if the signature has either hashed or unhashed subpackets.
+
+
+
+
+ Return true if the passed in signature type represents a certification, false if the signature type is not.
+
+
+ true if signatureType is a certification, false otherwise.
+
+
+ Generator for PGP signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a signature object containing the current signature state.
+
+
+ Generate a certification for the passed in ID and key.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in userAttributes.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in key against the passed in master key.
+ The key we are certifying against.
+ The key we are certifying.
+ The certification.
+
+
+ Generate a certification, such as a revocation, for the passed in key.
+ The key we are certifying.
+ The certification.
+
+
+ A list of PGP signatures - normally in the signature block after literal data.
+
+
+ Generator for signature subpackets.
+
+
+
+ Add a TrustSignature packet to the signature. The values for depth and trust are largely
+ installation dependent but there are some guidelines in RFC 4880 - 5.2.3.13.
+
+ true if the packet is critical.
+ depth level.
+ trust amount.
+
+
+
+ Set the number of seconds a key is valid for after the time of its creation.
+ A value of zero means the key never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the key is valid, or zero if no expiry.
+
+
+
+ Set the number of seconds a signature is valid for after the time of its creation.
+ A value of zero means the signature never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the signature is valid, or zero if no expiry.
+
+
+
+ Set the creation time for the signature.
+
+ Note: this overrides the generation of a creation time when the signature
+ is generated.
+
+
+
+
+ Sets revocation reason sub packet
+
+
+
+
+ Sets revocation key sub packet
+
+
+
+
+ Sets issuer key sub packet
+
+
+
+ Container for a list of signature subpackets.
+
+
+ Return true if a particular subpacket type exists.
+
+ @param type type to look for.
+ @return true if present, false otherwise.
+
+
+ Return all signature subpackets of the passed in type.
+ @param type subpacket type code
+ @return an array of zero or more matching subpackets.
+
+
+
+ Return the number of seconds a signature is valid for after its creation date.
+ A value of zero means the signature never expires.
+
+ Seconds a signature is valid for.
+
+
+
+ Return the number of seconds a key is valid for after its creation date.
+ A value of zero means the key never expires.
+
+ Seconds a signature is valid for.
+
+
+ Return the number of packets this vector contains.
+
+
+ Container for a list of user attribute subpackets.
+
+
+ Basic utility class.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Write out the passed in file as a literal data packet.
+
+
+ Write out the passed in file as a literal data packet in partial packet format.
+
+
+
+ Return either an ArmoredInputStream or a BcpgInputStream based on whether
+ the initial characters of the stream are binary PGP encodings or not.
+
+
+
+ Generator for old style PGP V3 Signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a V3 signature object containing the current signature state.
+
+
+ Utility functions for looking a S-expression keys. This class will move when it finds a better home!
+
+ Format documented here:
+ http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=agent/keyformat.txt;h=42c4b1f06faf1bbe71ffadc2fee0fad6bec91a97;hb=refs/heads/master
+
+
+
+
+ The 'Signature' parameter is only available when generating unsigned attributes.
+
+
+
+ containing class for an CMS Authenticated Data object
+
+
+ return the object identifier for the content MAC algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the digested attributes indexed by
+ the OID of the attribute.
+
+
+ return a table of the undigested attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ General class for generating a CMS authenticated-data message.
+
+ A simple example of usage.
+
+
+ CMSAuthenticatedDataGenerator fact = new CMSAuthenticatedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSAuthenticatedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+
+
+ generate an authenticated object that contains an CMS Authenticated Data object
+
+
+ Parsing class for an CMS Authenticated Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CMSAuthenticatedDataParser ad = new CMSAuthenticatedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ad.getRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey, "BC");
+
+ processDataStream(recData.getContentStream());
+
+ if (!Arrays.equals(ad.getMac(), recipient.getMac())
+ {
+ System.err.println("Data corrupted!!!!");
+ }
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSAuthenticatedDataParser ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the mac algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ General class for generating a CMS authenticated-data message stream.
+
+ A simple example of usage.
+
+ CMSAuthenticatedDataStreamGenerator edGen = new CMSAuthenticatedDataStreamGenerator();
+
+ edGen.addKeyTransRecipient(cert);
+
+ ByteArrayOutputStream bOut = new ByteArrayOutputStream();
+
+ OutputStream out = edGen.open(
+ bOut, CMSAuthenticatedDataGenerator.AES128_CBC, "BC");*
+ out.write(data);
+
+ out.close();
+
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+ @throws java.io.IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+
+ @param rand instance of SecureRandom to use
+
+
+ containing class for an CMS AuthEnveloped Data object
+
+
+ containing class for an CMS Compressed Data object
+
+
+ Return the uncompressed content.
+
+ @return the uncompressed content
+ @throws CmsException if there is an exception uncompressing the data.
+
+
+ Return the uncompressed content, throwing an exception if the data size
+ is greater than the passed in limit. If the content is exceeded getCause()
+ on the CMSException will contain a StreamOverflowException
+
+ @param limit maximum number of bytes to read
+ @return the content read
+ @throws CMSException if there is an exception uncompressing the data.
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ * General class for generating a compressed CMS message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * CMSCompressedDataGenerator fact = new CMSCompressedDataGenerator();
+ * CMSCompressedData data = fact.Generate(content, algorithm);
+ *
+ *
+
+
+ Generate an object that contains an CMS Compressed Data
+
+
+ Class for reading a CMS Compressed Data stream.
+
+ CMSCompressedDataParser cp = new CMSCompressedDataParser(inputStream);
+
+ process(cp.GetContent().GetContentStream());
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSCompressedDataParser ep = new CMSCompressedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ General class for generating a compressed CMS message stream.
+
+ A simple example of usage.
+
+
+ CMSCompressedDataStreamGenerator gen = new CMSCompressedDataStreamGenerator();
+
+ Stream cOut = gen.Open(outputStream, CMSCompressedDataStreamGenerator.ZLIB);
+
+ cOut.Write(data);
+
+ cOut.Close();
+
+
+
+ base constructor
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Close the underlying data stream.
+ @throws IOException if the close fails.
+
+
+ containing class for an CMS Enveloped Data object
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CmsEnvelopedDataGenerator fact = new CmsEnvelopedDataGenerator();
+
+ fact.AddKeyTransRecipient(cert);
+
+ CmsEnvelopedData data = fact.Generate(content, algorithm);
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+
+ Generate an enveloped object that contains a CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Parsing class for an CMS Enveloped Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ep.GetRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey);
+
+ processDataStream(recData.getContentStream());
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message stream.
+
+ A simple example of usage.
+
+ CmsEnvelopedDataStreamGenerator edGen = new CmsEnvelopedDataStreamGenerator();
+
+ edGen.AddKeyTransRecipient(cert);
+
+ MemoryStream bOut = new MemoryStream();
+
+ Stream out = edGen.Open(
+ bOut, CMSEnvelopedDataGenerator.AES128_CBC);*
+ out.Write(data);
+
+ out.Close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data.
+ Length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CMSEnvelopedDataGenerator fact = new CMSEnvelopedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSEnvelopedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ add a recipient.
+
+ @param cert recipient's public key certificate
+ @exception ArgumentException if there is a problem with the certificate
+
+
+ add a recipient
+
+ @param key the public key used by the recipient
+ @param subKeyId the identifier for the recipient's public key
+ @exception ArgumentException if there is a problem with the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ Add a key agreement based recipient.
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCert recipient's public key certificate.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+ Add multiple key agreement based recipients (sharing a single KeyAgreeRecipientInfo structure).
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCerts recipients' public key certificates.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+
+ Generic routine to copy out the data we want processed.
+
+
+ This routine may be called multiple times.
+
+
+
+ a holding class for a byte array of data to be processed.
+
+
+ A clone of the byte array
+
+
+ a holding class for a file of data to be processed.
+
+
+ The file handle
+
+
+ general class for handling a pkcs7-signature message.
+
+ A simple example of usage - note, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer...
+
+
+ IX509Store certs = s.GetCertificates();
+ SignerInformationStore signers = s.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ if (signer.Verify(cert.GetPublicKey()))
+ {
+ verified++;
+ }
+ }
+
+
+
+ Content with detached signature, digests precomputed
+
+ @param hashes a map of precomputed digests for content indexed by name of hash.
+ @param sigBlock the signature object.
+
+
+ base constructor - content with detached signature.
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ base constructor - with encapsulated content
+
+
+ Return the version number for this object.
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Replace the signerinformation store associated with this
+ CmsSignedData object with the new one passed in. You would
+ probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ @param signedData the signed data object to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @return a new signed data object.
+
+
+ Replace the certificate and CRL information associated with this
+ CmsSignedData object with the new one passed in.
+
+ @param signedData the signed data object to be used as a base.
+ @param x509Certs the new certificates to be used.
+ @param x509Crls the new CRLs to be used.
+ @return a new signed data object.
+ @exception CmsException if there is an error processing the stores
+
+
+ * general class for generating a pkcs7-signature message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * IX509Store certs...
+ * IX509Store crls...
+ * CmsSignedDataGenerator gen = new CmsSignedDataGenerator();
+ *
+ * gen.AddSigner(privKey, cert, CmsSignedGenerator.DigestSha1);
+ * gen.AddCertificates(certs);
+ * gen.AddCrls(crls);
+ *
+ * CmsSignedData data = gen.Generate(content);
+ *
+ *
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ * add a signer - no attributes other than the default ones will be
+ * provided here.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param subjectKeyID subjectKeyID of corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param subjectKeyID subjectKeyID of corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a set of one or more SignerInformation objects representing counter signatures on
+ the passed in SignerInformation object.
+
+ @param signer the signer to be countersigned
+ @param sigProvider the provider to be used for counter signing.
+ @return a store containing the signers.
+
+
+ Parsing class for an CMS Signed Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one signer can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ A simple example of usage for an encapsulated signature.
+
+
+ Two notes: first, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer, and, second, because we are in a streaming
+ mode the order of the operations is important.
+
+
+ CmsSignedDataParser sp = new CmsSignedDataParser(encapSigData);
+
+ sp.GetSignedContent().Drain();
+
+ IX509Store certs = sp.GetCertificates();
+ SignerInformationStore signers = sp.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ Console.WriteLine("verify returns: " + signer.Verify(cert));
+ }
+
+ Note also: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsSignedDataParser ep = new CmsSignedDataParser(new BufferedInputStream(encapSigData, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ base constructor - with encapsulated content
+
+
+ base constructor
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ Return the version number for the SignedData object
+
+ @return the version number
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+ @throws CmsException
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception org.bouncycastle.x509.NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ Replace the signerinformation store associated with the passed
+ in message contained in the stream original with the new one passed in.
+ You would probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+
+
+ Replace the certificate and CRL information associated with this
+ CMSSignedData object with the new one passed in.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param certsAndCrls the new certificates and CRLs to be used.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+ @exception CmsException if there is an error processing the CertStore
+
+
+ General class for generating a pkcs7-signature message stream.
+
+ A simple example of usage.
+
+
+ IX509Store certs...
+ CmsSignedDataStreamGenerator gen = new CmsSignedDataStreamGenerator();
+
+ gen.AddSigner(privateKey, cert, CmsSignedDataStreamGenerator.DIGEST_SHA1);
+
+ gen.AddCertificates(certs);
+
+ Stream sigOut = gen.Open(bOut);
+
+ sigOut.Write(Encoding.UTF8.GetBytes("Hello World!"));
+
+ sigOut.Close();
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer, specifying the digest encryption algorithm - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes - specifying digest
+ encryption algorithm.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data". If dataOutputStream is non null the data
+ being signed will be written to the stream as it is processed.
+ @param out stream the CMS object is to be written to.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+ @param out stream the CMS object is to be written to.
+ @param signedContentType OID for data to be signed.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ Default type for the signed data.
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Add the attribute certificates contained in the passed in store to the
+ generator.
+
+ @param store a store of Version 2 attribute certificates
+ @throws CmsException if an error occurse processing the store.
+
+
+ Add a store of precalculated signers to the generator.
+
+ @param signerStore store of signers
+
+
+ Return a map of oids and byte arrays representing the digests calculated on the content during
+ the last generate.
+
+ @return a map of oids (as String objects) and byte[] representing digests.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+ Return the digest encryption algorithm using one of the standard
+ JCA string representations rather than the algorithm identifier (if
+ possible).
+
+
+ Default authenticated attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in IDictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ Default signed attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType, signingTime, and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType, signingTime, and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in Hashtable of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a secret key known to the other side.
+
+
+ decrypt the content and return an input stream.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using key agreement.
+
+
+ decrypt the content and return an input stream.
+
+
+ the KeyTransRecipientInformation class for a recipient who has been sent a secret
+ key encrypted using their public key that needs to be used to
+ extract the message.
+
+
+ decrypt the content and return it as a byte array.
+
+
+ a basic index for an originator.
+
+
+ Return the certificates stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CertificateHolder objects.
+
+
+ Return the CRLs stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CRLHolder objects.
+
+
+ Return the underlying ASN.1 object defining this SignerInformation object.
+
+ @return a OriginatorInfo.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a password.
+
+
+ return the object identifier for the key derivation algorithm, or null
+ if there is none present.
+
+ @return OID for key derivation algorithm, if present.
+
+
+ decrypt the content and return an input stream.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes assuming ASCII.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes using UTF-8.
+
+
+
+ Generate a RecipientInfo object for the given key.
+
+
+ A
+
+
+ A
+
+
+ A
+
+
+
+
+ * return the object identifier for the key encryption algorithm.
+ *
+ * @return OID for key encryption algorithm.
+
+
+ * return the ASN.1 encoded key encryption algorithm parameters, or null if
+ * there aren't any.
+ *
+ * @return ASN.1 encoding of key encryption algorithm parameters.
+
+
+ Return the MAC calculated for the content stream. Note: this call is only meaningful once all
+ the content has been read.
+
+ @return byte array containing the mac.
+
+
+ Return the first RecipientInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a recipient
+ @return a single RecipientInformation object. Null if none matches.
+
+
+ Return the number of recipients in the collection.
+
+ @return number of recipients identified.
+
+
+ Return all recipients in the collection
+
+ @return a collection of recipients.
+
+
+ Return possible empty collection with recipients matching the passed in RecipientID
+
+ @param selector a recipient id to select against.
+ @return a collection of RecipientInformation objects.
+
+
+ a basic index for a signer.
+
+
+ If the passed in flag is true, the signer signature will be based on the data, not
+ a collection of signed attributes, and no signed attributes will be included.
+
+ @return the builder object
+
+
+ Provide a custom signed attribute generator.
+
+ @param signedGen a generator of signed attributes.
+ @return the builder object
+
+
+ Provide a generator of unsigned attributes.
+
+ @param unsignedGen a generator for signed attributes.
+ @return the builder object
+
+
+ Build a generator with the passed in certHolder issuer and serial number as the signerIdentifier.
+
+ @param contentSigner operator for generating the final signature in the SignerInfo with.
+ @param certHolder carrier for the X.509 certificate related to the contentSigner.
+ @return a SignerInfoGenerator
+ @throws OperatorCreationException if the generator cannot be built.
+
+
+ Build a generator with the passed in subjectKeyIdentifier as the signerIdentifier. If used you should
+ try to follow the calculation described in RFC 5280 section 4.2.1.2.
+
+ @param signerFactory operator factory for generating the final signature in the SignerInfo with.
+ @param subjectKeyIdentifier key identifier to identify the public key for verifying the signature.
+ @return a SignerInfoGenerator
+
+
+ an expanded SignerInfo block from a CMS Signed message
+
+
+ return the version number for this objects underlying SignerInfo structure.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature parameters, or null if there aren't any.
+
+
+ return the content digest that was calculated during verification.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature/encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a table of the signed attributes - indexed by
+ the OID of the attribute.
+
+
+ return a table of the unsigned attributes indexed by
+ the OID of the attribute.
+
+
+ return the encoded signature
+
+
+ Return a SignerInformationStore containing the counter signatures attached to this
+ signer. If no counter signatures are present an empty store is returned.
+
+
+ return the DER encoding of the signed attributes.
+ @throws IOException if an encoding error occurs.
+
+
+ verify that the given public key successfully handles and confirms the
+ signature associated with this signer.
+
+
+ verify that the given certificate successfully handles and confirms
+ the signature associated with this signer and, if a signingTime
+ attribute is available, that the certificate was valid at the time the
+ signature was generated.
+
+
+ Return the base ASN.1 CMS structure that this object contains.
+
+ @return an object containing a CMS SignerInfo structure.
+
+
+ Return a signer information object with the passed in unsigned
+ attributes replacing the ones that are current associated with
+ the object passed in.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param unsignedAttributes the unsigned attributes to add.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Return a signer information object with passed in SignerInformationStore representing counter
+ signatures attached as an unsigned attribute.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param counterSigners signer info objects carrying counter signature.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Create a store containing a single SignerInformation object.
+
+ @param signerInfo the signer information to contain.
+
+
+ Create a store containing a collection of SignerInformation objects.
+
+ @param signerInfos a collection signer information objects to contain.
+
+
+ Return the first SignerInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a signer
+ @return a single SignerInformation object. Null if none matches.
+
+
+ The number of signers in the collection.
+
+
+ An ICollection of all signers in the collection
+
+
+ Return possible empty collection with signers matching the passed in SignerID
+
+ @param selector a signer id to select against.
+ @return a collection of SignerInformation objects.
+
+
+ Basic generator that just returns a preconstructed attribute table
+
+
+ a Diffie-Hellman key exchange engine.
+
+ note: This uses MTI/A0 key agreement in order to make the key agreement
+ secure against passive attacks. If you're doing Diffie-Hellman and both
+ parties have long term public keys you should look at using this. For
+ further information have a look at RFC 2631.
+
+ It's possible to extend this to more than two parties as well, for the moment
+ that is left as an exercise for the reader.
+
+
+ calculate our initial message.
+
+
+ given a message from a given party and the corresponding public key
+ calculate the next message in the agreement sequence. In this case
+ this will represent the shared secret.
+
+
+ a Diffie-Hellman key agreement class.
+
+ note: This is only the basic algorithm, it doesn't take advantage of
+ long term public keys if they are available. See the DHAgreement class
+ for a "better" implementation.
+
+
+ given a short term public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+ P1363 7.2.1 ECSVDP-DH
+
+ ECSVDP-DH is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version. It is based on the work of [DH76], [Mil86],
+ and [Kob87]. This primitive derives a shared secret value from one
+ party's private key and another party's public key, where both have
+ the same set of EC domain parameters. If two parties correctly
+ execute this primitive, they will produce the same output. This
+ primitive can be invoked by a scheme to derive a shared secret key;
+ specifically, it may be used with the schemes ECKAS-DH1 and
+ DL/ECKAS-DH2. It assumes that the input keys are valid (see also
+ Section 7.2.2).
+
+
+ P1363 7.2.2 ECSVDP-DHC
+
+ ECSVDP-DHC is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version with cofactor multiplication. It is based on
+ the work of [DH76], [Mil86], [Kob87], [LMQ98] and [Kal98a]. This
+ primitive derives a shared secret value from one party's private key
+ and another party's public key, where both have the same set of EC
+ domain parameters. If two parties correctly execute this primitive,
+ they will produce the same output. This primitive can be invoked by a
+ scheme to derive a shared secret key; specifically, it may be used
+ with the schemes ECKAS-DH1 and DL/ECKAS-DH2. It does not assume the
+ validity of the input public key (see also Section 7.2.1).
+
+ Note: As stated P1363 compatibility mode with ECDH can be preset, and
+ in this case the implementation doesn't have a ECDH compatibility mode
+ (if you want that just use ECDHBasicAgreement and note they both implement
+ BasicAgreement!).
+
+
+
+ A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange.
+
+ The J-PAKE exchange is defined by Feng Hao and Peter Ryan in the paper
+
+ "Password Authenticated Key Exchange by Juggling, 2008."
+
+ The J-PAKE protocol is symmetric.
+ There is no notion of a client or server, but rather just two participants.
+ An instance of JPakeParticipant represents one participant, and
+ is the primary interface for executing the exchange.
+
+ To execute an exchange, construct a JPakeParticipant on each end,
+ and call the following 7 methods
+ (once and only once, in the given order, for each participant, sending messages between them as described):
+
+ CreateRound1PayloadToSend() - and send the payload to the other participant
+ ValidateRound1PayloadReceived(JPakeRound1Payload) - use the payload received from the other participant
+ CreateRound2PayloadToSend() - and send the payload to the other participant
+ ValidateRound2PayloadReceived(JPakeRound2Payload) - use the payload received from the other participant
+ CalculateKeyingMaterial()
+ CreateRound3PayloadToSend(BigInteger) - and send the payload to the other participant
+ ValidateRound3PayloadReceived(JPakeRound3Payload, BigInteger) - use the payload received from the other participant
+
+ Each side should derive a session key from the keying material returned by CalculateKeyingMaterial().
+ The caller is responsible for deriving the session key using a secure key derivation function (KDF).
+
+ Round 3 is an optional key confirmation process.
+ If you do not execute round 3, then there is no assurance that both participants are using the same key.
+ (i.e. if the participants used different passwords, then their session keys will differ.)
+
+ If the round 3 validation succeeds, then the keys are guaranteed to be the same on both sides.
+
+ The symmetric design can easily support the asymmetric cases when one party initiates the communication.
+ e.g. Sometimes the round1 payload and round2 payload may be sent in one pass.
+ Also, in some cases, the key confirmation payload can be sent together with the round2 payload.
+ These are the trivial techniques to optimize the communication.
+
+ The key confirmation process is implemented as specified in
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ This class is stateful and NOT threadsafe.
+ Each instance should only be used for ONE complete J-PAKE exchange
+ (i.e. a new JPakeParticipant should be constructed for each new J-PAKE exchange).
+
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ the JPakePrimeOrderGroups#NIST_3072 prime order group,
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+
+
+
+ Constructor for a new JPakeParticipant.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+ Digest to use during zero knowledge proofs and key confirmation
+ (SHA-256 or stronger preferred).
+ Source of secure random data for x1 and x2, and for the zero knowledge proofs.
+
+
+
+ Gets the current state of this participant.
+ See the STATE_* constants for possible values.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 1.
+
+ After execution, the State state} will be STATE_ROUND_1_CREATED}.
+
+
+
+
+ Validates the payload received from the other participant during round 1.
+
+ Must be called prior to CreateRound2PayloadToSend().
+
+ After execution, the State state will be STATE_ROUND_1_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException
+ if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 2.
+
+ ValidateRound1PayloadReceived(JPakeRound1Payload) must be called prior to this method.
+
+ After execution, the State state will be STATE_ROUND_2_CREATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Validates the payload received from the other participant during round 2.
+ Note that this DOES NOT detect a non-common password.
+ The only indication of a non-common password is through derivation
+ of different keys (which can be detected explicitly by executing round 3 and round 4)
+
+ Must be called prior to CalculateKeyingMaterial().
+
+ After execution, the State state will be STATE_ROUND_2_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws
+ InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Calculates and returns the key material.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPakeParticipant).
+
+ The keying material will be identical for each participant if and only if
+ each participant's password is the same. i.e. If the participants do not
+ share the same password, then each participant will derive a different key.
+ Therefore, if you immediately start using a key derived from
+ the keying material, then you must handle detection of incorrect keys.
+ If you want to handle this detection explicitly, you can optionally perform
+ rounds 3 and 4. See JPakeParticipant for details on how to execute
+ rounds 3 and 4.
+
+ The keying material will be in the range [0, p-1].
+
+ ValidateRound2PayloadReceived(JPakeRound2Payload) must be called prior to this method.
+
+ As a side effect, the internal password array is cleared, since it is no longer needed.
+
+ After execution, the State state will be STATE_KEY_CALCULATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound2PayloadReceived(JPakeRound2Payload),
+ or if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state} will be STATE_ROUND_3_CREATED.
+ Throws InvalidOperationException if called prior to CalculateKeyingMaterial, or multiple
+ times.
+
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ Validates the payload received from the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state will be STATE_ROUND_3_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException if called prior to
+ CalculateKeyingMaterial or multiple times
+
+ The round 3 payload received from the other participant.
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ A pre-computed prime order group for use during a J-PAKE exchange.
+
+ Typically a Schnorr group is used. In general, J-PAKE can use any prime order group
+ that is suitable for public key cryptography, including elliptic curve cryptography.
+
+ See JPakePrimeOrderGroups for convenient standard groups.
+
+ NIST publishes
+ many groups that can be used for the desired level of security.
+
+
+
+
+ Constructs a new JPakePrimeOrderGroup.
+
+ In general, you should use one of the pre-approved groups from
+ JPakePrimeOrderGroups, rather than manually constructing one.
+
+ The following basic checks are performed:
+
+ p-1 must be evenly divisible by q
+ g must be in [2, p-1]
+ g^q mod p must equal 1
+ p must be prime (within reasonably certainty)
+ q must be prime (within reasonably certainty)
+
+ The prime checks are performed using BigInteger#isProbablePrime(int),
+ and are therefore subject to the same probability guarantees.
+
+ These checks prevent trivial mistakes.
+ However, due to the small uncertainties if p and q are not prime,
+ advanced attacks are not prevented.
+ Use it at your own risk.
+
+ Throws NullReferenceException if any argument is null. Throws
+ InvalidOperationException is any of the above validations fail.
+
+
+
+
+ Constructor used by the pre-approved groups in JPakePrimeOrderGroups.
+ These pre-approved groups can avoid the expensive checks.
+ User-specified groups should not use this constructor.
+
+
+
+
+ Standard pre-computed prime order groups for use by J-PAKE.
+ (J-PAKE can use pre-computed prime order groups, same as DSA and Diffie-Hellman.)
+
+ This class contains some convenient constants for use as input for
+ constructing {@link JPAKEParticipant}s.
+
+ The prime order groups below are taken from Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB),
+ and from the prime order groups
+ published by NIST.
+
+
+
+
+ From Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB)
+ 1024-bit p, 160-bit q and 1024-bit g for 80-bit security.
+
+
+
+
+ From NIST.
+ 2048-bit p, 224-bit q and 2048-bit g for 112-bit security.
+
+
+
+
+ From NIST.
+ 3072-bit p, 256-bit q and 3072-bit g for 128-bit security.
+
+
+
+
+ The payload sent/received during the first round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance of this payload to
+ the other. The payload to send should be created via
+ JPAKEParticipant.CreateRound1PayloadToSend().
+
+ Each participant must also validate the payload received from the other.
+ The received payload should be validated via
+ JPAKEParticipant.ValidateRound1PayloadReceived(JPakeRound1Payload).
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of g^x1
+
+
+
+
+ The value of g^x2
+
+
+
+
+ The zero knowledge proof for x1.
+
+ This is a two element array, containing {g^v, r} for x1.
+
+
+
+
+ The zero knowledge proof for x2.
+
+ This is a two element array, containing {g^v, r} for x2.
+
+
+
+
+ The payload sent/received during the second round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound2PayloadToSend()
+
+ Each JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound2PayloadReceived(JPakeRound2Payload)
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of A, as computed during round 2.
+
+
+
+
+ The zero knowledge proof for x2 * s.
+
+ This is a two element array, containing {g^v, r} for x2 * s.
+
+
+
+
+ The payload sent/received during the optional third round of a J-PAKE exchange,
+ which is for explicit key confirmation.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound3PayloadToSend(BigInteger)
+
+ Eeach JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound3PayloadReceived(JPakeRound3Payload, BigInteger)
+
+
+
+
+ The id of the {@link JPAKEParticipant} who created/sent this payload.
+
+
+
+
+ The value of MacTag, as computed by round 3.
+
+ See JPAKEUtil#calculateMacTag(string, string, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, org.bouncycastle.crypto.Digest)
+
+
+
+
+ Primitives needed for a J-PAKE exchange.
+
+ The recommended way to perform a J-PAKE exchange is by using
+ two JPAKEParticipants. Internally, those participants
+ call these primitive operations in JPakeUtilities.
+
+ The primitives, however, can be used without a JPAKEParticipant if needed.
+
+
+
+
+ Return a value that can be used as x1 or x3 during round 1.
+ The returned value is a random value in the range [0, q-1].
+
+
+
+
+ Return a value that can be used as x2 or x4 during round 1.
+ The returned value is a random value in the range [1, q-1].
+
+
+
+
+ Converts the given password to a BigInteger
+ for use in arithmetic calculations.
+
+
+
+
+ Calculate g^x mod p as done in round 1.
+
+
+
+
+ Calculate ga as done in round 2.
+
+
+
+
+ Calculate x2 * s as done in round 2.
+
+
+
+
+ Calculate A as done in round 2.
+
+
+
+
+ Calculate a zero knowledge proof of x using Schnorr's signature.
+ The returned array has two elements {g^v, r = v-x*h} for x.
+
+
+
+
+ Validates that g^x4 is not 1.
+ throws CryptoException if g^x4 is 1
+
+
+
+
+ Validates that ga is not 1.
+
+ As described by Feng Hao...
+ Alice could simply check ga != 1 to ensure it is a generator.
+ In fact, as we will explain in Section 3, (x1 + x3 + x4 ) is random over Zq even in the face of active attacks.
+ Hence, the probability for ga = 1 is extremely small - on the order of 2^160 for 160-bit q.
+
+ throws CryptoException if ga is 1
+
+
+
+
+ Validates the zero knowledge proof (generated by
+ calculateZeroKnowledgeProof(BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, string, Digest, SecureRandom)
+ is correct.
+
+ throws CryptoException if the zero knowledge proof is not correct
+
+
+
+
+ Calculates the keying material, which can be done after round 2 has completed.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPAKEParticipant).
+
+ KeyingMaterial = (B/g^{x2*x4*s})^x2
+
+
+
+
+ Validates that the given participant ids are not equal.
+ (For the J-PAKE exchange, each participant must use a unique id.)
+
+ Throws CryptoException if the participantId strings are equal.
+
+
+
+
+ Validates that the given participant ids are equal.
+ This is used to ensure that the payloads received from
+ each round all come from the same participant.
+
+
+
+
+ Validates that the given object is not null.
+ throws NullReferenceException if the object is null.
+
+ object in question
+ name of the object (to be used in exception message)
+
+
+
+ Calculates the MacTag (to be used for key confirmation), as defined by
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ MacTag = HMAC(MacKey, MacLen, MacData)
+ MacKey = H(K || "JPAKE_KC")
+ MacData = "KC_1_U" || participantId || partnerParticipantId || gx1 || gx2 || gx3 || gx4
+
+ Note that both participants use "KC_1_U" because the sender of the round 3 message
+ is always the initiator for key confirmation.
+
+ HMAC = {@link HMac} used with the given {@link Digest}
+ H = The given {@link Digest}
+ MacLen = length of MacTag
+
+
+
+
+ Calculates the MacKey (i.e. the key to use when calculating the MagTag for key confirmation).
+
+ MacKey = H(K || "JPAKE_KC")
+
+
+
+
+ Validates the MacTag received from the partner participant.
+
+ throws CryptoException if the participantId strings are equal.
+
+
+
+ Generator for Concatenation Key Derivation Function defined in NIST SP 800-56A, Sect 5.8.1
+
+
+ @param digest the digest to be used as the source of generated bytes
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ RFC 2631 Diffie-hellman KEK derivation function.
+
+
+ X9.63 based key derivation function for ECDH CMS.
+
+
+
+ SM2 Key Exchange protocol - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
+
+
+
+ Implements the client side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the client to begin new authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates client's credentials given the client's salt, identity and password
+ @param salt The salt used in the client's verifier.
+ @param identity The user's identity (eg. username)
+ @param password The user's password
+ @return Client's public value to send to server
+
+
+ Generates client's verification message given the server's credentials
+ @param serverB The server's credentials
+ @return Client's verification message for the server
+ @throws CryptoException If server's credentials are invalid
+
+
+ Computes the client evidence message M1 using the previously received values.
+ To be called after calculating the secret S.
+ @return M1: the client side generated evidence message
+ @throws CryptoException
+
+
+ Authenticates the server evidence message M2 received and saves it only if correct.
+ @param M2: the server side generated evidence message
+ @return A boolean indicating if the server message M2 was the expected one.
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after verifying the server evidence message M2.
+ @return Key: the mutually authenticated symmetric session key
+ @throws CryptoException
+
+
+ Implements the server side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the server to accept a new client authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param v The client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates the server's credentials that are to be sent to the client.
+ @return The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+ @param clientA The client's credentials
+ @return A shared secret BigInteger
+ @throws CryptoException If client's credentials are invalid
+
+
+ Authenticates the received client evidence message M1 and saves it only if correct.
+ To be called after calculating the secret S.
+ @param M1: the client side generated evidence message
+ @return A boolean indicating if the client message M1 was the expected one.
+ @throws CryptoException
+
+
+ Computes the server evidence message M2 using the previously verified values.
+ To be called after successfully verifying the client evidence message M1.
+ @return M2: the server side generated evidence message
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after calculating the server evidence message M2.
+ @return Key: the mutual authenticated symmetric session key
+ @throws CryptoException
+
+
+ Computes the client evidence message (M1) according to the standard routine:
+ M1 = H( A | B | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param B The public server value
+ @param S The secret calculated by both sides
+ @return M1 The calculated client evidence message
+
+
+ Computes the server evidence message (M2) according to the standard routine:
+ M2 = H( A | M1 | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param M1 The client evidence message
+ @param S The secret calculated by both sides
+ @return M2 The calculated server evidence message
+
+
+ Computes the final Key according to the standard routine: Key = H(S)
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param S The secret calculated by both sides
+ @return
+
+
+ Generates new SRP verifier for user
+
+
+ Initialises generator to create new verifiers
+ @param N The safe prime to use (see DHParametersGenerator)
+ @param g The group parameter to use (see DHParametersGenerator)
+ @param digest The digest to use. The same digest type will need to be used later for the actual authentication
+ attempt. Also note that the final session key size is dependent on the chosen digest.
+
+
+ Creates a new SRP verifier
+ @param salt The salt to use, generally should be large and random
+ @param identity The user's identifying information (eg. username)
+ @param password The user's password
+ @return A new verifier for use in future SRP authentication
+
+
+ a holding class for public/private parameter pairs.
+
+
+ basic constructor.
+
+ @param publicParam a public key parameters object.
+ @param privateParam the corresponding private key parameters.
+
+
+ return the public key parameters.
+
+ @return the public key parameters.
+
+
+ return the private key parameters.
+
+ @return the private key parameters.
+
+
+ The AEAD block ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ a buffer wrapper for an asymmetric block cipher, allowing input
+ to be accumulated in a piecemeal fashion until final processing.
+
+
+ base constructor.
+
+ @param cipher the cipher this buffering object wraps.
+
+
+ return the amount of data sitting in the buffer.
+
+ @return the amount of data sitting in the buffer.
+
+
+ initialise the buffer and the underlying cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+
+
+ process the contents of the buffer using the underlying
+ cipher.
+
+ @return the result of the encryption/decryption process on the
+ buffer.
+ @exception InvalidCipherTextException if we are given a garbage block.
+
+
+ Reset the buffer
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion. The BufferedBlockCipher outputs a block only when the
+ buffer is full and more data is being added, or on a doFinal.
+
+ Note: in the case where the underlying cipher is either a CFB cipher or an
+ OFB one the last block may not be a multiple of the block size.
+
+
+
+ constructor for subclasses
+
+
+ Create a buffered block cipher without padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ false otherwise.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The base class for symmetric, or secret, cipher key generators.
+
+
+ initialise the key generator.
+
+ @param param the parameters to be used for key generation
+
+
+ Generate a secret key.
+
+ @return a byte array containing the key value.
+
+
+ this exception is thrown if a buffer that is meant to have output
+ copied into it turns out to be too short, or if we've been given
+ insufficient input. In general this exception will Get thrown rather
+ than an ArrayOutOfBounds exception.
+
+
+ base constructor.
+
+
+ create a DataLengthException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Basic sized constructor - size in bits.
+
+ @param digestSize size of the digest in bits
+
+
+ Blake2b for authentication ("Prefix-MAC mode").
+ After calling the doFinal() method, the key will
+ remain to be used for further computations of
+ this instance.
+ The key can be overwritten using the clearKey() method.
+
+ @param key A key up to 64 bytes or null
+
+
+ Blake2b with key, required digest length (in bytes), salt and personalization.
+ After calling the doFinal() method, the key, the salt and the personal string
+ will remain and might be used for further computations with this instance.
+ The key can be overwritten using the clearKey() method, the salt (pepper)
+ can be overwritten using the clearSalt() method.
+
+ @param key A key up to 64 bytes or null
+ @param digestLength from 1 up to 64 bytes
+ @param salt 16 bytes or null
+ @param personalization 16 bytes or null
+
+
+ update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+ Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to it's initial state.
+ The key, the salt and the personal string will
+ remain for further computations.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies it's compression
+ function to.
+
+ @return byte length of the digests internal buffer.
+
+
+ Overwrite the key
+ if it is no longer used (zeroization)
+
+
+ Overwrite the salt (pepper) if it
+ is secret and no longer used (zeroization)
+
+
+ Implementation of the cryptographic hash function BLAKE2s.
+
+ BLAKE2s offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2s offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2s is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 32 bytes.
+
+
+ BLAKE2s Initialization Vector
+
+
+
+ Message word permutations
+
+
+
+ Whenever this buffer overflows, it will be processed in the Compress()
+ function. For performance issues, long messages will not use this buffer.
+
+
+ Position of last inserted byte
+
+
+
+ Internal state, in the BLAKE2 paper it is called v
+
+
+
+ State vector, in the BLAKE2 paper it is called h
+
+
+
+ holds least significant bits of counter
+
+
+
+ holds most significant bits of counter
+
+
+
+ finalization flag, for last block: ~0
+
+
+
+ BLAKE2s-256 for hashing.
+
+
+ BLAKE2s for hashing.
+
+ @param digestBits the desired digest length in bits. Must be one of
+ [128, 160, 224, 256].
+
+
+ BLAKE2s for authentication ("Prefix-MAC mode").
+
+ After calling the doFinal() method, the key will remain to be used for
+ further computations of this instance. The key can be overwritten using
+ the clearKey() method.
+
+ @param key a key up to 32 bytes or null
+
+
+ BLAKE2s with key, required digest length, salt and personalization.
+
+ After calling the doFinal() method, the key, the salt and the personal
+ string will remain and might be used for further computations with this
+ instance. The key can be overwritten using the clearKey() method, the
+ salt (pepper) can be overwritten using the clearSalt() method.
+
+ @param key a key up to 32 bytes or null
+ @param digestBytes from 1 up to 32 bytes
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Overwrite the key if it is no longer used (zeroization).
+
+
+ Overwrite the salt (pepper) if it is secret and no longer used
+ (zeroization).
+
+
+ implementation of Ukrainian DSTU 7564 hash function
+
+
+ base implementation of MD4 family style digest as outlined in
+ "Handbook of Applied Cryptography", pages 344 - 347.
+
+
+ implementation of GOST R 34.11-94
+
+
+ Standard constructor
+
+
+ Constructor to allow use of a particular sbox with GOST28147
+ @see GOST28147Engine#getSBox(String)
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Return the size of block that the compression function is applied to in bytes.
+
+ @return internal byte length of a block.
+
+
+ Base class for SHA-384 and SHA-512.
+
+
+ Constructor for variable length word
+
+
+ Copy constructor. We are using copy constructors in place
+ of the object.Clone() interface as this interface is not
+ supported by J2ME.
+
+
+ adjust the byte counts so that byteCount2 represents the
+ upper long (less 3 bits) word of the byte count.
+
+
+ implementation of MD2
+ as outlined in RFC1319 by B.Kaliski from RSA Laboratories April 1992
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param out the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ implementation of MD4 as RFC 1320 by R. Rivest, MIT Laboratory for
+ Computer Science and RSA Data Security, Inc.
+
+ NOTE: This algorithm is only included for backwards compatibility
+ with legacy applications, it's not secure, don't use it for anything new!
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ Wrapper removes exposure to the IMemoable interface on an IDigest implementation.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @exception IllegalArgumentException if baseDigest is null
+
+
+ implementation of RipeMD128
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of RipeMD see,
+ http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD256.
+ Note: this algorithm offers the same level of security as RipeMD128.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD 320.
+ Note: this algorithm offers the same level of security as RipeMD160.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349.
+
+ It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5
+ is the "endianness" of the word processing!
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ SHA-224 as described in RFC 3874
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-224 512 32 224
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-256. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-384. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHA-3 based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Draft FIPS 180-2 implementation of SHA-512. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ FIPS 180-4 implementation of SHA-512/t
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHAKE based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Wrapper class that reduces the output length of a particular digest to
+ only the first n bytes of the digest function.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @param length length in bytes of the output of doFinal.
+ @exception ArgumentException if baseDigest is null, or length is greater than baseDigest.GetDigestSize().
+
+
+
+ Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block
+ sizes, based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation is the basis for and , implementing the
+ parameter based configuration system that allows Skein to be adapted to multiple applications.
+ Initialising the engine with allows standard and arbitrary parameters to
+ be applied during the Skein hash function.
+
+ Implemented:
+
+ - 256, 512 and 1024 bit internal states.
+ - Full 96 bit input length.
+ - Parameters defined in the Skein specification, and arbitrary other pre and post message
+ parameters.
+ - Arbitrary output size in 1 byte intervals.
+
+
+ Not implemented:
+
+ - Sub-byte length input (bit padding).
+ - Tree hashing.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+ The parameter type for the Skein key.
+
+
+ The parameter type for the Skein configuration block.
+
+
+ The parameter type for the message.
+
+
+ The parameter type for the output transformation.
+
+
+ Precalculated UBI(CFG) states for common state/output combinations without key or other
+ pre-message params.
+
+
+ Point at which position might overflow long, so switch to add with carry logic
+
+
+ Bit 127 = final
+
+
+ Bit 126 = first
+
+
+ UBI uses a 128 bit tweak
+
+
+ Whether 64 bit position exceeded
+
+
+ Advances the position in the tweak by the specified value.
+
+
+ The Unique Block Iteration chaining mode.
+
+
+ Buffer for the current block of message data
+
+
+ Offset into the current message block
+
+
+ Buffer for message words for feedback into encrypted block
+
+
+ Underlying Threefish tweakable block cipher
+
+
+ Size of the digest output, in bytes
+
+
+ The current chaining/state value
+
+
+ The initial state value
+
+
+ The (optional) key parameter
+
+
+ Parameters to apply prior to the message
+
+
+ Parameters to apply after the message, but prior to output
+
+
+ The current UBI operation
+
+
+ Buffer for single byte update method
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Creates a SkeinEngine as an exact copy of an existing instance.
+
+
+
+
+ Initialises the Skein engine with the provided parameters. See for
+ details on the parameterisation of the Skein hash function.
+
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+ Calculate the initial (pre message block) chaining state.
+
+
+
+ Reset the engine to the initial state (with the key and any pre-message parameters , ready to
+ accept message input.
+
+
+
+
+ Implementation of Chinese SM3 digest as described at
+ http://tools.ietf.org/html/draft-shen-sm3-hash-00
+ and at .... ( Chinese PDF )
+
+
+ The specification says "process a bit stream",
+ but this is written to process bytes in blocks of 4,
+ meaning this will process 32-bit word groups.
+ But so do also most other digest specifications,
+ including the SHA-256 which was a origin for
+ this specification.
+
+
+
+
+ Standard constructor
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+
+ reset the chaining variables
+
+
+
+ implementation of Tiger based on:
+
+ http://www.cs.technion.ac.il/~biham/Reports/Tiger
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Implementation of WhirlpoolDigest, based on Java source published by Barreto
+ and Rijmen.
+
+
+
+ Copy constructor. This will copy the state of the provided message
+ digest.
+
+
+ Reset the chaining variables
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ ISO 9796-1 padding. Note in the light of recent results you should
+ only use this with RSA (rather than the "simpler" Rabin keys) and you
+ should never use it with anything other than a hash (ie. even if the
+ message is small don't sign the message, sign it's hash) or some "random"
+ value. See your favorite search engine for details.
+
+
+ return the input block size. The largest message we can process
+ is (key_size_in_bits + 3)/16, which in our world comes to
+ key_size_in_bytes / 2.
+
+
+ return the maximum possible size for the output.
+
+
+ set the number of bits in the next message to be treated as
+ pad bits.
+
+
+ retrieve the number of pad bits in the last decoded message.
+
+
+ @exception InvalidCipherTextException if the decrypted block is not a valid ISO 9796 bit string
+
+
+ Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2.
+
+
+ @exception InvalidCipherTextException if the decrypted block turns out to
+ be badly formatted.
+
+
+ int to octet string.
+
+
+ mask generator function, as described in PKCS1v2.
+
+
+ this does your basic Pkcs 1 v1.5 padding - whether or not you should be using this
+ depends on your application - see Pkcs1 Version 2 for details.
+
+
+ some providers fail to include the leading zero in PKCS1 encoded blocks. If you need to
+ work with one of these set the system property Org.BouncyCastle.Pkcs1.Strict to false.
+
+
+ The same effect can be achieved by setting the static property directly
+
+ The static property is checked during construction of the encoding object, it is set to
+ true by default.
+
+
+
+ Basic constructor.
+
+ @param cipher
+
+
+ Constructor for decryption with a fixed plaintext length.
+
+ @param cipher The cipher to use for cryptographic operation.
+ @param pLen Length of the expected plaintext.
+
+
+ Constructor for decryption with a fixed plaintext length and a fallback
+ value that is returned, if the padding is incorrect.
+
+ @param cipher
+ The cipher to use for cryptographic operation.
+ @param fallback
+ The fallback value, we don't to a arraycopy here.
+
+
+ Checks if the argument is a correctly PKCS#1.5 encoded Plaintext
+ for encryption.
+
+ @param encoded The Plaintext.
+ @param pLen Expected length of the plaintext.
+ @return Either 0, if the encoding is correct, or -1, if it is incorrect.
+
+
+ Decode PKCS#1.5 encoding, and return a random value if the padding is not correct.
+
+ @param in The encrypted block.
+ @param inOff Offset in the encrypted block.
+ @param inLen Length of the encrypted block.
+ @param pLen Length of the desired output.
+ @return The plaintext without padding, or a random value if the padding was incorrect.
+ @throws InvalidCipherTextException
+
+
+ @exception InvalidCipherTextException if the decrypted block is not in Pkcs1 format.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first.
+
+ The slowest version uses no static tables at all and computes the values in each round.
+
+
+ This file contains the middle performance version with 2Kbytes of static tables for round precomputation.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael)), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor), they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations), 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each), for a total of 2Kbytes),
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values in each round
+
+
+ This file contains the fast version with 8Kbytes of static tables for round precomputation
+
+
+ Unfortunately this class has a few side channel issues.
+ In an environment where encryption/decryption may be closely observed it should not be used.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values
+ in each round.
+
+
+ This file contains the slowest performance version with no static tables
+ for round precomputation, but it has the smallest foot print.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ A class that provides Blowfish key encryption operations,
+ such as encoding data and generating keys.
+ All the algorithms herein are from Applied Cryptography
+ and implement a simplified cryptography interface.
+
+
+ initialise a Blowfish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ apply the encryption cycle to each value pair in the table.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Camellia - based on RFC 3713.
+
+
+ Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.
+
+
+
+ An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3657.txt.
+
+
+
+ A class that provides CAST key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC's
+
+ RFC2144 - Cast5 (64bit block, 40-128bit key)
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ initialise a CAST cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ The first of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The second of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The third of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ Does the 16 rounds to encrypt the block.
+
+ @param L0 the LH-32bits of the plaintext block
+ @param R0 the RH-32bits of the plaintext block
+
+
+ A class that provides CAST6 key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC
+
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Does the 12 quad rounds rounds to encrypt the block.
+
+ @param A the 00-31 bits of the plaintext block
+ @param B the 32-63 bits of the plaintext block
+ @param C the 64-95 bits of the plaintext block
+ @param D the 96-127 bits of the plaintext block
+ @param result the resulting ciphertext
+
+
+ Does the 12 quad rounds rounds to decrypt the block.
+
+ @param A the 00-31 bits of the ciphertext block
+ @param B the 32-63 bits of the ciphertext block
+ @param C the 64-95 bits of the ciphertext block
+ @param D the 96-127 bits of the ciphertext block
+ @param result the resulting plaintext
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Creates a ChaCha engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+
+ ChaCha function.
+
+ The number of ChaCha rounds to execute
+ The input words.
+ The ChaCha state to modify.
+
+
+ A class that provides a basic DESede (or Triple DES) engine.
+
+
+ initialise a DESede cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ * Wrap keys according to
+ *
+ * draft-ietf-smime-key-wrap-01.txt.
+ *
+ * Note:
+ *
+ * - this is based on a draft, and as such is subject to change - don't use this class for anything requiring long term storage.
+ * - if you are using this to wrap triple-des keys you need to set the
+ * parity bits on the key and, if it's a two-key triple-des key, pad it
+ * yourself.
+ *
+ *
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ A class that provides a basic DES engine.
+
+
+ initialise a DES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ what follows is mainly taken from "Applied Cryptography", by
+ Bruce Schneier, however it also bears great resemblance to Richard
+ Outerbridge's D3DES...
+
+
+ Generate an integer based working key based on our secret key
+ and what we processing we are planning to do.
+
+ Acknowledgements for this routine go to James Gillogly and Phil Karn.
+ (whoever, and wherever they are!).
+
+
+ the DES engine.
+
+
+ implementation of DSTU 7624 (Kalyna)
+
+
+ this does your basic ElGamal algorithm.
+
+
+ initialise the ElGamal engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary ElGamal key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ encryption, and twice the length as the size of P on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ decryption, and twice the length as the size of P on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic ElGamal algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param length the length of the data to be processed.
+ @return the result of the ElGamal process.
+ @exception DataLengthException the input block is too large.
+
+
+ implementation of GOST 28147-89
+
+
+ standard constructor.
+
+
+ initialise an Gost28147 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ Return the S-Box associated with SBoxName
+ @param sBoxName name of the S-Box
+ @return byte array representing the S-Box
+
+
+ HC-128 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 128-bit secret key and a 128-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc128_p3.pdf
+
+ It is a third phase candidate in the eStream contest, and is patent-free.
+ No attacks are known as of today (April 2007). See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-128 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 128 bit long).
+
+
+ HC-256 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 256-bit secret key and a 256-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc256_p3.pdf
+
+ Its brother, HC-128, is a third phase candidate in the eStream contest.
+ The algorithm is patent-free. No attacks are known as of today (April 2007).
+ See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-256 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 256 bit long).
+
+
+ A class that provides a basic International Data Encryption Algorithm (IDEA) engine.
+
+ This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM"
+ implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (baring 1 typo at the
+ end of the mulinv function!).
+
+
+ It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/
+
+
+ Note 1: This algorithm is patented in the USA, Japan, and Europe including
+ at least Austria, France, Germany, Italy, Netherlands, Spain, Sweden, Switzerland
+ and the United Kingdom. Non-commercial use is free, however any commercial
+ products are liable for royalties. Please see
+ www.mediacrypt.com for
+ further details. This announcement has been included at the request of
+ the patent holders.
+
+
+ Note 2: Due to the requests concerning the above, this algorithm is now only
+ included in the extended assembly. It is not included in the default distributions.
+
+
+
+ standard constructor.
+
+
+ initialise an IDEA cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return x = x * y where the multiplication is done modulo
+ 65537 (0x10001) (as defined in the IDEA specification) and
+ a zero input is taken to be 65536 (0x10000).
+
+ @param x the x value
+ @param y the y value
+ @return x = x * y
+
+
+ The following function is used to expand the user key to the encryption
+ subkey. The first 16 bytes are the user key, and the rest of the subkey
+ is calculated by rotating the previous 16 bytes by 25 bits to the left,
+ and so on until the subkey is completed.
+
+
+ This function computes multiplicative inverse using Euclid's Greatest
+ Common Divisor algorithm. Zero and one are self inverse.
+
+ i.e. x * MulInv(x) == 1 (modulo BASE)
+
+
+
+ Return the additive inverse of x.
+
+ i.e. x + AddInv(x) == 0
+
+
+
+ The function to invert the encryption subkey to the decryption subkey.
+ It also involves the multiplicative inverse and the additive inverse functions.
+
+
+ support class for constructing intergrated encryption ciphers
+ for doing basic message exchanges on top of key agreement ciphers
+
+
+ set up for use with stream mode, where the key derivation function
+ is used to provide a stream of bytes to xor with the message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+
+
+ set up for use in conjunction with a block cipher to handle the
+ message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+ @param cipher the cipher to used for encrypting the message
+
+
+ Initialise the encryptor.
+
+ @param forEncryption whether or not this is encryption/decryption.
+ @param privParam our private key parameters
+ @param pubParam the recipient's/sender's public key parameters
+ @param param encoding and derivation parameters.
+
+
+ Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count).
+ see: http://www.burtleburtle.net/bob/rand/isaacafa.html
+
+
+ initialise an ISAAC cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ NaccacheStern Engine. For details on this cipher, please see
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Initializes this algorithm. Must be called before all other Functions.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#init(bool,
+ org.bouncycastle.crypto.CipherParameters)
+
+
+ Returns the input block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetInputBlockSize()
+
+
+ Returns the output block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetOutputBlockSize()
+
+
+ Process a single Block using the Naccache-Stern algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#ProcessBlock(byte[],
+ int, int)
+
+
+ Encrypts a BigInteger aka Plaintext with the public key.
+
+ @param plain
+ The BigInteger to encrypt
+ @return The byte[] representation of the encrypted BigInteger (i.e.
+ crypted.toByteArray())
+
+
+ Adds the contents of two encrypted blocks mod sigma
+
+ @param block1
+ the first encrypted block
+ @param block2
+ the second encrypted block
+ @return encrypt((block1 + block2) mod sigma)
+ @throws InvalidCipherTextException
+
+
+ Convenience Method for data exchange with the cipher.
+
+ Determines blocksize and splits data to blocksize.
+
+ @param data the data to be processed
+ @return the data after it went through the NaccacheSternEngine.
+ @throws InvalidCipherTextException
+
+
+ Computes the integer x that is expressed through the given primes and the
+ congruences with the chinese remainder theorem (CRT).
+
+ @param congruences
+ the congruences c_i
+ @param primes
+ the primes p_i
+ @return an integer x for that x % p_i == c_i
+
+
+ A Noekeon engine, using direct-key mode.
+
+
+ Create an instance of the Noekeon encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ The no-op engine that just copies bytes through, irrespective of whether encrypting and decrypting.
+ Provided for the sake of completeness.
+
+
+ an implementation of RC2 as described in RFC 2268
+ "A Description of the RC2(r) Encryption Algorithm" R. Rivest.
+
+
+ initialise a RC2 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the result rotating the 16 bit number in x left by y
+
+
+ Wrap keys according to RFC 3217 - RC2 mechanism
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ initialise a RC4 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation has a word size of 32 bits.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation is set to work with a 64 bit word size.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-64 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ An RC6 engine.
+
+
+ Create an instance of the RC6 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param inKey the key to be used
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ an implementation of the RFC 3211 Key Wrap
+ Specification.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap
+ Specification as described in RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3394.txt
+ and http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ an implementation of Rijndael, based on the documentation and reference implementation
+ by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.
+
+ Note: this implementation is based on information prior to readonly NIST publication.
+
+
+
+ multiply two elements of GF(2^m)
+ needed for MixColumn and InvMixColumn
+
+
+ xor corresponding text input and round key input bytes
+
+
+ Row 0 remains unchanged
+ The other three rows are shifted a variable amount
+
+
+ Replace every byte of the input by the byte at that place
+ in the nonlinear S-box
+
+
+ Mix the bytes of every column in a linear way
+
+
+ Mix the bytes of every column in a linear way
+ This is the opposite operation of Mixcolumn
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on keyBits and blockBits
+
+
+ default constructor - 128 bit block size.
+
+
+ basic constructor - set the cipher up for a given blocksize
+
+ @param blocksize the blocksize in bits, must be 128, 192, or 256.
+
+
+ initialise a Rijndael cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ this does your basic RSA algorithm with blinding
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+ This does your basic RSA Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475. You need to use this if you are
+ trying to get another party to generate signatures without them being aware
+ of the message they are signing.
+
+
+ Initialise the blinding engine.
+
+ @param forEncryption true if we are encrypting (blinding), false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the RSA blinding algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @throws DataLengthException the input block is too large.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+
+ Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005
+
+
+
+ Constants
+
+
+
+ Creates a 20 round Salsa20 engine.
+
+
+
+
+ Creates a Salsa20 engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ Rotate left
+
+ @param x value to rotate
+ @param y amount to rotate x
+
+ @return rotated x
+
+
+ Implementation of the SEED algorithm as described in RFC 4009
+
+
+
+ An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc4010.txt.
+
+
+
+ * Serpent is a 128-bit 32-round block cipher with variable key lengths,
+ * including 128, 192 and 256 bit keys conjectured to be at least as
+ * secure as three-key triple-DES.
+ *
+ * Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ * candidate algorithm for the NIST AES Quest.
+ *
+ *
+ * For full details see The Serpent home page
+ *
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ initialise a Serpent cipher.
+
+ @param encrypting whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @throws IllegalArgumentException if the params argument is
+ inappropriate.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @return the number of bytes processed and produced.
+ @throws DataLengthException if there isn't enough data in in, or
+ space in out.
+ @throws IllegalStateException if the cipher isn't initialised.
+
+
+ InvSO - {13, 3,11, 0,10, 6, 5,12, 1,14, 4, 7,15, 9, 8, 2 } - 15 terms.
+
+
+ S1 - {15,12, 2, 7, 9, 0, 5,10, 1,11,14, 8, 6,13, 3, 4 } - 14 terms.
+
+
+ InvS1 - { 5, 8, 2,14,15, 6,12, 3,11, 4, 7, 9, 1,13,10, 0 } - 14 steps.
+
+
+ S2 - { 8, 6, 7, 9, 3,12,10,15,13, 1,14, 4, 0,11, 5, 2 } - 16 terms.
+
+
+ InvS2 - {12, 9,15, 4,11,14, 1, 2, 0, 3, 6,13, 5, 8,10, 7 } - 16 steps.
+
+
+ S3 - { 0,15,11, 8,12, 9, 6, 3,13, 1, 2, 4,10, 7, 5,14 } - 16 terms.
+
+
+ InvS3 - { 0, 9,10, 7,11,14, 6,13, 3, 5,12, 2, 4, 8,15, 1 } - 15 terms
+
+
+ S4 - { 1,15, 8, 3,12, 0,11, 6, 2, 5, 4,10, 9,14, 7,13 } - 15 terms.
+
+
+ InvS4 - { 5, 0, 8, 3,10, 9, 7,14, 2,12,11, 6, 4,15,13, 1 } - 15 terms.
+
+
+ S5 - {15, 5, 2,11, 4,10, 9,12, 0, 3,14, 8,13, 6, 7, 1 } - 16 terms.
+
+
+ InvS5 - { 8,15, 2, 9, 4, 1,13,14,11, 6, 5, 3, 7,12,10, 0 } - 16 terms.
+
+
+ S6 - { 7, 2,12, 5, 8, 4, 6,11,14, 9, 1,15,13, 3,10, 0 } - 15 terms.
+
+
+ InvS6 - {15,10, 1,13, 5, 3, 6, 0, 4, 9,14, 7, 2,12, 8,11 } - 15 terms.
+
+
+ S7 - { 1,13,15, 0,14, 8, 2,11, 7, 4,12,10, 9, 3, 5, 6 } - 16 terms.
+
+
+ InvS7 - { 3, 0, 6,13, 9,14,15, 8, 5,12,11, 7,10, 1, 4, 2 } - 17 terms.
+
+
+ Apply the linear transformation to the register set.
+
+
+ Apply the inverse of the linear transformation to the register set.
+
+
+ a class that provides a basic SKIPJACK engine.
+
+
+ initialise a SKIPJACK cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The G permutation
+
+
+ the inverse of the G permutation.
+
+
+
+ SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.
+
+
+
+ An TEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+
+ Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block
+ sizes.
+
+
+ This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST
+ SHA-3 competition in October 2010.
+
+ Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables
+ to speed up key schedule injection.
+ 2 x block size state is retained by each cipher instance.
+
+
+
+
+ 256 bit block size - Threefish-256
+
+
+
+
+ 512 bit block size - Threefish-512
+
+
+
+
+ 1024 bit block size - Threefish-1024
+
+
+
+ Size of the tweak in bytes (always 128 bit/16 bytes)
+
+
+ Rounds in Threefish-256
+
+
+ Rounds in Threefish-512
+
+
+ Rounds in Threefish-1024
+
+
+ Max rounds of any of the variants
+
+
+ Key schedule parity constant
+
+
+ Block size in bytes
+
+
+ Block size in 64 bit words
+
+
+ Buffer for byte oriented processBytes to call internal word API
+
+
+ Tweak bytes (2 byte t1,t2, calculated t3 and repeat of t1,t2 for modulo free lookup
+
+
+ Key schedule words
+
+
+ The internal cipher implementation (varies by blocksize)
+
+
+
+ Constructs a new Threefish cipher, with a specified block size.
+
+ the block size in bits, one of , ,
+ .
+
+
+
+ Initialise the engine.
+
+ Initialise for encryption if true, for decryption if false.
+ an instance of or (to
+ use a 0 tweak)
+
+
+
+ Initialise the engine, specifying the key and tweak directly.
+
+ the cipher mode.
+ the words of the key, or null to use the current key.
+ the 2 word (128 bit) tweak, or null to use the current tweak.
+
+
+
+ Process a block of data represented as 64 bit words.
+
+ the number of 8 byte words processed (which will be the same as the block size).
+ a block sized buffer of words to process.
+ a block sized buffer of words to receive the output of the operation.
+ if either the input or output is not block sized
+ if this engine is not initialised
+
+
+
+ Read a single 64 bit word from input in LSB first order.
+
+
+
+
+ Write a 64 bit word to output in LSB first order.
+
+
+
+ Rotate left + xor part of the mix operation.
+
+
+ Rotate xor + rotate right part of the unmix operation.
+
+
+ The extended + repeated tweak words
+
+
+ The extended + repeated key words
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Tnepres is a 128-bit 32-round block cipher with variable key lengths,
+ including 128, 192 and 256 bit keys conjectured to be at least as
+ secure as three-key triple-DES.
+
+ Tnepres is based on Serpent which was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ candidate algorithm for the NIST AES Quest. Unfortunately there was an endianness issue
+ with test vectors in the AES submission and the resulting confusion lead to the Tnepres cipher
+ as well, which is a byte swapped version of Serpent.
+
+
+ For full details see The Serpent home page
+
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ A class that provides Twofish encryption operations.
+
+ This Java implementation is based on the Java reference
+ implementation provided by Bruce Schneier and developed
+ by Raif S. Naffah.
+
+
+ Define the fixed p0/p1 permutations used in keyed S-box lookup.
+ By changing the following constant definitions, the S-boxes will
+ automatically Get changed in the Twofish engine.
+
+
+ gSubKeys[] and gSBox[] are eventually used in the
+ encryption and decryption methods.
+
+
+ initialise a Twofish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+ encryptBlock uses the pre-calculated gSBox[] and subKey[]
+ arrays.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Use (12, 8) Reed-Solomon code over GF(256) to produce
+ a key S-box 32-bit entity from 2 key material 32-bit
+ entities.
+
+ @param k0 first 32-bit entity
+ @param k1 second 32-bit entity
+ @return Remainder polynomial Generated using RS code
+
+
+ * Reed-Solomon code parameters: (12,8) reversible code:
+ *
+ *
+ * G(x) = x^4 + (a+1/a)x^3 + ax^2 + (a+1/a)x + 1
+ *
+ * where a = primitive root of field generator 0x14D
+ *
+
+
+ initialise a VMPC cipher.
+
+ @param forEncryption
+ whether or not we are for encryption.
+ @param params
+ the parameters required to set up the cipher.
+ @exception ArgumentException
+ if the params argument is inappropriate.
+
+
+
+ Implementation of Daniel J. Bernstein's XSalsa20 stream cipher - Salsa20 with an extended nonce.
+
+
+ XSalsa20 requires a 256 bit key, and a 192 bit nonce.
+
+
+
+
+ XSalsa20 key generation: process 256 bit input key and 128 bits of the input nonce
+ using a core Salsa20 function without input addition to produce 256 bit working key
+ and use that with the remaining 64 bits of nonce to initialize a standard Salsa20 engine state.
+
+
+
+ An XTEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on ISO 18033/P1363a.
+
+
+ Construct a KDF Parameters generator.
+
+ @param counterStart value of counter.
+ @param digest the digest to be used as the source of derived keys.
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws ArgumentException if the size of the request will cause an overflow.
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Core of password hashing scheme Bcrypt,
+ designed by Niels Provos and David Mazières,
+ corresponds to the C reference implementation.
+
+ This implementation does not correspondent to the 1999 published paper
+ "A Future-Adaptable Password Scheme" of Niels Provos and David Mazières,
+ see: https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html.
+ In contrast to the paper, the order of key setup and salt setup is reversed:
+ state <- ExpandKey(state, 0, key)
+ state %lt;- ExpandKey(state, 0, salt)
+ This corresponds to the OpenBSD reference implementation of Bcrypt.
+
+ Note:
+ There is no successful cryptanalysis (status 2015), but
+ the amount of memory and the band width of Bcrypt
+ may be insufficient to effectively prevent attacks
+ with custom hardware like FPGAs, ASICs
+
+ This implementation uses some parts of Bouncy Castle's BlowfishEngine.
+
+
+
+ Derives a raw 192 bit Bcrypt key
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param psw the password
+ @return a 192 bit key
+
+
+ Size of the salt parameter in bytes
+
+
+ Minimum value of cost parameter, equal to log2(bytes of salt)
+
+
+ Maximum value of cost parameter (31 == 2,147,483,648)
+
+
+ Maximum size of password == max (unrestricted) size of Blowfish key
+
+
+ Calculates the bcrypt hash of a password.
+
+ This implements the raw bcrypt function as defined in the bcrypt specification, not
+ the crypt encoded version implemented in OpenBSD.
+
+ @param password the password bytes (up to 72 bytes) to use for this invocation.
+ @param salt the 128 bit salt to use for this invocation.
+ @param cost the bcrypt cost parameter. The cost of the bcrypt function grows as
+ 2^cost. Legal values are 4..31 inclusive.
+ @return the output of the raw bcrypt operation: a 192 bit (24 byte) hash.
+
+
+ initialise the key generator - if strength is set to zero
+ the key Generated will be 192 bits in size, otherwise
+ strength can be 128 or 192 (or 112 or 168 if you don't count
+ parity bits), depending on whether you wish to do 2-key or 3-key
+ triple DES.
+
+ @param param the parameters to be used for key generation
+
+
+ initialise the key generator - if strength is set to zero
+ the key generated will be 64 bits in size, otherwise
+ strength can be 64 or 56 bits (if you don't count the parity bits).
+
+ @param param the parameters to be used for key generation
+
+
+ a basic Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use with the basic algorithm for
+ Diffie-Hellman.
+
+
+ a Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use in the MTI/A0 key agreement protocol
+ as described in "Handbook of Applied Cryptography", Pages 516-519.
+
+
+ which Generates the p and g values from the given parameters,
+ returning the DHParameters object.
+
+ Note: can take a while...
+
+
+ a DSA key pair generator.
+
+ This Generates DSA keys in line with the method described
+ in FIPS 186-3 B.1 FFC Key Pair Generation.
+
+
+ Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3.
+
+
+ Initialise the generator
+ This form can only be used for older DSA (pre-DSA2) parameters
+ the size of keys in bits (from 512 up to 1024, and a multiple of 64)
+ measure of robustness of primes (at least 80 for FIPS 186-2 compliance)
+ the source of randomness to use
+
+
+ Initialise the generator for DSA 2
+ You must use this Init method if you need to generate parameters for DSA 2 keys
+ An instance of DsaParameterGenerationParameters used to configure this generator
+
+
+ Generates a set of DsaParameters
+ Can take a while...
+
+
+ generate suitable parameters for DSA, in line with
+ FIPS 186-3 A.1 Generation of the FFC Primes p and q.
+
+
+ Given the domain parameters this routine generates an EC key
+ pair in accordance with X9.62 section 5.2.1 pages 26, 27.
+
+
+ a ElGamal key pair generator.
+
+ This Generates keys consistent for use with ElGamal as described in
+ page 164 of "Handbook of Applied Cryptography".
+
+
+ * which Generates the p and g values from the given parameters,
+ * returning the ElGamalParameters object.
+ *
+ * Note: can take a while...
+ *
+
+
+ a GOST3410 key pair generator.
+ This generates GOST3410 keys in line with the method described
+ in GOST R 34.10-94.
+
+
+ generate suitable parameters for GOST3410.
+
+
+ initialise the key generator.
+
+ @param size size of the key
+ @param typeProcedure type procedure A,B = 1; A',B' - else
+ @param random random byte source.
+
+
+ Procedure C
+ procedure generates the a value from the given p,q,
+ returning the a value.
+
+
+ which generates the p , q and a values from the given parameters,
+ returning the Gost3410Parameters object.
+
+
+ HMAC-based Extract-and-Expand Key Derivation Function (HKDF) implemented
+ according to IETF RFC 5869, May 2010 as specified by H. Krawczyk, IBM
+ Research & P. Eronen, Nokia. It uses a HMac internally to compute de OKM
+ (output keying material) and is likely to have better security properties
+ than KDF's based on just a hash function.
+
+
+ Creates a HKDFBytesGenerator based on the given hash function.
+
+ @param hash the digest to be used as the source of generatedBytes bytes
+
+
+ Performs the extract part of the key derivation function.
+
+ @param salt the salt to use
+ @param ikm the input keying material
+ @return the PRK as KeyParameter
+
+
+ Performs the expand part of the key derivation function, using currentT
+ as input and output buffer.
+
+ @throws DataLengthException if the total number of bytes generated is larger than the one
+ specified by RFC 5869 (255 * HashLen)
+
+
+ KFD2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF1 byte generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ KDF2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF2 bytes generator. Generates key material
+ according to IEEE P1363 or ISO 18033 depending on the initialisation.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ Generator for MGF1 as defined in Pkcs 1v2
+
+
+ @param digest the digest to be used as the source of Generated bytes
+
+
+ return the underlying digest.
+
+
+ int to octet string.
+
+
+ fill len bytes of the output buffer with bytes Generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Key generation parameters for NaccacheStern cipher. For details on this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Generates a permuted ArrayList from the original one. The original List
+ is not modified
+
+ @param arr
+ the ArrayList to be permuted
+ @param rand
+ the source of Randomness for permutation
+ @return a new IList with the permuted elements.
+
+
+ Finds the first 'count' primes starting with 3
+
+ @param count
+ the number of primes to find
+ @return a vector containing the found primes as Integer
+
+
+ Password hashing scheme BCrypt,
+ designed by Niels Provos and David Mazières, using the
+ String format and the Base64 encoding
+ of the reference implementation on OpenBSD
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Checks if a password corresponds to a 60 character Bcrypt String
+
+ @param bcryptString a 60 character Bcrypt String, including
+ version, cost factor, salt and hash,
+ separated by '$'
+ @param password the password as an array of chars
+ @return true if the password corresponds to the
+ Bcrypt String, otherwise false
+
+
+ Generator for PBE derived keys and ivs as usd by OpenSSL.
+
+ The scheme is a simple extension of PKCS 5 V2.0 Scheme 1 using MD5 with an
+ iteration count of 1.
+
+
+
+ Construct a OpenSSL Parameters generator.
+
+
+ Initialise - note the iteration count for this algorithm is fixed at 1.
+
+ @param password password to use.
+ @param salt salt to use.
+
+
+ the derived key function, the ith hash of the password and the salt.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 12 V1.0.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs12 Page
+
+
+
+ Construct a Pkcs 12 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+ @exception ArgumentException if an unknown digest is passed in.
+
+
+ add a + b + 1, returning the result in a. The a value is treated
+ as a BigInteger of length (b.Length * 8) bits. The result is
+ modulo 2^b.Length in case of overflow.
+
+
+ generation of a derived key ala Pkcs12 V1.0.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 1.
+ Note this generator is limited to the size of the hash produced by the
+ digest used to drive it.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+
+ Construct a Pkcs 5 Scheme 1 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ the derived key function, the ith hash of the mPassword and the mSalt.
+
+
+ Generate a key parameter derived from the mPassword, mSalt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the mPassword, mSalt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the mPassword,
+ mSalt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 2.
+ This generator uses a SHA-1 HMac as the calculation function.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+ construct a Pkcs5 Scheme 2 Parameters generator.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+
+ Generates keys for the Poly1305 MAC.
+
+
+ Poly1305 keys are 256 bit keys consisting of a 128 bit secret key used for the underlying block
+ cipher followed by a 128 bit {@code r} value used for the polynomial portion of the Mac.
+ The {@code r} value has a specific format with some bits required to be cleared, resulting in an
+ effective 106 bit key.
+ A separately generated 256 bit key can be modified to fit the Poly1305 key format by using the
+ {@link #clamp(byte[])} method to clear the required bits.
+
+
+
+
+
+ Initialises the key generator.
+
+
+ Poly1305 keys are always 256 bits, so the key length in the provided parameters is ignored.
+
+
+
+
+ Generates a 256 bit key in the format required for Poly1305 - e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+
+
+
+ Modifies an existing 32 byte key value to comply with the requirements of the Poly1305 key by
+ clearing required bits in the r (second 16 bytes) portion of the key.
+ Specifically:
+
+ - r[3], r[7], r[11], r[15] have top four bits clear (i.e., are {0, 1, . . . , 15})
+ - r[4], r[8], r[12] have bottom two bits clear (i.e., are in {0, 4, 8, . . . , 252})
+
+
+ a 32 byte key value k[0] ... k[15], r[0] ... r[15]
+
+
+
+ Checks a 32 byte key for compliance with the Poly1305 key requirements, e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+ Key.
+ if the key is of the wrong length, or has invalid bits set
+ in the r portion of the key.
+
+
+ Generate a random factor suitable for use with RSA blind signatures
+ as outlined in Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475.
+
+
+ Initialise the factor generator
+
+ @param param the necessary RSA key parameters.
+
+
+ Generate a suitable blind factor for the public key the generator was initialised with.
+
+ @return a random blind factor
+
+
+ an RSA key pair generator.
+
+
+ Choose a random prime value for use with RSA
+ the bit-length of the returned prime
+ the RSA public exponent
+ a prime p, with (p-1) relatively prime to e
+
+
+ Implementation of the scrypt a password-based key derivation function.
+
+ Scrypt was created by Colin Percival and is specified in
+ draft-josefsson-scrypt-kd.
+
+
+
+ Generate a key using the scrypt key derivation function.
+ the bytes of the pass phrase.
+ the salt to use for this invocation.
+ CPU/Memory cost parameter. Must be larger than 1, a power of 2 and less than
+ 2^(128 * r / 8).
+ the block size, must be >= 1.
+ Parallelization parameter. Must be a positive integer less than or equal to
+ Int32.MaxValue / (128 * r * 8).
+ the length of the key to generate.
+ the generated key.
+
+
+ Base interface for a public/private key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The maximum size, in bytes, an input block may be.
+
+
+ The maximum size, in bytes, an output block will be.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The length of the input block.
+ Input decrypts improperly.
+ Input is too large for the cipher.
+
+
+ interface that a public/private key pair generator should conform to.
+
+
+ intialise the key pair generator.
+
+ @param the parameters the key pair is to be initialised with.
+
+
+ return an AsymmetricCipherKeyPair containing the Generated keys.
+
+ @return an AsymmetricCipherKeyPair containing the Generated keys.
+
+
+ The basic interface that basic Diffie-Hellman implementations
+ conforms to.
+
+
+ initialise the agreement engine.
+
+
+ return the field size for the agreement algorithm in bytes.
+
+
+ given a public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Base interface for a symmetric key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Indicates whether this cipher can handle partial blocks.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The output buffer.
+ The offset into outBuf to write the output block.
+ If input block is wrong size, or outBuf too small.
+ The number of bytes processed and produced.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to a single block return an object
+ of this type.
+
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ Block cipher engines are expected to conform to this interface.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+
+
+ Reset the cipher. After resetting the cipher is in the same state
+ as it was after the last init (if there was one).
+
+
+
+ all parameter classes implement this.
+
+
+ base interface for general purpose byte derivation functions.
+
+
+ return the message digest used as the basis for the function
+
+
+ Parameters for key/byte stream derivation classes
+
+
+ interface that a message digest conforms to.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ return the size, in bytes, of the internal buffer used by this digest.
+
+ @return the size, in bytes, of the internal buffer used by this digest.
+
+
+ update the message digest with a single byte.
+
+ @param inByte the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param input the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param output the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ interface for classes implementing the Digital Signature Algorithm
+
+
+ initialise the signer for signature generation or signature
+ verification.
+
+ @param forSigning true if we are generating a signature, false
+ otherwise.
+ @param param key parameters for signature generation.
+
+
+ sign the passed in message (usually the output of a hash function).
+
+ @param message the message to be signed.
+ @return two big integers representing the r and s values respectively.
+
+
+ verify the message message against the signature values r and s.
+
+ @param message the message that was supposed to have been signed.
+ @param r the r signature value.
+ @param s the s signature value.
+
+
+
+ Base interface describing an entropy source for a DRBG.
+
+
+
+
+ Return whether or not this entropy source is regarded as prediction resistant.
+
+ true if this instance is prediction resistant; otherwise, false.
+
+
+
+ Return a byte array of entropy.
+
+ The entropy bytes.
+
+
+
+ Return the number of bits of entropy this source can produce.
+
+ The size, in bits, of the return value of getEntropy.
+
+
+
+ Base interface describing a provider of entropy sources.
+
+
+
+
+ Return an entropy source providing a block of entropy.
+
+ The size of the block of entropy required.
+ An entropy source providing bitsRequired blocks of entropy.
+
+
+ The base interface for implementations of message authentication codes (MACs).
+
+
+ Initialise the MAC.
+
+ @param param the key and other data required by the MAC.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Return the name of the algorithm the MAC implements.
+
+ @return the name of the algorithm the MAC implements.
+
+
+ Return the block size for this MAC (in bytes).
+
+ @return the block size for this MAC in bytes.
+
+
+ add a single byte to the mac for processing.
+
+ @param in the byte to be processed.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ @param in the array containing the input.
+ @param inOff the index in the array the data begins at.
+ @param len the length of the input starting at inOff.
+ @exception InvalidOperationException if the MAC is not initialised.
+ @exception DataLengthException if there isn't enough data in in.
+
+
+ Compute the final stage of the MAC writing the output to the out
+ parameter.
+
+ doFinal leaves the MAC in the same state it was after the last init.
+
+ @param out the array the MAC is to be output to.
+ @param outOff the offset into the out buffer the output is to start at.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ Reset the MAC. At the end of resetting the MAC should be in the
+ in the same state it was after the last init (if there was one).
+
+
+ this exception is thrown whenever we find something we don't expect in a
+ message.
+
+
+ base constructor.
+
+
+ create a InvalidCipherTextException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Base interface for operators that serve as stream-based signature calculators.
+
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ Return the name of the algorithm the signer implements.
+
+ @return the name of the algorithm the signer implements.
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ reset the internal state
+
+
+ Signer with message recovery.
+
+
+ Returns true if the signer has recovered the full message as
+ part of signature verification.
+
+ @return true if full message recovered.
+
+
+ Returns a reference to what message was recovered (if any).
+
+ @return full/partial message, null if nothing.
+
+
+ Perform an update with the recovered message before adding any other data. This must
+ be the first update method called, and calling it will result in the signer assuming
+ that further calls to update will include message content past what is recoverable.
+
+ @param signature the signature that we are in the process of verifying.
+ @throws IllegalStateException
+
+
+
+ Base interface for cryptographic operations such as Hashes, MACs, and Signatures which reduce a stream of data
+ to a single value.
+
+
+
+ Return a "sink" stream which only exists to update the implementing object.
+ A stream to write to in order to update the implementing object.
+
+
+
+ Return the result of processing the stream. This value is only available once the stream
+ has been closed.
+
+ The result of processing the stream.
+
+
+ The interface stream ciphers conform to.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+ If the parameters argument is inappropriate.
+
+
+
+ encrypt/decrypt a single byte returning the result.
+ the byte to be processed.
+ the result of processing the input byte.
+
+
+
+ Process a block of bytes from input putting the result into output.
+
+ The input byte array.
+
+ The offset into input where the data to be processed starts.
+
+ The number of bytes to be processed.
+ The output buffer the processed bytes go into.
+
+ The offset into output the processed data starts at.
+
+ If the output buffer is too small.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to the validation of a signature produce this type.
+
+
+
+
+ Return true if the passed in data matches what is expected by the verification result.
+
+ The bytes representing the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Return true if the length bytes from off in the source array match the signature
+ expected by the verification result.
+
+ Byte array containing the signature.
+ The offset into the source array where the signature starts.
+ The number of bytes in source making up the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Base interface for operators that serve as stream-based signature verifiers.
+
+
+
+ The algorithm details object for this verifier.
+
+
+
+ Create a stream calculator for this verifier. The stream
+ calculator is used for the actual operation of entering the data to be verified
+ and producing a result which can be used to verify the original signature.
+
+ A calculator producing an IVerifier which can verify the signature.
+
+
+
+ Base interface for a provider to support the dynamic creation of signature verifiers.
+
+
+
+
+ Return a signature verfier for signature algorithm described in the passed in algorithm details object.
+
+ The details of the signature algorithm verification is required for.
+ A new signature verifier.
+
+
+ The name of the algorithm this cipher implements.
+
+
+
+ With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.
+ This interface provides the extra method required to support variable output on a digest implementation.
+
+
+
+
+ Output the results of the final calculation for this digest to outLen number of bytes.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+
+ Start outputting the results of the final calculation for this digest. Unlike DoFinal, this method
+ will continue producing output until the Xof is explicitly reset, or signals otherwise.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+ The base class for parameters to key generators.
+
+
+ initialise the generator with a source of randomness
+ and a strength (in bits).
+
+ @param random the random byte source.
+ @param strength the size, in bits, of the keys we want to produce.
+
+
+ return the random source associated with this
+ generator.
+
+ @return the generators random source.
+
+
+ return the bit strength for keys produced by this generator,
+
+ @return the strength of the keys this generator produces (in bits).
+
+
+ standard CBC Block Cipher MAC - if no padding is specified the default of
+ pad of zeroes is used.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding a padding to be used.
+
+
+ Reset the mac generator.
+
+
+ CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
+
+ CMAC is analogous to OMAC1 - see also en.wikipedia.org/wiki/CMAC
+
+ CMAC is a NIST recomendation - see
+ csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38B.pdf
+
+ CMAC/OMAC1 is a blockcipher-based message authentication code designed and
+ analyzed by Tetsu Iwata and Kaoru Kurosawa.
+
+ CMAC/OMAC1 is a simple variant of the CBC MAC (Cipher Block Chaining Message
+ Authentication Code). OMAC stands for One-Key CBC MAC.
+
+ It supports 128- or 64-bits block ciphers, with any key size, and returns
+ a MAC with dimension less or equal to the block size of the underlying
+ cipher.
+
+
+
+ create a standard MAC based on a CBC block cipher (64 or 128 bit block).
+ This will produce an authentication code the length of the block size
+ of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8 and @lt;= 128.
+
+
+ Reset the mac generator.
+
+
+
+ Implementation of DSTU7564 mac mode
+
+
+
+ implementation of DSTU 7624 MAC
+
+
+
+ The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication
+ 800-38D.
+
+
+ GMac is an invocation of the GCM mode where no data is encrypted (i.e. all input data to the Mac
+ is processed as additional authenticated data with the underlying GCM block cipher).
+
+
+
+
+ Creates a GMAC based on the operation of a block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+
+
+
+ Creates a GMAC based on the operation of a 128 bit block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+ the mac size to generate, in bits. Must be a multiple of 8, between 32 and 128 (inclusive).
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ Initialises the GMAC - requires a
+ providing a and a nonce.
+
+
+
+ implementation of GOST 28147-89 MAC
+
+
+ HMAC implementation based on RFC2104
+
+ H(K XOR opad, H(K XOR ipad, text))
+
+
+ Reset the mac generator.
+
+
+ DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC)
+
+ This could as well be derived from CBCBlockCipherMac, but then the property mac in the base
+ class must be changed to protected
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation. This must
+ be DESEngine.
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a Retail-MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation. The final block is decrypted and then encrypted using the
+ middle and right part of the key.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+
+ Poly1305 message authentication code, designed by D. J. Bernstein.
+
+
+ Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key
+ consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106
+ effective key bits) used in the authenticator.
+
+ The polynomial calculation in this implementation is adapted from the public domain poly1305-donna-unrolled C implementation
+ by Andrew M (@floodyberry).
+
+
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Current block of buffered input
+
+
+ Current offset in input buffer
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Constructs a Poly1305 MAC, where the key passed to init() will be used directly.
+
+
+ Constructs a Poly1305 MAC, using a 128 bit block cipher.
+
+
+
+ Initialises the Poly1305 MAC.
+
+ a {@link ParametersWithIV} containing a 128 bit nonce and a {@link KeyParameter} with
+ a 256 bit key complying to the {@link Poly1305KeyGenerator Poly1305 key format}.
+
+
+
+ Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe
+ Aumasson and Daniel J. Bernstein (https://131002.net/siphash/siphash.pdf).
+
+
+ "SipHash is a family of PRFs SipHash-c-d where the integer parameters c and d are the number of
+ compression rounds and the number of finalization rounds. A compression round is identical to a
+ finalization round and this round function is called SipRound. Given a 128-bit key k and a
+ (possibly empty) byte string m, SipHash-c-d returns a 64-bit value..."
+
+
+
+ SipHash-2-4
+
+
+ SipHash-c-d
+ the number of compression rounds
+ the number of finalization rounds
+
+
+
+ Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein MAC with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/MAC size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ This exception is thrown whenever a cipher requires a change of key, iv
+ or similar after x amount of bytes enciphered
+
+
+
+ implements Cipher-Block-Chaining (CBC) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of chaining.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CBC".
+
+
+ return the block size of the underlying cipher.
+
+ @return the block size of the underlying cipher.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Do the appropriate chaining step for CBC mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate chaining step for CBC mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the decrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Counter with Cipher Block Chaining mode (CCM) detailed in
+ NIST Special Publication 800-38C.
+
+ Note: this mode is a packet mode - it needs all the data up front.
+
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Returns a byte array containing the mac calculated as part of the
+ last encrypt or decrypt operation.
+
+ @return the last mac calculated.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @return a byte array containing the processed input..
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @param output output array.
+ @param outOff offset into output array to start putting processed bytes.
+ @return the number of bytes added to output.
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+ @throws DataLengthException if output buffer too short.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ A Cipher Text Stealing (CTS) mode cipher. CTS allows block ciphers to
+ be used to produce cipher text which is the same outLength as the plain text.
+
+
+ Create a buffered block cipher that uses Cipher Text Stealing
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ return the size of the output buffer required for an update of 'length' bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update
+ with length bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of length bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with length bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param length the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if cipher text decrypts wrongly (in
+ case the exception will never Get thrown).
+
+
+ A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and
+ Efficiency - by M. Bellare, P. Rogaway, D. Wagner.
+
+ http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf
+
+ EAX is an AEAD scheme based on CTR and OMAC1/CMAC, that uses a single block
+ cipher to encrypt and authenticate data. It's on-line (the length of a
+ message isn't needed to begin processing it), has good performances, it's
+ simple and provably secure (provided the underlying block cipher is secure).
+
+ Of course, this implementations is NOT thread-safe.
+
+
+ Constructor that accepts an instance of a block cipher engine.
+
+ @param cipher the engine to use
+
+
+
+ Implements the Galois/Counter mode (GCM) detailed in
+ NIST Special Publication 800-38D.
+
+
+
+
+ MAC sizes from 32 bits to 128 bits (must be a multiple of 8) are supported. The default is 128 bits.
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ implements the GOST 28147 OFB counter mode (GCTR).
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ counter mode (must have a 64 bit block size).
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param encrypting if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/GCTR"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+
+ A block cipher mode that includes authenticated encryption with a streaming mode
+ and optional associated data.
+
+
+
+ The name of the algorithm this cipher implements.
+
+
+ The block cipher underlying this algorithm.
+
+
+ Initialise the cipher.
+ Parameter can either be an AeadParameters or a ParametersWithIV object.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Add a single byte to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The byte to be processed.
+
+
+ Add a sequence of bytes to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The input byte array.
+ The offset into the input array where the data to be processed starts.
+ The number of bytes to be processed.
+
+
+ Encrypt/decrypt a single byte.
+
+ @param input the byte to be processed.
+ @param outBytes the output buffer the processed byte goes into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Process a block of bytes from in putting the result into out.
+
+ @param inBytes the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param outBytes the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Finish the operation either appending or verifying the MAC at the end of the data.
+
+ @param outBytes space for any resulting output data.
+ @param outOff offset into out to start copying the data at.
+ @return number of bytes written into out.
+ @throws InvalidOperationException if the cipher is in an inappropriate state.
+ @throws InvalidCipherTextException if the MAC fails to match.
+
+
+ Return the value of the MAC associated with the last stream processed.
+
+ @return MAC for plaintext data.
+
+
+ Return the size of the output buffer required for a ProcessBytes
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes
+ with len bytes of input.
+
+
+ Return the size of the output buffer required for a ProcessBytes plus a
+ DoFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes and DoFinal
+ with len bytes of input.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Base constructor. Nb value is set to 4.
+
+ base cipher to use under CCM.
+
+
+
+ Constructor allowing Nb configuration.
+
+ Nb is a parameter specified in CCM mode of DSTU7624 standard.
+ This parameter specifies maximum possible length of input.It should
+ be calculated as follows: Nb = 1 / 8 * (-3 + log[2]Nmax) + 1,
+ where Nmax - length of input message in bits.For practical reasons
+ Nmax usually less than 4Gb, e.g. for Nmax = 2^32 - 1, Nb = 4.
+
+ base cipher to use under CCM.
+ Nb value to use.
+
+
+ Implements a Gamming or Counter (CTR) mode on top of a DSTU 7624 block cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/KCTR"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ An implementation of RFC 7253 on The OCB
+ Authenticated-Encryption Algorithm, licensed per:
+
+ License for
+ Open-Source Software Implementations of OCB (Jan 9, 2013) - 'License 1'
+ Under this license, you are authorized to make, use, and distribute open-source software
+ implementations of OCB. This license terminates for you if you sue someone over their open-source
+ software implementation of OCB claiming that you have a patent covering their implementation.
+
+ This is a non-binding summary of a legal document (the link above). The parameters of the license
+ are specified in the license document and that document is controlling.
+
+
+ implements a Output-FeedBack (OFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/OFB"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ * Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode
+ * on top of a simple cipher. This class assumes the IV has been prepended
+ * to the data stream already, and just accomodates the reset after
+ * (blockSize + 2) bytes have been read.
+ *
+ * For further info see RFC 2440.
+ *
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/PGPCFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt one byte of data according to CFB mode.
+ @param data the byte to encrypt
+ @param blockOff offset in the current block
+ @returns the encrypted byte
+
+
+ Do the appropriate processing for CFB IV mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB IV mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Segmented Integer Counter (SIC) mode on top of a simple
+ block cipher.
+
+
+ Basic constructor.
+
+ @param c the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Calculator factory class for signature generation in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+
+
+
+ Constructor which also specifies a source of randomness to be used if one is required.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+ The source of randomness to be used in signature calculation.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+
+ Verifier class for signature verification in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The public key to be used in the verification operation.
+
+
+
+ Provider class which supports dynamic creation of signature verifiers.
+
+
+
+
+ Base constructor - specify the public key to be used in verification.
+
+ The public key to be used in creating verifiers provided by this object.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+ Block cipher padders are expected to conform to this interface
+
+
+ Initialise the padder.
+
+ @param param parameters, if any required.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+ @exception InvalidCipherTextException if the padding is badly formed
+ or invalid.
+
+
+ A padder that adds ISO10126-2 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds the padding according to the scheme referenced in
+ ISO 7814-4 - scheme 2 from ISO 9797-1. The first byte is 0x80, rest is 0x00
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the padder implements.
+
+ @return the name of the algorithm the padder implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion with padding. The PaddedBufferedBlockCipher
+ outputs a block only when the buffer is full and more data is being added,
+ or on a doFinal (unless the current block in the buffer is a pad block).
+ The default padding mechanism used is the one outlined in Pkcs5/Pkcs7.
+
+
+ Create a buffered block cipher with the desired padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ @param padding the padding type.
+
+
+ Create a buffered block cipher Pkcs7 padding
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the minimum size of the output buffer required for an update
+ plus a doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer. If the buffer is currently
+ full and padding needs to be added a call to doFinal will produce
+ 2 * GetBlockSize() bytes.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output or we are decrypting and the input is not block size aligned.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+
+
+ A padder that adds Pkcs7/Pkcs5 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Trailing-Bit-Compliment padding to a block.
+
+ This padding pads the block out compliment of the last bit
+ of the plain text.
+
+
+
+
+ Return the name of the algorithm the cipher implements.
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+ Note: this assumes that the last block of plain text is always
+ passed to it inside in. i.e. if inOff is zero, indicating the
+ entire block is to be overwritten with padding the value of in
+ should be the same as the last block of plain text.
+
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds X9.23 padding to a block - if a SecureRandom is
+ passed in random padding is assumed, otherwise padding with zeros is used.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if one is available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Null byte padding to a block.
+
+
+ Return the name of the algorithm the cipher implements.
+
+
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+
+
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+ @param length number of bytes making up the key
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2/3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ DES has 16 weak keys. This method will check
+ if the given DES key material is weak or semi-weak.
+ Key material that is too short is regarded as weak.
+
+ See "Applied
+ Cryptography" by Bruce Schneier for more information.
+
+ @return true if the given DES key material is weak or semi-weak,
+ false otherwise.
+
+
+ DES Keys use the LSB as the odd parity bit. This can
+ be used to check for corrupt keys.
+
+ @param bytes the byte array to set the parity on.
+
+
+ The minimum bitlength of the private value.
+
+
+ The bitlength of the private value.
+
+
+ Construct without a usage index, this will do a random construction of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+
+
+ Construct for a specific usage index - this has the effect of using verifiable canonical generation of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+ @param usageIndex a valid usage index.
+
+
+ return the generator - g
+
+
+ return private value limit - l
+
+
+ Parameter class for the HkdfBytesGenerator class.
+
+
+ Generates parameters for HKDF, specifying both the optional salt and
+ optional info. Step 1: Extract won't be skipped.
+
+ @param ikm the input keying material or seed
+ @param salt the salt to use, may be null for a salt for hashLen zeros
+ @param info the info to use, may be null for an info field of zero bytes
+
+
+ Factory method that makes the HKDF skip the extract part of the key
+ derivation function.
+
+ @param ikm the input keying material or seed, directly used for step 2:
+ Expand
+ @param info the info to use, may be null for an info field of zero bytes
+ @return HKDFParameters that makes the implementation skip step 1
+
+
+ Returns the input keying material or seed.
+
+ @return the keying material
+
+
+ Returns if step 1: extract has to be skipped or not
+
+ @return true for skipping, false for no skipping of step 1
+
+
+ Returns the salt, or null if the salt should be generated as a byte array
+ of HashLen zeros.
+
+ @return the salt, or null
+
+
+ Returns the info field, which may be empty (null is converted to empty).
+
+ @return the info field, never null
+
+
+ parameters for using an integrated cipher in stream mode.
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+ @param cipherKeySize the size of the associated Cipher key (in bits).
+
+
+ parameters for Key derivation functions for ISO-18033
+
+
+ parameters for Key derivation functions for IEEE P1363a
+
+
+ Parameters for mask derivation functions.
+
+
+ Parameters for NaccacheStern public private key generation. For details on
+ this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Parameters for generating a NaccacheStern KeyPair.
+
+ @param random
+ The source of randomness
+ @param strength
+ The desired strength of the Key in Bits
+ @param certainty
+ the probability that the generated primes are not really prime
+ as integer: 2^(-certainty) is then the probability
+ @param countSmallPrimes
+ How many small key factors are desired
+
+
+ * Parameters for a NaccacheStern KeyPair.
+ *
+ * @param random
+ * The source of randomness
+ * @param strength
+ * The desired strength of the Key in Bits
+ * @param certainty
+ * the probability that the generated primes are not really prime
+ * as integer: 2^(-certainty) is then the probability
+ * @param cntSmallPrimes
+ * How many small key factors are desired
+ * @param debug
+ * Ignored
+
+
+ @return Returns the certainty.
+
+
+ @return Returns the countSmallPrimes.
+
+
+ Public key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ @param privateKey
+
+
+ @return Returns the g.
+
+
+ @return Returns the lowerSigmaBound.
+
+
+ @return Returns the n.
+
+
+ Private key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Constructs a NaccacheSternPrivateKey
+
+ @param g
+ the public enryption parameter g
+ @param n
+ the public modulus n = p*q
+ @param lowerSigmaBound
+ the public lower sigma bound up to which data can be encrypted
+ @param smallPrimes
+ the small primes, of which sigma is constructed in the right
+ order
+ @param phi_n
+ the private modulus phi(n) = (p-1)(q-1)
+
+
+ Cipher parameters with a fixed salt value associated with them.
+
+
+
+ Parameters for the Skein hash function - a series of byte[] strings identified by integer tags.
+
+
+ Parameterised Skein can be used for:
+
+ - MAC generation, by providing a key.
+ - Randomised hashing, by providing a nonce.
+ - A hash function for digital signatures, associating a
+ public key with the message digest.
+ - A key derivation function, by providing a
+ key identifier.
+ - Personalised hashing, by providing a
+ recommended format or
+ arbitrary personalisation string.
+
+
+
+
+
+
+
+
+ The parameter type for a secret key, supporting MAC or KDF functions: 0
+
+
+
+
+ The parameter type for the Skein configuration block: 4
+
+
+
+
+ The parameter type for a personalisation string: 8
+
+
+
+
+ The parameter type for a public key: 12
+
+
+
+
+ The parameter type for a key identifier string: 16
+
+
+
+
+ The parameter type for a nonce: 20
+
+
+
+
+ The parameter type for the message: 48
+
+
+
+
+ The parameter type for the output transformation: 63
+
+
+
+
+ Obtains a map of type (int) to value (byte[]) for the parameters tracked in this object.
+
+
+
+
+ Obtains the value of the key parameter, or null if not
+ set.
+
+ The key.
+
+
+
+ Obtains the value of the personalisation parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the public key parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the key identifier parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the nonce parameter, or null if
+ not set.
+
+
+
+
+ A builder for .
+
+
+
+
+ Sets a parameters to apply to the Skein hash function.
+
+
+ Parameter types must be in the range 0,5..62, and cannot use the value 48
+ (reserved for message body).
+
+ Parameters with type < 48 are processed before
+ the message content, parameters with type > 48
+ are processed after the message and prior to output.
+
+ the type of the parameter, in the range 5..62.
+ the byte sequence of the parameter.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Implements the recommended personalisation format for Skein defined in Section 4.11 of
+ the Skein 1.3 specification.
+
+
+ The format is YYYYMMDD email@address distinguisher, encoded to a byte
+ sequence using UTF-8 encoding.
+
+ the date the personalised application of the Skein was defined.
+ the email address of the creation of the personalised application.
+ an arbitrary personalisation string distinguishing the application.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Constructs a new instance with the parameters provided to this
+ builder.
+
+
+
+ Private parameters for an SM2 key exchange.
+ The ephemeralPrivateKey is used to calculate the random point used in the algorithm.
+
+
+ Public parameters for an SM2 key exchange.
+ In this case the ephemeralPublicKey provides the random point used in the algorithm.
+
+
+
+ Parameters for tweakable block ciphers.
+
+
+
+
+ Gets the key.
+
+ the key to use, or null to use the current key.
+
+
+
+ Gets the tweak value.
+
+ The tweak to use, or null to use the current tweak.
+
+
+ super class for all Password Based Encyrption (Pbe) parameter generator classes.
+
+
+ base constructor.
+
+
+ initialise the Pbe generator.
+
+ @param password the password converted into bytes (see below).
+ @param salt the salt to be mixed with the password.
+ @param iterationCount the number of iterations the "mixing" function
+ is to be applied for.
+
+
+ return the password byte array.
+
+ @return the password byte array.
+
+
+ return the salt byte array.
+
+ @return the salt byte array.
+
+
+ return the iteration count.
+
+ @return the iteration count.
+
+
+ Generate derived parameters for a key of length keySize.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ Generate derived parameters for a key of length keySize, and
+ an initialisation vector (IV) of length ivSize.
+
+ @param keySize the length, in bits, of the key required.
+ @param ivSize the length, in bits, of the iv required.
+ @return a parameters object representing a key and an IV.
+
+
+ Generate derived parameters for a key of length keySize, specifically
+ for use with a MAC.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs5 (ascii, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ PKCS5 (UTF-8, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs12 (unicode, big endian, 2 zero pad bytes at the end).
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ An EntropySourceProvider where entropy generation is based on a SecureRandom output using SecureRandom.generateSeed().
+
+
+ Create a entropy source provider based on the passed in SecureRandom.
+
+ @param secureRandom the SecureRandom to base EntropySource construction on.
+ @param isPredictionResistant boolean indicating if the SecureRandom is based on prediction resistant entropy or not (true if it is).
+
+
+ Return an entropy source that will create bitsRequired bits of entropy on
+ each invocation of getEntropy().
+
+ @param bitsRequired size (in bits) of entropy to be created by the provided source.
+ @return an EntropySource that generates bitsRequired bits of entropy on each call to its getEntropy() method.
+
+
+
+ Uses RandomNumberGenerator.Create() to get randomness generator
+
+
+
+ Random generation based on the digest with counter. Calling AddSeedMaterial will
+ always increase the entropy of the hash.
+
+ Internal access to the digest is synchronized so a single one of these can be shared.
+
+
+
+ A SP800-90A CTR DRBG.
+
+
+ Construct a SP800-90A CTR DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param engine underlying block cipher to use to support DRBG
+ @param keySizeInBits size of the key to use with the block cipher.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Pad out a key for TDEA, setting odd parity for each byte.
+
+ @param keyMaster
+ @param keyOff
+ @param tmp
+ @param tmpOff
+
+
+ Used by both Dual EC and Hash.
+
+
+ A SP800-90A Hash DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param digest source digest to use for DRB stream.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ A SP800-90A HMAC DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param hMac Hash MAC to base the DRBG on.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Interface to SP800-90A deterministic random bit generators.
+
+
+ Return the block size of the DRBG.
+
+ @return the block size (in bits) produced by each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Generate numBytes worth of entropy from the passed in entropy source.
+
+ @param entropySource the entropy source to request the data from.
+ @param numBytes the number of bytes of entropy requested.
+ @return a byte array populated with the random data.
+
+
+ Generic interface for objects generating random bytes.
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+
+ Takes bytes generated by an underling RandomGenerator and reverses the order in
+ each small window (of configurable size).
+
+ Access to internals is synchronized so a single one of these can be shared.
+
+
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+ Force a reseed of the DRBG.
+ optional additional input
+
+
+ Builder class for making SecureRandom objects based on SP 800-90A Deterministic Random Bit Generators (DRBG).
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Set the personalization string for DRBG SecureRandoms created by this builder
+ @param personalizationString the personalisation string for the underlying DRBG.
+ @return the current builder.
+
+
+ Set the security strength required for DRBGs used in building SecureRandom objects.
+
+ @param securityStrength the security strength (in bits)
+ @return the current builder.
+
+
+ Set the amount of entropy bits required for seeding and reseeding DRBGs used in building SecureRandom objects.
+
+ @param entropyBitsRequired the number of bits of entropy to be requested from the entropy source on each seed/reseed.
+ @return the current builder.
+
+
+ Build a SecureRandom based on a SP 800-90A Hash DRBG.
+
+ @param digest digest algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a Hash DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A CTR DRBG.
+
+ @param cipher the block cipher to base the DRBG on.
+ @param keySizeInBits key size in bits to be used with the block cipher.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a CTR DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A HMAC DRBG.
+
+ @param hMac HMAC algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a HMAC DRBG.
+
+
+ A thread based seed generator - one source of randomness.
+
+ Based on an idea from Marcus Lippert.
+
+
+
+ Generate seed bytes. Set fast to false for best quality.
+
+ If fast is set to true, the code should be round about 8 times faster when
+ generating a long sequence of random bytes. 20 bytes of random values using
+ the fast mode take less than half a second on a Nokia e70. If fast is set to false,
+ it takes round about 2500 ms.
+
+ @param numBytes the number of bytes to generate
+ @param fast true if fast mode should be used
+
+
+
+ Permutation generated by code:
+
+ // First 1850 fractional digit of Pi number.
+ byte[] key = new BigInteger("14159265358979323846...5068006422512520511").ToByteArray();
+ s = 0;
+ P = new byte[256];
+ for (int i = 0; i < 256; i++)
+ {
+ P[i] = (byte) i;
+ }
+ for (int m = 0; m < 768; m++)
+ {
+ s = P[(s + P[m & 0xff] + key[m % key.length]) & 0xff];
+ byte temp = P[m & 0xff];
+ P[m & 0xff] = P[s & 0xff];
+ P[s & 0xff] = temp;
+ }
+
+
+
+ Value generated in the same way as P.
+
+
+
+ @param engine
+ @param entropySource
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the RNG.
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Construct a X9.31 secure random generator using the passed in engine and key. If predictionResistant is true the
+ generator will be reseeded on each request.
+
+ @param engine a block cipher to use as the operator.
+ @param key the block cipher key to initialise engine with.
+ @param predictionResistant true if engine to be reseeded on each use, false otherwise.
+ @return a SecureRandom.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ The Digital Signature Algorithm - as described in "Handbook of Applied
+ Cryptography", pages 452 - 453.
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message for standard DSA the message should be a
+ SHA-1 hash of the real message to be verified.
+
+
+ EC-DSA as described in X9.62
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message (for standard DSA the message should be
+ a SHA-1 hash of the real message to be verified).
+
+
+ GOST R 34.10-2001 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional GOST3410 the message should be a GOST3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a GOST3410 signature for
+ the passed in message (for standard GOST3410 the message should be
+ a GOST3411 hash of the real message to be verified).
+
+
+ EC-NR as described in IEEE 1363-2000
+
+
+ generate a signature for the given message using the key we were
+ initialised with. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR it *must* be at least as long.
+
+ @param digest the digest to be signed.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ return true if the value r and s represent a signature for the
+ message passed in. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR, it *must* be at least as long. But just in case the signer
+ applied mod(n) to the longer digest, this implementation will
+ apply mod(n) during verification.
+
+ @param digest the digest to be verified.
+ @param r the r value of the signature.
+ @param s the s value of the signature.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ initialise the signer for signing or verification.
+
+ @param forSigning
+ true if for signing, false otherwise
+ @param parameters
+ necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using the key
+ we were initialised with.
+
+
+ return true if the internal state represents the signature described in
+ the passed in array.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ Gost R 34.10-94 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional Gost3410 the message should be a Gost3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a Gost3410 signature for
+ the passed in message for standard Gost3410 the message should be a
+ Gost3411 hash of the real message to be verified.
+
+
+ A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979.
+
+
+ Base constructor.
+
+ @param digest digest to build the HMAC on.
+
+
+ Interface define calculators of K values for DSA/ECDSA.
+
+
+ Return true if this calculator is deterministic, false otherwise.
+
+ @return true if deterministic, otherwise false.
+
+
+ Non-deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param random a source of randomness.
+
+
+ Deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param d the DSA private value.
+ @param message the message being signed.
+
+
+ Return the next valid value of K.
+
+ @return a K value.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
+
+ Note: the usual length for the salt is the length of the hash
+ function used in bytes.
+
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ length of salt in bytes.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+ length of salt in bytes.
+
+
+
+ Initialise the signer.
+ true if for signing, false if for verification.
+ parameters for signature generation/verification. If the
+ parameters are for generation they should be a ParametersWithRandom,
+ a ParametersWithSalt, or just an RsaKeyParameters object. If RsaKeyParameters
+ are passed in a SecureRandom will be created.
+
+ if wrong parameter type or a fixed
+ salt is passed in which is the wrong length.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise, or if not sure.
+
+
+
+ int to octet string.
+ int to octet string.
+
+
+ long to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 1)
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise.
+
+
+
+ RSA-PSS as described in Pkcs# 1 v 2.1.
+
+ Note: the usual value for the salt length is the number of
+ bytes in the hash function.
+
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the length of the salt to use (in bytes).
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the fixed salt to be used.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+
+ int to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+
+ Load oid table.
+
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ The SM2 Digital Signature algorithm.
+
+
+ X9.31-1998 - signing using a hash.
+
+ The message digest hash, H, is encapsulated to form a byte string as follows
+
+
+ EB = 06 || PS || 0xBA || H || TRAILER
+
+ where PS is a string of bytes all of value 0xBB of length such that |EB|=|n|, and TRAILER is the ISO/IEC 10118 part number†for the digest. The byte string, EB, is converted to an integer value, the message representative, f.
+
+
+ Generate a signer with either implicit or explicit trailers for X9.31.
+
+ @param cipher base cipher to use for signature creation/verification
+ @param digest digest to use.
+ @param implicit whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+ @param cipher cipher to use.
+ @param digest digest to sign with.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+ a wrapper for block ciphers with a single byte block size, so that they
+ can be treated like stream ciphers.
+
+
+ basic constructor.
+
+ @param cipher the block cipher to be wrapped.
+ @exception ArgumentException if the cipher has a block size other than
+ one.
+
+
+ initialise the underlying cipher.
+
+ @param forEncryption true if we are setting up for encryption, false otherwise.
+ @param param the necessary parameters for the underlying cipher to be initialised.
+
+
+ return the name of the algorithm we are wrapping.
+
+ @return the name of the algorithm we are wrapping.
+
+
+ encrypt/decrypt a single byte returning the result.
+
+ @param in the byte to be processed.
+ @return the result of processing the input byte.
+
+
+ process a block of bytes from in putting the result into out.
+
+ @param in the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param out the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data stars at.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ reset the underlying cipher. This leaves it in the same state
+ it was at after the last init (if there was one).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.2
+
+
+
+ This message notifies the recipient that the sender will not send any more messages on this
+ connection. Note that as of TLS 1.1, failure to properly close a connection no longer
+ requires that a session not be resumed. This is a change from TLS 1.0 ("The session becomes
+ unresumable if any connection is terminated without proper close_notify messages with level
+ equal to warning.") to conform with widespread implementation practice.
+
+
+ An inappropriate message was received. This alert is always fatal and should never be
+ observed in communication between proper implementations.
+
+
+ This alert is returned if a record is received with an incorrect MAC. This alert also MUST be
+ returned if an alert is sent because a TLSCiphertext decrypted in an invalid way: either it
+ wasn't an even multiple of the block length, or its padding values, when checked, weren't
+ correct. This message is always fatal and should never be observed in communication between
+ proper implementations (except when messages were corrupted in the network).
+
+
+ This alert was used in some earlier versions of TLS, and may have permitted certain attacks
+ against the CBC mode [CBCATT]. It MUST NOT be sent by compliant implementations.
+
+
+ A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record
+ decrypted to a TLSCompressed record with more than 2^14+1024 bytes. This message is always
+ fatal and should never be observed in communication between proper implementations (except
+ when messages were corrupted in the network).
+
+
+ The decompression function received improper input (e.g., data that would expand to excessive
+ length). This message is always fatal and should never be observed in communication between
+ proper implementations.
+
+
+ Reception of a handshake_failure alert message indicates that the sender was unable to
+ negotiate an acceptable set of security parameters given the options available. This is a
+ fatal error.
+
+
+ This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ A certificate was corrupt, contained signatures that did not verify correctly, etc.
+
+
+ A certificate was of an unsupported type.
+
+
+ A certificate was revoked by its signer.
+
+
+ A certificate has expired or is not currently valid.
+
+
+ Some other (unspecified) issue arose in processing the certificate, rendering it
+ unacceptable.
+
+
+ A field in the handshake was out of range or inconsistent with other fields. This message is
+ always fatal.
+
+
+ A valid certificate chain or partial chain was received, but the certificate was not accepted
+ because the CA certificate could not be located or couldn't be matched with a known, trusted
+ CA. This message is always fatal.
+
+
+ A valid certificate was received, but when access control was applied, the sender decided not
+ to proceed with negotiation. This message is always fatal.
+
+
+ A message could not be decoded because some field was out of the specified range or the
+ length of the message was incorrect. This message is always fatal and should never be
+ observed in communication between proper implementations (except when messages were corrupted
+ in the network).
+
+
+ A handshake cryptographic operation failed, including being unable to correctly verify a
+ signature or validate a Finished message. This message is always fatal.
+
+
+ This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ The protocol version the client has attempted to negotiate is recognized but not supported.
+ (For example, old protocol versions might be avoided for security reasons.) This message is
+ always fatal.
+
+
+ Returned instead of handshake_failure when a negotiation has failed specifically because the
+ server requires ciphers more secure than those supported by the client. This message is
+ always fatal.
+
+
+ An internal error unrelated to the peer or the correctness of the protocol (such as a memory
+ allocation failure) makes it impossible to continue. This message is always fatal.
+
+
+ This handshake is being canceled for some reason unrelated to a protocol failure. If the user
+ cancels an operation after the handshake is complete, just closing the connection by sending
+ a close_notify is more appropriate. This alert should be followed by a close_notify. This
+ message is generally a warning.
+
+
+ Sent by the client in response to a hello request or by the server in response to a client
+ hello after initial handshaking. Either of these would normally lead to renegotiation; when
+ that is not appropriate, the recipient should respond with this alert. At that point, the
+ original requester can decide whether to proceed with the connection. One case where this
+ would be appropriate is where a server has spawned a process to satisfy a request; the
+ process might receive security parameters (key length, authentication, etc.) at startup, and
+ it might be difficult to communicate changes to these parameters after that point. This
+ message is always a warning.
+
+
+ Sent by clients that receive an extended server hello containing an extension that they did
+ not put in the corresponding client hello. This message is always fatal.
+
+
+ This alert is sent by servers who are unable to retrieve a certificate chain from the URL
+ supplied by the client (see Section 3.3). This message MAY be fatal - for example if client
+ authentication is required by the server for the handshake to continue and the server is
+ unable to retrieve the certificate chain, it may send a fatal alert.
+
+
+ This alert is sent by servers that receive a server_name extension request, but do not
+ recognize the server name. This message MAY be fatal.
+
+
+ This alert is sent by clients that receive an invalid certificate status response (see
+ Section 3.6). This message is always fatal.
+
+
+ This alert is sent by servers when a certificate hash does not match a client provided
+ certificate_hash. This message is always fatal.
+
+
+ If the server does not recognize the PSK identity, it MAY respond with an
+ "unknown_psk_identity" alert message.
+
+
+ If TLS_FALLBACK_SCSV appears in ClientHello.cipher_suites and the highest protocol version
+ supported by the server is higher than the version indicated in ClientHello.client_version,
+ the server MUST respond with a fatal inappropriate_fallback alert [..].
+
+
+
+ RFC 5246 7.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ A queue for bytes.
+
+ This file could be more optimized.
+
+
+
+
+ The smallest number which can be written as 2^x which is bigger than i.
+
+
+ The initial size for our buffer.
+
+
+ The buffer where we store our data.
+
+
+ How many bytes at the beginning of the buffer are skipped.
+
+
+ How many bytes in the buffer are valid data.
+
+
+ Add some data to our buffer.
+ A byte-array to read data from.
+ How many bytes to skip at the beginning of the array.
+ How many bytes to read from the array.
+
+
+ The number of bytes which are available in this buffer.
+
+
+ Copy some bytes from the beginning of the data to the provided Stream.
+ The Stream to copy the bytes to.
+ How many bytes to copy.
+ If insufficient data is available.
+ If there is a problem copying the data.
+
+
+ Read data from the buffer.
+ The buffer where the read data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ Return a MemoryStream over some bytes at the beginning of the data.
+ How many bytes will be readable.
+ A MemoryStream over the data.
+ If insufficient data is available.
+
+
+ Remove some bytes from our data from the beginning.
+ How many bytes to remove.
+
+
+ Parsing and encoding of a Certificate struct from RFC 4346.
+
+
+ opaque ASN.1Cert<2^24-1>;
+
+ struct {
+ ASN.1Cert certificate_list<0..2^24-1>;
+ } Certificate;
+
+
+ @see Org.BouncyCastle.Asn1.X509.X509CertificateStructure
+
+
+ The certificates.
+
+
+ @return an array of {@link org.bouncycastle.asn1.x509.Certificate} representing a certificate
+ chain.
+
+
+ @return true if this certificate chain contains no certificates, or
+ false otherwise.
+
+
+ Encode this {@link Certificate} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link Certificate} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link Certificate} object.
+ @throws IOException
+
+
+ Parsing and encoding of a CertificateRequest struct from RFC 4346.
+
+
+ struct {
+ ClientCertificateType certificate_types<1..2^8-1>;
+ DistinguishedName certificate_authorities<3..2^16-1>
+ } CertificateRequest;
+
+
+ @see ClientCertificateType
+ @see X509Name
+
+
+ @param certificateTypes see {@link ClientCertificateType} for valid constants.
+ @param certificateAuthorities an {@link IList} of {@link X509Name}.
+
+
+ @return an array of certificate types
+ @see {@link ClientCertificateType}
+
+
+ @return an {@link IList} of {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ @return an {@link IList} of {@link X509Name}
+
+
+ Encode this {@link CertificateRequest} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateRequest} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateRequest} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatus} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatus} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatus} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatusRequest} object.
+ @throws IOException
+
+
+ RFC 6091
+
+
+ @param type
+ see {@link CertChainType} for valid constants.
+ @param urlAndHashList
+ a {@link IList} of {@link UrlAndHash}.
+
+
+ @return {@link CertChainType}
+
+
+ @return an {@link IList} of {@link UrlAndHash}
+
+
+ Encode this {@link CertificateUrl} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateUrl} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateUrl} object.
+ @throws IOException
+
+
+ draft-ietf-tls-chacha20-poly1305-04
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 2246 A.5
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ A combined hash, which implements md5(m) || sha1(m).
+
+
+ @see org.bouncycastle.crypto.Digest#update(byte[], int, int)
+
+
+ @see org.bouncycastle.crypto.Digest#doFinal(byte[], int)
+
+
+ @see org.bouncycastle.crypto.Digest#reset()
+
+
+
+ RFC 2246 6.1
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246 6.2.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Accept only the group parameters specified in RFC 5054 Appendix A.
+
+
+ Specify a custom set of acceptable group parameters.
+
+ @param groups a {@link Vector} of acceptable {@link SRP6GroupParameters}
+
+
+ Buffers input until the hash algorithm is determined.
+
+
+ @return a {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ Encode this {@link DigitallySigned} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link DigitallySigned} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link DigitallySigned} object.
+ @throws IOException
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check that there are no "extra" messages left in the current inbound flight
+
+
+ RFC 4347 4.1.2.5 Anti-replay
+
+ Support fast rejection of duplicate records by maintaining a sliding receive window
+
+
+ Check whether a received record with the given sequence number should be rejected as a duplicate.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of a received record.
+ @return true if the record should be discarded without further processing.
+
+
+ Report that a received record with the given sequence number passed authentication checks.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of an authenticated record.
+
+
+ When a new epoch begins, sequence numbers begin again at 0
+
+
+ RFC 4492 5.4. (Errata ID: 2389)
+
+
+
+ RFC 4492 5.4
+
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a prime field.
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a characteristic-2 field.
+
+
+ Indicates that a named curve is used. This option SHOULD be used when applicable.
+
+
+
+ RFC 4492 5.1.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 5705
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ Encode this {@link HeartbeatExtension} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatExtension} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatExtension} object.
+ @throws IOException
+
+
+ Encode this {@link HeartbeatMessage} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatMessage} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatMessage} object.
+ @throws IOException
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ RFC 4492 5.1.1
+ The named curves defined here are those specified in SEC 2 [13]. Note that many of
+ these curves are also recommended in ANSI X9.62 [7] and FIPS 186-2 [11]. Values 0xFE00
+ through 0xFEFF are reserved for private use. Values 0xFF01 and 0xFF02 indicate that the
+ client supports arbitrary prime and characteristic-2 curves, respectively (the curve
+ parameters must be encoded explicitly in ECParameters).
+
+
+
+ Encode this {@link NewSessionTicket} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link NewSessionTicket} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link NewSessionTicket} object.
+ @throws IOException
+
+
+ RFC 3546 3.6
+
+
+ @param responderIDList
+ an {@link IList} of {@link ResponderID}, specifying the list of trusted OCSP
+ responders. An empty list has the special meaning that the responders are
+ implicitly known to the server - e.g., by prior arrangement.
+ @param requestExtensions
+ OCSP request extensions. A null value means that there are no extensions.
+
+
+ @return an {@link IList} of {@link ResponderID}
+
+
+ @return OCSP request extensions
+
+
+ Encode this {@link OcspStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link OcspStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return an {@link OcspStatusRequest} object.
+ @throws IOException
+
+
+ RFC 5246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+
+
+ An implementation of the TLS 1.0/1.1/1.2 record layer, allowing downgrade to SSLv3.
+
+
+ RFC 5246 E.1. "Earlier versions of the TLS specification were not fully clear on what the
+ record layer version number (TLSPlaintext.version) should contain when sending ClientHello
+ (i.e., before it is known which version of the protocol will be employed). Thus, TLS servers
+ compliant with this specification MUST accept any value {03,XX} as the record layer version
+ number for ClientHello."
+
+
+ @return {@link ConnectionEnd}
+
+
+ @return {@link CipherSuite}
+
+
+ @return {@link CompressionMethod}
+
+
+ @return {@link PRFAlgorithm}
+
+
+ Encode this {@link ServerDHParams} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerDHParams} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerDHParams} object.
+ @throws IOException
+
+
+ Encode this {@link ServerName} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerName} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerName} object.
+ @throws IOException
+
+
+ @param serverNameList an {@link IList} of {@link ServerName}.
+
+
+ @return an {@link IList} of {@link ServerName}.
+
+
+ Encode this {@link ServerNameList} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerNameList} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerNameList} object.
+ @throws IOException
+
+
+ Encode this {@link ServerSRPParams} to an {@link OutputStream}.
+
+ @param output
+ the {@link OutputStream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerSRPParams} from an {@link InputStream}.
+
+ @param input
+ the {@link InputStream} to parse from.
+ @return a {@link ServerSRPParams} object.
+ @throws IOException
+
+
+ RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned)
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ @param hash {@link HashAlgorithm}
+ @param signature {@link SignatureAlgorithm}
+
+
+ @return {@link HashAlgorithm}
+
+
+ @return {@link SignatureAlgorithm}
+
+
+ Encode this {@link SignatureAndHashAlgorithm} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link SignatureAndHashAlgorithm} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link SignatureAndHashAlgorithm} object.
+ @throws IOException
+
+
+ An implementation of {@link TlsSRPIdentityManager} that simulates the existence of "unknown" identities
+ to obscure the fact that there is no verifier for them.
+
+
+ Create a {@link SimulatedTlsSRPIdentityManager} that implements the algorithm from RFC 5054 2.5.1.3
+
+ @param group the {@link SRP6GroupParameters} defining the group that SRP is operating in
+ @param seedKey the secret "seed key" referred to in RFC 5054 2.5.1.3
+ @return an instance of {@link SimulatedTlsSRPIdentityManager}
+
+
+ HMAC implementation based on original internet draft for HMAC (RFC 2104)
+
+ The difference is that padding is concatentated versus XORed with the key
+
+ H(K + opad, H(K + ipad, text))
+
+
+ Base constructor for one of the standard digest algorithms that the byteLength of
+ the algorithm is know for. Behaviour is undefined for digests other than MD5 or SHA1.
+
+ @param digest the digest.
+
+
+ Reset the mac generator.
+
+
+ RFC 4680
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called by the protocol handler to report the server certificate.
+
+
+ This method is responsible for certificate verification and validation
+
+ The server received
+
+
+
+
+ Return client credentials in response to server's certificate request
+
+
+ A containing server certificate request details
+
+
+ A to be used for client authentication
+ (or null for no client authentication)
+
+
+
+
+
+ A generic TLS 1.0-1.2 / SSLv3 block cipher. This can be used for AES or 3DES for example.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called at the start of a new TLS session, before any other methods.
+
+
+ A
+
+
+
+ Return the session this client wants to resume, if any.
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ A representing the resumable session to be used for this connection,
+ or null to use a new session.
+
+
+
+
+ Return the to use for the TLSPlaintext.version field prior to
+ receiving the server version. NOTE: This method is not called for DTLS.
+
+
+ See RFC 5246 E.1.: "TLS clients that wish to negotiate with older servers MAY send any value
+ {03,XX} as the record layer version number. Typical values would be {03,00}, the lowest
+ version number supported by the client, and the value of ClientHello.client_version. No
+ single value will guarantee interoperability with all old servers, but this is a complex
+ topic beyond the scope of this document."
+
+ The to use.
+
+
+
+ Get the list of cipher suites that this client supports.
+
+
+ An array of values, each specifying a supported cipher suite.
+
+
+
+
+ Get the list of compression methods that this client supports.
+
+
+ An array of values, each specifying a supported compression method.
+
+
+
+
+ Get the (optional) table of client extensions to be included in (extended) client hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+
+
+
+ Notifies the client of the session_id sent in the ServerHello.
+
+ An array of
+
+
+
+ Report the cipher suite that was selected by the server.
+
+
+ The protocol handler validates this value against the offered cipher suites
+
+
+
+ A
+
+
+
+
+ Report the compression method that was selected by the server.
+
+
+ The protocol handler validates this value against the offered compression methods
+
+
+
+ A
+
+
+
+
+ Report the extensions from an extended server hello.
+
+
+ Will only be called if we returned a non-null result from .
+
+
+ A (Int32 -> byte[])
+
+
+
+ A list of
+
+
+
+
+ Return an implementation of to negotiate the key exchange
+ part of the protocol.
+
+
+ A
+
+
+
+
+
+ Return an implementation of to handle authentication
+ part of the protocol.
+
+
+
+
+ A list of
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message
+
+ This method will be called (only) when a NewSessionTicket handshake message is received. The
+ ticket is opaque to the client and clients MUST NOT examine the ticket under the assumption
+ that it complies with e.g. RFC 5077 4. Recommended Ticket Construction.
+
+ The ticket
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the server
+ @param output The stream of data to the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Initiates a TLS handshake in the role of client.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#NotifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsClient The {@link TlsClient} to use for the handshake.
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+ Used to get the resumable session, if any, used by this connection. Only available after the
+ handshake has successfully completed.
+
+ @return A {@link TlsSession} representing the resumable session used by this connection, or
+ null if no resumable session available.
+ @see TlsPeer#NotifyHandshakeComplete()
+
+
+ Export keying material according to RFC 5705: "Keying Material Exporters for TLS".
+
+ @param asciiLabel indicates which application will use the exported keys.
+ @param context_value allows the application using the exporter to mix its own data with the TLS PRF for
+ the exporter output.
+ @param length the number of bytes to generate
+ @return a pseudorandom bit string of 'length' bytes generated from the master_secret.
+
+
+ (D)TLS DH key exchange.
+
+
+ (D)TLS ECDHE key exchange (see RFC 4492).
+
+
+ (D)TLS ECDH key exchange (see RFC 4492).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic interface for key exchange implementations in (D)TLS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
+
+
+
+ Generate a new instance of an TlsMac.
+
+ @param context the TLS client context
+ @param digest The digest to use.
+ @param key A byte-array where the key for this MAC is located.
+ @param keyOff The number of bytes to skip, before the key starts in the buffer.
+ @param keyLen The length of the key.
+
+
+ @return the MAC write secret
+
+
+ @return The output length of this MAC.
+
+
+ Calculate the MAC for some given data.
+
+ @param type The message type of the message.
+ @param message A byte-buffer containing the message.
+ @param offset The number of bytes to skip, before the message starts.
+ @param length The length of the message.
+ @return A new byte-buffer containing the MAC value.
+
+
+
+ This exception will be thrown(only) when the connection is closed by the peer without sending a
+ close_notify warning alert.
+
+
+ If this happens, the TLS protocol cannot rule out truncation of the connection data (potentially
+ malicious). It may be possible to check for truncation via some property of a higher level protocol
+ built upon TLS, e.g.the Content-Length header for HTTPS.
+
+
+
+
+ A NULL CipherSuite, with optional MAC.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on
+ gmt_unix_time containing the current time, we recommend that implementors MAY provide the
+ ability to set gmt_unix_time as an option only, off by default."
+
+
+ true if the current time should be used in the gmt_unix_time field of
+ Random, or false if gmt_unix_time should contain a cryptographically
+ random value.
+
+
+
+
+ Report whether the server supports secure renegotiation
+
+
+ The protocol handler automatically processes the relevant extensions
+
+
+ A , true if the server supports secure renegotiation
+
+
+
+
+
+ Return an implementation of to handle record compression.
+
+ A
+
+
+
+
+ Return an implementation of to use for encryption/decryption.
+
+ A
+
+
+
+ This method will be called when an alert is raised by the protocol.
+
+
+ A human-readable message explaining what caused this alert. May be null.
+ The Exception that caused this alert to be raised. May be null.
+
+
+ This method will be called when an alert is received from the remote peer.
+
+
+
+
+ Notifies the peer that the handshake has been successfully completed.
+
+
+
+ This method is called, when a change cipher spec message is received.
+
+ @throws IOException If the message has an invalid content or the handshake is not in the correct
+ state.
+
+
+ Read data from the network. The method will return immediately, if there is still some data
+ left in the buffer, or block until some application data has been read from the network.
+
+ @param buf The buffer where the data will be copied to.
+ @param offset The position where the data will be placed in the buffer.
+ @param len The maximum number of bytes to read.
+ @return The number of bytes read.
+ @throws IOException If something goes wrong during reading data.
+
+
+ Send some application data to the remote system.
+
+ The method will handle fragmentation internally.
+
+ @param buf The buffer with the data.
+ @param offset The position in the buffer where the data is placed.
+ @param len The length of the data.
+ @throws IOException If something goes wrong during sending.
+
+
+ The secure bidirectional stream for this connection
+ Only allowed in blocking mode.
+
+
+ Should be called in non-blocking mode when the input data reaches EOF.
+
+
+ Offer input from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the input buffer is "owned" by this object. Other code
+ must not attempt to do anything with it.
+
+ This method will decrypt and process all records that are fully available.
+ If only part of a record is available, the buffer will be retained until the
+ remainder of the record is offered.
+
+ If any records containing application data were processed, the decrypted data
+ can be obtained using {@link #readInput(byte[], int, int)}. If any records
+ containing protocol data were processed, a response may have been generated.
+ You should always check to see if there is any available output after calling
+ this method by calling {@link #getAvailableOutputBytes()}.
+ @param input The input buffer to offer
+ @throws IOException If an error occurs while decrypting or processing a record
+
+
+ Gets the amount of received application data. A call to {@link #readInput(byte[], int, int)}
+ is guaranteed to be able to return at least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available application data
+
+
+ Retrieves received application data. Use {@link #getAvailableInputBytes()} to check
+ how much application data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the application data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Offer output from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the specified section of the buffer will have been
+ processed. Use {@link #readOutput(byte[], int, int)} to get the bytes to
+ transmit to the other peer.
+
+ This method must not be called until after the handshake is complete! Attempting
+ to call it before the handshake is complete will result in an exception.
+ @param buffer The buffer containing application data to encrypt
+ @param offset The offset at which to begin reading data
+ @param length The number of bytes of data to read
+ @throws IOException If an error occurs encrypting the data, or the handshake is not complete
+
+
+ Gets the amount of encrypted data available to be sent. A call to
+ {@link #readOutput(byte[], int, int)} is guaranteed to be able to return at
+ least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available encrypted data
+
+
+ Retrieves encrypted data to be sent. Use {@link #getAvailableOutputBytes()} to check
+ how much encrypted data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the encrypted data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Closes this connection.
+
+ @throws IOException If something goes wrong during closing.
+
+
+ Make sure the InputStream 'buf' now empty. Fail otherwise.
+
+ @param buf The InputStream to check.
+ @throws IOException If 'buf' is not empty.
+
+
+ 'sender' only relevant to SSLv3
+
+
+ Both streams can be the same object
+
+
+ (D)TLS PSK key exchange (RFC 4279).
+
+
+ (D)TLS and SSLv3 RSA key exchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A (Int32 -> byte[]). Will never be null.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the (optional) table of server extensions to be included in (extended) server hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+ A (). May be null.
+
+
+
+
+
+
+
+
+ This method will be called (only) if the server included an extension of type
+ "status_request" with empty "extension_data" in the extended server hello. See RFC 3546
+ 3.6. Certificate Status Request. If a non-null is returned, it
+ is sent to the client as a handshake message of type "certificate_status".
+
+ A to be sent to the client (or null for none).
+
+
+
+
+
+
+
+
+
+ ()
+
+
+
+
+ Called by the protocol handler to report the client certificate, only if GetCertificateRequest
+ returned non-null.
+
+ Note: this method is responsible for certificate verification and validation.
+ the effective client certificate (may be an empty chain).
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message.
+
+ This method will be called (only) if a NewSessionTicket extension was sent by the server. See
+ RFC 5077 4. Recommended Ticket Construction for recommended format and protection.
+
+ The ticket)
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Receives a TLS handshake in the role of server.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#notifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsServer
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+
+
+
+ Check whether the given SRP group parameters are acceptable for use.
+
+ @param group the {@link SRP6GroupParameters} to check
+ @return true if (and only if) the specified group parameters are acceptable
+
+
+ Lookup the {@link TlsSRPLoginParameters} corresponding to the specified identity.
+
+ NOTE: To avoid "identity probing", unknown identities SHOULD be handled as recommended in RFC
+ 5054 2.5.1.3. {@link SimulatedTlsSRPIdentityManager} is provided for this purpose.
+
+ @param identity
+ the SRP identity sent by the connecting client
+ @return the {@link TlsSRPLoginParameters} for the specified identity, or else 'simulated'
+ parameters if the identity is not recognized. A null value is also allowed, but not
+ recommended.
+
+
+ (D)TLS SRP key exchange (RFC 5054).
+
+
+ RFC 5764 DTLS Extension to Establish Keys for SRTP.
+
+
+
+
+
+
+
+
+
+
+
+ Some helper functions for MicroTLS.
+
+
+ Add a 'signature_algorithms' extension to existing extensions.
+
+ @param extensions A {@link Hashtable} to add the extension to.
+ @param supportedSignatureAlgorithms {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ Get a 'signature_algorithms' extension from extensions.
+
+ @param extensions A {@link Hashtable} to get the extension from, if it is present.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}, or null.
+ @throws IOException
+
+
+ Create a 'signature_algorithms' extension value.
+
+ @param supportedSignatureAlgorithms A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @return A byte array suitable for use as an extension value.
+ @throws IOException
+
+
+ Read 'signature_algorithms' extension data.
+
+ @param extensionData The extension data.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ RFC 6066 5.
+
+
+ Encode this {@link UrlAndHash} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link UrlAndHash} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link UrlAndHash} object.
+ @throws IOException
+
+
+ RFC 4681
+
+
+ RFC 5764 4.1.1
+
+
+ @param protectionProfiles see {@link SrtpProtectionProfile} for valid constants.
+ @param mki valid lengths from 0 to 255.
+
+
+ @return see {@link SrtpProtectionProfile} for valid constants.
+
+
+ @return valid lengths from 0 to 255.
+
+
+ return a = a + b - b preserved.
+
+
+ unsigned comparison on two arrays - note the arrays may
+ start with leading zeros.
+
+
+ return z = x / y - done in place (z value preserved, x contains the
+ remainder)
+
+
+ return whether or not a BigInteger is probably prime with a
+ probability of 1 - (1/2)**certainty.
+ From Knuth Vol 2, pg 395.
+
+
+ Calculate the numbers u1, u2, and u3 such that:
+
+ u1 * a + u2 * b = u3
+
+ where u3 is the greatest common divider of a and b.
+ a and b using the extended Euclid algorithm (refer p. 323
+ of The Art of Computer Programming vol 2, 2nd ed).
+ This also seems to have the side effect of calculating
+ some form of multiplicative inverse.
+
+ @param a First number to calculate gcd for
+ @param b Second number to calculate gcd for
+ @param u1Out the return object for the u1 value
+ @return The greatest common divisor of a and b
+
+
+ return w with w = x * x - w is assumed to have enough space.
+
+
+ return x with x = y * z - x is assumed to have enough space.
+
+
+ Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size)
+
+
+ Montgomery multiplication: a = x * y * R^(-1) mod m
+
+ Based algorithm 14.36 of Handbook of Applied Cryptography.
+
+ m, x, y should have length n
+ a should have length (n + 1)
+ b = 2^32, R = b^n
+
+ The result is put in x
+
+ NOTE: the indices of x, y, m, a different in HAC and in Java
+
+
+ return x = x % y - done in place (y value preserved)
+
+
+ do a left shift - this returns a new array.
+
+
+ do a right shift - this does it in place.
+
+
+ do a right shift by one - this does it in place.
+
+
+ returns x = x - y - we assume x is >= y
+
+
+ Class representing a simple version of a big decimal. A
+ SimpleBigDecimal is basically a
+ {@link java.math.BigInteger BigInteger} with a few digits on the right of
+ the decimal point. The number of (binary) digits on the right of the decimal
+ point is called the scale of the SimpleBigDecimal.
+ Unlike in {@link java.math.BigDecimal BigDecimal}, the scale is not adjusted
+ automatically, but must be set manually. All SimpleBigDecimals
+ taking part in the same arithmetic operation must have equal scale. The
+ result of a multiplication of two SimpleBigDecimals returns a
+ SimpleBigDecimal with double scale.
+
+
+ Returns a SimpleBigDecimal representing the same numerical
+ value as value.
+ @param value The value of the SimpleBigDecimal to be
+ created.
+ @param scale The scale of the SimpleBigDecimal to be
+ created.
+ @return The such created SimpleBigDecimal.
+
+
+ Constructor for SimpleBigDecimal. The value of the
+ constructed SimpleBigDecimal Equals bigInt /
+ 2scale.
+ @param bigInt The bigInt value parameter.
+ @param scale The scale of the constructed SimpleBigDecimal.
+
+
+ Class holding methods for point multiplication based on the window
+ τ-adic nonadjacent form (WTNAF). The algorithms are based on the
+ paper "Improved Algorithms for Arithmetic on Anomalous Binary Curves"
+ by Jerome A. Solinas. The paper first appeared in the Proceedings of
+ Crypto 1997.
+
+
+ The window width of WTNAF. The standard value of 4 is slightly less
+ than optimal for running time, but keeps space requirements for
+ precomputation low. For typical curves, a value of 5 or 6 results in
+ a better running time. When changing this value, the
+ αu's must be computed differently, see
+ e.g. "Guide to Elliptic Curve Cryptography", Darrel Hankerson,
+ Alfred Menezes, Scott Vanstone, Springer-Verlag New York Inc., 2004,
+ p. 121-122
+
+
+ 24
+
+
+ The αu's for a=0 as an array
+ of ZTauElements.
+
+
+ The αu's for a=0 as an array
+ of TNAFs.
+
+
+ The αu's for a=1 as an array
+ of ZTauElements.
+
+
+ The αu's for a=1 as an array
+ of TNAFs.
+
+
+ Computes the norm of an element λ of
+ Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The norm of λ.
+
+
+ Computes the norm of an element λ of
+ R[τ], where λ = u + vτ
+ and u and u are real numbers (elements of
+ R).
+ @param mu The parameter μ of the elliptic curve.
+ @param u The real part of the element λ of
+ R[τ].
+ @param v The τ-adic part of the element
+ λ of R[τ].
+ @return The norm of λ.
+
+
+ Rounds an element λ of R[τ]
+ to an element of Z[τ], such that their difference
+ has minimal norm. λ is given as
+ λ = λ0 + λ1τ.
+ @param lambda0 The component λ0.
+ @param lambda1 The component λ1.
+ @param mu The parameter μ of the elliptic curve. Must
+ equal 1 or -1.
+ @return The rounded element of Z[τ].
+ @throws ArgumentException if lambda0 and
+ lambda1 do not have same scale.
+
+
+ Approximate division by n. For an integer
+ k, the value λ = s k / n is
+ computed to c bits of accuracy.
+ @param k The parameter k.
+ @param s The curve parameter s0 or
+ s1.
+ @param vm The Lucas Sequence element Vm.
+ @param a The parameter a of the elliptic curve.
+ @param m The bit length of the finite field
+ Fm.
+ @param c The number of bits of accuracy, i.e. the scale of the returned
+ SimpleBigDecimal.
+ @return The value λ = s k / n computed to
+ c bits of accuracy.
+
+
+ Computes the τ-adic NAF (non-adjacent form) of an
+ element λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The τ-adic NAF of λ.
+
+
+ Applies the operation τ() to an
+ AbstractF2mPoint.
+ @param p The AbstractF2mPoint to which τ() is applied.
+ @return τ(p)
+
+
+ Returns the parameter μ of the elliptic curve.
+ @param curve The elliptic curve from which to obtain μ.
+ The curve must be a Koblitz curve, i.e. a Equals
+ 0 or 1 and b Equals
+ 1.
+ @return μ of the elliptic curve.
+ @throws ArgumentException if the given ECCurve is not a Koblitz
+ curve.
+
+
+ Calculates the Lucas Sequence elements Uk-1 and
+ Uk or Vk-1 and
+ Vk.
+ @param mu The parameter μ of the elliptic curve.
+ @param k The index of the second element of the Lucas Sequence to be
+ returned.
+ @param doV If set to true, computes Vk-1 and
+ Vk, otherwise Uk-1 and
+ Uk.
+ @return An array with 2 elements, containing Uk-1
+ and Uk or Vk-1
+ and Vk.
+
+
+ Computes the auxiliary value tw. If the width is
+ 4, then for mu = 1, tw = 6 and for
+ mu = -1, tw = 10
+ @param mu The parameter μ of the elliptic curve.
+ @param w The window width of the WTNAF.
+ @return the auxiliary value tw
+
+
+ Computes the auxiliary values s0 and
+ s1 used for partial modular reduction.
+ @param curve The elliptic curve for which to compute
+ s0 and s1.
+ @throws ArgumentException if curve is not a
+ Koblitz curve (Anomalous Binary Curve, ABC).
+
+
+ Partial modular reduction modulo
+ (τm - 1)/(τ - 1).
+ @param k The integer to be reduced.
+ @param m The bitlength of the underlying finite field.
+ @param a The parameter a of the elliptic curve.
+ @param s The auxiliary values s0 and
+ s1.
+ @param mu The parameter μ of the elliptic curve.
+ @param c The precision (number of bits of accuracy) of the partial
+ modular reduction.
+ @return ρ := k partmod (τm - 1)/(τ - 1)
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by a BigInteger using the reduced τ-adic
+ NAF (RTNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param k The BigInteger by which to Multiply p.
+ @return k * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param lambda The element λ of
+ Z[τ].
+ @return λ * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method, given the TNAF
+ of λ.
+ @param p The AbstractF2mPoint to Multiply.
+ @param u The the TNAF of λ..
+ @return λ * p
+
+
+ Computes the [τ]-adic window NAF of an element
+ λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @param width The window width of the resulting WNAF.
+ @param pow2w 2width.
+ @param tw The auxiliary value tw.
+ @param alpha The αu's for the window width.
+ @return The [τ]-adic window NAF of
+ λ.
+
+
+ Does the precomputation for WTNAF multiplication.
+ @param p The ECPoint for which to do the precomputation.
+ @param a The parameter a of the elliptic curve.
+ @return The precomputation array for p.
+
+
+ Class representing an element of Z[τ]. Let
+ λ be an element of Z[τ]. Then
+ λ is given as λ = u + vτ. The
+ components u and v may be used directly, there
+ are no accessor methods.
+ Immutable class.
+
+
+ The "real" part of λ.
+
+
+ The "τ-adic" part of λ.
+
+
+ Constructor for an element λ of
+ Z[τ].
+ @param u The "real" part of λ.
+ @param v The "τ-adic" part of
+ λ.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(boolean)}
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ Simple shift-and-add multiplication. Serves as reference implementation
+ to verify (possibly faster) implementations, and for very small scalars.
+
+ @param p
+ The point to multiply.
+ @param k
+ The multiplier.
+ @return The result of the point multiplication kP.
+
+
+ Base class for an elliptic curve.
+
+
+ Adds PreCompInfo for a point on this curve, under a given name. Used by
+ ECMultipliers to save the precomputation for this ECPoint for use
+ by subsequent multiplication.
+
+ @param point
+ The ECPoint to store precomputations for.
+ @param name
+ A String used to index precomputations of different types.
+ @param preCompInfo
+ The values precomputed by the ECMultiplier.
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately.
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately. An (optional) z-scaling factor can be applied; effectively
+ each z coordinate is scaled by this value prior to normalization (but only one
+ actual multiplication is needed).
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+ @param off
+ The start of the range of points to normalize
+ @param len
+ The length of the range of points to normalize
+ @param iso
+ The (optional) z-scaling factor - can be null
+
+
+ Sets the default ECMultiplier, unless already set.
+
+
+ Decode a point on this curve from its ASN.1 encoding. The different
+ encodings are taken account of, including point compression for
+ Fp (X9.62 s 4.2.1 pg 17).
+ @return The decoded point.
+
+
+ Elliptic curve over Fp
+
+
+ The auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Solves a quadratic equation z2 + z = beta(X9.62
+ D.1.6) The other solution is z + 1.
+
+ @param beta
+ The value to solve the qradratic equation for.
+ @return the solution for z2 + z = beta or
+ null if no solution exists.
+
+
+ @return the auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Returns true if this is a Koblitz curve (ABC curve).
+ @return true if this is a Koblitz curve (ABC curve), false otherwise
+
+
+ Elliptic curves over F2m. The Weierstrass equation is given by
+ y2 + xy = x3 + ax2 + b.
+
+
+ The exponent m of F2m.
+
+
+ TPB: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ PPB: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ The point at infinity on this curve.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Return true if curve uses a Trinomial basis.
+
+ @return true if curve Trinomial, false otherwise.
+
+
+ return the field name for this field.
+
+ @return the string "Fp".
+
+
+ return a sqrt root - the routine verifies that the calculation
+ returns the right value - if none exists it returns null.
+
+
+ Class representing the Elements of the finite field
+ F2m in polynomial basis (PB)
+ representation. Both trinomial (Tpb) and pentanomial (Ppb) polynomial
+ basis representations are supported. Gaussian normal basis (GNB)
+ representation is not supported.
+
+
+ Indicates gaussian normal basis representation (GNB). Number chosen
+ according to X9.62. GNB is not implemented at present.
+
+
+ Indicates trinomial basis representation (Tpb). Number chosen
+ according to X9.62.
+
+
+ Indicates pentanomial basis representation (Ppb). Number chosen
+ according to X9.62.
+
+
+ Tpb or Ppb.
+
+
+ The exponent m of F2m.
+
+
+ The LongArray holding the bits.
+
+
+ Constructor for Ppb.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Constructor for Tpb.
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Checks, if the ECFieldElements a and b
+ are elements of the same field F2m
+ (having the same representation).
+ @param a field element.
+ @param b field element to be compared.
+ @throws ArgumentException if a and b
+ are not elements of the same field
+ F2m (having the same
+ representation).
+
+
+ @return the representation of the field
+ F2m, either of
+ {@link F2mFieldElement.Tpb} (trinomial
+ basis representation) or
+ {@link F2mFieldElement.Ppb} (pentanomial
+ basis representation).
+
+
+ @return the degree m of the reduction polynomial
+ f(z).
+
+
+ @return Tpb: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ Ppb: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always returns 0
+ Ppb: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always set to 0
+ Ppb: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ base class for points on elliptic curves.
+
+
+ Normalizes this point, and then returns the affine x-coordinate.
+
+ Note: normalization can be expensive, this method is deprecated in favour
+ of caller-controlled normalization.
+
+
+ Normalizes this point, and then returns the affine y-coordinate.
+
+ Note: normalization can be expensive, this method is deprecated in favour
+ of caller-controlled normalization.
+
+
+ Returns the affine x-coordinate after checking that this point is normalized.
+
+ @return The affine x-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the affine y-coordinate after checking that this point is normalized
+
+ @return The affine y-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the x-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineXCoord if you expect the point to already have been normalized.
+
+ @return the x-coordinate of this point
+
+
+ Returns the y-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineYCoord if you expect the point to already have been normalized.
+
+ @return the y-coordinate of this point
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system.
+
+ @return a new ECPoint instance representing the same point, but with normalized coordinates
+
+
+ return the field element encoded with point compression. (S 4.3.6)
+
+
+ Multiplies this ECPoint by the given number.
+ @param k The multiplicator.
+ @return k * this.
+
+
+ Elliptic curve points over Fp
+
+
+ Create a point which encodes without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+
+ Create a point that encodes with or without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+
+ Elliptic curve points over F2m
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+ @param withCompression true if encode with point compression.
+
+
+ Constructor for point at infinity
+
+
+ Joye's double-add algorithm.
+
+
+ Interface for classes encapsulating a point multiplication algorithm
+ for ECPoints.
+
+
+ Multiplies the ECPoint p by k, i.e.
+ p is added k times to itself.
+ @param p The ECPoint to be multiplied.
+ @param k The factor by which p is multiplied.
+ @return p multiplied by k.
+
+
+ Class holding precomputation data for fixed-point multiplications.
+
+
+ Array holding the precomputed ECPoints used for a fixed
+ point multiplication.
+
+
+ The width used for the precomputation. If a larger width precomputation
+ is already available this may be larger than was requested, so calling
+ code should refer to the actual width.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left) using
+ mixed coordinates.
+
+
+ By default, addition will be done in Jacobian coordinates, and doubling will be done in
+ Modified Jacobian coordinates (independent of the original coordinate system of each point).
+
+
+ Montgomery ladder.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (left-to-right).
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left).
+
+
+ Interface for classes storing precomputation data for multiplication
+ algorithms. Used as a Memento (see GOF patterns) for
+ WNafMultiplier.
+
+
+ Class implementing the WNAF (Window Non-Adjacent Form) multiplication
+ algorithm.
+
+
+ Multiplies this by an integer k using the
+ Window NAF method.
+ @param k The integer by which this is multiplied.
+ @return A new ECPoint which equals this
+ multiplied by k.
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Class holding precomputation data for the WNAF (Window Non-Adjacent Form)
+ algorithm.
+
+
+ Array holding the precomputed ECPoints used for a Window
+ NAF multiplication.
+
+
+ Array holding the negations of the precomputed ECPoints used
+ for a Window NAF multiplication.
+
+
+ Holds an ECPoint representing Twice(this). Used for the
+ Window NAF multiplication to create or extend the precomputed values.
+
+
+ Computes the Window NAF (non-adjacent Form) of an integer.
+ @param width The width w of the Window NAF. The width is
+ defined as the minimal number w, such that for any
+ w consecutive digits in the resulting representation, at
+ most one is non-zero.
+ @param k The integer of which the Window NAF is computed.
+ @return The Window NAF of the given width, such that the following holds:
+ k = ∑i=0l-1 ki2i
+ , where the ki denote the elements of the
+ returned byte[].
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @return the window size to use
+
+
+ Class implementing the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by k using the reduced τ-adic NAF (RTNAF)
+ method.
+ @param p The AbstractF2mPoint to multiply.
+ @param k The integer by which to multiply k.
+ @return p multiplied by k.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ] using
+ the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to multiply.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @return p multiplied by λ.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the window τ-adic NAF (TNAF) method, given the
+ WTNAF of λ.
+ @param p The AbstractF2mPoint to multiply.
+ @param u The the WTNAF of λ..
+ @return λ * p
+
+
+ Class holding precomputation data for the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Array holding the precomputed AbstractF2mPoints used for the
+ WTNAF multiplication in
+ {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
+ WTauNafMultiplier.multiply()}.
+
+
+ 'Zeroless' Signed Digit Left-to-Right.
+
+
+ 'Zeroless' Signed Digit Right-to-Left.
+
+
+ Utility methods for generating primes and testing for primality.
+
+
+ Used to return the output from the
+ {@linkplain Primes#enhancedMRProbablePrimeTest(BigInteger, SecureRandom, int) Enhanced
+ Miller-Rabin Probabilistic Primality Test}
+
+
+ Used to return the output from the {@linkplain Primes#generateSTRandomPrime(Digest, int, byte[]) Shawe-Taylor Random_Prime Routine}
+
+
+ FIPS 186-4 C.6 Shawe-Taylor Random_Prime Routine
+
+ Construct a provable prime number using a hash function.
+
+ @param hash
+ the {@link Digest} instance to use (as "Hash()"). Cannot be null.
+ @param length
+ the length (in bits) of the prime to be generated. Must be at least 2.
+ @param inputSeed
+ the seed to be used for the generation of the requested prime. Cannot be null or
+ empty.
+ @return an {@link STOutput} instance containing the requested prime.
+
+
+ FIPS 186-4 C.3.2 Enhanced Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases. This is an
+ alternative to {@link #isMRProbablePrime(BigInteger, SecureRandom, int)} that provides more
+ information about a composite candidate, which may be useful when generating or validating
+ RSA moduli.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return an {@link MROutput} instance that can be further queried for details.
+
+
+ A fast check for small divisors, up to some implementation-specific limit.
+
+ @param candidate
+ the {@link BigInteger} instance to test for division by small factors.
+
+ @return true if the candidate is found to have any small factors,
+ false otherwise.
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return false if any witness to compositeness is found amongst the chosen bases
+ (so candidate is definitely NOT prime), or else true
+ (indicating primality with some probability dependent on the number of iterations
+ that were performed).
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test (to a fixed base).
+
+ Run a single iteration of the Miller-Rabin algorithm against the specified base.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param baseValue
+ the base value to use for this iteration.
+ @return false if the specified base is a witness to compositeness (so
+ candidate is definitely NOT prime), or else true.
+
+
+
+
+ BasicOcspResponse ::= SEQUENCE {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL
+ }
+
+
+
+
+ The DER encoding of the tbsResponseData field.
+ In the event of an encoding error.
+
+
+ The certificates, if any, associated with the response.
+ In the event of an encoding error.
+
+
+
+ Verify the signature against the tbsResponseData object we contain.
+
+
+
+ The ASN.1 encoded representation of this object.
+
+
+ Generator for basic OCSP response objects.
+
+
+ basic constructor
+
+
+ construct with the responderID to be the SHA-1 keyHash of the passed in public key.
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param thisUpdate date this response was valid on
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Set the extensions for the response.
+
+ @param responseExtensions the extension object to carry.
+
+
+
+ Generate the signed response using the passed in signature calculator.
+
+ Implementation of signing calculator factory.
+ The certificate chain associated with the response signer.
+ "produced at" date.
+
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ create from an issuer certificate and the serial number of the
+ certificate it signed.
+ @exception OcspException if any problems occur creating the id fields.
+
+
+ return the serial number for the certificate associated
+ with this request.
+
+
+ Create a new CertificateID for a new serial number derived from a previous one
+ calculated for the same CA certificate.
+
+ @param original the previously calculated CertificateID for the CA.
+ @param newSerialNumber the serial number for the new certificate of interest.
+
+ @return a new CertificateID for newSerialNumber
+
+
+
+ OcspRequest ::= SEQUENCE {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+ TBSRequest ::= SEQUENCE {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList SEQUENCE OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+ Signature ::= SEQUENCE {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL}
+
+ Version ::= INTEGER { v1(0) }
+
+ Request ::= SEQUENCE {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+ CertID ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ Return the DER encoding of the tbsRequest field.
+ @return DER encoding of tbsRequest
+ @throws OcspException in the event of an encoding error.
+
+
+ return the object identifier representing the signature algorithm
+
+
+ If the request is signed return a possibly empty CertStore containing the certificates in the
+ request. If the request is not signed the method returns null.
+
+ @return null if not signed, a CertStore otherwise
+ @throws OcspException
+
+
+ Return whether or not this request is signed.
+
+ @return true if signed false otherwise.
+
+
+ Verify the signature against the TBSRequest object we contain.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Add a request for the given CertificateID.
+
+ @param certId certificate ID of interest
+
+
+ Add a request with extensions
+
+ @param certId certificate ID of interest
+ @param singleRequestExtensions the extensions to attach to the request
+
+
+ Set the requestor name to the passed in X509Principal
+
+ @param requestorName a X509Principal representing the requestor name.
+
+
+ Generate an unsigned request
+
+ @return the OcspReq
+ @throws OcspException
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ base generator for an OCSP response - at the moment this only supports the
+ generation of responses containing BasicOCSP responses.
+
+
+ note 4 is not used.
+
+
+ Carrier for a ResponderID.
+
+
+ wrapper for the RevokedInfo object
+
+
+ return the revocation reason. Note: this field is optional, test for it
+ with hasRevocationReason() first.
+ @exception InvalidOperationException if a reason is asked for and none is avaliable
+
+
+ Return the status object for the response - null indicates good.
+
+ @return the status object for the response, null if it is good.
+
+
+ return the NextUpdate value - note: this is an optional field so may
+ be returned as null.
+
+ @return nextUpdate, or null if not present.
+
+
+ wrapper for the UnknownInfo object
+
+
+
+ Utility class for creating IBasicAgreement objects from their names/Oids
+
+
+
+
+ Cipher Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Utility class for creating IDigest objects from their names/Oids
+
+
+
+
+ Returns a ObjectIdentifier for a given digest mechanism.
+
+ A string representation of the digest meanism.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ A class containing methods to interface the BouncyCastle world to the .NET Crypto world.
+
+
+
+
+ Create an System.Security.Cryptography.X509Certificate from an X509Certificate Structure.
+
+
+ A System.Security.Cryptography.X509Certificate.
+
+
+
+ Utility class for creating HMac object from their names/Oids
+
+
+
+
+
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Create and auto-seed an instance based on the given algorithm.
+
+ Equivalent to GetInstance(algorithm, true)
+ e.g. "SHA256PRNG"
+
+
+
+ Create an instance based on the given algorithm, with optional auto-seeding
+
+ e.g. "SHA256PRNG"
+ If true, the instance will be auto-seeded.
+
+
+
+ To replicate existing predictable output, replace with GetInstance("SHA1PRNG", false), followed by SetSeed(seed)
+
+
+
+ Use the specified instance of IRandomGenerator as random source.
+
+ This constructor performs no seeding of either the IRandomGenerator or the
+ constructed SecureRandom. It is the responsibility of the client to provide
+ proper seed material as necessary/appropriate for the given IRandomGenerator
+ implementation.
+
+ The source to generate all random bytes from.
+
+
+ base constructor.
+
+
+ create a SecurityUtilityException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Signer Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns an ObjectIdentifier for a given encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the OID is not available.
+
+
+
+ Utility class for creating IWrapper objects from their names/Oids
+
+
+
+ PEM generator for the original set of PEM objects used in Open SSL.
+
+
+ Class for reading OpenSSL PEM encoded streams containing
+ X509 certificates, PKCS8 encoded keys and PKCS7 objects.
+
+ In the case of PKCS7 objects the reader will return a CMS ContentInfo object. Keys and
+ Certificates will be returned using the appropriate java.security type.
+
+
+ Create a new PemReader
+
+ @param reader the Reader
+
+
+ Create a new PemReader with a password finder
+
+ @param reader the Reader
+ @param pFinder the password finder
+
+
+ Reads in a X509Certificate.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509CRL.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS10 certification request.
+
+ @return the certificate request.
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509 Attribute Certificate.
+
+ @return the X509 Attribute Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS7 object. This returns a ContentInfo object suitable for use with the CMS
+ API.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Read a Key Pair
+
+
+ General purpose writer for OpenSSL PEM objects.
+
+
+ The TextWriter object to write the output to.
+
+
+ Constructor for an unencrypted private key PEM object.
+
+ @param key private key to be encoded.
+
+
+ Constructor for an encrypted private key PEM object.
+
+ @param key private key to be encoded
+ @param algorithm encryption algorithm to use
+ @param provider provider to use
+ @throws NoSuchAlgorithmException if algorithm/mode cannot be found
+
+
+
+ A class for verifying and creating Pkcs10 Certification requests.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ The factory for signature calculators to sign the PKCS#10 request with.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Get the public key.
+
+ The public key.
+
+
+
+ Verify Pkcs10 Cert Request is valid.
+
+ true = valid.
+
+
+
+ A class for creating and verifying Pkcs10 Certification requests (this is an extension on ).
+ The requests are made using delay signing. This is useful for situations where
+ the private key is in another environment and not directly accessible (e.g. HSM)
+ So the first step creates the request, then the signing is done outside this
+ object and the signature is then used to complete the request.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+ After the object is constructed use the and finally the
+ SignRequest methods to finalize the request.
+
+
+
+ simply return the cert entry for the private key
+
+
+ Utility class for reencoding PKCS#12 files to definite length.
+
+
+ Just re-encode the outer layer of the PKCS#12 file to definite length encoding.
+
+ @param berPKCS12File - original PKCS#12 file
+ @return a byte array representing the DER encoding of the PFX structure
+ @throws IOException
+
+
+ Re-encode the PKCS#12 structure to definite length encoding at the inner layer
+ as well, recomputing the MAC accordingly.
+
+ @param berPKCS12File - original PKCS12 file.
+ @param provider - provider to use for MAC calculation.
+ @return a byte array representing the DER encoding of the PFX structure.
+ @throws IOException on parsing, encoding errors.
+
+
+
+ Returns the revocationDate.
+
+
+
+
+ Returns the certStatus.
+
+
+
+ Returns an immutable Set of X.509 attribute certificate
+ extensions that this PkixAttrCertChecker supports or
+ null if no extensions are supported.
+
+ Each element of the set is a String representing the
+ Object Identifier (OID) of the X.509 extension that is supported.
+
+
+ All X.509 attribute certificate extensions that a
+ PkixAttrCertChecker might possibly be able to process
+ should be included in the set.
+
+
+ @return an immutable Set of X.509 extension OIDs (in
+ String format) supported by this
+ PkixAttrCertChecker, or null if no
+ extensions are supported
+
+
+ Performs checks on the specified attribute certificate. Every handled
+ extension is rmeoved from the unresolvedCritExts
+ collection.
+
+ @param attrCert The attribute certificate to be checked.
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param holderCertPath The certificate path which belongs to the holder
+ certificate.
+ @param unresolvedCritExts a Collection of OID strings
+ representing the current set of unresolved critical extensions
+ @throws CertPathValidatorException if the specified attribute certificate
+ does not pass the check.
+
+
+ Returns a clone of this object.
+
+ @return a copy of this PkixAttrCertChecker
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ CertPathValidatorSpi implementation for X.509 Attribute Certificates la RFC 3281.
+
+ @see org.bouncycastle.x509.ExtendedPkixParameters
+
+
+ Validates an attribute certificate with the given certificate path.
+
+
+ params must be an instance of
+ ExtendedPkixParameters.
+
+ The target constraints in the params must be an
+ X509AttrCertStoreSelector with at least the attribute
+ certificate criterion set. Obey that also target informations may be
+ necessary to correctly validate this attribute certificate.
+
+ The attribute certificate issuer must be added to the trusted attribute
+ issuers with {@link ExtendedPkixParameters#setTrustedACIssuers(Set)}.
+
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param params The PKIX parameters.
+ @return A PKIXCertPathValidatorResult of the result of
+ validating the certPath.
+ @throws InvalidAlgorithmParameterException if params is
+ inappropriate for this validator.
+ @throws CertPathValidatorException if the verification fails.
+
+
+
+ Summary description for PkixBuilderParameters.
+
+
+
+ Returns an instance of PkixBuilderParameters.
+
+ This method can be used to get a copy from other
+ PKIXBuilderParameters, PKIXParameters,
+ and ExtendedPKIXParameters instances.
+
+
+ @param pkixParams The PKIX parameters to create a copy of.
+ @return An PkixBuilderParameters instance.
+
+
+
+ Excluded certificates are not used for building a certification path.
+
+ the excluded certificates.
+
+
+
+ Sets the excluded certificates which are not used for building a
+ certification path. If the ISet is null an
+ empty set is assumed.
+
+
+ The given set is cloned to protect it against subsequent modifications.
+
+ The excluded certificates to set.
+
+
+ Can alse handle ExtendedPKIXBuilderParameters and
+ PKIXBuilderParameters.
+
+ @param params Parameters to set.
+ @see org.bouncycastle.x509.ExtendedPKIXParameters#setParams(java.security.cert.PKIXParameters)
+
+
+ Makes a copy of this PKIXParameters object. Changes to the
+ copy will not affect the original and vice versa.
+
+ @return a copy of this PKIXParameters object
+
+
+ An immutable sequence of certificates (a certification path).
+
+ This is an abstract class that defines the methods common to all CertPaths.
+ Subclasses can handle different kinds of certificates (X.509, PGP, etc.).
+
+ All CertPath objects have a type, a list of Certificates, and one or more
+ supported encodings. Because the CertPath class is immutable, a CertPath
+ cannot change in any externally visible way after being constructed. This
+ stipulation applies to all public fields and methods of this class and any
+ added or overridden by subclasses.
+
+ The type is a string that identifies the type of Certificates in the
+ certification path. For each certificate cert in a certification path
+ certPath, cert.getType().equals(certPath.getType()) must be true.
+
+ The list of Certificates is an ordered List of zero or more Certificates.
+ This List and all of the Certificates contained in it must be immutable.
+
+ Each CertPath object must support one or more encodings so that the object
+ can be translated into a byte array for storage or transmission to other
+ parties. Preferably, these encodings should be well-documented standards
+ (such as PKCS#7). One of the encodings supported by a CertPath is considered
+ the default encoding. This encoding is used if no encoding is explicitly
+ requested (for the {@link #getEncoded()} method, for instance).
+
+ All CertPath objects are also Serializable. CertPath objects are resolved
+ into an alternate {@link CertPathRep} object during serialization. This
+ allows a CertPath object to be serialized into an equivalent representation
+ regardless of its underlying implementation.
+
+ CertPath objects can be created with a CertificateFactory or they can be
+ returned by other classes, such as a CertPathBuilder.
+
+ By convention, X.509 CertPaths (consisting of X509Certificates), are ordered
+ starting with the target certificate and ending with a certificate issued by
+ the trust anchor. That is, the issuer of one certificate is the subject of
+ the following one. The certificate representing the
+ {@link TrustAnchor TrustAnchor} should not be included in the certification
+ path. Unvalidated X.509 CertPaths may not follow these conventions. PKIX
+ CertPathValidators will detect any departure from these conventions that
+ cause the certification path to be invalid and throw a
+ CertPathValidatorException.
+
+ Concurrent Access
+
+ All CertPath objects must be thread-safe. That is, multiple threads may
+ concurrently invoke the methods defined in this class on a single CertPath
+ object (or more than one) with no ill effects. This is also true for the List
+ returned by CertPath.getCertificates.
+
+ Requiring CertPath objects to be immutable and thread-safe allows them to be
+ passed around to various pieces of code without worrying about coordinating
+ access. Providing this thread-safety is generally not difficult, since the
+ CertPath and List objects in question are immutable.
+
+ @see CertificateFactory
+ @see CertPathBuilder
+
+ CertPath implementation for X.509 certificates.
+
+
+
+ @param certs
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Returns an iteration of the encodings supported by this
+ certification path, with the default encoding
+ first. Attempts to modify the returned Iterator via its
+ remove method result in an UnsupportedOperationException.
+
+ @return an Iterator over the names of the supported encodings (as Strings)
+
+
+
+ Compares this certification path for equality with the specified object.
+ Two CertPaths are equal if and only if their types are equal and their
+ certificate Lists (and by implication the Certificates in those Lists)
+ are equal. A CertPath is never equal to an object that is not a CertPath.
+
+ This algorithm is implemented by this method. If it is overridden, the
+ behavior specified here must be maintained.
+
+ @param other
+ the object to test for equality with this certification path
+
+ @return true if the specified object is equal to this certification path,
+ false otherwise
+
+ @see Object#hashCode() Object.hashCode()
+
+
+ Returns the encoded form of this certification path, using
+ the default encoding.
+
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error occurs
+
+
+
+ Returns the encoded form of this certification path, using
+ the specified encoding.
+
+ @param encoding the name of the encoding to use
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error
+ occurs or the encoding requested is not supported
+
+
+
+
+ Returns the list of certificates in this certification
+ path.
+
+
+
+ Return a DERObject containing the encoded certificate.
+
+ @param cert the X509Certificate object to be encoded
+
+ @return the DERObject
+
+
+
+ Implements the PKIX CertPathBuilding algorithm for BouncyCastle.
+
+ @see CertPathBuilderSpi
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+
+ Summary description for PkixCertPathBuilderException.
+
+
+
+
+ Summary description for PkixCertPathBuilderResult.
+
+
+
+ * Initializes the internal state of this PKIXCertPathChecker.
+ *
+ * The forward flag specifies the order that certificates
+ * will be passed to the {@link #check check} method (forward or reverse). A
+ * PKIXCertPathChecker must support reverse checking
+ * and may support forward checking.
+ *
+ *
+ * @param forward
+ * the order that certificates are presented to the
+ * check method. If true,
+ * certificates are presented from target to most-trusted CA
+ * (forward); if false, from most-trusted CA to
+ * target (reverse).
+ * @exception CertPathValidatorException
+ * if this PKIXCertPathChecker is unable to
+ * check certificates in the specified order; it should never
+ * be thrown if the forward flag is false since reverse
+ * checking must be supported
+
+
+ Indicates if forward checking is supported. Forward checking refers to
+ the ability of the PKIXCertPathChecker to perform its
+ checks when certificates are presented to the check method
+ in the forward direction (from target to most-trusted CA).
+
+ @return true if forward checking is supported,
+ false otherwise
+
+
+ * Returns an immutable Set of X.509 certificate extensions
+ * that this PKIXCertPathChecker supports (i.e. recognizes,
+ * is able to process), or null if no extensions are
+ * supported.
+ *
+ * Each element of the set is a String representing the
+ * Object Identifier (OID) of the X.509 extension that is supported. The OID
+ * is represented by a set of nonnegative integers separated by periods.
+ *
+ * All X.509 certificate extensions that a PKIXCertPathChecker
+ * might possibly be able to process should be included in the set.
+ *
+ *
+ * @return an immutable Set of X.509 extension OIDs (in
+ * String format) supported by this
+ * PKIXCertPathChecker, or null if no
+ * extensions are supported
+
+
+ Performs the check(s) on the specified certificate using its internal
+ state and removes any critical extensions that it processes from the
+ specified collection of OID strings that represent the unresolved
+ critical extensions. The certificates are presented in the order
+ specified by the init method.
+
+ @param cert
+ the Certificate to be checked
+ @param unresolvedCritExts
+ a Collection of OID strings representing the
+ current set of unresolved critical extensions
+ @exception CertPathValidatorException
+ if the specified certificate does not pass the check
+
+
+ Returns a clone of this object. Calls the Object.clone()
+ method. All subclasses which maintain state must support and override
+ this method, if necessary.
+
+ @return a copy of this PKIXCertPathChecker
+
+
+ The Service Provider Interface (SPI)
+ for the {@link CertPathValidator CertPathValidator} class. All
+ CertPathValidator implementations must include a class (the
+ SPI class) that extends this class (CertPathValidatorSpi)
+ and implements all of its methods. In general, instances of this class
+ should only be accessed through the CertPathValidator class.
+ For details, see the Java Cryptography Architecture.
+
+ Concurrent Access
+
+ Instances of this class need not be protected against concurrent
+ access from multiple threads. Threads that need to access a single
+ CertPathValidatorSpi instance concurrently should synchronize
+ amongst themselves and provide the necessary locking before calling the
+ wrapping CertPathValidator object.
+
+ However, implementations of CertPathValidatorSpi may still
+ encounter concurrency issues, since multiple threads each
+ manipulating a different CertPathValidatorSpi instance need not
+ synchronize.
+
+ CertPathValidatorSpi implementation for X.509 Certificate validation a la RFC
+ 3280.
+
+
+
+ An exception indicating one of a variety of problems encountered when
+ validating a certification path.
+
+ A CertPathValidatorException provides support for wrapping
+ exceptions. The {@link #getCause getCause} method returns the throwable,
+ if any, that caused this exception to be thrown.
+
+ A CertPathValidatorException may also include the
+ certification path that was being validated when the exception was thrown
+ and the index of the certificate in the certification path that caused the
+ exception to be thrown. Use the {@link #getCertPath getCertPath} and
+ {@link #getIndex getIndex} methods to retrieve this information.
+
+ Concurrent Access
+
+ Unless otherwise specified, the methods defined in this class are not
+ thread-safe. Multiple threads that need to access a single
+ object concurrently should synchronize amongst themselves and
+ provide the necessary locking. Multiple threads each manipulating
+ separate objects need not synchronize.
+
+ @see CertPathValidator
+
+
+
+
+ Creates a PkixCertPathValidatorException with the given detail
+ message. A detail message is a String that describes this
+ particular exception.
+
+ the detail message
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message and cause.
+
+ the detail message
+ the cause (which is saved for later retrieval by the
+ {@link #getCause getCause()} method). (A null
+ value is permitted, and indicates that the cause is
+ nonexistent or unknown.)
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message, cause, certification path, and index.
+
+ the detail message (or null if none)
+ the cause (or null if none)
+ the certification path that was in the process of being
+ validated when the error was encountered
+ the index of the certificate in the certification path that *
+
+
+
+ Returns the detail message for this CertPathValidatorException.
+
+ the detail message, or null if neither the message nor cause were specified
+
+
+ Returns the certification path that was being validated when the
+ exception was thrown.
+
+ @return the CertPath that was being validated when the
+ exception was thrown (or null if not specified)
+
+
+ Returns the index of the certificate in the certification path that
+ caused the exception to be thrown. Note that the list of certificates in
+ a CertPath is zero based. If no index has been set, -1 is
+ returned.
+
+ @return the index that has been set, or -1 if none has been set
+
+
+
+ Summary description for PkixCertPathValidatorResult.
+
+
+
+
+ Summary description for PkixCertPathValidatorUtilities.
+
+
+
+
+ key usage bits
+
+
+
+
+ Search the given Set of TrustAnchor's for one that is the
+ issuer of the given X509 certificate.
+
+ the X509 certificate
+ a Set of TrustAnchor's
+ the TrustAnchor object if found or
+ null if not.
+
+ @exception
+
+
+
+ Returns the issuer of an attribute certificate or certificate.
+
+ The attribute certificate or certificate.
+ The issuer as X500Principal.
+
+
+ Return the next working key inheriting DSA parameters if necessary.
+
+ This methods inherits DSA parameters from the indexed certificate or
+ previous certificates in the certificate chain to the returned
+ PublicKey. The list is searched upwards, meaning the end
+ certificate is at position 0 and previous certificates are following.
+
+
+ If the indexed certificate does not contain a DSA key this method simply
+ returns the public key. If the DSA key already contains DSA parameters
+ the key is also only returned.
+
+
+ @param certs The certification path.
+ @param index The index of the certificate which contains the public key
+ which should be extended with DSA parameters.
+ @return The public key of the certificate in list position
+ index extended with DSA parameters if applicable.
+ @throws Exception if DSA parameters cannot be inherited.
+
+
+
+ Return a Collection of all certificates or attribute certificates found
+ in the X509Store's that are matching the certSelect criteriums.
+
+ a {@link Selector} object that will be used to select
+ the certificates
+ a List containing only X509Store objects. These
+ are used to search for certificates.
+ a Collection of all found or
+ objects.
+ May be empty but never null.
+
+
+
+ Add the CRL issuers from the cRLIssuer field of the distribution point or
+ from the certificate if not given to the issuer criterion of the
+ selector.
+
+ The issuerPrincipals are a collection with a single
+ X500Principal for X509Certificates. For
+ {@link X509AttributeCertificate}s the issuer may contain more than one
+ X500Principal.
+
+
+ @param dp The distribution point.
+ @param issuerPrincipals The issuers of the certificate or attribute
+ certificate which contains the distribution point.
+ @param selector The CRL selector.
+ @param pkixParams The PKIX parameters containing the cert stores.
+ @throws Exception if an exception occurs while processing.
+ @throws ClassCastException if issuerPrincipals does not
+ contain only X500Principals.
+
+
+ Fetches complete CRLs according to RFC 3280.
+
+ @param dp The distribution point for which the complete CRL
+ @param cert The X509Certificate or
+ {@link org.bouncycastle.x509.X509AttributeCertificate} for
+ which the CRL should be searched.
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @return A Set of X509CRLs with complete
+ CRLs.
+ @throws Exception if an exception occurs while picking the CRLs
+ or no CRLs are found.
+
+
+ Fetches delta CRLs according to RFC 3280 section 5.2.4.
+
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @param completeCRL The complete CRL the delta CRL is for.
+ @return A Set of X509CRLs with delta CRLs.
+ @throws Exception if an exception occurs while picking the delta
+ CRLs.
+
+
+ Find the issuer certificates of a given certificate.
+
+ @param cert
+ The certificate for which an issuer should be found.
+ @param pkixParams
+ @return A Collection object containing the issuer
+ X509Certificates. Never null.
+
+ @exception Exception
+ if an error occurs.
+
+
+
+ Extract the value of the given extension, if it exists.
+
+ The extension object.
+ The object identifier to obtain.
+ Asn1Object
+ if the extension cannot be read.
+
+
+
+ crl checking
+ Return a Collection of all CRLs found in the X509Store's that are
+ matching the crlSelect criteriums.
+
+ a {@link X509CRLStoreSelector} object that will be used
+ to select the CRLs
+ a List containing only {@link org.bouncycastle.x509.X509Store
+ X509Store} objects. These are used to search for CRLs
+ a Collection of all found {@link X509CRL X509CRL} objects. May be
+ empty but never null.
+
+
+
+ Returns the intersection of the permitted IP ranges in
+ permitted with ip.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ips The IP address with its subnet mask.
+ @return The Set of permitted IP ranges intersected with
+ ip.
+
+
+ Returns the union of the excluded IP ranges in excluded
+ with ip.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address with its subnet mask.
+ @return The Set of excluded IP ranges unified with
+ ip as byte arrays.
+
+
+ Calculates the union if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the union of both addresses.
+
+
+ Calculates the interesction if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the single IP address with its subnet
+ mask as a byte array or an empty Set.
+
+
+ Concatenates the IP address with its subnet mask.
+
+ @param ip The IP address.
+ @param subnetMask Its subnet mask.
+ @return The concatenated IP address with its subnet mask.
+
+
+ Splits the IP addresses and their subnet mask.
+
+ @param ipWithSubmask1 The first IP address with the subnet mask.
+ @param ipWithSubmask2 The second IP address with the subnet mask.
+ @return An array with two elements. Each element contains the IP address
+ and the subnet mask in this order.
+
+
+ Based on the two IP addresses and their subnet masks the IP range is
+ computed for each IP address - subnet mask pair and returned as the
+ minimum IP address and the maximum address of the range.
+
+ @param ip1 The first IP address.
+ @param subnetmask1 The subnet mask of the first IP address.
+ @param ip2 The second IP address.
+ @param subnetmask2 The subnet mask of the second IP address.
+ @return A array with two elements. The first/second element contains the
+ min and max IP address of the first/second IP address and its
+ subnet mask.
+
+
+ Checks if the IP ip is included in the permitted ISet
+ permitted.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is not permitted.
+
+
+ Checks if the IP ip is included in the excluded ISet
+ excluded.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is excluded.
+
+
+ Checks if the IP address ip is constrained by
+ constraint.
+
+ @param ip The IP address.
+ @param constraint The constraint. This is an IP address concatenated with
+ its subnetmask.
+ @return true if constrained, false
+ otherwise.
+
+
+ The common part of email1 and email2 is
+ added to the union union. If email1 and
+ email2 have nothing in common they are added both.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param union The union.
+
+
+ The most restricting part from email1 and
+ email2 is added to the intersection intersect.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param intersect The intersection.
+
+
+ Checks if the given GeneralName is in the permitted ISet.
+
+ @param name The GeneralName
+ @throws PkixNameConstraintValidatorException
+ If the name
+
+
+ Check if the given GeneralName is contained in the excluded ISet.
+
+ @param name The GeneralName.
+ @throws PkixNameConstraintValidatorException
+ If the name is
+ excluded.
+
+
+ Updates the permitted ISet of these name constraints with the intersection
+ with the given subtree.
+
+ @param permitted The permitted subtrees
+
+
+ Adds a subtree to the excluded ISet of these name constraints.
+
+ @param subtree A subtree with an excluded GeneralName.
+
+
+ Returns the maximum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The maximum IP address.
+
+
+ Returns the minimum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The minimum IP address.
+
+
+ Compares IP address ip1 with ip2. If ip1
+ is equal to ip2 0 is returned. If ip1 is bigger 1 is returned, -1
+ otherwise.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return 0 if ip1 is equal to ip2, 1 if ip1 is bigger, -1 otherwise.
+
+
+ Returns the logical OR of the IP addresses ip1 and
+ ip2.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The OR of ip1 and ip2.
+
+
+ Stringifies an IPv4 or v6 address with subnet mask.
+
+ @param ip The IP with subnet mask.
+ @return The stringified IP address.
+
+
+
+ Summary description for PkixParameters.
+
+
+
+ This is the default PKIX validity model. Actually there are two variants
+ of this: The PKIX model and the modified PKIX model. The PKIX model
+ verifies that all involved certificates must have been valid at the
+ current time. The modified PKIX model verifies that all involved
+ certificates were valid at the signing time. Both are indirectly choosen
+ with the {@link PKIXParameters#setDate(java.util.Date)} method, so this
+ methods sets the Date when all certificates must have been
+ valid.
+
+
+ This model uses the following validity model. Each certificate must have
+ been valid at the moment where is was used. That means the end
+ certificate must have been valid at the time the signature was done. The
+ CA certificate which signed the end certificate must have been valid,
+ when the end certificate was signed. The CA (or Root CA) certificate must
+ have been valid, when the CA certificate was signed and so on. So the
+ {@link PKIXParameters#setDate(java.util.Date)} method sets the time, when
+ the end certificate must have been valid. It is used e.g.
+ in the German signature law.
+
+
+ Creates an instance of PKIXParameters with the specified Set of
+ most-trusted CAs. Each element of the set is a TrustAnchor.
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+ @param trustAnchors
+ a Set of TrustAnchors
+
+ @exception InvalidAlgorithmParameterException
+ if the specified Set is empty
+ (trustAnchors.isEmpty() == true)
+ @exception NullPointerException
+ if the specified Set is null
+ @exception ClassCastException
+ if any of the elements in the Set are not of type
+ java.security.cert.TrustAnchor
+
+
+ Returns the required constraints on the target certificate. The
+ constraints are returned as an instance of CertSelector. If
+ null, no constraints are defined.
+
+ Note that the CertSelector returned is cloned to protect against
+ subsequent modifications.
+
+ @return a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #setTargetCertConstraints(CertSelector)
+
+
+ Sets the required constraints on the target certificate. The constraints
+ are specified as an instance of CertSelector. If null, no constraints are
+ defined.
+
+ Note that the CertSelector specified is cloned to protect against
+ subsequent modifications.
+
+ @param selector
+ a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #getTargetCertConstraints()
+
+
+ Returns an immutable Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. The
+ default return value is an empty Set, which is
+ interpreted as meaning that any policy would be acceptable.
+
+ @return an immutable Set of initial policy OIDs in String
+ format, or an empty Set (implying any policy is
+ acceptable). Never returns null.
+
+ @see #setInitialPolicies(java.util.Set)
+
+
+ Sets the Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. By
+ default, any policy is acceptable (i.e. all policies), so a user that
+ wants to allow any policy as acceptable does not need to call this
+ method, or can call it with an empty Set (or
+ null).
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+
+ @param initialPolicies
+ a Set of initial policy OIDs in String format (or
+ null)
+
+ @exception ClassCastException
+ if any of the elements in the set are not of type String
+
+ @see #getInitialPolicies()
+
+
+ Sets a List of additional certification path checkers. If
+ the specified List contains an object that is not a PKIXCertPathChecker,
+ it is ignored.
+
+ Each PKIXCertPathChecker specified implements additional
+ checks on a certificate. Typically, these are checks to process and
+ verify private extensions contained in certificates. Each
+ PKIXCertPathChecker should be instantiated with any
+ initialization parameters needed to execute the check.
+
+ This method allows sophisticated applications to extend a PKIX
+ CertPathValidator or CertPathBuilder. Each
+ of the specified PKIXCertPathCheckers will be called, in turn, by a PKIX
+ CertPathValidator or CertPathBuilder for
+ each certificate processed or validated.
+
+ Regardless of whether these additional PKIXCertPathCheckers are set, a
+ PKIX CertPathValidator or CertPathBuilder
+ must perform all of the required PKIX checks on each certificate. The one
+ exception to this rule is if the RevocationEnabled flag is set to false
+ (see the {@link #setRevocationEnabled(boolean) setRevocationEnabled}
+ method).
+
+ Note that the List supplied here is copied and each PKIXCertPathChecker
+ in the list is cloned to protect against subsequent modifications.
+
+ @param checkers
+ a List of PKIXCertPathCheckers. May be null, in which case no
+ additional checkers will be used.
+ @exception ClassCastException
+ if any of the elements in the list are not of type
+ java.security.cert.PKIXCertPathChecker
+ @see #getCertPathCheckers()
+
+
+ Returns the List of certification path checkers. Each PKIXCertPathChecker
+ in the returned IList is cloned to protect against subsequent modifications.
+
+ @return an immutable List of PKIXCertPathCheckers (may be empty, but not
+ null)
+
+ @see #setCertPathCheckers(java.util.List)
+
+
+ Adds a PKIXCertPathChecker to the list of certification
+ path checkers. See the {@link #setCertPathCheckers setCertPathCheckers}
+ method for more details.
+
+ Note that the PKIXCertPathChecker is cloned to protect
+ against subsequent modifications.
+
+ @param checker a PKIXCertPathChecker to add to the list of
+ checks. If null, the checker is ignored (not added to list).
+
+
+ Method to support Clone() under J2ME.
+ super.Clone() does not exist and fields are not copied.
+
+ @param params Parameters to set. If this are
+ ExtendedPkixParameters they are copied to.
+
+
+ Whether delta CRLs should be used for checking the revocation status.
+ Defaults to false.
+
+
+ The validity model.
+ @see #CHAIN_VALIDITY_MODEL
+ @see #PKIX_VALIDITY_MODEL
+
+
+ Sets the Bouncy Castle Stores for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ The IList is cloned.
+
+
+ @param stores A list of stores to use.
+ @see #getStores
+ @throws ClassCastException if an element of stores is not
+ a {@link Store}.
+
+
+ Adds a Bouncy Castle {@link Store} to find CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ This method should be used to add local stores, like collection based
+ X.509 stores, if available. Local stores should be considered first,
+ before trying to use additional (remote) locations, because they do not
+ need possible additional network traffic.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores
+
+
+ Adds an additional Bouncy Castle {@link Store} to find CRLs, certificates,
+ attribute certificates or cross certificates.
+
+ You should not use this method. This method is used for adding additional
+ X.509 stores, which are used to add (remote) locations, e.g. LDAP, found
+ during X.509 object processing, e.g. in certificates or CRLs. This method
+ is used in PKIX certification path processing.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores()
+
+
+ Returns an IList of additional Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of additional Bouncy Castle
+ Stores. Never null.
+
+ @see #addAddionalStore(Store)
+
+
+ Returns an IList of Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of Bouncy Castle
+ Stores. Never null.
+
+ @see #setStores(IList)
+
+
+ Returns if additional {@link X509Store}s for locations like LDAP found
+ in certificates or CRLs should be used.
+
+ @return Returns true if additional stores are used.
+
+
+ Sets if additional {@link X509Store}s for locations like LDAP found in
+ certificates or CRLs should be used.
+
+ @param enabled true if additional stores are used.
+
+
+ Returns the required constraints on the target certificate or attribute
+ certificate. The constraints are returned as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector returned is cloned to protect
+ against subsequent modifications.
+
+ @return a IX509Selector specifying the constraints on the
+ target certificate or attribute certificate (or null)
+ @see #setTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Sets the required constraints on the target certificate or attribute
+ certificate. The constraints are specified as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector specified is cloned to protect
+ against subsequent modifications.
+
+
+ @param selector a IX509Selector specifying the constraints on
+ the target certificate or attribute certificate (or
+ null)
+ @see #getTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Returns the trusted attribute certificate issuers. If attribute
+ certificates is verified the trusted AC issuers must be set.
+
+ The returned ISet consists of TrustAnchors.
+
+ The returned ISet is immutable. Never null
+
+
+ @return Returns an immutable set of the trusted AC issuers.
+
+
+ Sets the trusted attribute certificate issuers. If attribute certificates
+ is verified the trusted AC issuers must be set.
+
+ The trustedACIssuers must be a ISet of
+ TrustAnchor
+
+ The given set is cloned.
+
+
+ @param trustedACIssuers The trusted AC issuers to set. Is never
+ null.
+ @throws ClassCastException if an element of stores is not
+ a TrustAnchor.
+
+
+ Returns the necessary attributes which must be contained in an attribute
+ certificate.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the necessary AC attributes.
+
+
+ Sets the necessary which must be contained in an attribute certificate.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param necessaryACAttributes The necessary AC attributes to set.
+ @throws ClassCastException if an element of
+ necessaryACAttributes is not a
+ String.
+
+
+ Returns the attribute certificates which are not allowed.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the prohibited AC attributes. Is never null.
+
+
+ Sets the attribute certificates which are not allowed.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param prohibitedACAttributes The prohibited AC attributes to set.
+ @throws ClassCastException if an element of
+ prohibitedACAttributes is not a
+ String.
+
+
+ Returns the attribute certificate checker. The returned set contains
+ {@link PKIXAttrCertChecker}s and is immutable.
+
+ @return Returns the attribute certificate checker. Is never
+ null.
+
+
+ Sets the attribute certificate checkers.
+
+ All elements in the ISet must a {@link PKIXAttrCertChecker}.
+
+
+ The given set is cloned.
+
+
+ @param attrCertCheckers The attribute certificate checkers to set. Is
+ never null.
+ @throws ClassCastException if an element of attrCertCheckers
+ is not a PKIXAttrCertChecker.
+
+
+
+ Summary description for PkixPolicyNode.
+
+
+
+ Constructors
+
+
+
+ This class helps to handle CRL revocation reasons mask. Each CRL handles a
+ certain set of revocation reasons.
+
+
+
+
+ Constructs are reason mask with the reasons.
+
+ The reasons.
+
+
+
+ A reason mask with no reason.
+
+
+
+
+ A mask with all revocation reasons.
+
+
+
+ Adds all reasons from the reasons mask to this mask.
+
+ @param mask The reasons mask to add.
+
+
+
+ Returns true if this reasons mask contains all possible
+ reasons.
+
+ true if this reasons mask contains all possible reasons.
+
+
+
+
+ Intersects this mask with the given reasons mask.
+
+ mask The mask to intersect with.
+ The intersection of this and teh given mask.
+
+
+
+ Returns true if the passed reasons mask has new reasons.
+
+ The reasons mask which should be tested for new reasons.
+ true if the passed reasons mask has new reasons.
+
+
+
+ Returns the reasons in this mask.
+
+
+
+ If the complete CRL includes an issuing distribution point (IDP) CRL
+ extension check the following:
+
+ (i) If the distribution point name is present in the IDP CRL extension
+ and the distribution field is present in the DP, then verify that one of
+ the names in the IDP matches one of the names in the DP. If the
+ distribution point name is present in the IDP CRL extension and the
+ distribution field is omitted from the DP, then verify that one of the
+ names in the IDP matches one of the names in the cRLIssuer field of the
+ DP.
+
+
+ (ii) If the onlyContainsUserCerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate does not include the basic
+ constraints extension with the cA boolean asserted.
+
+
+ (iii) If the onlyContainsCACerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate includes the basic constraints
+ extension with the cA boolean asserted.
+
+
+ (iv) Verify that the onlyContainsAttributeCerts boolean is not asserted.
+
+
+ @param dp The distribution point.
+ @param cert The certificate.
+ @param crl The CRL.
+ @throws AnnotatedException if one of the conditions is not met or an error occurs.
+
+
+ If the DP includes cRLIssuer, then verify that the issuer field in the
+ complete CRL matches cRLIssuer in the DP and that the complete CRL
+ contains an
+ g distribution point extension with the indirectCRL
+ boolean asserted. Otherwise, verify that the CRL issuer matches the
+ certificate issuer.
+
+ @param dp The distribution point.
+ @param cert The certificate ot attribute certificate.
+ @param crl The CRL for cert.
+ @throws AnnotatedException if one of the above conditions does not apply or an error
+ occurs.
+
+
+ Obtain and validate the certification path for the complete CRL issuer.
+ If a key usage extension is present in the CRL issuer's certificate,
+ verify that the cRLSign bit is set.
+
+ @param crl CRL which contains revocation information for the certificate
+ cert.
+ @param cert The attribute certificate or certificate to check if it is
+ revoked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param paramsPKIX paramsPKIX PKIX parameters.
+ @param certPathCerts The certificates on the certification path.
+ @return A Set with all keys of possible CRL issuer
+ certificates.
+ @throws AnnotatedException if the CRL is not valid or the status cannot be checked or
+ some error occurs.
+
+
+ Checks a distribution point for revocation information for the
+ certificate cert.
+
+ @param dp The distribution point to consider.
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param certStatus The current certificate revocation status.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ Checks a certificate if it is revoked.
+
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param sign The issuer certificate of the certificate cert.
+ @param workingPublicKey The public key of the issuer certificate sign.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ If use-deltas is set, verify the issuer and scope of the delta CRL.
+
+ @param deltaCRL The delta CRL.
+ @param completeCRL The complete CRL.
+ @param pkixParams The PKIX paramaters.
+ @throws AnnotatedException if an exception occurs.
+
+
+ Checks if an attribute certificate is revoked.
+
+ @param attrCert Attribute certificate to check if it is revoked.
+ @param paramsPKIX PKIX parameters.
+ @param issuerCert The issuer certificate of the attribute certificate
+ attrCert.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+
+ @throws CertPathValidatorException if the certificate is revoked or the
+ status cannot be checked or some error occurs.
+
+
+ Searches for a holder public key certificate and verifies its
+ certification path.
+
+ @param attrCert the attribute certificate.
+ @param pkixParams The PKIX parameters.
+ @return The certificate path of the holder certificate.
+ @throws Exception if
+
+ - no public key certificate can be found although holder
+ information is given by an entity name or a base certificate
+ ID
+ - support classes cannot be created
+ - no certification path for the public key certificate can
+ be built
+
+
+
+
+ Checks a distribution point for revocation information for the
+ certificate attrCert.
+
+ @param dp The distribution point to consider.
+ @param attrCert The attribute certificate which should be checked.
+ @param paramsPKIX PKIX parameters.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param issuerCert Certificate to check if it is revoked.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+ @throws Exception if the certificate is revoked or the status
+ cannot be checked or some error occurs.
+
+
+
+ A trust anchor or most-trusted Certification Authority (CA).
+
+ This class represents a "most-trusted CA", which is used as a trust anchor
+ for validating X.509 certification paths. A most-trusted CA includes the
+ public key of the CA, the CA's name, and any constraints upon the set of
+ paths which may be validated using this key. These parameters can be
+ specified in the form of a trusted X509Certificate or as individual
+ parameters.
+
+
+
+
+ Creates an instance of TrustAnchor with the specified X509Certificate and
+ optional name constraints, which are intended to be used as additional
+ constraints when validating an X.509 certification path.
+ The name constraints are specified as a byte array. This byte array
+ should contain the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459 and
+ X.509. The ASN.1 definition of this structure appears below.
+
+
+ NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+ GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+ GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+ BaseDistance ::= INTEGER (0..MAX)
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+
+ Note that the name constraints byte array supplied is cloned to protect
+ against subsequent modifications.
+
+ a trusted X509Certificate
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ if the specified X509Certificate is null
+
+
+
+ Creates an instance of TrustAnchor where the
+ most-trusted CA is specified as an X500Principal and public key.
+
+
+
+ Name constraints are an optional parameter, and are intended to be used
+ as additional constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459
+ and X.509. The ASN.1 notation for this structure is supplied in the
+ documentation for the other constructors.
+
+ Note that the name constraints byte array supplied here is cloned to
+ protect against subsequent modifications.
+
+
+ the name of the most-trusted CA as X509Name
+ the public key of the most-trusted CA
+
+ a byte array containing the ASN.1 DER encoding of a NameConstraints extension to
+ be used for checking name constraints. Only the value of the extension is included,
+ not the OID or criticality flag. Specify null to omit the parameter.
+
+
+ if caPrincipal or pubKey is null
+
+
+
+
+ Creates an instance of TrustAnchor where the most-trusted
+ CA is specified as a distinguished name and public key. Name constraints
+ are an optional parameter, and are intended to be used as additional
+ constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they would
+ appear in the NameConstraints structure defined in RFC 2459 and X.509.
+
+ the X.500 distinguished name of the most-trusted CA in RFC
+ 2253 string format
+ the public key of the most-trusted CA
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ throws NullPointerException, IllegalArgumentException
+
+
+
+ Returns the most-trusted CA certificate.
+
+
+
+
+ Returns the name of the most-trusted CA as an X509Name.
+
+
+
+
+ Returns the name of the most-trusted CA in RFC 2253 string format.
+
+
+
+
+ Returns the public key of the most-trusted CA.
+
+
+
+
+ Decode the name constraints and clone them if not null.
+
+
+
+
+ Returns a formatted string describing the TrustAnchor.
+
+ a formatted string describing the TrustAnchor
+
+
+ Base class for an RFC 3161 Time Stamp Request.
+
+
+ Create a TimeStampRequest from the past in byte array.
+
+ @param req byte array containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Create a TimeStampRequest from the past in input stream.
+
+ @param in input stream containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Validate the timestamp request, checking the digest to see if it is of an
+ accepted type and whether it is of the correct length for the algorithm specified.
+
+ @param algorithms a set of string OIDS giving accepted algorithms.
+ @param policies if non-null a set of policies we are willing to sign under.
+ @param extensions if non-null a set of extensions we are willing to accept.
+ @throws TspException if the request is invalid, or processing fails.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Request objects.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ Base class for an RFC 3161 Time Stamp Response object.
+
+
+ Create a TimeStampResponse from a byte array containing an ASN.1 encoding.
+
+ @param resp the byte array containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the byte array doesn't represent an ASN.1 encoding.
+
+
+ Create a TimeStampResponse from an input stream containing an ASN.1 encoding.
+
+ @param input the input stream containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the stream doesn't represent an ASN.1 encoding.
+
+
+ Check this response against to see if it a well formed response for
+ the passed in request. Validation will include checking the time stamp
+ token if the response status is GRANTED or GRANTED_WITH_MODS.
+
+ @param request the request to be checked against
+ @throws TspException if the request can not match this response.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Responses.
+
+
+ Return an appropriate TimeStampResponse.
+
+ If genTime is null a timeNotAvailable error response will be returned.
+
+ @param request the request this response is for.
+ @param serialNumber serial number for the response token.
+ @param genTime generation time for the response token.
+ @param provider provider to use for signature calculation.
+ @return
+ @throws NoSuchAlgorithmException
+ @throws NoSuchProviderException
+ @throws TSPException
+
+
+
+ Generate a TimeStampResponse with chosen status and FailInfoField.
+
+ @param status the PKIStatus to set.
+ @param failInfoField the FailInfoField to set.
+ @param statusString an optional string describing the failure.
+ @return a TimeStampResponse with a failInfoField and optional statusString
+ @throws TSPException in case the response could not be created
+
+
+ Validate the time stamp token.
+
+ To be valid the token must be signed by the passed in certificate and
+ the certificate must be the one referred to by the SigningCertificate
+ attribute included in the hashed attributes of the token. The
+ certificate must also have the ExtendedKeyUsageExtension with only
+ KeyPurposeID.IdKPTimeStamping and have been valid at the time the
+ timestamp was created.
+
+
+ A successful call to validate means all the above are true.
+
+
+
+ Return the underlying CmsSignedData object.
+
+ @return the underlying CMS structure.
+
+
+ Return a ASN.1 encoded byte stream representing the encoded object.
+
+ @throws IOException if encoding fails.
+
+
+ basic creation - only the default attributes will be included here.
+
+
+ create with a signer with extra signed/unsigned attributes.
+
+
+ @return the nonce value, null if there isn't one.
+
+
+ Recognised hash algorithms for the time stamp protocol.
+
+
+ Fetches the signature time-stamp attributes from a SignerInformation object.
+ Checks that the MessageImprint for each time-stamp matches the signature field.
+ (see RFC 3161 Appendix A).
+
+ @param signerInfo a SignerInformation to search for time-stamps
+ @return a collection of TimeStampToken objects
+ @throws TSPValidationException
+
+
+ Validate the passed in certificate as being of the correct type to be used
+ for time stamping. To be valid it must have an ExtendedKeyUsage extension
+ which has a key purpose identifier of id-kp-timeStamping.
+
+ @param cert the certificate of interest.
+ @throws TspValidationException if the certicate fails on one of the check points.
+
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Exception thrown if a TSP request or response fails to validate.
+
+ If a failure code is associated with the exception it can be retrieved using
+ the getFailureCode() method.
+
+
+ Return the failure code associated with this exception - if one is set.
+
+ @return the failure code if set, -1 otherwise.
+
+
+ General array utilities.
+
+
+
+ Are two arrays equal.
+
+ Left side.
+ Right side.
+ True if equal.
+
+
+
+ A constant time equals comparison - does not terminate early if
+ test will fail.
+
+ first array
+ second array
+ true if arrays equal, false otherwise.
+
+
+ Make a copy of a range of bytes from the passed in data array. The range can
+ extend beyond the end of the input array, in which case the return array will
+ be padded with zeroes.
+
+ @param data the array from which the data is to be copied.
+ @param from the start index at which the copying should take place.
+ @param to the final index of the range (exclusive).
+
+ @return a new byte array containing the range given.
+
+
+ BigInteger utilities.
+
+
+ Return the passed in value as an unsigned byte array.
+
+ @param value value to be converted.
+ @return a byte array without a leading zero byte if present in the signed encoding.
+
+
+ Return the passed in value as an unsigned byte array of specified length, zero-extended as necessary.
+
+ @param length desired length of result array.
+ @param n value to be converted.
+ @return a byte array of specified length, with leading zeroes as necessary given the size of n.
+
+
+ Return a random BigInteger not less than 'min' and not greater than 'max'
+
+ @param min the least value that may be generated
+ @param max the greatest value that may be generated
+ @param random the source of randomness
+ @return a random BigInteger value in the range [min,max]
+
+
+
+ Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value.
+
+ A UTC DateTime value not before epoch.
+ Number of whole milliseconds after epoch.
+ 'dateTime' is before epoch.
+
+
+
+ Create a DateTime value from the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+ Number of milliseconds since the epoch.
+ A UTC DateTime value
+
+
+
+ Return the current number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a base 64 output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A buffering class to allow translation from one format to another to
+ be done in discrete chunks.
+
+
+
+
+ Create a buffered Decoder.
+
+ The translater to use.
+ The size of the buffer.
+
+
+
+ Process one byte of data.
+
+ Data in.
+ Byte array for the output.
+ The offset in the output byte array to start writing from.
+ The amount of output bytes.
+
+
+
+ Process data from a byte array.
+
+ The input data.
+ Start position within input data array.
+ Amount of data to process from input data array.
+ Array to store output.
+ Position in output array to start writing from.
+ The amount of output bytes.
+
+
+
+ A class that allows encoding of data using a specific encoder to be processed in chunks.
+
+
+
+
+ Create.
+
+ The translator to use.
+ Size of the chunks.
+
+
+
+ Process one byte of data.
+
+ The byte.
+ An array to store output in.
+ Offset within output array to start writing from.
+
+
+
+
+ Process data from a byte array.
+
+ Input data Byte array containing data to be processed.
+ Start position within input data array.
+ Amount of input data to be processed.
+ Output data array.
+ Offset within output data array to start writing to.
+ The amount of data written.
+
+
+
+ Class to decode and encode Hex.
+
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a Hex output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A hex translator.
+
+
+
+
+ Return encoded block size.
+
+ 2
+
+
+
+ Encode some data.
+
+ Input data array.
+ Start position within input data array.
+ The amount of data to process.
+ The output data array.
+ The offset within the output data array to start writing from.
+ Amount of data encoded.
+
+
+
+ Returns the decoded block size.
+
+ 1
+
+
+
+ Decode data from a byte array.
+
+ The input data array.
+ Start position within input data array.
+ The amounty of data to process.
+ The output data array.
+ The position within the output data array to start writing from.
+ The amount of data written.
+
+
+ Encode and decode byte arrays (typically from binary to 7-bit ASCII
+ encodings).
+
+
+
+ Translator interface.
+
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Encode the input data producing a URL safe base 64 encoded byte array.
+
+ @return a byte array containing the URL safe base 64 encoded data.
+
+
+ Encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Decode the URL safe base 64 encoded input data - white space will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the URL safe base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the URL safe base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the URL safe base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+
+ Produce a copy of this object with its configuration and in its current state.
+
+
+ The returned object may be used simply to store the state, or may be used as a similar object
+ starting from the copied state.
+
+
+
+
+ Restore a copied object state into this object.
+
+
+ Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
+
+ an object originally {@link #copy() copied} from an object of the same type as this instance.
+ if the provided object is not of the correct type.
+ if the other parameter is in some other way invalid.
+
+
+
+ A
+
+
+
+
+
+ A
+
+
+ A
+
+
+
+
+
+ A
+
+
+
+
+ A generic PEM writer, based on RFC 1421
+
+
+ Base constructor.
+
+ @param out output stream to use.
+
+
+ Return the number of bytes or characters required to contain the
+ passed in object if it is PEM encoded.
+
+ @param obj pem object to be output
+ @return an estimate of the number of bytes
+
+
+
+ Pipe all bytes from inStr to outStr, throwing StreamFlowException if greater
+ than limit bytes in inStr.
+
+
+ A
+
+
+ A
+
+
+ A
+
+ The number of bytes actually transferred, if not greater than limit
+
+
+
+
+
+
+ Exception to be thrown on a failure to reset an object implementing Memoable.
+
+ The exception extends InvalidCastException to enable users to have a single handling case,
+ only introducing specific handling of this one if required.
+
+
+
+ Basic Constructor.
+
+ @param msg message to be associated with this exception.
+
+
+ Validate the given IPv4 or IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address, false otherwise
+
+
+ Validate the given IPv4 or IPv6 address and netmask.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address with netmask, false otherwise
+
+
+ Validate the given IPv4 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ Validate the given IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ General string utilities.
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ The Holder object.
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+
+ Constructs a holder for v2 attribute certificates with a hash value for
+ some type of object.
+
+ digestedObjectType can be one of the following:
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+ This cannot be used if a v1 attribute certificate is used.
+
+ @param digestedObjectType The digest object type.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param otherObjectTypeID The object type ID if
+ digestedObjectType is
+ otherObjectDigest.
+ @param objectDigest The hash value.
+
+
+ Returns the digest object type if an object digest info is used.
+
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+
+ @return The digest object type or -1 if no object digest info is set.
+
+
+ Returns the other object type ID if an object digest info is used.
+
+ @return The other object type ID or null if no object
+ digest info is set.
+
+
+ Returns the hash if an object digest info is used.
+
+ @return The hash or null if no object digest info is set.
+
+
+ Returns the digest algorithm ID if an object digest info is used.
+
+ @return The digest algorithm ID or null if no object
+ digest info is set.
+
+
+ Return any principal objects inside the attribute certificate holder entity names field.
+
+ @return an array of IPrincipal objects (usually X509Name), null if no entity names field is set.
+
+
+ Return the principals associated with the issuer attached to this holder
+
+ @return an array of principals, null if no BaseCertificateID is set.
+
+
+ Return the serial number associated with the issuer attached to this holder.
+
+ @return the certificate serial number, null if no BaseCertificateID is set.
+
+
+ Carrying class for an attribute certificate issuer.
+
+
+ Set the issuer directly with the ASN.1 structure.
+
+ @param issuer The issuer
+
+
+ Return any principal objects inside the attribute certificate issuer object.
+ An array of IPrincipal objects (usually X509Principal).
+
+
+ A high level authority key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Create an AuthorityKeyIdentifier using the passed in certificate's public
+ key, issuer and serial number.
+
+ @param certificate the certificate providing the information.
+ @throws CertificateParsingException if there is a problem processing the certificate
+
+
+ Create an AuthorityKeyIdentifier using just the hash of the
+ public key.
+
+ @param pubKey the key to generate the hash from.
+ @throws InvalidKeyException if there is a problem using the key.
+
+
+ A high level subject key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Interface for an X.509 Attribute Certificate.
+
+
+ The version number for the certificate.
+
+
+ The serial number for the certificate.
+
+
+ The UTC DateTime before which the certificate is not valid.
+
+
+ The UTC DateTime after which the certificate is not valid.
+
+
+ The holder of the certificate.
+
+
+ The issuer details for the certificate.
+
+
+ Return the attributes contained in the attribute block in the certificate.
+ An array of attributes.
+
+
+ Return the attributes with the same type as the passed in oid.
+ The object identifier we wish to match.
+ An array of matched attributes, null if there is no match.
+
+
+ Return an ASN.1 encoded byte array representing the attribute certificate.
+ An ASN.1 encoded byte array.
+ If the certificate cannot be encoded.
+
+
+
+ Get all critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ Get all non-critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ A utility class that will extract X509Principal objects from X.509 certificates.
+
+ Use this in preference to trying to recreate a principal from a string, not all
+ DNs are what they should be, so it's best to leave them encoded where they
+ can be.
+
+
+
+ Return the issuer of the given cert as an X509Principal.
+
+
+ Return the subject of the given cert as an X509Principal.
+
+
+ Return the issuer of the given CRL as an X509Principal.
+
+
+ This class is an Selector like implementation to select
+ attribute certificates from a given set of criteria.
+
+ @see org.bouncycastle.x509.X509AttributeCertificate
+ @see org.bouncycastle.x509.X509Store
+
+
+
+ Decides if the given attribute certificate should be selected.
+
+ The attribute certificate to be checked.
+ true if the object matches this selector.
+
+
+ The attribute certificate which must be matched.
+ If null is given, any will do.
+
+
+ The criteria for validity
+ If null is given any will do.
+
+
+ The holder.
+ If null is given any will do.
+
+
+ The issuer.
+ If null is given any will do.
+
+
+ The serial number.
+ If null is given any will do.
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name The name as a GeneralName (not null)
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the name in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target names criteria. If null is
+ given any will do.
+
+ The collection consists of either GeneralName objects or byte[] arrays representing
+ DER encoded GeneralName structures.
+
+
+ @param names A collection of target names.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetName(byte[])
+ @see #AddTargetName(GeneralName)
+
+
+ Gets the target names. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target names
+ @see #setTargetNames(Collection)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param group The group as GeneralName form (not null)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the group in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target groups criteria. If null is
+ given any will do.
+
+ The collection consists of GeneralName objects or byte[]
+ representing DER encoded GeneralNames.
+
+
+ @param names A collection of target groups.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetGroup(byte[])
+ @see #AddTargetGroup(GeneralName)
+
+
+ Gets the target groups. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target groups.
+ @see #setTargetGroups(Collection)
+
+
+
+ This class is an IX509Selector implementation to select
+ certificate pairs, which are e.g. used for cross certificates. The set of
+ criteria is given from two X509CertStoreSelector objects,
+ each of which, if present, must match the respective component of a pair.
+
+
+
+ The certificate pair which is used for testing on equality.
+
+
+ The certificate selector for the forward part.
+
+
+ The certificate selector for the reverse part.
+
+
+
+ Decides if the given certificate pair should be selected. If
+ obj is not a X509CertificatePair, this method
+ returns false.
+
+ The X509CertificatePair to be tested.
+ true if the object matches this selector.
+
+
+
+ An ISet of DerObjectIdentifier objects.
+
+
+
+ A simple collection backed store.
+
+
+ Basic constructor.
+
+ @param collection - initial contents for the store, this is copied.
+
+
+ Return the matches in the collection for the passed in selector.
+
+ @param selector the selector to match against.
+ @return a possibly empty collection of matching objects.
+
+
+ This class contains a collection for collection based X509Stores.
+
+
+
+ Constructor.
+
+ The collection is copied.
+
+
+ The collection containing X.509 object types.
+ If collection is null.
+
+
+ Returns a copy of the ICollection.
+
+
+ Returns a formatted string describing the parameters.
+
+
+
+ An ICollection of X509Name objects
+
+
+
+ The attribute certificate being checked. This is not a criterion.
+ Rather, it is optional information that may help a {@link X509Store} find
+ CRLs that would be relevant when checking revocation for the specified
+ attribute certificate. If null is specified, then no such
+ optional information is provided.
+
+ @param attrCert the IX509AttributeCertificate being checked (or
+ null)
+ @see #getAttrCertificateChecking()
+
+
+ If true only complete CRLs are returned. Defaults to
+ false.
+
+ @return true if only complete CRLs are returned.
+
+
+ Returns if this selector must match CRLs with the delta CRL indicator
+ extension set. Defaults to false.
+
+ @return Returns true if only CRLs with the delta CRL
+ indicator extension are selected.
+
+
+ The issuing distribution point.
+
+ The issuing distribution point extension is a CRL extension which
+ identifies the scope and the distribution point of a CRL. The scope
+ contains among others information about revocation reasons contained in
+ the CRL. Delta CRLs and complete CRLs must have matching issuing
+ distribution points.
+
+ The byte array is cloned to protect against subsequent modifications.
+
+ You must also enable or disable this criteria with
+ {@link #setIssuingDistributionPointEnabled(bool)}.
+
+ @param issuingDistributionPoint The issuing distribution point to set.
+ This is the DER encoded OCTET STRING extension value.
+ @see #getIssuingDistributionPoint()
+
+
+ Whether the issuing distribution point criteria should be applied.
+ Defaults to false.
+
+ You may also set the issuing distribution point criteria if not a missing
+ issuing distribution point should be assumed.
+
+ @return Returns if the issuing distribution point check is enabled.
+
+
+ The maximum base CRL number. Defaults to null.
+
+ @return Returns the maximum base CRL number.
+ @see #setMaxBaseCRLNumber(BigInteger)
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+ Class for carrying the values in an X.509 Attribute.
+
+
+ @param at an object representing an attribute.
+
+
+ Create an X.509 Attribute with the type given by the passed in oid and
+ the value represented by an ASN.1 Set containing value.
+
+ @param oid type of the attribute
+ @param value value object to go into the atribute's value set.
+
+
+ Create an X.59 Attribute with the type given by the passed in oid and the
+ value represented by an ASN.1 Set containing the objects in value.
+
+ @param oid type of the attribute
+ @param value vector of values to go in the attribute's value set.
+
+
+
+ An Object representing an X509 Certificate.
+ Has static methods for loading Certificates encoded in many forms that return X509Certificate Objects.
+
+
+
+
+ Return true if the current time is within the start and end times nominated on the certificate.
+
+ true id certificate is valid for the current time.
+
+
+
+ Return true if the nominated time is within the start and end times nominated on the certificate.
+
+ The time to test validity against.
+ True if certificate is valid for nominated time.
+
+
+
+ Checks if the current date is within certificate's validity period.
+
+
+
+
+ Checks if the given date is within certificate's validity period.
+
+ if the certificate is expired by given date
+ if the certificate is not yet valid on given date
+
+
+
+ Return the certificate's version.
+
+ An integer whose value Equals the version of the cerficate.
+
+
+
+ Return a BigInteger containing the serial number.
+
+ The Serial number.
+
+
+
+ Get the Issuer Distinguished Name. (Who signed the certificate.)
+
+ And X509Object containing name and value pairs.
+
+
+
+ Get the subject of this certificate.
+
+ An X509Name object containing name and value pairs.
+
+
+
+ The time that this certificate is valid from.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ The time that this certificate is valid up to.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ Return the Der encoded TbsCertificate data.
+ This is the certificate component less the signature.
+ To Get the whole certificate call the GetEncoded() member.
+
+ A byte array containing the Der encoded Certificate component.
+
+
+
+ The signature.
+
+ A byte array containg the signature of the certificate.
+
+
+
+ A meaningful version of the Signature Algorithm. (EG SHA1WITHRSA)
+
+ A sting representing the signature algorithm.
+
+
+
+ Get the Signature Algorithms Object ID.
+
+ A string containg a '.' separated object id.
+
+
+
+ Get the signature algorithms parameters. (EG DSA Parameters)
+
+ A byte array containing the Der encoded version of the parameters or null if there are none.
+
+
+
+ Get the issuers UID.
+
+ A DerBitString.
+
+
+
+ Get the subjects UID.
+
+ A DerBitString.
+
+
+
+ Get a key usage guidlines.
+
+
+
+
+ Get the public key of the subject of the certificate.
+
+ The public key parameters.
+
+
+
+ Return a Der encoded version of this certificate.
+
+ A byte array.
+
+
+
+ Verify the certificate's signature using the nominated public key.
+
+ An appropriate public key parameter object, RsaPublicKeyParameters, DsaPublicKeyParameters or ECDsaPublicKeyParameters
+ True if the signature is valid.
+ If key submitted is not of the above nominated types.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+
+ This class contains a cross certificate pair. Cross certificates pairs may
+ contain two cross signed certificates from two CAs. A certificate from the
+ other CA to this CA is contained in the forward certificate, the certificate
+ from this CA to the other CA is contained in the reverse certificate.
+
+
+
+ Constructor
+ Certificate from the other CA to this CA.
+ Certificate from this CA to the other CA.
+
+
+ Constructor from a ASN.1 CertificatePair structure.
+ The CertificatePair ASN.1 object.
+
+
+ Returns the certificate from the other CA to this CA.
+
+
+ Returns the certificate from this CA to the other CA.
+
+
+ class for dealing with X509 certificates.
+
+ At the moment this will deal with "-----BEGIN CERTIFICATE-----" to "-----END CERTIFICATE-----"
+ base 64 encoded certs, as well as the BER binaries of certificates and some classes of PKCS#7
+ objects.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRLs
+
+ Authority Key Identifier
+ Issuer Alternative Name
+ CRL Number
+ Delta CRL Indicator (critical)
+ Issuing Distribution Point (critical)
+
+
+
+ Verify the CRL's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the CRL's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the CRL algorithm is invalid.
+
+
+ Returns a string representation of this CRL.
+
+ @return a string representation of this CRL.
+
+
+ Checks whether the given certificate is on this CRL.
+
+ @param cert the certificate to check for.
+ @return true if the given certificate is on this CRL,
+ false otherwise.
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRL Entries
+
+ ReasonCode Hode Instruction Code Invalidity Date Certificate Issuer
+ (critical)
+
+
+ Constructor for CRLEntries of indirect CRLs. If isIndirect
+ is false {@link #getCertificateIssuer()} will always
+ return null, previousCertificateIssuer is
+ ignored. If this isIndirect is specified and this CrlEntry
+ has no certificate issuer CRL entry extension
+ previousCertificateIssuer is returned by
+ {@link #getCertificateIssuer()}.
+
+ @param c
+ TbsCertificateList.CrlEntry object.
+ @param isIndirect
+ true if the corresponding CRL is a indirect
+ CRL.
+ @param previousCertificateIssuer
+ Certificate issuer of the previous CrlEntry.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate revocation list (CRL) object and initializes
+ it with the data read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the CRLs read from
+ the given input stream inStream.
+
+ The inStream may contain a sequence of DER-encoded CRLs, or
+ a PKCS#7 CRL set. This is a PKCS#7 SignedData object, with the
+ only significant field being crls. In particular the signature
+ and the contents are ignored.
+
+
+
+ Get non critical extensions.
+
+ A set of non critical extension oids.
+
+
+
+ Get any critical extensions.
+
+ A sorted list of critical entension.
+
+
+
+ Get the value of a given extension.
+
+ The object ID of the extension.
+ An Asn1OctetString object if that extension is found or null if not.
+
+
+ A holding class for constructing an X509 Key Usage extension.
+
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509KeyUsage.keyEncipherment | X509KeyUsage.dataEncipherment)
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Class to Generate X509V1 Certificates.
+
+
+
+
+ Default Constructor.
+
+
+
+
+ Reset the generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can get.
+ The serial number.
+
+
+
+ Set the issuer distinguished name.
+ The issuer is the entity whose private key is used to sign the certificate.
+
+ The issuers DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the subject distinguished name.
+ The subject describes the entity associated with the public key.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+ This can be either a name or an OID, names are treated as case insensitive.
+
+ string representation of the algorithm name
+
+
+
+ Generate a new X509Certificate.
+
+ The private key of the issuer used to sign this certificate.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate specifying a SecureRandom instance that you would like to use.
+
+ The private key of the issuer used to sign this certificate.
+ The Secure Random you want to use.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ An implementation of a version 2 X.509 Attribute Certificate.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+ Class to produce an X.509 Version 2 AttributeCertificate.
+
+
+ Reset the generator
+
+
+ Set the Holder of this Attribute Certificate.
+
+
+ Set the issuer.
+
+
+ Set the serial number for the certificate.
+
+
+
+ Set the signature algorithm. This can be either a name or an OID, names
+ are treated as case insensitive.
+
+ The algorithm name.
+
+
+ Add an attribute.
+
+
+ Add a given extension field for the standard extensions tag.
+
+
+
+ Add a given extension field for the standard extensions tag.
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject,
+ using the supplied source of randomness, if required.
+
+
+
+
+ Generate a new X.509 Attribute Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An IX509AttributeCertificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ class to produce an X.509 Version 2 CRL.
+
+
+ reset the generator
+
+
+ Set the issuer distinguished name - the issuer is the entity whose private key is used to sign the
+ certificate.
+
+
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with an Invalidity Date extension as well as a CrlReason extension.
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with extensions.
+
+
+
+ Add the CRLEntry objects contained in a previous CRL.
+
+ @param other the X509Crl to source the other entries from.
+
+
+
+ Set the signature algorithm that will be used to sign this CRL.
+
+
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Crl.
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject using the specified secure random.
+
+ The private key of the issuer that is signing this certificate.
+ Your Secure Random instance.
+ An X509Crl.
+
+
+
+ Generate a new X509Crl using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Crl.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
+ A class to Generate Version 3 X509Certificates.
+
+
+
+
+ Reset the Generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can Get.
+ The serial number.
+
+
+
+ Set the distinguished name of the issuer.
+ The issuer is the entity which is signing the certificate.
+
+ The issuer's DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the DN of the entity that this certificate is about.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+
+
+
+
+
+ Set the subject unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Set the issuer unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3).
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension using a string with a dotted decimal OID.
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3),
+ copying the extension value from another certificate.
+
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ copying the extension value from another certificate.
+ @throws CertificateParsingException if the extension cannot be extracted.
+
+
+
+ Generate an X509Certificate.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Certificate.
+
+
+
+ Generate an X509Certificate using your own SecureRandom.
+
+ The private key of the issuer that is signing this certificate.
+ You Secure Random instance.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ Base class for both the compress and decompress classes.
+ Holds common arrays, and static data.
+
+ @author Keiron Liddle
+
+
+ An input stream that decompresses from the BZip2 format (with the file
+ header chars) to be read as any other stream.
+
+ @author Keiron Liddle
+
+ NB: note this class has been modified to read the leading BZ from the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+ An output stream that compresses into the BZip2 format (with the file
+ header chars) into another stream.
+
+ @author Keiron Liddle
+
+ TODO: Update to BZip2 1.0.1
+ NB: note this class has been modified to add a leading BZ to the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+
+ modified by Oliver Merkel, 010128
+
+
+
+ A simple class the hold and calculate the CRC for sanity checking
+ of the data.
+
+ @author Keiron Liddle
+
+
+
diff --git a/packages/Portable.BouncyCastle.1.8.2/lib/portable-net40+sl5+win8+wp8+wpa81/BouncyCastle.Crypto.dll b/packages/Portable.BouncyCastle.1.8.2/lib/portable-net40+sl5+win8+wp8+wpa81/BouncyCastle.Crypto.dll
new file mode 100644
index 0000000..579cd47
Binary files /dev/null and b/packages/Portable.BouncyCastle.1.8.2/lib/portable-net40+sl5+win8+wp8+wpa81/BouncyCastle.Crypto.dll differ
diff --git a/packages/Portable.BouncyCastle.1.8.2/lib/portable-net40+sl5+win8+wp8+wpa81/BouncyCastle.Crypto.xml b/packages/Portable.BouncyCastle.1.8.2/lib/portable-net40+sl5+win8+wp8+wpa81/BouncyCastle.Crypto.xml
new file mode 100644
index 0000000..9d71ac3
--- /dev/null
+++ b/packages/Portable.BouncyCastle.1.8.2/lib/portable-net40+sl5+win8+wp8+wpa81/BouncyCastle.Crypto.xml
@@ -0,0 +1,25040 @@
+
+
+
+ BouncyCastle.Crypto
+
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ Return the DER encoding of the object, null if the DER encoding can not be made.
+
+ @return a DER byte array, null otherwise.
+
+
+ a general purpose ASN.1 decoder - note: this class differs from the
+ others in that it returns null after it has read the last object in
+ the stream. If an ASN.1 Null is encountered a Der/BER Null object is
+ returned.
+
+
+ Create an ASN1InputStream where no DER object will be longer than limit.
+
+ @param input stream containing ASN.1 encoded data.
+ @param limit maximum size of a DER encoded object.
+
+
+ Create an ASN1InputStream based on the input byte array. The length of DER objects in
+ the stream is automatically limited to the length of the input array.
+
+ @param input array containing ASN.1 encoded data.
+
+
+ build an object given its tag and the number of bytes to construct it from.
+
+
+ A Null object.
+
+
+ Create a base ASN.1 object from a byte array.
+ The byte array to parse.
+ The base ASN.1 object represented by the byte array.
+
+ If there is a problem parsing the data, or parsing an object did not exhaust the available data.
+
+
+
+ Read a base ASN.1 object from a stream.
+ The stream to parse.
+ The base ASN.1 object represented by the byte array.
+ If there is a problem parsing the data.
+
+
+ return an Octet string from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return an Octet string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ @param string the octets making up the octet string.
+
+
+ return an Asn1Sequence from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 sequence from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ sequence - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sequences you really should
+ be using this method.
+
+ @param obj the tagged object.
+ @param explicitly true if the object is meant to be explicitly tagged,
+ false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return the object at the sequence position indicated by index.
+
+ @param index the sequence number (starting at zero) of the object
+ @return the object at the sequence position indicated by index.
+
+
+ return an ASN1Set from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Return an ASN1 set from a tagged object. There is a special
+ case here, if an object appears to have been explicitly tagged on
+ reading but we were expecting it to be implicitly tagged in the
+ normal course of events it indicates that we lost the surrounding
+ set - so we need to add it back (this will happen if the tagged
+ object is a sequence that contains other sequences). If you are
+ dealing with implicitly tagged sets you really should
+ be using this method.
+
+ @param obj the tagged object.
+ @param explicitly true if the object is meant to be explicitly tagged
+ false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return the object at the set position indicated by index.
+
+ @param index the set number (starting at zero) of the object
+ @return the object at the set position indicated by index.
+
+
+ ASN.1 TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if the object is explicitly tagged.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ return whether or not the object may be explicitly tagged.
+
+ Note: if the object has been read from an input stream, the only
+ time you can be sure if isExplicit is returning the true state of
+ affairs is if it returns false. An implicitly tagged object may appear
+ to be explicitly tagged, so you need to understand the context under
+ which the reading was done as well, see GetObject below.
+
+
+ return whatever was following the tag.
+
+ Note: tagged objects are generally context dependent if you're
+ trying to extract a tagged object you should be going via the
+ appropriate GetInstance method.
+
+
+ Return the object held in this tagged object as a parser assuming it has
+ the type of the passed in tag. If the object doesn't have a parser
+ associated with it, the base object is returned.
+
+
+
+
+
+ SHA-2.SHA-256; 1.3.6.1.4.1.22554.1.2.1
+
+
+ SHA-2.SHA-384; 1.3.6.1.4.1.22554.1.2.2
+
+
+ SHA-2.SHA-512; 1.3.6.1.4.1.22554.1.2.3
+
+
+ SHA-2.SHA-224; 1.3.6.1.4.1.22554.1.2.4
+
+
+ PKCS-5(1)|PKCS-12(2)
+ SHA-1.PKCS5; 1.3.6.1.4.1.22554.1.1.1
+
+
+ SHA-1.PKCS12; 1.3.6.1.4.1.22554.1.1.2
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.1
+
+
+ SHA-256.PKCS12; 1.3.6.1.4.1.22554.1.2.1.2
+
+
+ AES(1) . (CBC-128(2)|CBC-192(22)|CBC-256(42))
+ 1.3.6.1.4.1.22554.1.1.2.1.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.1.42
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.2
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.22
+
+
+ 1.3.6.1.4.1.22554.1.1.2.2.42
+
+
+ signature(2) algorithms
+
+
+ Sphincs-256
+
+
+ XMSS
+
+
+ XMSS^MT
+
+
+ key_exchange(3) algorithms
+
+
+ NewHope
+
+
+ A BER Null object.
+
+
+ convert a vector of octet strings into a single byte string
+
+
+ The octets making up the octet string.
+
+
+ return the DER octets that make up this string.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ create an empty sequence
+
+
+ create a set containing one object
+
+
+ create a set containing a vector of objects.
+
+
+ BER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+
+ CAKeyUpdAnnContent ::= SEQUENCE {
+ oldWithNew CmpCertificate, -- old pub signed with new priv
+ newWithOld CmpCertificate, -- new pub signed with old priv
+ newWithNew CmpCertificate -- new pub signed with new priv
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertConfirmContent ::= SEQUENCE OF CertStatus
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertifiedKeyPair ::= SEQUENCE {
+ certOrEncCert CertOrEncCert,
+ privateKey [0] EncryptedValue OPTIONAL,
+ -- see [CRMF] for comment on encoding
+ publicationInfo [1] PKIPublicationInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertOrEncCert ::= CHOICE {
+ certificate [0] CMPCertificate,
+ encryptedCert [1] EncryptedValue
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRepMessage ::= SEQUENCE {
+ caPubs [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL,
+ response SEQUENCE OF CertResponse
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertResponse ::= SEQUENCE {
+ certReqId INTEGER,
+ -- to match this response with corresponding request (a value
+ -- of -1 is to be used if certReqId is not specified in the
+ -- corresponding request)
+ status PKIStatusInfo,
+ certifiedKeyPair CertifiedKeyPair OPTIONAL,
+ rspInfo OCTET STRING OPTIONAL
+ -- analogous to the id-regInfo-utf8Pairs string defined
+ -- for regInfo in CertReqMsg [CRMF]
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertStatus ::= SEQUENCE {
+ certHash OCTET STRING,
+ -- the hash of the certificate, using the same hash algorithm
+ -- as is used to create and verify the certificate signature
+ certReqId INTEGER,
+ -- to match this confirmation with the corresponding req/rep
+ statusInfo PKIStatusInfo OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Challenge ::= SEQUENCE {
+ owf AlgorithmIdentifier OPTIONAL,
+
+ -- MUST be present in the first Challenge; MAY be omitted in
+ -- any subsequent Challenge in POPODecKeyChallContent (if
+ -- omitted, then the owf used in the immediately preceding
+ -- Challenge is to be used).
+
+ witness OCTET STRING,
+ -- the result of applying the one-way function (owf) to a
+ -- randomly-generated INTEGER, A. [Note that a different
+ -- INTEGER MUST be used for each Challenge.]
+ challenge OCTET STRING
+ -- the encryption (under the public key for which the cert.
+ -- request is being made) of Rand, where Rand is specified as
+ -- Rand ::= SEQUENCE {
+ -- int INTEGER,
+ -- - the randomly-generated INTEGER A (above)
+ -- sender GeneralName
+ -- - the sender's name (as included in PKIHeader)
+ -- }
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Note: the addition of attribute certificates is a BC extension.
+
+
+
+ CMPCertificate ::= CHOICE {
+ x509v3PKCert Certificate
+ x509v2AttrCert [1] AttributeCertificate
+ }
+
+ Note: the addition of attribute certificates is a BC extension.
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CrlAnnContent ::= SEQUENCE OF CertificateList
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ErrorMsgContent ::= SEQUENCE {
+ pKIStatusInfo PKIStatusInfo,
+ errorCode INTEGER OPTIONAL,
+ -- implementation-specific error codes
+ errorDetails PKIFreeText OPTIONAL
+ -- implementation-specific error details
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenMsgContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ GenRepContent ::= SEQUENCE OF InfoTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+ Example InfoTypeAndValue contents include, but are not limited
+ to, the following (un-comment in this ASN.1 module and use as
+ appropriate for a given environment):
+
+ id-it-caProtEncCert OBJECT IDENTIFIER ::= {id-it 1}
+ CAProtEncCertValue ::= CMPCertificate
+ id-it-signKeyPairTypes OBJECT IDENTIFIER ::= {id-it 2}
+ SignKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-encKeyPairTypes OBJECT IDENTIFIER ::= {id-it 3}
+ EncKeyPairTypesValue ::= SEQUENCE OF AlgorithmIdentifier
+ id-it-preferredSymmAlg OBJECT IDENTIFIER ::= {id-it 4}
+ PreferredSymmAlgValue ::= AlgorithmIdentifier
+ id-it-caKeyUpdateInfo OBJECT IDENTIFIER ::= {id-it 5}
+ CAKeyUpdateInfoValue ::= CAKeyUpdAnnContent
+ id-it-currentCRL OBJECT IDENTIFIER ::= {id-it 6}
+ CurrentCRLValue ::= CertificateList
+ id-it-unsupportedOIDs OBJECT IDENTIFIER ::= {id-it 7}
+ UnsupportedOIDsValue ::= SEQUENCE OF OBJECT IDENTIFIER
+ id-it-keyPairParamReq OBJECT IDENTIFIER ::= {id-it 10}
+ KeyPairParamReqValue ::= OBJECT IDENTIFIER
+ id-it-keyPairParamRep OBJECT IDENTIFIER ::= {id-it 11}
+ KeyPairParamRepValue ::= AlgorithmIdentifer
+ id-it-revPassphrase OBJECT IDENTIFIER ::= {id-it 12}
+ RevPassphraseValue ::= EncryptedValue
+ id-it-implicitConfirm OBJECT IDENTIFIER ::= {id-it 13}
+ ImplicitConfirmValue ::= NULL
+ id-it-confirmWaitTime OBJECT IDENTIFIER ::= {id-it 14}
+ ConfirmWaitTimeValue ::= GeneralizedTime
+ id-it-origPKIMessage OBJECT IDENTIFIER ::= {id-it 15}
+ OrigPKIMessageValue ::= PKIMessages
+ id-it-suppLangTags OBJECT IDENTIFIER ::= {id-it 16}
+ SuppLangTagsValue ::= SEQUENCE OF UTF8String
+
+ where
+
+ id-pkix OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7)}
+ and
+ id-it OBJECT IDENTIFIER ::= {id-pkix 4}
+
+
+
+
+ InfoTypeAndValue ::= SEQUENCE {
+ infoType OBJECT IDENTIFIER,
+ infoValue ANY DEFINED BY infoType OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ KeyRecRepContent ::= SEQUENCE {
+ status PKIStatusInfo,
+ newSigCert [0] CMPCertificate OPTIONAL,
+ caCerts [1] SEQUENCE SIZE (1..MAX) OF
+ CMPCertificate OPTIONAL,
+ keyPairHist [2] SEQUENCE SIZE (1..MAX) OF
+ CertifiedKeyPair OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OobCertHash ::= SEQUENCE {
+ hashAlg [0] AlgorithmIdentifier OPTIONAL,
+ certId [1] CertId OPTIONAL,
+ hashVal BIT STRING
+ -- hashVal is calculated over the Der encoding of the
+ -- self-signed certificate with the identifier certID.
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PbmParameter ::= SEQUENCE {
+ salt OCTET STRING,
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this string to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ owf AlgorithmIdentifier,
+ -- AlgId for a One-Way Function (SHA-1 recommended)
+ iterationCount INTEGER,
+ -- number of times the OWF is applied
+ -- note: implementations MAY wish to limit acceptable sizes
+ -- of this integer to values appropriate for their environment
+ -- in order to reduce the risk of denial-of-service attacks
+ mac AlgorithmIdentifier
+ -- the MAC AlgId (e.g., DES-MAC, Triple-DES-MAC [PKCS11],
+ } -- or HMAC [RFC2104, RFC2202])
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiBody.
+ @param type one of the TYPE_* constants
+ @param content message content
+
+
+
+ PkiBody ::= CHOICE { -- message-specific body elements
+ ir [0] CertReqMessages, --Initialization Request
+ ip [1] CertRepMessage, --Initialization Response
+ cr [2] CertReqMessages, --Certification Request
+ cp [3] CertRepMessage, --Certification Response
+ p10cr [4] CertificationRequest, --imported from [PKCS10]
+ popdecc [5] POPODecKeyChallContent, --pop Challenge
+ popdecr [6] POPODecKeyRespContent, --pop Response
+ kur [7] CertReqMessages, --Key Update Request
+ kup [8] CertRepMessage, --Key Update Response
+ krr [9] CertReqMessages, --Key Recovery Request
+ krp [10] KeyRecRepContent, --Key Recovery Response
+ rr [11] RevReqContent, --Revocation Request
+ rp [12] RevRepContent, --Revocation Response
+ ccr [13] CertReqMessages, --Cross-Cert. Request
+ ccp [14] CertRepMessage, --Cross-Cert. Response
+ ckuann [15] CAKeyUpdAnnContent, --CA Key Update Ann.
+ cann [16] CertAnnContent, --Certificate Ann.
+ rann [17] RevAnnContent, --Revocation Ann.
+ crlann [18] CRLAnnContent, --CRL Announcement
+ pkiconf [19] PKIConfirmContent, --Confirmation
+ nested [20] NestedMessageContent, --Nested Message
+ genm [21] GenMsgContent, --General Message
+ genp [22] GenRepContent, --General Response
+ error [23] ErrorMsgContent, --Error Message
+ certConf [24] CertConfirmContent, --Certificate confirm
+ pollReq [25] PollReqContent, --Polling request
+ pollRep [26] PollRepContent --Polling response
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiConfirmContent ::= NULL
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIFailureInfo ::= BIT STRING {
+ badAlg (0),
+ -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2),
+ -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5),
+ -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+ certRevoked (10),
+ certConfirmed (11),
+ wrongIntegrity (12),
+ badRecipientNonce (13),
+ timeNotAvailable (14),
+ -- the TSA's time source is not available
+ unacceptedPolicy (15),
+ -- the requested TSA policy is not supported by the TSA
+ unacceptedExtension (16),
+ -- the requested extension is not supported by the TSA
+ addInfoNotAvailable (17)
+ -- the additional information requested could not be understood
+ -- or is not available
+ badSenderNonce (18),
+ badCertTemplate (19),
+ signerNotTrusted (20),
+ transactionIdInUse (21),
+ unsupportedVersion (22),
+ notAuthorized (23),
+ systemUnavail (24),
+ systemFailure (25),
+ -- the request cannot be handled due to system failure
+ duplicateCertReq (26)
+
+
+
+ Basic constructor.
+
+
+ Return the number of string elements present.
+
+ @return number of elements present.
+
+
+ Return the UTF8STRING at index.
+
+ @param index index of the string of interest
+ @return the string at index.
+
+
+
+ PkiFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
+
+
+
+ Value for a "null" recipient or sender.
+
+
+
+ PkiHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PKIHeader ::= SEQUENCE {
+ pvno INTEGER { cmp1999(1), cmp2000(2) },
+ sender GeneralName,
+ -- identifies the sender
+ recipient GeneralName,
+ -- identifies the intended recipient
+ messageTime [0] GeneralizedTime OPTIONAL,
+ -- time of production of this message (used when sender
+ -- believes that the transport will be "suitable"; i.e.,
+ -- that the time will still be meaningful upon receipt)
+ protectionAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used for calculation of protection bits
+ senderKID [2] KeyIdentifier OPTIONAL,
+ recipKID [3] KeyIdentifier OPTIONAL,
+ -- to identify specific keys used for protection
+ transactionID [4] OCTET STRING OPTIONAL,
+ -- identifies the transaction; i.e., this will be the same in
+ -- corresponding request, response, certConf, and PKIConf
+ -- messages
+ senderNonce [5] OCTET STRING OPTIONAL,
+ recipNonce [6] OCTET STRING OPTIONAL,
+ -- nonces used to provide replay protection, senderNonce
+ -- is inserted by the creator of this message; recipNonce
+ -- is a nonce previously inserted in a related message by
+ -- the intended recipient of this message
+ freeText [7] PKIFreeText OPTIONAL,
+ -- this may be used to indicate context-specific instructions
+ -- (this field is intended for human consumption)
+ generalInfo [8] SEQUENCE SIZE (1..MAX) OF
+ InfoTypeAndValue OPTIONAL
+ -- this may be used to convey context-specific information
+ -- (this field not primarily intended for human consumption)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PkiMessage.
+
+ @param header message header
+ @param body message body
+ @param protection message protection (may be null)
+ @param extraCerts extra certificates (may be null)
+
+
+
+ PkiMessage ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody,
+ protection [0] PKIProtection OPTIONAL,
+ extraCerts [1] SEQUENCE SIZE (1..MAX) OF CMPCertificate
+ OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiMessages ::= SEQUENCE SIZE (1..MAX) OF PkiMessage
+
+ @return a basic ASN.1 object representation.
+
+
+ @param status
+
+
+ @param status
+ @param statusString
+
+
+
+ PkiStatusInfo ::= SEQUENCE {
+ status PKIStatus, (INTEGER)
+ statusString PkiFreeText OPTIONAL,
+ failInfo PkiFailureInfo OPTIONAL (BIT STRING)
+ }
+
+ PKIStatus:
+ granted (0), -- you got exactly what you asked for
+ grantedWithMods (1), -- you got something like what you asked for
+ rejection (2), -- you don't get it, more information elsewhere in the message
+ waiting (3), -- the request body part has not yet been processed, expect to hear more later
+ revocationWarning (4), -- this message contains a warning that a revocation is imminent
+ revocationNotification (5), -- notification that a revocation has occurred
+ keyUpdateWarning (6) -- update already done for the oldCertId specified in CertReqMsg
+
+ PkiFailureInfo:
+ badAlg (0), -- unrecognized or unsupported Algorithm Identifier
+ badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)
+ badRequest (2), -- transaction not permitted or supported
+ badTime (3), -- messageTime was not sufficiently close to the system time, as defined by local policy
+ badCertId (4), -- no certificate could be found matching the provided criteria
+ badDataFormat (5), -- the data submitted has the wrong format
+ wrongAuthority (6), -- the authority indicated in the request is different from the one creating the response token
+ incorrectData (7), -- the requester's data is incorrect (for notary services)
+ missingTimeStamp (8), -- when the timestamp is missing but should be there (by policy)
+ badPOP (9) -- the proof-of-possession failed
+
+
+
+
+
+ PollRepContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER,
+ checkAfter INTEGER, -- time in seconds
+ reason PKIFreeText OPTIONAL
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PollReqContent ::= SEQUENCE OF SEQUENCE {
+ certReqId INTEGER
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyChallContent ::= SEQUENCE OF Challenge
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoDecKeyRespContent ::= SEQUENCE OF INTEGER
+
+ @return a basic ASN.1 object representation.
+
+
+
+ ProtectedPart ::= SEQUENCE {
+ header PKIHeader,
+ body PKIBody
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevAnnContent ::= SEQUENCE {
+ status PKIStatus,
+ certId CertId,
+ willBeRevokedAt GeneralizedTime,
+ badSinceDate GeneralizedTime,
+ crlDetails Extensions OPTIONAL
+ -- extra CRL details (e.g., crl number, reason, location, etc.)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevDetails ::= SEQUENCE {
+ certDetails CertTemplate,
+ -- allows requester to specify as much as they can about
+ -- the cert. for which revocation is requested
+ -- (e.g., for cases in which serialNumber is not available)
+ crlEntryDetails Extensions OPTIONAL
+ -- requested crlEntryExtensions
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevRepContent ::= SEQUENCE {
+ status SEQUENCE SIZE (1..MAX) OF PKIStatusInfo,
+ -- in same order as was sent in RevReqContent
+ revCerts [0] SEQUENCE SIZE (1..MAX) OF CertId OPTIONAL,
+ -- IDs for which revocation was requested
+ -- (same order as status)
+ crls [1] SEQUENCE SIZE (1..MAX) OF CertificateList OPTIONAL
+ -- the resulting CRLs (there may be more than one)
+ }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ RevReqContent ::= SEQUENCE OF RevDetails
+
+ @return a basic ASN.1 object representation.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attribute ::= SEQUENCE {
+ attrType OBJECT IDENTIFIER,
+ attrValues SET OF AttributeValue
+ }
+
+
+
+
+ Attributes ::=
+ SET SIZE(1..MAX) OF Attribute -- according to RFC 5652
+
+ @return
+
+
+ Return the first attribute matching the given OBJECT IDENTIFIER
+
+
+ Return all the attributes matching the OBJECT IDENTIFIER oid. The vector will be
+ empty if there are no attributes of the required type present.
+
+ @param oid type of attribute required.
+ @return a vector of all the attributes found of type oid.
+
+
+ Return a new table with the passed in attribute added.
+
+ @param attrType
+ @param attrValue
+ @return
+
+
+ return an AuthenticatedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthenticatedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthenticatedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ macAlgorithm MessageAuthenticationCodeAlgorithm,
+ digestAlgorithm [1] DigestAlgorithmIdentifier OPTIONAL,
+ encapContentInfo EncapsulatedContentInfo,
+ authAttrs [2] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [3] IMPLICIT UnauthAttributes OPTIONAL }
+
+ AuthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ UnauthAttributes ::= SET SIZE (1..MAX) OF Attribute
+
+ MessageAuthenticationCode ::= OCTET STRING
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ AuthEnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ authEncryptedContentInfo EncryptedContentInfo,
+ authAttrs [1] IMPLICIT AuthAttributes OPTIONAL,
+ mac MessageAuthenticationCode,
+ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL }
+
+
+
+ The other Revocation Info arc
+ id-ri OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
+ dod(6) internet(1) security(5) mechanisms(5) pkix(7) ri(16) }
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= Sequence {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ return a CompressedData object from a tagged object.
+
+ @param ato the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a CompressedData object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ RFC 3274 - CMS Compressed Data.
+
+ CompressedData ::= SEQUENCE {
+ version CMSVersion,
+ compressionAlgorithm CompressionAlgorithmIdentifier,
+ encapContentInfo EncapsulatedContentInfo
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ return an AuthEnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @throws ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an AuthEnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @throws ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ MQVuserKeyingMaterial ::= SEQUENCE {
+ ephemeralPublicKey OriginatorPublicKey,
+ addedukm [0] EXPLICIT UserKeyingMaterial OPTIONAL }
+
+
+
+ return an EncryptedContentInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedContentInfo ::= SEQUENCE {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+
+
+
+ EncryptedData ::= SEQUENCE {
+ version CMSVersion,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ return an EnvelopedData object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an EnvelopedData object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= Sequence {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EnvelopedData ::= SEQUENCE {
+ version CMSVersion,
+ originatorInfo [0] IMPLICIT OriginatorInfo OPTIONAL,
+ recipientInfos RecipientInfos,
+ encryptedContentInfo EncryptedContentInfo,
+ unprotectedAttrs [1] IMPLICIT UnprotectedAttributes OPTIONAL
+ }
+
+
+
+ return a KekIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekIdentifier ::= Sequence {
+ keyIdentifier OCTET STRING,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+
+
+ return a KekRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KekRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KekRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 4
+ kekID KekIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return an KeyAgreeRecipientIdentifier object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an KeyAgreeRecipientIdentifier object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyAgreeRecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ rKeyId [0] IMPLICIT RecipientKeyIdentifier
+ }
+
+
+
+ return a KeyAgreeRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a KeyAgreeRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ * Produce an object suitable for an Asn1OutputStream.
+ *
+ * KeyAgreeRecipientInfo ::= Sequence {
+ * version CMSVersion, -- always set to 3
+ * originator [0] EXPLICIT OriginatorIdentifierOrKey,
+ * ukm [1] EXPLICIT UserKeyingMaterial OPTIONAL,
+ * keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ * recipientEncryptedKeys RecipientEncryptedKeys
+ * }
+ *
+ * UserKeyingMaterial ::= OCTET STRING
+ *
+
+
+ return a KeyTransRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeyTransRecipientInfo ::= Sequence {
+ version CMSVersion, -- always set to 0 or 2
+ rid RecipientIdentifier,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+
+ MetaData ::= SEQUENCE {
+ hashProtected BOOLEAN,
+ fileName UTF8String OPTIONAL,
+ mediaType IA5String OPTIONAL,
+ otherMetaData Attributes OPTIONAL
+ }
+
+ @return
+
+
+ return an OriginatorIdentifierOrKey object from a tagged object.
+
+ @param o the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorIdentifierOrKey object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorIdentifierOrKey ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier,
+ originatorKey [1] OriginatorPublicKey
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ return an OriginatorInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorInfo ::= Sequence {
+ certs [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL
+ }
+
+
+
+ return an OriginatorPublicKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return an OriginatorPublicKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OriginatorPublicKey ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING
+ }
+
+
+
+ return an OtherKeyAttribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherKeyAttribute ::= Sequence {
+ keyAttrId OBJECT IDENTIFIER,
+ keyAttr ANY DEFINED BY keyAttrId OPTIONAL
+ }
+
+
+
+ return a OtherRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherRecipientInfo ::= Sequence {
+ oriType OBJECT IDENTIFIER,
+ oriValue ANY DEFINED BY oriType }
+
+
+
+ return a OtherRevocationInfoFormat object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a OtherRevocationInfoFormat object from the given object.
+
+ @param obj the object we want converted.
+ @exception IllegalArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ OtherRevocationInfoFormat ::= SEQUENCE {
+ otherRevInfoFormat OBJECT IDENTIFIER,
+ otherRevInfo ANY DEFINED BY otherRevInfoFormat }
+
+
+
+ return a PasswordRecipientInfo object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a PasswordRecipientInfo object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ PasswordRecipientInfo ::= Sequence {
+ version CMSVersion, -- Always set to 0
+ keyDerivationAlgorithm [0] KeyDerivationAlgorithmIdentifier
+ OPTIONAL,
+ keyEncryptionAlgorithm KeyEncryptionAlgorithmIdentifier,
+ encryptedKey EncryptedKey }
+
+
+
+ return an RecipientEncryptedKey object from a tagged object.
+
+ @param obj the tagged object holding the object we want.
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientEncryptedKey object from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientEncryptedKey ::= SEQUENCE {
+ rid KeyAgreeRecipientIdentifier,
+ encryptedKey EncryptedKey
+ }
+
+
+
+ return a RecipientIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientInfo ::= CHOICE {
+ ktri KeyTransRecipientInfo,
+ kari [1] KeyAgreeRecipientInfo,
+ kekri [2] KekRecipientInfo,
+ pwri [3] PasswordRecipientInfo,
+ ori [4] OtherRecipientInfo }
+
+
+
+ return a RecipientKeyIdentifier object from a tagged object.
+
+ @param _ato the tagged object holding the object we want.
+ @param _explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the object held by the
+ tagged object cannot be converted.
+
+
+ return a RecipientKeyIdentifier object from the given object.
+
+ @param _obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RecipientKeyIdentifier ::= Sequence {
+ subjectKeyIdentifier SubjectKeyIdentifier,
+ date GeneralizedTime OPTIONAL,
+ other OtherKeyAttribute OPTIONAL
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+
+ ScvpReqRes ::= SEQUENCE {
+ request [0] EXPLICIT ContentInfo OPTIONAL,
+ response ContentInfo }
+
+ @return the ASN.1 primitive representation.
+
+
+ a signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+
+ SignedData ::= SEQUENCE {
+ version CMSVersion,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ encapContentInfo EncapsulatedContentInfo,
+ certificates [0] IMPLICIT CertificateSet OPTIONAL,
+ crls [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos
+ }
+
+
+
+ return a SignerIdentifier object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerIdentifier ::= CHOICE {
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ subjectKeyIdentifier [0] SubjectKeyIdentifier
+ }
+
+ SubjectKeyIdentifier ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ SignerIdentifier sid,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+
+ TimeStampAndCRL ::= SEQUENCE {
+ timeStamp TimeStampToken, -- according to RFC 3161
+ crl CertificateList OPTIONAL -- according to RFC 5280
+ }
+
+ @return
+
+
+
+ TimeStampedData ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ dataUri IA5String OPTIONAL,
+ metaData MetaData OPTIONAL,
+ content OCTET STRING OPTIONAL,
+ temporalEvidence Evidence
+ }
+
+ @return
+
+
+
+ TimeStampTokenEvidence ::=
+ SEQUENCE SIZE(1..MAX) OF TimeStampAndCrl
+
+ @return
+
+
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY DEFINED BY type }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertId ::= SEQUENCE {
+ issuer GeneralName,
+ serialNumber INTEGER }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertReqMessages ::= SEQUENCE SIZE (1..MAX) OF CertReqMsg
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new CertReqMsg.
+ @param certReq CertRequest
+ @param popo may be null
+ @param regInfo may be null
+
+
+
+ CertReqMsg ::= SEQUENCE {
+ certReq CertRequest,
+ pop ProofOfPossession OPTIONAL,
+ -- content depends upon key type
+ regInfo SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertRequest ::= SEQUENCE {
+ certReqId INTEGER, -- ID for matching request and reply
+ certTemplate CertTemplate, -- Selected fields of cert to be issued
+ controls Controls OPTIONAL } -- Attributes affecting issuance
+
+ @return a basic ASN.1 object representation.
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+ Sets the X.509 version. Note: for X509v3, use 2 here.
+
+
+ Sets the issuer unique ID (deprecated in X.509v3)
+
+
+ Sets the subject unique ID (deprecated in X.509v3)
+
+
+
+ CertTemplate ::= SEQUENCE {
+ version [0] Version OPTIONAL,
+ serialNumber [1] INTEGER OPTIONAL,
+ signingAlg [2] AlgorithmIdentifier OPTIONAL,
+ issuer [3] Name OPTIONAL,
+ validity [4] OptionalValidity OPTIONAL,
+ subject [5] Name OPTIONAL,
+ publicKey [6] SubjectPublicKeyInfo OPTIONAL,
+ issuerUID [7] UniqueIdentifier OPTIONAL,
+ subjectUID [8] UniqueIdentifier OPTIONAL,
+ extensions [9] Extensions OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Controls ::= SEQUENCE SIZE(1..MAX) OF AttributeTypeAndValue
+
+ @return a basic ASN.1 object representation.
+
+
+
+ EncKeyWithID ::= SEQUENCE {
+ privateKey PrivateKeyInfo,
+ identifier CHOICE {
+ string UTF8String,
+ generalName GeneralName
+ } OPTIONAL
+ }
+
+ @return
+
+
+
+ EncryptedKey ::= CHOICE {
+ encryptedValue EncryptedValue, -- deprecated
+ envelopedData [0] EnvelopedData }
+ -- The encrypted private key MUST be placed in the envelopedData
+ -- encryptedContentInfo encryptedContent OCTET STRING.
+
+
+
+
+ EncryptedValue ::= SEQUENCE {
+ intendedAlg [0] AlgorithmIdentifier OPTIONAL,
+ -- the intended algorithm for which the value will be used
+ symmAlg [1] AlgorithmIdentifier OPTIONAL,
+ -- the symmetric algorithm used to encrypt the value
+ encSymmKey [2] BIT STRING OPTIONAL,
+ -- the (encrypted) symmetric key used to encrypt the value
+ keyAlg [3] AlgorithmIdentifier OPTIONAL,
+ -- algorithm used to encrypt the symmetric key
+ valueHint [4] OCTET STRING OPTIONAL,
+ -- a brief description or identifier of the encValue content
+ -- (may be meaningful only to the sending entity, and used only
+ -- if EncryptedValue might be re-examined by the sending entity
+ -- in the future)
+ encValue BIT STRING }
+ -- the encrypted value itself
+
+ @return a basic ASN.1 object representation.
+
+
+
+ OptionalValidity ::= SEQUENCE {
+ notBefore [0] Time OPTIONAL,
+ notAfter [1] Time OPTIONAL } --at least one MUST be present
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PkiArchiveOptions ::= CHOICE {
+ encryptedPrivKey [0] EncryptedKey,
+ -- the actual value of the private key
+ keyGenParameters [1] KeyGenParameters,
+ -- parameters which allow the private key to be re-generated
+ archiveRemGenPrivKey [2] BOOLEAN }
+ -- set to TRUE if sender wishes receiver to archive the private
+ -- key of a key pair that the receiver generates in response to
+ -- this request; set to FALSE if no archival is desired.
+
+
+
+
+ PkiPublicationInfo ::= SEQUENCE {
+ action INTEGER {
+ dontPublish (0),
+ pleasePublish (1) },
+ pubInfos SEQUENCE SIZE (1..MAX) OF SinglePubInfo OPTIONAL }
+ -- pubInfos MUST NOT be present if action is "dontPublish"
+ -- (if action is "pleasePublish" and pubInfos is omitted,
+ -- "dontCare" is assumed)
+
+ @return a basic ASN.1 object representation.
+
+
+ Password-based MAC value for use with POPOSigningKeyInput.
+
+
+ Creates a new PKMACValue.
+ @param params parameters for password-based MAC
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+ Creates a new PKMACValue.
+ @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter
+ @param value MAC of the DER-encoded SubjectPublicKeyInfo
+
+
+
+ PKMACValue ::= SEQUENCE {
+ algId AlgorithmIdentifier,
+ -- algorithm value shall be PasswordBasedMac 1.2.840.113533.7.66.13
+ -- parameter value is PBMParameter
+ value BIT STRING }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ PopoPrivKey ::= CHOICE {
+ thisMessage [0] BIT STRING, -- Deprecated
+ -- possession is proven in this message (which contains the private
+ -- key itself (encrypted for the CA))
+ subsequentMessage [1] SubsequentMessage,
+ -- possession will be proven in a subsequent message
+ dhMAC [2] BIT STRING, -- Deprecated
+ agreeMAC [3] PKMACValue,
+ encryptedKey [4] EnvelopedData }
+
+
+
+ Creates a new Proof of Possession object for a signing key.
+ @param poposkIn the PopoSigningKeyInput structure, or null if the
+ CertTemplate includes both subject and publicKey values.
+ @param aid the AlgorithmIdentifier used to sign the proof of possession.
+ @param signature a signature over the DER-encoded value of poposkIn,
+ or the DER-encoded value of certReq if poposkIn is null.
+
+
+
+ PopoSigningKey ::= SEQUENCE {
+ poposkInput [0] PopoSigningKeyInput OPTIONAL,
+ algorithmIdentifier AlgorithmIdentifier,
+ signature BIT STRING }
+ -- The signature (using "algorithmIdentifier") is on the
+ -- DER-encoded value of poposkInput. NOTE: If the CertReqMsg
+ -- certReq CertTemplate contains the subject and publicKey values,
+ -- then poposkInput MUST be omitted and the signature MUST be
+ -- computed on the DER-encoded value of CertReqMsg certReq. If
+ -- the CertReqMsg certReq CertTemplate does not contain the public
+ -- key and subject values, then poposkInput MUST be present and
+ -- MUST be signed. This strategy ensures that the public key is
+ -- not present in both the poposkInput and CertReqMsg certReq
+ -- CertTemplate fields.
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a new PopoSigningKeyInput with sender name as authInfo.
+
+
+ Creates a new PopoSigningKeyInput using password-based MAC.
+
+
+ Returns the sender field, or null if authInfo is publicKeyMac
+
+
+ Returns the publicKeyMac field, or null if authInfo is sender
+
+
+
+ PopoSigningKeyInput ::= SEQUENCE {
+ authInfo CHOICE {
+ sender [0] GeneralName,
+ -- used only if an authenticated identity has been
+ -- established for the sender (e.g., a DN from a
+ -- previously-issued and currently-valid certificate
+ publicKeyMac PKMacValue },
+ -- used if no authenticated GeneralName currently exists for
+ -- the sender; publicKeyMac contains a password-based MAC
+ -- on the DER-encoded value of publicKey
+ publicKey SubjectPublicKeyInfo } -- from CertTemplate
+
+ @return a basic ASN.1 object representation.
+
+
+ Creates a ProofOfPossession with type raVerified.
+
+
+ Creates a ProofOfPossession for a signing key.
+
+
+ Creates a ProofOfPossession for key encipherment or agreement.
+ @param type one of TYPE_KEY_ENCIPHERMENT or TYPE_KEY_AGREEMENT
+
+
+
+ ProofOfPossession ::= CHOICE {
+ raVerified [0] NULL,
+ -- used if the RA has already verified that the requester is in
+ -- possession of the private key
+ signature [1] PopoSigningKey,
+ keyEncipherment [2] PopoPrivKey,
+ keyAgreement [3] PopoPrivKey }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ SinglePubInfo ::= SEQUENCE {
+ pubMethod INTEGER {
+ dontCare (0),
+ x500 (1),
+ web (2),
+ ldap (3) },
+ pubLocation GeneralName OPTIONAL }
+
+ @return a basic ASN.1 object representation.
+
+
+
+ Table of the available named parameters for GOST 3410-2001 / 2012.
+
+
+
+ return the ECDomainParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+
+ Gost28147-89-Parameters ::=
+ SEQUENCE {
+ iv Gost28147-89-IV,
+ encryptionParamSet OBJECT IDENTIFIER
+ }
+
+ Gost28147-89-IV ::= OCTET STRING (SIZE (8))
+
+
+
+ table of the available named parameters for GOST 3410-94.
+
+
+ return the GOST3410ParamSetParameters object for the given OID, null if it
+ isn't present.
+
+ @param oid an object identifier representing a named parameters, if present.
+
+
+ returns an enumeration containing the name strings for parameters
+ contained in this structure.
+
+
+ Base class for an application specific object
+
+
+ Return the enclosed object assuming explicit tagging.
+
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ Return the enclosed object assuming implicit tagging.
+
+ @param derTagNo the type tag that should be applied to the object's contents.
+ @return the resulting object
+ @throws IOException if reconstruction fails.
+
+
+ return a Bit string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Bit string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ @param data the octets making up the bit string.
+ @param padBits the number of extra bits at the end of the string.
+
+
+ Return the octets contained in this BIT STRING, checking that this BIT STRING really
+ does represent an octet aligned string. Only use this method when the standard you are
+ following dictates that the BIT STRING will be octet aligned.
+
+ @return a copy of the octet aligned data.
+
+
+ @return the value of the bit string as an int (truncating if necessary)
+
+
+ Der BMPString object.
+
+
+ return a BMP string from the given object.
+
+ @param obj the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a BMP string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a bool from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a DerBoolean from the passed in bool.
+
+
+ return a Boolean from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Enumerated from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Class representing the DER-type External
+
+
+ Creates a new instance of DerExternal
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param externalData The external data in its encoded form.
+
+
+ Creates a new instance of DerExternal.
+ See X.690 for more informations about the meaning of these parameters
+ @param directReference The direct reference or null if not set.
+ @param indirectReference The indirect reference or null if not set.
+ @param dataValueDescriptor The data value descriptor or null if not set.
+ @param encoding The encoding to be used for the external data
+ @param externalData The external data
+
+
+ The encoding of the content. Valid values are
+
+ 0 single-ASN1-type
+ 1 OCTET STRING
+ 2 BIT STRING
+
+
+
+ Generalized time object.
+
+
+ return a generalized time from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Generalized Time object from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYYYMMDDHHMMSS[.f]Z, or without the Z
+ for local time, or Z+-HHMM on the end, for difference between local
+ time and UTC time. The fractional second amount f must consist of at
+ least one number with trailing zeroes removed.
+
+ @param time the time string.
+ @exception ArgumentException if string is an illegal format.
+
+
+ base constructor from a local time object
+
+
+ Return the time.
+ @return The time string as it appeared in the encoded object.
+
+
+ return the time - always in the form of
+ YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyyyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+
+ return a Graphic String from the passed in object
+
+ @param obj a DerGraphicString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ return a Graphic String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DerGraphicString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der IA5String object - this is an ascii string.
+
+
+ return a IA5 string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an IA5 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation.
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in an IA5String.
+
+
+ return true if the passed in String can be represented without
+ loss as an IA5String, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ return an integer from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Integer from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param isExplicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ in some cases positive values Get crammed into a space,
+ that's not quite big enough...
+
+
+ A Null object.
+
+
+ Der NumericString object - this is an ascii string of characters {0,1,2,3,4,5,6,7,8,9, }.
+
+
+ return a Numeric string from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an Numeric string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - without validation..
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a NumericString.
+
+
+ Return true if the string can be represented as a NumericString ('0'..'9', ' ')
+
+ @param str string to validate.
+ @return true if numeric, fale otherwise.
+
+
+ return an Oid from the passed in object
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an object Identifier from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ Return true if this oid is an extension of the passed in branch, stem.
+ @param stem the arc or branch that is a possible parent.
+ @return true if the branch is on the passed in stem, false otherwise.
+
+
+ The octets making up the octet string.
+
+
+ Der PrintableString object.
+
+
+ return a printable string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Printable string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor - this does not validate the string
+
+
+ Constructor with optional validation.
+
+ @param string the base string to wrap.
+ @param validate whether or not to check the string.
+ @throws ArgumentException if validate is true and the string
+ contains characters that should not be in a PrintableString.
+
+
+ return true if the passed in String can be represented without
+ loss as a PrintableString, false otherwise.
+
+ @return true if in printable set, false otherwise.
+
+
+ create an empty sequence
+
+
+ create a sequence containing one object
+
+
+ create a sequence containing a vector of objects.
+
+
+ A Der encoded set object
+
+
+ create an empty set
+
+
+ @param obj - a single object that makes up the set.
+
+
+ @param v - a vector of objects making up the set.
+
+
+ Der T61String (also the teletex string) - 8-bit characters
+
+
+ return a T61 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an T61 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - with bytes.
+
+
+ basic constructor - with string.
+
+
+ DER TaggedObject - in ASN.1 notation this is any object preceded by
+ a [n] where n is some number - these are assumed to follow the construction
+ rules (as with sequences).
+
+
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ @param explicitly true if an explicitly tagged object.
+ @param tagNo the tag number for this object.
+ @param obj the tagged object.
+
+
+ create an implicitly tagged object that contains a zero
+ length sequence.
+
+
+ Der UniversalString object.
+
+
+ return a Universal string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Universal string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ UTC time object.
+
+
+ return an UTC Time from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTC Time from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ The correct format for this is YYMMDDHHMMSSZ (it used to be that seconds were
+ never encoded. When you're creating one of these objects from scratch, that's
+ what you want to use, otherwise we'll try to deal with whatever Gets read from
+ the input stream... (this is why the input format is different from the GetTime()
+ method output).
+
+ @param time the time string.
+
+
+ base constructor from a DateTime object
+
+
+ return the time as a date based on whatever a 2 digit year will return. For
+ standardised processing use ToAdjustedDateTime().
+
+ @return the resulting date
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time as an adjusted date
+ in the range of 1950 - 2049.
+
+ @return a date in the range of 1950 to 2049.
+ @exception ParseException if the date string cannot be parsed.
+
+
+ return the time - always in the form of
+ YYMMDDhhmmssGMT(+hh:mm|-hh:mm).
+
+ Normally in a certificate we would expect "Z" rather than "GMT",
+ however adding the "GMT" means we can just use:
+
+ dateF = new SimpleDateFormat("yyMMddHHmmssz");
+
+ To read in the time and Get a date which is compatible with our local
+ time zone.
+
+ Note: In some cases, due to the local date processing, this
+ may lead to unexpected results. If you want to stick the normal
+ convention of 1950 to 2049 use the GetAdjustedTime() method.
+
+
+
+ Return a time string as an adjusted date with a 4 digit year.
+ This goes in the range of 1950 - 2049.
+
+
+
+ Der UTF8String object.
+
+
+ return an UTF8 string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return an UTF8 string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+ return a Videotex String from the passed in object
+
+ @param obj a DERVideotexString or an object that can be converted into one.
+ @exception IllegalArgumentException if the object cannot be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ return a Videotex String from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicit true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception IllegalArgumentException if the tagged object cannot
+ be converted.
+ @return a DERVideotexString instance, or null.
+
+
+ basic constructor - with bytes.
+ @param string the byte encoding of the characters making up the string.
+
+
+ Der VisibleString object.
+
+
+ return a Visible string from the passed in object.
+
+ @exception ArgumentException if the object cannot be converted.
+
+
+ return a Visible string from a tagged object.
+
+ @param obj the tagged object holding the object we want
+ @param explicitly true if the object is meant to be explicitly
+ tagged false otherwise.
+ @exception ArgumentException if the tagged object cannot
+ be converted.
+
+
+ basic constructor - byte encoded string.
+
+
+ basic constructor
+
+
+
+ RFC 3126: 4.3.1 Certificate Values Attribute Definition
+
+ CertificateValues ::= SEQUENCE OF Certificate
+
+
+
+
+
+ CommitmentTypeIndication ::= SEQUENCE {
+ commitmentTypeId CommitmentTypeIdentifier,
+ commitmentTypeQualifier SEQUENCE SIZE (1..MAX) OF
+ CommitmentTypeQualifier OPTIONAL }
+
+
+
+ Commitment type qualifiers, used in the Commitment-Type-Indication attribute (RFC3126).
+
+
+ CommitmentTypeQualifier ::= SEQUENCE {
+ commitmentTypeIdentifier CommitmentTypeIdentifier,
+ qualifier ANY DEFINED BY commitmentTypeIdentifier OPTIONAL }
+
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param commitmentTypeIdentifier a CommitmentTypeIdentifier value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new CommitmentTypeQualifier instance.
+
+ @param as CommitmentTypeQualifier structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a DER-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+ RFC 3126: 4.2.1 Complete Certificate Refs Attribute Definition
+
+ CompleteCertificateRefs ::= SEQUENCE OF OtherCertID
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CompleteRevocationRefs ::= SEQUENCE OF CrlOcspRef
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlIdentifier ::= SEQUENCE
+ {
+ crlissuer Name,
+ crlIssuedTime UTCTime,
+ crlNumber INTEGER OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CRLListID ::= SEQUENCE
+ {
+ crls SEQUENCE OF CrlValidatedID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlOcspRef ::= SEQUENCE {
+ crlids [0] CRLListID OPTIONAL,
+ ocspids [1] OcspListID OPTIONAL,
+ otherRev [2] OtherRevRefs OPTIONAL
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ CrlValidatedID ::= SEQUENCE {
+ crlHash OtherHash,
+ crlIdentifier CrlIdentifier OPTIONAL}
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspIdentifier ::= SEQUENCE {
+ ocspResponderID ResponderID,
+ -- As in OCSP response data
+ producedAt GeneralizedTime
+ -- As in OCSP response data
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspListID ::= SEQUENCE {
+ ocspResponses SEQUENCE OF OcspResponsesID
+ }
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OcspResponsesID ::= SEQUENCE {
+ ocspIdentifier OcspIdentifier,
+ ocspRepHash OtherHash OPTIONAL
+ }
+
+
+
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+
+
+
+
+
+ OtherHash ::= CHOICE {
+ sha1Hash OtherHashValue, -- This contains a SHA-1 hash
+ otherHash OtherHashAlgAndValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ Summary description for OtherHashAlgAndValue.
+
+
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OtherHashValue
+ }
+
+ OtherHashValue ::= OCTET STRING
+
+
+
+
+
+ RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition
+
+ OtherRevRefs ::= SEQUENCE
+ {
+ otherRevRefType OtherRevRefType,
+ otherRevRefs ANY DEFINED BY otherRevRefType
+ }
+
+ OtherRevRefType ::= OBJECT IDENTIFIER
+
+
+
+
+
+ RFC 3126: 4.3.2 Revocation Values Attribute Definition
+
+ OtherRevVals ::= SEQUENCE
+ {
+ otherRevValType OtherRevValType,
+ otherRevVals ANY DEFINED BY otherRevValType
+ }
+
+ OtherRevValType ::= OBJECT IDENTIFIER
+
+
+
+
+
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+
+
+
+
+ RFC 5126: 6.3.4. revocation-values Attribute Definition
+
+ RevocationValues ::= SEQUENCE {
+ crlVals [0] SEQUENCE OF CertificateList OPTIONAL,
+ ocspVals [1] SEQUENCE OF BasicOCSPResponse OPTIONAL,
+ otherRevVals [2] OtherRevVals OPTIONAL
+ }
+
+
+
+
+
+
+ SignaturePolicyId ::= SEQUENCE {
+ sigPolicyIdentifier SigPolicyId,
+ sigPolicyHash SigPolicyHash,
+ sigPolicyQualifiers SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo OPTIONAL
+ }
+
+ SigPolicyId ::= OBJECT IDENTIFIER
+
+ SigPolicyHash ::= OtherHashAlgAndValue
+
+
+
+
+
+
+ SignaturePolicyIdentifier ::= CHOICE {
+ SignaturePolicyId SignaturePolicyId,
+ SignaturePolicyImplied SignaturePolicyImplied
+ }
+
+ SignaturePolicyImplied ::= NULL
+
+
+
+
+
+
+ SignerAttribute ::= SEQUENCE OF CHOICE {
+ claimedAttributes [0] ClaimedAttributes,
+ certifiedAttributes [1] CertifiedAttributes }
+
+ ClaimedAttributes ::= SEQUENCE OF Attribute
+ CertifiedAttributes ::= AttributeCertificate -- as defined in RFC 3281: see clause 4.1.
+
+
+
+ Signer-Location attribute (RFC3126).
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+
+
+
+ SignerLocation ::= SEQUENCE {
+ countryName [0] DirectoryString OPTIONAL,
+ localityName [1] DirectoryString OPTIONAL,
+ postalAddress [2] PostalAddress OPTIONAL }
+
+ PostalAddress ::= SEQUENCE SIZE(1..6) OF DirectoryString
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1.. MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+
+
+ SigPolicyQualifierInfo ::= SEQUENCE {
+ sigPolicyQualifierId SigPolicyQualifierId,
+ sigQualifier ANY DEFINED BY sigPolicyQualifierId
+ }
+
+ SigPolicyQualifierId ::= OBJECT IDENTIFIER
+
+
+
+
+ constructor
+
+
+
+ ContentHints ::= SEQUENCE {
+ contentDescription UTF8String (SIZE (1..MAX)) OPTIONAL,
+ contentType ContentType }
+
+
+
+ Create from OCTET STRING whose octets represent the identifier.
+
+
+ Create from byte array representing the identifier.
+
+
+ The definition of ContentIdentifier is
+
+ ContentIdentifier ::= OCTET STRING
+
+ id-aa-contentIdentifier OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 7 }
+
+
+ constructor
+
+
+
+ EssCertID ::= SEQUENCE {
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+
+
+
+ EssCertIDv2 ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier
+ DEFAULT {algorithm id-sha256},
+ certHash Hash,
+ issuerSerial IssuerSerial OPTIONAL
+ }
+
+ Hash ::= OCTET STRING
+
+ IssuerSerial ::= SEQUENCE {
+ issuer GeneralNames,
+ serialNumber CertificateSerialNumber
+ }
+
+
+
+ constructor
+
+
+
+ OtherCertID ::= SEQUENCE {
+ otherCertHash OtherHash,
+ issuerSerial IssuerSerial OPTIONAL }
+
+ OtherHash ::= CHOICE {
+ sha1Hash OCTET STRING,
+ otherHash OtherHashAlgAndValue }
+
+ OtherHashAlgAndValue ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashValue OCTET STRING }
+
+
+
+
+ constructors
+
+
+ The definition of OtherSigningCertificate is
+
+ OtherSigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF OtherCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-ets-otherSigCert OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 19 }
+
+
+ constructors
+
+
+ The definition of SigningCertificate is
+
+ SigningCertificate ::= SEQUENCE {
+ certs SEQUENCE OF EssCertID,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificate OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 12 }
+
+
+ The definition of SigningCertificateV2 is
+
+ SigningCertificateV2 ::= SEQUENCE {
+ certs SEQUENCE OF EssCertIDv2,
+ policies SEQUENCE OF PolicyInformation OPTIONAL
+ }
+
+ id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1)
+ member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
+ smime(16) id-aa(2) 47 }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ 1.3.6.1.4.1.11591.15 - ellipticCurve
+
+
+ Marker interface for CHOICE objects - if you implement this in a roll-your-own
+ object, any attempt to tag the object implicitly will convert the tag to an
+ explicit one as the encoding rules require.
+
+ If you use this interface your class should also implement the getInstance
+ pattern which takes a tag object and the tagging mode used.
+
+
+
+ basic interface for Der string objects.
+
+
+ The CscaMasterList object. This object can be wrapped in a
+ CMSSignedData to be published in LDAP.
+
+
+ CscaMasterList ::= SEQUENCE {
+ version CscaMasterListVersion,
+ certList SET OF Certificate }
+
+ CscaMasterListVersion :: INTEGER {v0(0)}
+
+
+
+ The DataGroupHash object.
+
+ DataGroupHash ::= SEQUENCE {
+ dataGroupNumber DataGroupNumber,
+ dataGroupHashValue OCTET STRING }
+
+ DataGroupNumber ::= INTEGER {
+ dataGroup1 (1),
+ dataGroup1 (2),
+ dataGroup1 (3),
+ dataGroup1 (4),
+ dataGroup1 (5),
+ dataGroup1 (6),
+ dataGroup1 (7),
+ dataGroup1 (8),
+ dataGroup1 (9),
+ dataGroup1 (10),
+ dataGroup1 (11),
+ dataGroup1 (12),
+ dataGroup1 (13),
+ dataGroup1 (14),
+ dataGroup1 (15),
+ dataGroup1 (16) }
+
+
+
+
+ The LDSSecurityObject object (V1.8).
+
+ LDSSecurityObject ::= SEQUENCE {
+ version LDSSecurityObjectVersion,
+ hashAlgorithm DigestAlgorithmIdentifier,
+ dataGroupHashValues SEQUENCE SIZE (2..ub-DataGroups) OF DataHashGroup,
+ ldsVersionInfo LDSVersionInfo OPTIONAL
+ -- if present, version MUST be v1 }
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier,
+
+ LDSSecurityObjectVersion :: INTEGER {V0(0)}
+
+
+
+
+ LDSVersionInfo ::= SEQUENCE {
+ ldsVersion PRINTABLE STRING
+ unicodeVersion PRINTABLE STRING
+ }
+
+ @return
+
+
+ The id-isismtt-cp-accredited OID indicates that the certificate is a
+ qualified certificate according to Directive 1999/93/EC of the European
+ Parliament and of the Council of 13 December 1999 on a Community
+ Framework for Electronic Signatures, which additionally conforms the
+ special requirements of the SigG and has been issued by an accredited CA.
+
+
+ Certificate extensionDate of certificate generation
+
+
+ DateOfCertGenSyntax ::= GeneralizedTime
+
+
+
+ Attribute to indicate that the certificate holder may sign in the name of
+ a third person. May also be used as extension in a certificate.
+
+
+ Attribute to indicate admissions to certain professions. May be used as
+ attribute in attribute certificate or as extension in a certificate
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST
+ be used in new certificates in place of the extension/attribute
+ MonetaryLimit since January 1, 2004. For the sake of backward
+ compatibility with certificates already in use, SigG conforming
+ components MUST support MonetaryLimit (as well as QcEuLimitValue).
+
+
+ A declaration of majority. May be used as attribute in attribute
+ certificate or as extension in a certificate
+
+
+
+ Serial number of the smart card containing the corresponding private key
+
+
+ ICCSNSyntax ::= OCTET STRING (SIZE(8..20))
+
+
+
+
+ Reference for a file of a smartcard that stores the public key of this
+ certificate and that is used as �security anchor�.
+
+
+ PKReferenceSyntax ::= OCTET STRING (SIZE(20))
+
+
+
+ Some other restriction regarding the usage of this certificate. May be
+ used as attribute in attribute certificate or as extension in a
+ certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Restriction
+
+
+
+ (Single)Request extension: Clients may include this extension in a
+ (single) Request to request the responder to send the certificate in the
+ response message along with the status information. Besides the LDAP
+ service, this extension provides another mechanism for the distribution
+ of certificates, which MAY optionally be provided by certificate
+ repositories.
+
+
+ RetrieveIfAllowed ::= BOOLEAN
+
+
+
+ SingleOCSPResponse extension: The certificate requested by the client by
+ inserting the RetrieveIfAllowed extension in the request, will be
+ returned in this extension.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.RequestedCertificate
+
+
+ Base ObjectIdentifier for naming authorities
+
+
+ SingleOCSPResponse extension: Date, when certificate has been published
+ in the directory and status information has become available. Currently,
+ accrediting authorities enforce that SigG-conforming OCSP servers include
+ this extension in the responses.
+
+
+ CertInDirSince ::= GeneralizedTime
+
+
+
+ Hash of a certificate in OCSP.
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.Ocsp.CertHash
+
+
+
+ NameAtBirth ::= DirectoryString(SIZE(1..64)
+
+
+ Used in
+ {@link Org.BouncyCastle.Asn1.X509.SubjectDirectoryAttributes SubjectDirectoryAttributes}
+
+
+ Some other information of non-restrictive nature regarding the usage of
+ this certificate. May be used as attribute in atribute certificate or as
+ extension in a certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdditionalInformationSyntax
+
+
+ Indicates that an attribute certificate exists, which limits the
+ usability of this public key certificate. Whenever verifying a signature
+ with the help of this certificate, the content of the corresponding
+ attribute certificate should be concerned. This extension MUST be
+ included in a PKC, if a corresponding attribute certificate (having the
+ PKC as base certificate) contains some attribute that restricts the
+ usability of the PKC too. Attribute certificates with restricting content
+ MUST always be included in the signed document.
+
+
+ LiabilityLimitationFlagSyntax ::= BOOLEAN
+
+
+
+ ISIS-MTT PROFILE: The responder may include this extension in a response to
+ send the hash of the requested certificate to the responder. This hash is
+ cryptographically bound to the certificate and serves as evidence that the
+ certificate is known to the responder (i.e. it has been issued and is present
+ in the directory). Hence, this extension is a means to provide a positive
+ statement of availability as described in T8.[8]. As explained in T13.[1],
+ clients may rely on this information to be able to validate signatures after
+ the expiry of the corresponding certificate. Hence, clients MUST support this
+ extension. If a positive statement of availability is to be delivered, this
+ extension syntax and OID MUST be used.
+
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertHash:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param hashAlgorithm The hash algorithm identifier.
+ @param certificateHash The hash of the whole DER encoding of the certificate.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertHash ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ certificateHash OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ ISIS-MTT-Optional: The certificate requested by the client by inserting the
+ RetrieveIfAllowed extension in the request, will be returned in this
+ extension.
+
+ ISIS-MTT-SigG: The signature act allows publishing certificates only then,
+ when the certificate owner gives his isExplicit permission. Accordingly, there
+ may be �nondownloadable� certificates, about which the responder must provide
+ status information, but MUST NOT include them in the response. Clients may
+ get therefore the following three kind of answers on a single request
+ including the RetrieveIfAllowed extension:
+
+ - a) the responder supports the extension and is allowed to publish the
+ certificate: RequestedCertificate returned including the requested
+ certificate
+ - b) the responder supports the extension but is NOT allowed to publish
+ the certificate: RequestedCertificate returned including an empty OCTET
+ STRING
+ - c) the responder does not support the extension: RequestedCertificate is
+ not included in the response
+
+ Clients requesting RetrieveIfAllowed MUST be able to handle these cases. If
+ any of the OCTET STRING options is used, it MUST contain the DER encoding of
+ the requested certificate.
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+
+ Constructor from a given details.
+
+ Only one parameter can be given. All other must be null.
+
+ @param certificate Given as Certificate
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RequestedCertificate ::= CHOICE {
+ Certificate Certificate,
+ publicKeyCertificate [0] EXPLICIT OCTET STRING,
+ attributeCertificate [1] EXPLICIT OCTET STRING
+ }
+
+
+ @return an Asn1Object
+
+
+ Some other information of non-restrictive nature regarding the usage of this
+ certificate.
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+
+ Constructor from a given details.
+
+ @param information The describtion of the information.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdditionalInformationSyntax ::= DirectoryString (SIZE(1..2048))
+
+
+ @return an Asn1Object
+
+
+ An Admissions structure.
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ Parameter professionInfos is mandatory.
+
+ @param admissionAuthority The admission authority.
+ @param namingAuthority The naming authority.
+ @param professionInfos The profession infos.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate admissions to certain professions.
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+
+ ISIS-MTT PROFILE: The relatively complex structure of AdmissionSyntax
+ supports the following concepts and requirements:
+
+ - External institutions (e.g. professional associations, chambers, unions,
+ administrative bodies, companies, etc.), which are responsible for granting
+ and verifying professional admissions, are indicated by means of the data
+ field admissionAuthority. An admission authority is indicated by a
+ GeneralName object. Here an X.501 directory name (distinguished name) can be
+ indicated in the field directoryName, a URL address can be indicated in the
+ field uniformResourceIdentifier, and an object identifier can be indicated in
+ the field registeredId.
+ - The names of authorities which are responsible for the administration of
+ title registers are indicated in the data field namingAuthority. The name of
+ the authority can be identified by an object identifier in the field
+ namingAuthorityId, by means of a text string in the field
+ namingAuthorityText, by means of a URL address in the field
+ namingAuthorityUrl, or by a combination of them. For example, the text string
+ can contain the name of the authority, the country and the name of the title
+ register. The URL-option refers to a web page which contains lists with
+ officially registered professions (text and possibly OID) as well as
+ further information on these professions. Object identifiers for the
+ component namingAuthorityId are grouped under the OID-branch
+ id-isis-at-namingAuthorities and must be applied for.
+ - See http://www.teletrust.de/anwend.asp?Id=30200&Sprache=E_&HomePG=0
+ for an application form and http://www.teletrust.de/links.asp?id=30220,11
+ for an overview of registered naming authorities.
+ - By means of the data type ProfessionInfo certain professions,
+ specializations, disciplines, fields of activity, etc. are identified. A
+ profession is represented by one or more text strings, resp. profession OIDs
+ in the fields professionItems and professionOIDs and by a registration number
+ in the field registrationNumber. An indication in text form must always be
+ present, whereas the other indications are optional. The component
+ addProfessionInfo may contain additional applicationspecific information in
+ DER-encoded form.
+
+
+ By means of different namingAuthority-OIDs or profession OIDs hierarchies of
+ professions, specializations, disciplines, fields of activity, etc. can be
+ expressed. The issuing admission authority should always be indicated (field
+ admissionAuthority), whenever a registration number is presented. Still,
+ information on admissions can be given without indicating an admission or a
+ naming authority by the exclusive use of the component professionItems. In
+ this case the certification authority is responsible for the verification of
+ the admission information.
+
+
+
+ This attribute is single-valued. Still, several admissions can be captured in
+ the sequence structure of the component contentsOfAdmissions of
+ AdmissionSyntax or in the component professionInfos of Admissions. The
+ component admissionAuthority of AdmissionSyntax serves as default value for
+ the component admissionAuthority of Admissions. Within the latter component
+ the default value can be overwritten, in case that another authority is
+ responsible. The component namingAuthority of Admissions serves as a default
+ value for the component namingAuthority of ProfessionInfo. Within the latter
+ component the default value can be overwritten, in case that another naming
+ authority needs to be recorded.
+
+ The length of the string objects is limited to 128 characters. It is
+ recommended to indicate a namingAuthorityURL in all issued attribute
+ certificates. If a namingAuthorityURL is indicated, the field professionItems
+ of ProfessionInfo should contain only registered titles. If the field
+ professionOIDs exists, it has to contain the OIDs of the professions listed
+ in professionItems in the same order. In general, the field professionInfos
+ should contain only one entry, unless the admissions that are to be listed
+ are logically connected (e.g. they have been issued under the same admission
+ number).
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.Admissions
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.ProfessionInfo
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.NamingAuthority
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ @param admissionAuthority The admission authority.
+ @param contentsOfAdmissions The admissions.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ AdmissionSyntax ::= SEQUENCE
+ {
+ admissionAuthority GeneralName OPTIONAL,
+ contentsOfAdmissions SEQUENCE OF Admissions
+ }
+
+ Admissions ::= SEQUENCE
+ {
+ admissionAuthority [0] EXPLICIT GeneralName OPTIONAL
+ namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL
+ professionInfos SEQUENCE OF ProfessionInfo
+ }
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityId OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the admissionAuthority if present, null otherwise.
+
+
+ @return Returns the contentsOfAdmissions.
+
+
+ A declaration of majority.
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ fullAgeAtCountry indicates the majority of the owner with respect to the laws
+ of a specific country.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ DeclarationOfMajoritySyntax ::= CHOICE
+ {
+ notYoungerThan [0] IMPLICIT INTEGER,
+ fullAgeAtCountry [1] IMPLICIT SEQUENCE
+ {
+ fullAge BOOLEAN DEFAULT TRUE,
+ country PrintableString (SIZE(2))
+ }
+ dateOfBirth [2] IMPLICIT GeneralizedTime
+ }
+
+
+ @return an Asn1Object
+
+
+ @return notYoungerThan if that's what we are, -1 otherwise
+
+
+ Monetary limit for transactions. The QcEuMonetaryLimit QC statement MUST be
+ used in new certificates in place of the extension/attribute MonetaryLimit
+ since January 1, 2004. For the sake of backward compatibility with
+ certificates already in use, components SHOULD support MonetaryLimit (as well
+ as QcEuLimitValue).
+
+ Indicates a monetary limit within which the certificate holder is authorized
+ to act. (This value DOES NOT express a limit on the liability of the
+ certification authority).
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ currency must be the ISO code.
+
+ value = amount�10*exponent
+
+
+ Constructor from a given details.
+
+
+ value = amount�10^exponent
+
+ @param currency The currency. Must be the ISO code.
+ @param amount The amount
+ @param exponent The exponent
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ MonetaryLimitSyntax ::= SEQUENCE
+ {
+ currency PrintableString (SIZE(3)),
+ amount INTEGER,
+ exponent INTEGER
+ }
+
+
+ @return an Asn1Object
+
+
+ Names of authorities which are responsible for the administration of title
+ registers.
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+
+ Profession OIDs should always be defined under the OID branch of the
+ responsible naming authority. At the time of this writing, the work group
+ �Recht, Wirtschaft, Steuern� (�Law, Economy, Taxes�) is registered as the
+ first naming authority under the OID id-isismtt-at-namingAuthorities.
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ @return Returns the namingAuthorityID.
+
+
+ @return Returns the namingAuthorityText.
+
+
+ @return Returns the namingAuthorityUrl.
+
+
+ Constructor from given details.
+
+ All parameters can be combined.
+
+ @param namingAuthorityID ObjectIdentifier for naming authority.
+ @param namingAuthorityUrl URL for naming authority.
+ @param namingAuthorityText Textual representation of naming authority.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NamingAuthority ::= SEQUENCE
+ {
+ namingAuthorityID OBJECT IDENTIFIER OPTIONAL,
+ namingAuthorityUrl IA5String OPTIONAL,
+ namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Attribute to indicate that the certificate holder may sign in the name of a
+ third person.
+
+ ISIS-MTT PROFILE: The corresponding ProcurationSyntax contains either the
+ name of the person who is represented (subcomponent thirdPerson) or a
+ reference to his/her base certificate (in the component signingFor,
+ subcomponent certRef), furthermore the optional components country and
+ typeSubstitution to indicate the country whose laws apply, and respectively
+ the type of procuration (e.g. manager, procuration, custody).
+
+
+ ISIS-MTT PROFILE: The GeneralName MUST be of type directoryName and MAY only
+ contain: - RFC3039 attributes, except pseudonym (countryName, commonName,
+ surname, givenName, serialNumber, organizationName, organizationalUnitName,
+ stateOrProvincename, localityName, postalAddress) and - SubjectDirectoryName
+ attributes (title, dateOfBirth, placeOfBirth, gender, countryOfCitizenship,
+ countryOfResidence and NameAtBirth).
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type ProcurationSyntax:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param certRef Reference to certificate of the person who is represented.
+
+
+ Constructor from a given details.
+
+
+ Either generalName or certRef MUST be
+ null.
+
+ @param country The country code whose laws apply.
+ @param typeOfSubstitution The type of procuration.
+ @param thirdPerson The GeneralName of the person who is represented.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProcurationSyntax ::= SEQUENCE {
+ country [1] EXPLICIT PrintableString(SIZE(2)) OPTIONAL,
+ typeOfSubstitution [2] EXPLICIT DirectoryString (SIZE(1..128)) OPTIONAL,
+ signingFor [3] EXPLICIT SigningFor
+ }
+
+ SigningFor ::= CHOICE
+ {
+ thirdPerson GeneralName,
+ certRef IssuerSerial
+ }
+
+
+ @return an Asn1Object
+
+
+ Professions, specializations, disciplines, fields of activity, etc.
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @see Org.BouncyCastle.Asn1.IsisMtt.X509.AdmissionSyntax
+
+
+ Rechtsanw�ltin
+
+
+ Rechtsanwalt
+
+
+ Rechtsbeistand
+
+
+ Steuerberaterin
+
+
+ Steuerberater
+
+
+ Steuerbevollm�chtigte
+
+
+ Steuerbevollm�chtigter
+
+
+ Notarin
+
+
+ Notar
+
+
+ Notarvertreterin
+
+
+ Notarvertreter
+
+
+ Notariatsverwalterin
+
+
+ Notariatsverwalter
+
+
+ Wirtschaftspr�ferin
+
+
+ Wirtschaftspr�fer
+
+
+ Vereidigte Buchpr�ferin
+
+
+ Vereidigter Buchpr�fer
+
+
+ Patentanw�ltin
+
+
+ Patentanwalt
+
+
+ Constructor from Asn1Sequence.
+
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from given details.
+
+ professionItems is mandatory, all other parameters are
+ optional.
+
+ @param namingAuthority The naming authority.
+ @param professionItems Directory strings of the profession.
+ @param professionOids DERObjectIdentfier objects for the
+ profession.
+ @param registrationNumber Registration number.
+ @param addProfessionInfo Additional infos in encoded form.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ ProfessionInfo ::= SEQUENCE
+ {
+ namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,
+ professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),
+ professionOids SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,
+ registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,
+ addProfessionInfo OCTET STRING OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ @return Returns the addProfessionInfo.
+
+
+ @return Returns the namingAuthority.
+
+
+ @return Returns the professionItems.
+
+
+ @return Returns the professionOids.
+
+
+ @return Returns the registrationNumber.
+
+
+ Some other restriction regarding the usage of this certificate.
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ Constructor from DirectoryString.
+
+ The DirectoryString is of type RestrictionSyntax:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+ @param restriction A IAsn1String.
+
+
+ Constructor from a given details.
+
+ @param restriction The description of the restriction.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ RestrictionSyntax ::= DirectoryString (SIZE(1..1024))
+
+
+
+ @return an Asn1Object
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ cast5CBCParameters ::= Sequence {
+ iv OCTET STRING DEFAULT 0,
+ -- Initialization vector
+ keyLength Integer
+ -- Key length, in bits
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IDEA-CBCPar ::= Sequence {
+ iv OCTET STRING OPTIONAL -- exactly 8 octets
+ }
+
+
+
+ The NetscapeCertType object.
+
+ NetscapeCertType ::= BIT STRING {
+ SSLClient (0),
+ SSLServer (1),
+ S/MIME (2),
+ Object Signing (3),
+ Reserved (4),
+ SSL CA (5),
+ S/MIME CA (6),
+ Object Signing CA (7) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509NetscapeCertType.sslCA | X509NetscapeCertType.smimeCA)
+
+
+ This is designed to parse
+ the PublicKeyAndChallenge created by the KEYGEN tag included by
+ Mozilla based browsers.
+
+ PublicKeyAndChallenge ::= SEQUENCE {
+ spki SubjectPublicKeyInfo,
+ challenge IA5STRING
+ }
+
+
+
+
+ Utility class for fetching curves using their NIST names as published in FIPS-PUB 186-3
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ From RFC 3657
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicOcspResponse ::= Sequence {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertID ::= Sequence {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ create a CertStatus object with a tag of zero.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CertStatus ::= CHOICE {
+ good [0] IMPLICIT Null,
+ revoked [1] IMPLICIT RevokedInfo,
+ unknown [2] IMPLICIT UnknownInfo }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlID ::= Sequence {
+ crlUrl [0] EXPLICIT IA5String OPTIONAL,
+ crlNum [1] EXPLICIT Integer OPTIONAL,
+ crlTime [2] EXPLICIT GeneralizedTime OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspRequest ::= Sequence {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OcspResponse ::= Sequence {
+ responseStatus OcspResponseStatus,
+ responseBytes [0] EXPLICIT ResponseBytes OPTIONAL }
+
+
+
+ The OcspResponseStatus enumeration.
+
+ OcspResponseStatus ::= Enumerated {
+ successful (0), --Response has valid confirmations
+ malformedRequest (1), --Illegal confirmation request
+ internalError (2), --Internal error in issuer
+ tryLater (3), --Try again later
+ --(4) is not used
+ sigRequired (5), --Must sign the request
+ unauthorized (6) --Request unauthorized
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Request ::= Sequence {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponderID ::= CHOICE {
+ byName [1] Name,
+ byKey [2] KeyHash }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseBytes ::= Sequence {
+ responseType OBJECT IDENTIFIER,
+ response OCTET STRING }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ResponseData ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ responderID ResponderID,
+ producedAt GeneralizedTime,
+ responses Sequence OF SingleResponse,
+ responseExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ RevokedInfo ::= Sequence {
+ revocationTime GeneralizedTime,
+ revocationReason [0] EXPLICIT CRLReason OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ServiceLocator ::= Sequence {
+ issuer Name,
+ locator AuthorityInfoAccessSyntax OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Signature ::= Sequence {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT Sequence OF Certificate OPTIONAL}
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SingleResponse ::= Sequence {
+ certID CertID,
+ certStatus CertStatus,
+ thisUpdate GeneralizedTime,
+ nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL,
+ singleExtensions [1] EXPLICIT Extensions OPTIONAL }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ TBSRequest ::= Sequence {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList Sequence OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+
+
+ class for breaking up an Oid into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ return an Attribute object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ Pkcs10 Certfication request object.
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+
+
+ Pkcs10 CertificationRequestInfo object.
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ContentInfo ::= Sequence {
+ contentType ContentType,
+ content
+ [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }
+
+
+
+ The EncryptedData object.
+
+ EncryptedData ::= Sequence {
+ version Version,
+ encryptedContentInfo EncryptedContentInfo
+ }
+
+
+ EncryptedContentInfo ::= Sequence {
+ contentType ContentType,
+ contentEncryptionAlgorithm ContentEncryptionAlgorithmIdentifier,
+ encryptedContent [0] IMPLICIT EncryptedContent OPTIONAL
+ }
+
+ EncryptedContent ::= OCTET STRING
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ EncryptedPrivateKeyInfo ::= Sequence {
+ encryptionAlgorithm AlgorithmIdentifier {{KeyEncryptionAlgorithms}},
+ encryptedData EncryptedData
+ }
+
+ EncryptedData ::= OCTET STRING
+
+ KeyEncryptionAlgorithms ALGORITHM-IDENTIFIER ::= {
+ ... -- For local profiles
+ }
+
+
+
+
+ MacData ::= SEQUENCE {
+ mac DigestInfo,
+ macSalt OCTET STRING,
+ iterations INTEGER DEFAULT 1
+ -- Note: The default is for historic reasons and its use is deprecated. A
+ -- higher value, like 1024 is recommended.
+
+ @return the basic DERObject construction.
+
+
+ the infamous Pfx from Pkcs12
+
+
+ PKCS#1: 1.2.840.113549.1.1.15
+
+
+ PKCS#1: 1.2.840.113549.1.1.16
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.6.2.37 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.6.2.38 - RFC 4108
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.54 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.43 RFC7030
+
+
+ PKCS#9: 1.2.840.113549.1.9.16.2.40 RFC7030
+
+
+ write out an RSA private key with its associated information
+ as described in Pkcs8.
+
+ PrivateKeyInfo ::= Sequence {
+ version Version,
+ privateKeyAlgorithm AlgorithmIdentifier {{PrivateKeyAlgorithms}},
+ privateKey PrivateKey,
+ attributes [0] IMPLICIT Attributes OPTIONAL
+ }
+ Version ::= Integer {v1(0)} (v1,...)
+
+ PrivateKey ::= OCTET STRING
+
+ Attributes ::= Set OF Attr
+
+
+
+ The default version
+
+
+
+ RSAES-OAEP-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ pSourceAlgorithm [2] PKCS1PSourceAlgorithms DEFAULT pSpecifiedEmpty
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+ PKCS1PSourceAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-pSpecified PARAMETERS OCTET STRING },
+ ... -- Allows for future expansion --
+ }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RsaPrivateKey ::= Sequence {
+ version Version,
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ privateExponent Integer, -- d
+ prime1 Integer, -- p
+ prime2 Integer, -- q
+ exponent1 Integer, -- d mod (p-1)
+ exponent2 Integer, -- d mod (q-1)
+ coefficient Integer -- (inverse of q) mod p
+ }
+
+ Version ::= Integer
+
+ This routine is written to output Pkcs1 version 0, private keys.
+
+
+ The default version
+
+
+
+ RSASSA-PSS-params ::= SEQUENCE {
+ hashAlgorithm [0] OAEP-PSSDigestAlgorithms DEFAULT sha1,
+ maskGenAlgorithm [1] PKCS1MGFAlgorithms DEFAULT mgf1SHA1,
+ saltLength [2] INTEGER DEFAULT 20,
+ trailerField [3] TrailerField DEFAULT trailerFieldBC
+ }
+
+ OAEP-PSSDigestAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-sha1 PARAMETERS NULL }|
+ { OID id-sha256 PARAMETERS NULL }|
+ { OID id-sha384 PARAMETERS NULL }|
+ { OID id-sha512 PARAMETERS NULL },
+ ... -- Allows for future expansion --
+ }
+
+ PKCS1MGFAlgorithms ALGORITHM-IDENTIFIER ::= {
+ { OID id-mgf1 PARAMETERS OAEP-PSSDigestAlgorithms },
+ ... -- Allows for future expansion --
+ }
+
+ TrailerField ::= INTEGER { trailerFieldBC(1) }
+
+ @return the asn1 primitive representing the parameters.
+
+
+ a Pkcs#7 signed data object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignedData ::= Sequence {
+ version Version,
+ digestAlgorithms DigestAlgorithmIdentifiers,
+ contentInfo ContentInfo,
+ certificates
+ [0] IMPLICIT ExtendedCertificatesAndCertificates
+ OPTIONAL,
+ crls
+ [1] IMPLICIT CertificateRevocationLists OPTIONAL,
+ signerInfos SignerInfos }
+
+
+
+ a Pkcs#7 signer info object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SignerInfo ::= Sequence {
+ version Version,
+ issuerAndSerialNumber IssuerAndSerialNumber,
+ digestAlgorithm DigestAlgorithmIdentifier,
+ authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL,
+ digestEncryptionAlgorithm DigestEncryptionAlgorithmIdentifier,
+ encryptedDigest EncryptedDigest,
+ unauthenticatedAttributes [1] IMPLICIT Attributes OPTIONAL
+ }
+
+ EncryptedDigest ::= OCTET STRING
+
+ DigestAlgorithmIdentifier ::= AlgorithmIdentifier
+
+ DigestEncryptionAlgorithmIdentifier ::= AlgorithmIdentifier
+
+
+
+ the elliptic curve private key object from SEC 1
+
+
+ ECPrivateKey ::= SEQUENCE {
+ version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
+ privateKey OCTET STRING,
+ parameters [0] Parameters OPTIONAL,
+ publicKey [1] BIT STRING OPTIONAL }
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ EllipticCurve OBJECT IDENTIFIER ::= {
+ iso(1) identified-organization(3) certicom(132) curve(0)
+ }
+
+
+ Handler class for dealing with S/MIME Capabilities
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ returns an ArrayList with 0 or more objects of all the capabilities
+ matching the passed in capability Oid. If the Oid passed is null the
+ entire set is returned.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapabilities ::= Sequence OF SMIMECapability
+
+
+
+ general preferences
+
+
+ encryption algorithms preferences
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SMIMECapability ::= Sequence {
+ capabilityID OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY capabilityID OPTIONAL
+ }
+
+
+
+ Handler for creating a vector S/MIME Capabilities
+
+
+ The SmimeEncryptionKeyPreference object.
+
+ SmimeEncryptionKeyPreference ::= CHOICE {
+ issuerAndSerialNumber [0] IssuerAndSerialNumber,
+ receipentKeyId [1] RecipientKeyIdentifier,
+ subjectAltKeyIdentifier [2] SubjectKeyIdentifier
+ }
+
+
+
+ @param sKeyId the subjectKeyIdentifier value (normally the X.509 one)
+
+
+ elliptic curves defined in "ECC Brainpool Standard Curves and Curve Generation"
+ http://www.ecc-brainpool.org/download/draft_pkix_additional_ecc_dp.txt
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+
+ Accuracy ::= SEQUENCE {
+ seconds INTEGER OPTIONAL,
+ millis [0] INTEGER (1..999) OPTIONAL,
+ micros [1] INTEGER (1..999) OPTIONAL
+ }
+
+
+
+ @param o
+ @return a MessageImprint object.
+
+
+
+ MessageImprint ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ hashedMessage OCTET STRING }
+
+
+
+
+ TimeStampReq ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ messageImprint MessageImprint,
+ --a hash algorithm OID and the hash value of the data to be
+ --time-stamped
+ reqPolicy TSAPolicyId OPTIONAL,
+ nonce INTEGER OPTIONAL,
+ certReq BOOLEAN DEFAULT FALSE,
+ extensions [0] IMPLICIT Extensions OPTIONAL
+ }
+
+
+
+
+ TimeStampResp ::= SEQUENCE {
+ status PkiStatusInfo,
+ timeStampToken TimeStampToken OPTIONAL }
+
+
+
+
+
+ TstInfo ::= SEQUENCE {
+ version INTEGER { v1(1) },
+ policy TSAPolicyId,
+ messageImprint MessageImprint,
+ -- MUST have the same value as the similar field in
+ -- TimeStampReq
+ serialNumber INTEGER,
+ -- Time-Stamping users MUST be ready to accommodate integers
+ -- up to 160 bits.
+ genTime GeneralizedTime,
+ accuracy Accuracy OPTIONAL,
+ ordering BOOLEAN DEFAULT FALSE,
+ nonce INTEGER OPTIONAL,
+ -- MUST be present if the similar field was present
+ -- in TimeStampReq. In that case it MUST have the same value.
+ tsa [0] GeneralName OPTIONAL,
+ extensions [1] IMPLICIT Extensions OPTIONAL }
+
+
+
+
+
+ Base OID: 1.2.804.2.1.1.1
+
+
+ DSTU4145 Little Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1
+
+
+ DSTU4145 Big Endian presentation. OID: 1.2.804.2.1.1.1.1.3.1.1.1
+
+
+ DSTU7564 256-bit digest presentation.
+
+
+ DSTU7564 384-bit digest presentation.
+
+
+ DSTU7564 512-bit digest presentation.
+
+
+ DSTU7564 256-bit mac presentation.
+
+
+ DSTU7564 384-bit mac presentation.
+
+
+ DSTU7564 512-bit mac presentation.
+
+
+ DSTU7624 in ECB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in ECB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CTR mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in MAC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CBC mode with 512 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 128 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 256 bit block/key presentation
+
+
+ DSTU7624 in OFB mode with 512 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in GMAC (GCM witout encryption) mode with 512 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 128 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 256 bit block/key presentation
+
+
+ DSTU7624 in CCM mode with 512 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 128 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 256 bit block/key presentation
+
+
+ DSTU7624 in XTS mode with 512 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 128 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 256 bit block/key presentation
+
+
+ DSTU7624 in key wrap (KW) mode with 512 bit block/key presentation
+
+
+ dump a Der object as a formatted string with indentation
+
+ @param obj the Asn1Object to be dumped out.
+
+
+ dump out a DER object as a formatted string, in non-verbose mode
+
+ @param obj the Asn1Encodable to be dumped out.
+ @return the resulting string.
+
+
+ Dump out the object as a string
+
+ @param obj the Asn1Encodable to be dumped out.
+ @param verbose if true, dump out the contents of octet and bit strings.
+ @return the resulting string.
+
+
+
+ DirectoryString ::= CHOICE {
+ teletexString TeletexString (SIZE (1..MAX)),
+ printableString PrintableString (SIZE (1..MAX)),
+ universalString UniversalString (SIZE (1..MAX)),
+ utf8String UTF8String (SIZE (1..MAX)),
+ bmpString BMPString (SIZE (1..MAX)) }
+
+
+
+ The AccessDescription object.
+
+ AccessDescription ::= SEQUENCE {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+
+
+ create an AccessDescription with the oid and location provided.
+
+
+
+ @return the access method.
+
+
+
+ @return the access location
+
+
+
+ Return the OID in the Algorithm entry of this identifier.
+
+
+
+
+ Return the parameters structure in the Parameters entry of this identifier.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AlgorithmIdentifier ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ parameters ANY DEFINED BY algorithm OPTIONAL }
+
+
+
+
+ Don't use this one if you are trying to be RFC 3281 compliant.
+ Use it for v1 attribute certificates only.
+
+ Our GeneralNames structure
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertIssuer ::= CHOICE {
+ v1Form GeneralNames, -- MUST NOT be used in this
+ -- profile
+ v2Form [0] V2Form -- v2 only
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttCertValidityPeriod ::= Sequence {
+ notBeforeTime GeneralizedTime,
+ notAfterTime GeneralizedTime
+ }
+
+
+
+ return an Attr object from the given object.
+
+ @param o the object we want converted.
+ @exception ArgumentException if the object cannot be converted.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Attr ::= Sequence {
+ attrType OBJECT IDENTIFIER,
+ attrValues Set OF AttributeValue
+ }
+
+
+
+ @param obj
+ @return
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificate ::= Sequence {
+ acinfo AttributeCertificateInfo,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING
+ }
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+ AttCertVersion ::= Integer { v2(1) }
+
+
+
+ The AuthorityInformationAccess object.
+
+ id-pe-authorityInfoAccess OBJECT IDENTIFIER ::= { id-pe 1 }
+
+ AuthorityInfoAccessSyntax ::=
+ Sequence SIZE (1..MAX) OF AccessDescription
+ AccessDescription ::= Sequence {
+ accessMethod OBJECT IDENTIFIER,
+ accessLocation GeneralName }
+
+ id-ad OBJECT IDENTIFIER ::= { id-pkix 48 }
+ id-ad-caIssuers OBJECT IDENTIFIER ::= { id-ad 2 }
+ id-ad-ocsp OBJECT IDENTIFIER ::= { id-ad 1 }
+
+
+
+ create an AuthorityInformationAccess with the oid and location provided.
+
+
+ The AuthorityKeyIdentifier object.
+
+ id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= { id-ce 35 }
+
+ AuthorityKeyIdentifier ::= Sequence {
+ keyIdentifier [0] IMPLICIT KeyIdentifier OPTIONAL,
+ authorityCertIssuer [1] IMPLICIT GeneralNames OPTIONAL,
+ authorityCertSerialNumber [2] IMPLICIT CertificateSerialNumber OPTIONAL }
+
+ KeyIdentifier ::= OCTET STRING
+
+
+
+
+ *
+ * Calulates the keyidentifier using a SHA1 hash over the BIT STRING
+ * from SubjectPublicKeyInfo as defined in RFC2459.
+ *
+ * Example of making a AuthorityKeyIdentifier:
+ *
+ * SubjectPublicKeyInfo apki = new SubjectPublicKeyInfo((ASN1Sequence)new ASN1InputStream(
+ * publicKey.getEncoded()).readObject());
+ * AuthorityKeyIdentifier aki = new AuthorityKeyIdentifier(apki);
+ *
+ *
+ *
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided as well.
+
+
+ create an AuthorityKeyIdentifier with the GeneralNames tag and
+ the serial number provided.
+
+
+ create an AuthorityKeyIdentifier with a precomputed key identifier
+
+
+ create an AuthorityKeyIdentifier with a precomupted key identifier
+ and the GeneralNames tag and the serial number provided as well.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+ create a cA=true object for the given path length constraint.
+
+ @param pathLenConstraint
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ BasicConstraints := Sequence {
+ cA Boolean DEFAULT FALSE,
+ pathLenConstraint Integer (0..MAX) OPTIONAL
+ }
+
+
+
+ PKIX RFC-2459
+
+ The X.509 v2 CRL syntax is as follows. For signature calculation,
+ the data that is to be signed is ASN.1 Der encoded.
+
+
+ CertificateList ::= Sequence {
+ tbsCertList TbsCertList,
+ signatureAlgorithm AlgorithmIdentifier,
+ signatureValue BIT STRING }
+
+
+
+ This class helps to support crossCerfificatePairs in a LDAP directory
+ according RFC 2587
+
+
+ crossCertificatePairATTRIBUTE::={
+ WITH SYNTAX CertificatePair
+ EQUALITY MATCHING RULE certificatePairExactMatch
+ ID joint-iso-ccitt(2) ds(5) attributeType(4) crossCertificatePair(40)}
+
+
+ The forward elements of the crossCertificatePair attribute of a
+ CA's directory entry shall be used to store all, except self-issued
+ certificates issued to this CA. Optionally, the reverse elements of the
+ crossCertificatePair attribute, of a CA's directory entry may contain a
+ subset of certificates issued by this CA to other CAs. When both the forward
+ and the reverse elements are present in a single attribute value, issuer name
+ in one certificate shall match the subject name in the other and vice versa,
+ and the subject public key in one certificate shall be capable of verifying
+ the digital signature on the other certificate and vice versa.
+
+ When a reverse element is present, the forward element value and the reverse
+ element value need not be stored in the same attribute value; in other words,
+ they can be stored in either a single attribute value or two attribute
+ values.
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type CertificatePair:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param forward Certificates issued to this CA.
+ @param reverse Certificates issued by this CA to other CAs.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ CertificatePair ::= SEQUENCE {
+ forward [0] Certificate OPTIONAL,
+ reverse [1] Certificate OPTIONAL,
+ -- at least one of the pair shall be present -- }
+
+
+ @return a DERObject
+
+
+ @return Returns the forward.
+
+
+ @return Returns the reverse.
+
+
+ Construct a CertificatePolicies object containing one PolicyInformation.
+
+ @param name the name to be contained.
+
+
+ Produce an object suitable for an ASN1OutputStream.
+
+ CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation
+
+
+
+ CertPolicyId, used in the CertificatePolicies and PolicyMappings
+ X509V3 Extensions.
+
+
+ CertPolicyId ::= OBJECT IDENTIFIER
+
+
+
+ Return the distribution points making up the sequence.
+
+ @return DistributionPoint[]
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ CrlDistPoint ::= Sequence SIZE {1..MAX} OF DistributionPoint
+
+
+
+ The CRLNumber object.
+
+ CRLNumber::= Integer(0..MAX)
+
+
+
+ The CRLReason enumeration.
+
+ CRLReason ::= Enumerated {
+ unspecified (0),
+ keyCompromise (1),
+ cACompromise (2),
+ affiliationChanged (3),
+ superseded (4),
+ cessationOfOperation (5),
+ certificateHold (6),
+ removeFromCRL (8),
+ privilegeWithdrawn (9),
+ aACompromise (10)
+ }
+
+
+
+ The DigestInfo object.
+
+ DigestInfo::=Sequence{
+ digestAlgorithm AlgorithmIdentifier,
+ digest OCTET STRING }
+
+
+
+ DisplayText class, used in
+ CertificatePolicies X509 V3 extensions (in policy qualifiers).
+
+ It stores a string in a chosen encoding.
+
+ DisplayText ::= CHOICE {
+ ia5String IA5String (SIZE (1..200)),
+ visibleString VisibleString (SIZE (1..200)),
+ bmpString BMPString (SIZE (1..200)),
+ utf8String UTF8String (SIZE (1..200)) }
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Constant corresponding to ia5String encoding.
+
+
+
+ Constant corresponding to bmpString encoding.
+
+
+
+ Constant corresponding to utf8String encoding.
+
+
+
+ Constant corresponding to visibleString encoding.
+
+
+
+ Describe constant DisplayTextMaximumSize here.
+
+
+
+ Creates a new DisplayText instance.
+
+ @param type the desired encoding type for the text.
+ @param text the text to store. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+
+ @param text the text to encapsulate. Strings longer than 200
+ characters are truncated.
+
+
+ Creates a new DisplayText instance.
+ Useful when reading back a DisplayText class
+ from it's Asn1Encodable form.
+
+ @param contents an Asn1Encodable instance.
+
+
+ Returns the stored string object.
+
+ @return the stored text as a string.
+
+
+ The DistributionPoint object.
+
+ DistributionPoint ::= Sequence {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ reasons [1] ReasonFlags OPTIONAL,
+ cRLIssuer [2] GeneralNames OPTIONAL
+ }
+
+
+
+ The DistributionPointName object.
+
+ DistributionPointName ::= CHOICE {
+ fullName [0] GeneralNames,
+ nameRelativeToCRLIssuer [1] RDN
+ }
+
+
+
+ The extendedKeyUsage object.
+
+ extendedKeyUsage ::= Sequence SIZE (1..MAX) OF KeyPurposeId
+
+
+
+ Returns all extended key usages.
+ The returned ArrayList contains DerObjectIdentifier instances.
+ @return An ArrayList with all key purposes.
+
+
+ The GeneralName object.
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+ OtherName ::= Sequence {
+ type-id OBJECT IDENTIFIER,
+ value [0] EXPLICIT ANY DEFINED BY type-id }
+
+ EDIPartyName ::= Sequence {
+ nameAssigner [0] DirectoryString OPTIONAL,
+ partyName [1] DirectoryString }
+
+
+
+ When the subjectAltName extension contains an Internet mail address,
+ the address MUST be included as an rfc822Name. The format of an
+ rfc822Name is an "addr-spec" as defined in RFC 822 [RFC 822].
+
+ When the subjectAltName extension contains a domain name service
+ label, the domain name MUST be stored in the dNSName (an IA5String).
+ The name MUST be in the "preferred name syntax," as specified by RFC
+ 1034 [RFC 1034].
+
+ When the subjectAltName extension contains a URI, the name MUST be
+ stored in the uniformResourceIdentifier (an IA5String). The name MUST
+ be a non-relative URL, and MUST follow the URL syntax and encoding
+ rules specified in [RFC 1738]. The name must include both a scheme
+ (e.g., "http" or "ftp") and a scheme-specific-part. The scheme-
+ specific-part must include a fully qualified domain name or IP
+ address as the host.
+
+ When the subjectAltName extension contains a iPAddress, the address
+ MUST be stored in the octet string in "network byte order," as
+ specified in RFC 791 [RFC 791]. The least significant bit (LSB) of
+ each octet is the LSB of the corresponding byte in the network
+ address. For IP Version 4, as specified in RFC 791, the octet string
+ MUST contain exactly four octets. For IP Version 6, as specified in
+ RFC 1883, the octet string MUST contain exactly sixteen octets [RFC
+ 1883].
+
+
+ Create a GeneralName for the given tag from the passed in string.
+
+ This constructor can handle:
+
+ - rfc822Name
+ - iPAddress
+ - directoryName
+ - dNSName
+ - uniformResourceIdentifier
+ - registeredID
+
+ For x400Address, otherName and ediPartyName there is no common string
+ format defined.
+
+ Note: A directory name can be encoded in different ways into a byte
+ representation. Be aware of this if the byte representation is used for
+ comparing results.
+
+
+ @param tag tag number
+ @param name string representation of name
+ @throws ArgumentException if the string encoding is not correct or
+ not supported.
+
+
+ Construct a GeneralNames object containing one GeneralName.
+ The name to be contained.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ GeneralNames ::= Sequence SIZE {1..MAX} OF GeneralName
+
+
+
+ Class for containing a restriction object subtrees in NameConstraints. See
+ RFC 3280.
+
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.NameConstraints
+
+
+
+ Constructor from a given details.
+
+ According RFC 3280, the minimum and maximum fields are not used with any
+ name forms, thus minimum MUST be zero, and maximum MUST be absent.
+
+ If minimum is null, zero is assumed, if
+ maximum is null, maximum is absent.
+
+ @param baseName
+ A restriction.
+ @param minimum
+ Minimum
+
+ @param maximum
+ Maximum
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ GeneralSubtree ::= SEQUENCE
+ {
+ baseName GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL
+ }
+
+
+ @return a DERObject
+
+
+ The Holder object.
+
+ For an v2 attribute certificate this is:
+
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ For an v1 attribute certificate this is:
+
+
+ subject CHOICE {
+ baseCertificateID [0] IssuerSerial,
+ -- associated with a Public Key Certificate
+ subjectName [1] GeneralNames },
+ -- associated with a name
+
+
+
+
+ Constructor for a holder for an v1 attribute certificate.
+
+ @param tagObj The ASN.1 tagged holder object.
+
+
+ Constructor for a holder for an v2 attribute certificate. *
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructs a holder from a IssuerSerial.
+ @param baseCertificateID The IssuerSerial.
+ @param version The version of the attribute certificate.
+
+
+ Returns 1 for v2 attribute certificates or 0 for v1 attribute
+ certificates.
+ @return The version of the attribute certificate.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+
+
+ Constructs a holder with an entityName for v2 attribute certificates or
+ with a subjectName for v1 attribute certificates.
+
+ @param entityName The entity or subject name.
+ @param version The version of the attribute certificate.
+
+
+ Constructs a holder from an object digest info.
+
+ @param objectDigestInfo The object digest info object.
+
+
+ Returns the entityName for an v2 attribute certificate or the subjectName
+ for an v1 attribute certificate.
+
+ @return The entityname or subjectname.
+
+
+ The Holder object.
+
+ Holder ::= Sequence {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+ Implementation of IetfAttrSyntax as specified by RFC3281.
+
+
+
+
+
+
+
+
+ IetfAttrSyntax ::= Sequence {
+ policyAuthority [0] GeneralNames OPTIONAL,
+ values Sequence OF CHOICE {
+ octets OCTET STRING,
+ oid OBJECT IDENTIFIER,
+ string UTF8String
+ }
+ }
+
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ IssuerSerial ::= Sequence {
+ issuer GeneralNames,
+ serial CertificateSerialNumber,
+ issuerUid UniqueIdentifier OPTIONAL
+ }
+
+
+
+
+ IssuingDistributionPoint ::= SEQUENCE {
+ distributionPoint [0] DistributionPointName OPTIONAL,
+ onlyContainsUserCerts [1] BOOLEAN DEFAULT FALSE,
+ onlyContainsCACerts [2] BOOLEAN DEFAULT FALSE,
+ onlySomeReasons [3] ReasonFlags OPTIONAL,
+ indirectCRL [4] BOOLEAN DEFAULT FALSE,
+ onlyContainsAttributeCerts [5] BOOLEAN DEFAULT FALSE }
+
+
+
+ Constructor from given details.
+
+ @param distributionPoint
+ May contain an URI as pointer to most current CRL.
+ @param onlyContainsUserCerts Covers revocation information for end certificates.
+ @param onlyContainsCACerts Covers revocation information for CA certificates.
+
+ @param onlySomeReasons
+ Which revocation reasons does this point cover.
+ @param indirectCRL
+ If true then the CRL contains revocation
+ information about certificates ssued by other CAs.
+ @param onlyContainsAttributeCerts Covers revocation information for attribute certificates.
+
+
+ Constructor from Asn1Sequence
+
+
+ @return Returns the distributionPoint.
+
+
+ @return Returns the onlySomeReasons.
+
+
+ The KeyPurposeID object.
+
+ KeyPurposeID ::= OBJECT IDENTIFIER
+
+
+
+ The KeyUsage object.
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (KeyUsage.keyEncipherment | KeyUsage.dataEncipherment)
+
+
+ Constructor from a given details.
+
+ permitted and excluded are Vectors of GeneralSubtree objects.
+
+ @param permitted Permitted subtrees
+ @param excluded Excluded subtrees
+
+
+ NoticeReference class, used in
+ CertificatePolicies X509 V3 extensions
+ (in policy qualifiers).
+
+
+ NoticeReference ::= Sequence {
+ organization DisplayText,
+ noticeNumbers Sequence OF Integer }
+
+
+
+ @see PolicyQualifierInfo
+ @see PolicyInformation
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param numbers a Vector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization a String value
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+
+ @param organization displayText
+ @param noticeNumbers an ASN1EncodableVector value
+
+
+ Creates a new NoticeReference instance.
+ Useful for reconstructing a NoticeReference
+ instance from its encodable/encoded form.
+
+ @param as an Asn1Sequence value obtained from either
+ calling @{link ToAsn1Object()} for a NoticeReference
+ instance or from parsing it from a Der-encoded stream.
+
+
+ Describe ToAsn1Object method here.
+
+ @return a Asn1Object value
+
+
+ ObjectDigestInfo ASN.1 structure used in v2 attribute certificates.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+
+ The public key is hashed.
+
+
+ The public key certificate is hashed.
+
+
+ An other object is hashed.
+
+
+ Constructor from given details.
+
+ If digestedObjectType is not {@link #publicKeyCert} or
+ {@link #publicKey} otherObjectTypeID must be given,
+ otherwise it is ignored.
+
+ @param digestedObjectType The digest object type.
+ @param otherObjectTypeID The object type ID for
+ otherObjectDigest.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param objectDigest The hash value.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+
+
+ ObjectDigestInfo ::= SEQUENCE {
+ digestedObjectType ENUMERATED {
+ publicKey (0),
+ publicKeyCert (1),
+ otherObjectTypes (2) },
+ -- otherObjectTypes MUST NOT
+ -- be used in this profile
+ otherObjectTypeID OBJECT IDENTIFIER OPTIONAL,
+ digestAlgorithm AlgorithmIdentifier,
+ objectDigest BIT STRING
+ }
+
+
+
+
+ PolicyMappings V3 extension, described in RFC3280.
+
+ PolicyMappings ::= Sequence SIZE (1..MAX) OF Sequence {
+ issuerDomainPolicy CertPolicyId,
+ subjectDomainPolicy CertPolicyId }
+
+
+ @see RFC 3280, section 4.2.1.6
+
+
+ Creates a new PolicyMappings instance.
+
+ @param seq an Asn1Sequence constructed as specified
+ in RFC 3280
+
+
+ Creates a new PolicyMappings instance.
+
+ @param mappings a HashMap value that maps
+ string oids
+ to other string oids.
+
+
+ PolicyQualifierId, used in the CertificatePolicies
+ X509V3 extension.
+
+
+ id-qt OBJECT IDENTIFIER ::= { id-pkix 2 }
+ id-qt-cps OBJECT IDENTIFIER ::= { id-qt 1 }
+ id-qt-unotice OBJECT IDENTIFIER ::= { id-qt 2 }
+ PolicyQualifierId ::=
+ OBJECT IDENTIFIER ( id-qt-cps | id-qt-unotice )
+
+
+
+ Policy qualifiers, used in the X509V3 CertificatePolicies
+ extension.
+
+
+ PolicyQualifierInfo ::= Sequence {
+ policyQualifierId PolicyQualifierId,
+ qualifier ANY DEFINED BY policyQualifierId }
+
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param policyQualifierId a PolicyQualifierId value
+ @param qualifier the qualifier, defined by the above field.
+
+
+ Creates a new PolicyQualifierInfo containing a
+ cPSuri qualifier.
+
+ @param cps the CPS (certification practice statement) uri as a
+ string.
+
+
+ Creates a new PolicyQualifierInfo instance.
+
+ @param as PolicyQualifierInfo X509 structure
+ encoded as an Asn1Sequence.
+
+
+ Returns a Der-encodable representation of this instance.
+
+ @return a Asn1Object value
+
+
+
+
+ PrivateKeyUsagePeriod ::= SEQUENCE
+ {
+ notBefore [0] GeneralizedTime OPTIONAL,
+ notAfter [1] GeneralizedTime OPTIONAL }
+
+
+
+
+ The BiometricData object.
+
+ BiometricData ::= SEQUENCE {
+ typeOfBiometricData TypeOfBiometricData,
+ hashAlgorithm AlgorithmIdentifier,
+ biometricDataHash OCTET STRING,
+ sourceDataUri IA5String OPTIONAL }
+
+
+
+ The Iso4217CurrencyCode object.
+
+ Iso4217CurrencyCode ::= CHOICE {
+ alphabetic PrintableString (SIZE 3), --Recommended
+ numeric INTEGER (1..999) }
+ -- Alphabetic or numeric currency code as defined in ISO 4217
+ -- It is recommended that the Alphabetic form is used
+
+
+
+ The MonetaryValue object.
+
+ MonetaryValue ::= SEQUENCE {
+ currency Iso4217CurrencyCode,
+ amount INTEGER,
+ exponent INTEGER }
+ -- value = amount * 10^exponent
+
+
+
+ The QCStatement object.
+
+ QCStatement ::= SEQUENCE {
+ statementId OBJECT IDENTIFIER,
+ statementInfo ANY DEFINED BY statementId OPTIONAL}
+
+
+
+ The SemanticsInformation object.
+
+ SemanticsInformation ::= SEQUENCE {
+ semanticsIdentifier OBJECT IDENTIFIER OPTIONAL,
+ nameRegistrationAuthorities NameRegistrationAuthorities
+ OPTIONAL }
+ (WITH COMPONENTS {..., semanticsIdentifier PRESENT}|
+ WITH COMPONENTS {..., nameRegistrationAuthorities PRESENT})
+
+ NameRegistrationAuthorities ::= SEQUENCE SIZE (1..MAX) OF
+ GeneralName
+
+
+
+ The TypeOfBiometricData object.
+
+ TypeOfBiometricData ::= CHOICE {
+ predefinedBiometricType PredefinedBiometricType,
+ biometricDataOid OBJECT IDENTIFIER }
+
+ PredefinedBiometricType ::= INTEGER {
+ picture(0),handwritten-signature(1)}
+ (picture|handwritten-signature)
+
+
+
+ The ReasonFlags object.
+
+ ReasonFlags ::= BIT STRING {
+ unused(0),
+ keyCompromise(1),
+ cACompromise(2),
+ affiliationChanged(3),
+ superseded(4),
+ cessationOfOperation(5),
+ certficateHold(6)
+ }
+
+
+
+ @param reasons - the bitwise OR of the Key Reason flags giving the
+ allowed uses for the key.
+
+
+ Implementation of the RoleSyntax object as specified by the RFC3281.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ RoleSyntax factory method.
+ @param obj the object used to construct an instance of
+ RoleSyntax. It must be an instance of RoleSyntax
+ or Asn1Sequence.
+ @return the instance of RoleSyntax built from the
+ supplied object.
+ @throws java.lang.ArgumentException if the object passed
+ to the factory is not an instance of RoleSyntax or
+ Asn1Sequence.
+
+
+ Constructor.
+ @param roleAuthority the role authority of this RoleSyntax.
+ @param roleName the role name of this RoleSyntax.
+
+
+ Constructor. Invoking this constructor is the same as invoking
+ new RoleSyntax(null, roleName).
+ @param roleName the role name of this RoleSyntax.
+
+
+ Utility constructor. Takes a string argument representing
+ the role name, builds a GeneralName to hold the role name
+ and calls the constructor that takes a GeneralName.
+ @param roleName
+
+
+ Constructor that builds an instance of RoleSyntax by
+ extracting the encoded elements from the Asn1Sequence
+ object supplied.
+ @param seq an instance of Asn1Sequence that holds
+ the encoded elements used to build this RoleSyntax.
+
+
+ Gets the role authority of this RoleSyntax.
+ @return an instance of GeneralNames holding the
+ role authority of this RoleSyntax.
+
+
+ Gets the role name of this RoleSyntax.
+ @return an instance of GeneralName holding the
+ role name of this RoleSyntax.
+
+
+ Gets the role name as a java.lang.string object.
+ @return the role name of this RoleSyntax represented as a
+ string object.
+
+
+ Gets the role authority as a string[] object.
+ @return the role authority of this RoleSyntax represented as a
+ string[] array.
+
+
+ Implementation of the method ToAsn1Object as
+ required by the superclass ASN1Encodable.
+
+
+ RoleSyntax ::= SEQUENCE {
+ roleAuthority [0] GeneralNames OPTIONAL,
+ roleName [1] GeneralName
+ }
+
+
+
+ This outputs the key in Pkcs1v2 format.
+
+ RSAPublicKey ::= Sequence {
+ modulus Integer, -- n
+ publicExponent Integer, -- e
+ }
+
+
+
+ Structure for a name or pseudonym.
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.PersonalData
+
+
+
+ Constructor from DERString.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+ @param pseudonym pseudonym value to use.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param pseudonym The pseudonym.
+
+
+ Constructor from a given details.
+
+ @param surname The surname.
+ @param givenName A sequence of directory strings making up the givenName
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ NameOrPseudonym ::= CHOICE {
+ surAndGivenName SEQUENCE {
+ surName DirectoryString,
+ givenName SEQUENCE OF DirectoryString
+ },
+ pseudonym DirectoryString
+ }
+
+
+ @return an Asn1Object
+
+
+ Contains personal data for the otherName field in the subjectAltNames
+ extension.
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.sigi.NameOrPseudonym
+ @see org.bouncycastle.asn1.x509.sigi.SigIObjectIdentifiers
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type NameOrPseudonym:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @param seq The ASN.1 sequence.
+
+
+ Constructor from a given details.
+
+ @param nameOrPseudonym Name or pseudonym.
+ @param nameDistinguisher Name distinguisher.
+ @param dateOfBirth Date of birth.
+ @param placeOfBirth Place of birth.
+ @param gender Gender.
+ @param postalAddress Postal Address.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ PersonalData ::= SEQUENCE {
+ nameOrPseudonym NameOrPseudonym,
+ nameDistinguisher [0] INTEGER OPTIONAL,
+ dateOfBirth [1] GeneralizedTime OPTIONAL,
+ placeOfBirth [2] DirectoryString OPTIONAL,
+ gender [3] PrintableString OPTIONAL,
+ postalAddress [4] DirectoryString OPTIONAL
+ }
+
+
+ @return an Asn1Object
+
+
+ Object Identifiers of SigI specifciation (German Signature Law
+ Interoperability specification).
+
+
+ Key purpose IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Certificate policy IDs for German SigI (Signature Interoperability
+ Specification)
+
+
+ Other Name IDs for German SigI (Signature Interoperability Specification)
+
+
+ To be used for for the generation of directory service certificates.
+
+
+ ID for PersonalData
+
+
+ Certificate is conform to german signature law.
+
+
+ This extension may contain further X.500 attributes of the subject. See also
+ RFC 3039.
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @see org.bouncycastle.asn1.x509.X509Name for AttributeType ObjectIdentifiers.
+
+
+ Constructor from Asn1Sequence.
+
+ The sequence is of type SubjectDirectoryAttributes:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @param seq
+ The ASN.1 sequence.
+
+
+ Constructor from an ArrayList of attributes.
+
+ The ArrayList consists of attributes of type {@link Attribute Attribute}
+
+ @param attributes The attributes.
+
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SubjectDirectoryAttributes ::= Attributes
+ Attributes ::= SEQUENCE SIZE (1..MAX) OF Attribute
+ Attribute ::= SEQUENCE
+ {
+ type AttributeType
+ values SET OF AttributeValue
+ }
+
+ AttributeType ::= OBJECT IDENTIFIER
+ AttributeValue ::= ANY DEFINED BY AttributeType
+
+
+ @return a DERObject
+
+
+ @return Returns the attributes.
+
+
+ The SubjectKeyIdentifier object.
+
+ SubjectKeyIdentifier::= OCTET STRING
+
+
+
+ Calculates the keyIdentifier using a SHA1 hash over the BIT STRING
+ from SubjectPublicKeyInfo as defined in RFC3280.
+
+ @param spki the subject public key info.
+
+
+ Return a RFC 3280 type 1 key identifier. As in:
+
+ (1) The keyIdentifier is composed of the 160-bit SHA-1 hash of the
+ value of the BIT STRING subjectPublicKey (excluding the tag,
+ length, and number of unused bits).
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ Return a RFC 3280 type 2 key identifier. As in:
+
+ (2) The keyIdentifier is composed of a four bit type field with
+ the value 0100 followed by the least significant 60 bits of the
+ SHA-1 hash of the value of the BIT STRING subjectPublicKey.
+
+ @param keyInfo the key info object containing the subjectPublicKey field.
+ @return the key identifier.
+
+
+ The object that contains the public key stored in a certficate.
+
+ The GetEncoded() method in the public keys in the JCE produces a DER
+ encoded one of these.
+
+
+ for when the public key is an encoded object - if the bitstring
+ can't be decoded this routine raises an IOException.
+
+ @exception IOException - if the bit string doesn't represent a Der
+ encoded object.
+
+
+ for when the public key is raw bits...
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ SubjectPublicKeyInfo ::= Sequence {
+ algorithm AlgorithmIdentifier,
+ publicKey BIT STRING }
+
+
+
+ Target structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+
+ The targetCert field is currently not supported and must not be used
+ according to RFC 3281.
+
+
+ Creates an instance of a Target from the given object.
+
+ obj can be a Target or a {@link Asn1TaggedObject}
+
+ @param obj The object.
+ @return A Target instance.
+ @throws ArgumentException if the given object cannot be
+ interpreted as Target.
+
+
+ Constructor from Asn1TaggedObject.
+
+ @param tagObj The tagged object.
+ @throws ArgumentException if the encoding is wrong.
+
+
+ Constructor from given details.
+
+ Exactly one of the parameters must be not null.
+
+ @param type the choice type to apply to the name.
+ @param name the general name.
+ @throws ArgumentException if type is invalid.
+
+
+ @return Returns the targetGroup.
+
+
+ @return Returns the targetName.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+
+ @return an Asn1Object
+
+
+ Target information extension for attributes certificates according to RFC
+ 3281.
+
+
+ SEQUENCE OF Targets
+
+
+
+
+ Creates an instance of a TargetInformation from the given object.
+
+ obj can be a TargetInformation or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A TargetInformation instance.
+ @throws ArgumentException if the given object cannot be interpreted as TargetInformation.
+
+
+ Constructor from a Asn1Sequence.
+
+ @param seq The Asn1Sequence.
+ @throws ArgumentException if the sequence does not contain
+ correctly encoded Targets elements.
+
+
+ Returns the targets in this target information extension.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Constructs a target information from a single targets element.
+ According to RFC 3281 only one targets element must be produced.
+
+ @param targets A Targets instance.
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given they must be merged in
+ into one targets element.
+
+ @param targets An array with {@link Targets}.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ SEQUENCE OF Targets
+
+
+
+ According to RFC 3281 only one targets element must be produced. If
+ multiple targets are given in the constructor they are merged into one
+ targets element. If this was produced from a
+ {@link Org.BouncyCastle.Asn1.Asn1Sequence} the encoding is kept.
+
+ @return an Asn1Object
+
+
+ Targets structure used in target information extension for attribute
+ certificates from RFC 3281.
+
+
+ Targets ::= SEQUENCE OF Target
+
+ Target ::= CHOICE {
+ targetName [0] GeneralName,
+ targetGroup [1] GeneralName,
+ targetCert [2] TargetCert
+ }
+
+ TargetCert ::= SEQUENCE {
+ targetCertificate IssuerSerial,
+ targetName GeneralName OPTIONAL,
+ certDigestInfo ObjectDigestInfo OPTIONAL
+ }
+
+
+ @see org.bouncycastle.asn1.x509.Target
+ @see org.bouncycastle.asn1.x509.TargetInformation
+
+
+ Creates an instance of a Targets from the given object.
+
+ obj can be a Targets or a {@link Asn1Sequence}
+
+ @param obj The object.
+ @return A Targets instance.
+ @throws ArgumentException if the given object cannot be interpreted as Target.
+
+
+ Constructor from Asn1Sequence.
+
+ @param targets The ASN.1 SEQUENCE.
+ @throws ArgumentException if the contents of the sequence are
+ invalid.
+
+
+ Constructor from given targets.
+
+ The ArrayList is copied.
+
+ @param targets An ArrayList of {@link Target}s.
+ @see Target
+ @throws ArgumentException if the ArrayList contains not only Targets.
+
+
+ Returns the targets in an ArrayList.
+
+ The ArrayList is cloned before it is returned.
+
+ @return Returns the targets.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Returns:
+
+
+ Targets ::= SEQUENCE OF Target
+
+
+ @return an Asn1Object
+
+
+ The TbsCertificate object.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+ Note: issuerUniqueID and subjectUniqueID are both deprecated by the IETF. This class
+ will parse them, but you really shouldn't be creating new ones.
+
+
+ PKIX RFC-2459 - TbsCertList object.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+
+ creates a time object from a given date - if the date is between 1950
+ and 2049 a UTCTime object is Generated, otherwise a GeneralizedTime
+ is used.
+
+
+
+ Return our time as DateTime.
+
+ A date time.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Time ::= CHOICE {
+ utcTime UTCTime,
+ generalTime GeneralizedTime }
+
+
+
+ UserNotice class, used in
+ CertificatePolicies X509 extensions (in policy
+ qualifiers).
+
+ UserNotice ::= Sequence {
+ noticeRef NoticeReference OPTIONAL,
+ explicitText DisplayText OPTIONAL}
+
+
+
+ @see PolicyQualifierId
+ @see PolicyInformation
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param explicitText a DisplayText value
+
+
+ Creates a new UserNotice instance.
+
+ @param noticeRef a NoticeReference value
+ @param str the explicitText field as a string.
+
+
+ Creates a new UserNotice instance.
+ Useful from reconstructing a UserNotice instance
+ from its encodable/encoded form.
+
+ @param as an ASN1Sequence value obtained from either
+ calling @{link toASN1Object()} for a UserNotice
+ instance or from parsing it from a DER-encoded stream.
+
+
+ Generator for Version 1 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ }
+
+
+
+
+ Generator for Version 2 AttributeCertificateInfo
+
+ AttributeCertificateInfo ::= Sequence {
+ version AttCertVersion -- version is v2,
+ holder Holder,
+ issuer AttCertIssuer,
+ signature AlgorithmIdentifier,
+ serialNumber CertificateSerialNumber,
+ attrCertValidityPeriod AttCertValidityPeriod,
+ attributes Sequence OF Attr,
+ issuerUniqueID UniqueIdentifier OPTIONAL,
+ extensions Extensions OPTIONAL
+ }
+
+
+
+
+ @param attribute
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ V2Form ::= Sequence {
+ issuerName GeneralNames OPTIONAL,
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ objectDigestInfo [1] ObjectDigestInfo OPTIONAL
+ -- issuerName MUST be present in this profile
+ -- baseCertificateID and objectDigestInfo MUST NOT
+ -- be present in this profile
+ }
+
+
+
+ Generator for Version 2 TbsCertList structures.
+
+ TbsCertList ::= Sequence {
+ version Version OPTIONAL,
+ -- if present, shall be v2
+ signature AlgorithmIdentifier,
+ issuer Name,
+ thisUpdate Time,
+ nextUpdate Time OPTIONAL,
+ revokedCertificates Sequence OF Sequence {
+ userCertificate CertificateSerialNumber,
+ revocationDate Time,
+ crlEntryExtensions Extensions OPTIONAL
+ -- if present, shall be v2
+ } OPTIONAL,
+ crlExtensions [0] EXPLICIT Extensions OPTIONAL
+ -- if present, shall be v2
+ }
+
+
+ Note: This class may be subject to change
+
+
+ Generator for Version 3 TbsCertificateStructures.
+
+ TbsCertificate ::= Sequence {
+ version [ 0 ] Version DEFAULT v1(0),
+ serialNumber CertificateSerialNumber,
+ signature AlgorithmIdentifier,
+ issuer Name,
+ validity Validity,
+ subject Name,
+ subjectPublicKeyInfo SubjectPublicKeyInfo,
+ issuerUniqueID [ 1 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ subjectUniqueID [ 2 ] IMPLICIT UniqueIdentifier OPTIONAL,
+ extensions [ 3 ] Extensions OPTIONAL
+ }
+
+
+
+
+ an X509Certificate structure.
+
+ Certificate ::= Sequence {
+ tbsCertificate TbsCertificate,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING
+ }
+
+
+
+ The default converter for X509 DN entries when going from their
+ string value to ASN.1 strings.
+
+
+ Apply default conversion for the given value depending on the oid
+ and the character range of the value.
+
+ @param oid the object identifier for the DN entry
+ @param value the value associated with it
+ @return the ASN.1 equivalent for the string value.
+
+
+ an object for the elements in the X.509 V3 extension block.
+
+
+ Convert the value of the passed in extension to an object.
+ The extension to parse.
+ The object the value string contains.
+ If conversion is not possible.
+
+
+ Subject Directory Attributes
+
+
+ Subject Key Identifier
+
+
+ Key Usage
+
+
+ Private Key Usage Period
+
+
+ Subject Alternative Name
+
+
+ Issuer Alternative Name
+
+
+ Basic Constraints
+
+
+ CRL Number
+
+
+ Reason code
+
+
+ Hold Instruction Code
+
+
+ Invalidity Date
+
+
+ Delta CRL indicator
+
+
+ Issuing Distribution Point
+
+
+ Certificate Issuer
+
+
+ Name Constraints
+
+
+ CRL Distribution Points
+
+
+ Certificate Policies
+
+
+ Policy Mappings
+
+
+ Authority Key Identifier
+
+
+ Policy Constraints
+
+
+ Extended Key Usage
+
+
+ Freshest CRL
+
+
+ Inhibit Any Policy
+
+
+ Authority Info Access
+
+
+ Subject Info Access
+
+
+ Logo Type
+
+
+ BiometricInfo
+
+
+ QCStatements
+
+
+ Audit identity extension in attribute certificates.
+
+
+ NoRevAvail extension in attribute certificates.
+
+
+ TargetInformation extension in attribute certificates.
+
+
+ Expired Certificates on CRL extension
+
+
+ Constructor from Asn1Sequence.
+
+ the extensions are a list of constructed sequences, either with (Oid, OctetString) or (Oid, Boolean, OctetString)
+
+
+ constructor from a table of extensions.
+
+ it's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from a table of extensions with ordering.
+
+ It's is assumed the table contains Oid/string pairs.
+
+
+ Constructor from two vectors
+
+ @param objectIDs an ArrayList of the object identifiers.
+ @param values an ArrayList of the extension values.
+
+
+ return an Enumeration of the extension field's object ids.
+
+
+ return the extension represented by the object identifier
+ passed in.
+
+ @return the extension if it's present, null otherwise.
+
+
+
+ Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
+
+ Extension ::= SEQUENCE {
+ extnId EXTENSION.&id ({ExtensionSet}),
+ critical BOOLEAN DEFAULT FALSE,
+ extnValue OCTET STRING }
+
+
+
+ Generator for X.509 extensions
+
+
+ Reset the generator
+
+
+
+ Add an extension with the given oid and the passed in value to be included
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The ASN.1 object to be included in the extension.
+
+
+
+ Add an extension with the given oid and the passed in byte array to be wrapped
+ in the OCTET STRING associated with the extension.
+
+ OID for the extension.
+ True if critical, false otherwise.
+ The byte array to be wrapped.
+
+
+ Return true if there are no extension present in this generator.
+ True if empty, false otherwise
+
+
+ Generate an X509Extensions object based on the current state of the generator.
+ An X509Extensions object
+
+
+
+ RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
+
+ RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
+
+ AttributeTypeAndValue ::= SEQUENCE {
+ type OBJECT IDENTIFIER,
+ value ANY }
+
+
+
+ country code - StringType(SIZE(2))
+
+
+ organization - StringType(SIZE(1..64))
+
+
+ organizational unit name - StringType(SIZE(1..64))
+
+
+ Title
+
+
+ common name - StringType(SIZE(1..64))
+
+
+ street - StringType(SIZE(1..64))
+
+
+ device serial number name - StringType(SIZE(1..64))
+
+
+ locality name - StringType(SIZE(1..64))
+
+
+ state, or province name - StringType(SIZE(1..64))
+
+
+ Naming attributes of type X520name
+
+
+ businessCategory - DirectoryString(SIZE(1..128)
+
+
+ postalCode - DirectoryString(SIZE(1..40)
+
+
+ dnQualifier - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 Pseudonym - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 DateOfBirth - GeneralizedTime - YYYYMMDD000000Z
+
+
+ RFC 3039 PlaceOfBirth - DirectoryString(SIZE(1..128)
+
+
+ RFC 3039 DateOfBirth - PrintableString (SIZE(1)) -- "M", "F", "m" or "f"
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ RFC 3039 CountryOfCitizenship - PrintableString (SIZE (2)) -- ISO 3166
+ codes only
+
+
+ ISIS-MTT NameAtBirth - DirectoryString(SIZE(1..64)
+
+
+ RFC 3039 PostalAddress - SEQUENCE SIZE (1..6) OF
+ DirectoryString(SIZE(1..30))
+
+
+ RFC 2256 dmdName
+
+
+ id-at-telephoneNumber
+
+
+ id-at-organizationIdentifier
+
+
+ id-at-name
+
+
+ Email address (RSA PKCS#9 extension) - IA5String.
+ Note: if you're trying to be ultra orthodox, don't use this! It shouldn't be in here.
+
+
+ more from PKCS#9
+
+
+ email address in Verisign certificates
+
+
+ LDAP User id.
+
+
+ determines whether or not strings should be processed and printed
+ from back to front.
+
+
+ default look up table translating OID values into their common symbols following
+ the convention in RFC 2253 with a few extras
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 2253
+
+
+ look up table translating OID values into their common symbols following the convention in RFC 1779
+
+
+
+ look up table translating common symbols into their OIDS.
+
+
+ Return a X509Name based on the passed in tagged object.
+
+ @param obj tag object holding name.
+ @param explicitly true if explicitly tagged false otherwise.
+ @return the X509Name
+
+
+ Constructor from Asn1Sequence
+
+ the principal will be a list of constructed sets, each containing an (OID, string) pair.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+
+ Constructor from a table of attributes with ordering.
+
+ it's is assumed the table contains OID/string pairs, and the contents
+ of the table are copied into an internal table as part of the
+ construction process. The ordering ArrayList should contain the OIDs
+ in the order they are meant to be encoded or printed in ToString.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+
+ Takes two vectors one of the oids and the other of the values.
+
+ The passed in converter will be used to convert the strings into their
+ ASN.1 counterparts.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. If reverse
+ is true, create the encoded version of the sequence starting from the
+ last element in the string.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes with each
+ string value being converted to its associated ASN.1 type using the passed
+ in converter. If reverse is true the ASN.1 sequence representing the DN will
+ be built by starting at the end of the string, rather than the start.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically.
+
+ If reverse is true, create the encoded version of the sequence
+ starting from the last element in the string.
+ @param reverse true if we should start scanning from the end (RFC 2553).
+ @param lookUp table of names and their oids.
+ @param dirName the X.500 string to be parsed.
+
+
+ Takes an X509 dir name as a string of the format "C=AU, ST=Victoria", or
+ some such, converting it into an ordered set of name attributes. lookUp
+ should provide a table of lookups, indexed by lowercase only strings and
+ yielding a DerObjectIdentifier, other than that OID. and numeric oids
+ will be processed automatically. The passed in converter is used to convert the
+ string values to the right of each equals sign to their ASN.1 counterparts.
+
+ @param reverse true if we should start scanning from the end, false otherwise.
+ @param lookUp table of names and oids.
+ @param dirName the string dirName
+ @param converter the converter to convert string values into their ASN.1 equivalents
+
+
+ return an IList of the oids in the name, in the order they were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found.
+
+
+ return an IList of the values found in the name, in the order they
+ were found, with the DN label corresponding to passed in oid.
+
+
+ The X509Name object to test equivalency against.
+ If true, the order of elements must be the same,
+ as well as the values associated with each element.
+
+
+ test for equivalence - note: case is ignored.
+
+
+ convert the structure to a string - if reverse is true the
+ oids and values are listed out starting with the last element
+ in the sequence (ala RFC 2253), otherwise the string will begin
+ with the first element of the structure. If no string definition
+ for the oid is found in oidSymbols the string value of the oid is
+ added. Two standard symbol tables are provided DefaultSymbols, and
+ RFC2253Symbols as part of this class.
+
+ @param reverse if true start at the end of the sequence and work back.
+ @param oidSymbols look up table strings for oids.
+
+
+ * It turns out that the number of standard ways the fields in a DN should be
+ * encoded into their ASN.1 counterparts is rapidly approaching the
+ * number of machines on the internet. By default the X509Name class
+ * will produce UTF8Strings in line with the current recommendations (RFC 3280).
+ *
+ * An example of an encoder look like below:
+ *
+ * public class X509DirEntryConverter
+ * : X509NameEntryConverter
+ * {
+ * public Asn1Object GetConvertedValue(
+ * DerObjectIdentifier oid,
+ * string value)
+ * {
+ * if (str.Length() != 0 && str.charAt(0) == '#')
+ * {
+ * return ConvertHexEncoded(str, 1);
+ * }
+ * if (oid.Equals(EmailAddress))
+ * {
+ * return new DerIA5String(str);
+ * }
+ * else if (CanBePrintable(str))
+ * {
+ * return new DerPrintableString(str);
+ * }
+ * else if (CanBeUTF8(str))
+ * {
+ * return new DerUtf8String(str);
+ * }
+ * else
+ * {
+ * return new DerBmpString(str);
+ * }
+ * }
+ * }
+ *
+ *
+
+
+ Convert an inline encoded hex string rendition of an ASN.1
+ object back into its corresponding ASN.1 object.
+
+ @param str the hex encoded object
+ @param off the index at which the encoding starts
+ @return the decoded object
+
+
+ return true if the passed in string can be represented without
+ loss as a PrintableString, false otherwise.
+
+
+ Convert the passed in string value into the appropriate ASN.1
+ encoded object.
+
+ @param oid the oid associated with the value in the DN.
+ @param value the value of the particular DN component.
+ @return the ASN.1 equivalent for the value.
+
+
+ class for breaking up an X500 Name into it's component tokens, ala
+ java.util.StringTokenizer. We need this class as some of the
+ lightweight Java environment don't support classes like
+ StringTokenizer.
+
+
+ A general class that reads all X9.62 style EC curve tables.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve. The routine returns null if the curve is not present.
+
+ @param name the name of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return a X9ECParameters object representing the passed in named
+ curve.
+
+ @param oid the object id of the curve requested
+ @return an X9ECParameters object or null if the curve is not available.
+
+
+ return an enumeration of the names of the available curves.
+
+ @return an enumeration of the names of the available curves.
+
+
+ ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ KeySpecificInfo ::= Sequence {
+ algorithm OBJECT IDENTIFIER,
+ counter OCTET STRING SIZE (4..4)
+ }
+
+
+
+ ANS.1 def for Diffie-Hellman key exchange OtherInfo structure. See
+ RFC 2631, or X9.42, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ OtherInfo ::= Sequence {
+ keyInfo KeySpecificInfo,
+ partyAInfo [0] OCTET STRING OPTIONAL,
+ suppPubInfo [2] OCTET STRING
+ }
+
+
+
+ table of the current named curves defined in X.962 EC-DSA.
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Parameters ::= CHOICE {
+ ecParameters ECParameters,
+ namedCurve CURVES.&id({CurveNames}),
+ implicitlyCA Null
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve Curve structure. See
+ X9.62, for further details.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ Curve ::= Sequence {
+ a FieldElement,
+ b FieldElement,
+ seed BIT STRING OPTIONAL
+ }
+
+
+
+ ASN.1 def for Elliptic-Curve ECParameters structure. See
+ X9.62, for further details.
+
+
+ Return the ASN.1 entry representing the Curve.
+
+ @return the X9Curve for the curve in these parameters.
+
+
+ Return the ASN.1 entry representing the FieldID.
+
+ @return the X9FieldID for the FieldID in these parameters.
+
+
+ Return the ASN.1 entry representing the base point G.
+
+ @return the X9ECPoint for the base point in these parameters.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECParameters ::= Sequence {
+ version Integer { ecpVer1(1) } (ecpVer1),
+ fieldID FieldID {{FieldTypes}},
+ curve X9Curve,
+ base X9ECPoint,
+ order Integer,
+ cofactor Integer OPTIONAL
+ }
+
+
+
+ class for describing an ECPoint as a Der object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ ECPoint ::= OCTET STRING
+
+
+ Octet string produced using ECPoint.GetEncoded().
+
+
+ Class for processing an ECFieldElement as a DER object.
+
+
+ Produce an object suitable for an Asn1OutputStream.
+
+ FieldElement ::= OCTET STRING
+
+
+
+ - if q is an odd prime then the field element is
+ processed as an Integer and converted to an octet string
+ according to x 9.62 4.3.1.
+ - if q is 2m then the bit string
+ contained in the field element is converted into an octet
+ string with the same ordering padded at the front if necessary.
+
+
+
+
+
+ ASN.1 def for Elliptic-Curve Field ID structure. See
+ X9.62, for further details.
+
+
+ Constructor for elliptic curves over prime fields
+ F2.
+ @param primeP The prime p defining the prime field.
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ Constructor for elliptic curves over binary fields
+ F2m.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z)..
+
+
+ Produce a Der encoding of the following structure.
+
+ FieldID ::= Sequence {
+ fieldType FIELD-ID.&id({IOSet}),
+ parameters FIELD-ID.&Type({IOSet}{@fieldType})
+ }
+
+
+
+ id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2)
+ us(840) x9-57 (10040) x9cm(4) 3 }
+
+
+ X9.63
+
+
+ X9.42
+
+
+ reader for Base64 armored objects - read the headers and then start returning
+ bytes when the data is reached. An IOException is thrown if the CRC check
+ fails.
+
+
+ decode the base 64 encoded input data.
+
+ @return the offset the data starts in out.
+
+
+ Create a stream for reading a PGP armoured message, parsing up to a header
+ and then reading the data that follows.
+
+ @param input
+
+
+ Create an armoured input stream which will assume the data starts
+ straight away, or parse for headers first depending on the value of
+ hasHeaders.
+
+ @param input
+ @param hasHeaders true if headers are to be looked for, false otherwise.
+
+
+ @return true if we are inside the clear text section of a PGP
+ signed message.
+
+
+ @return true if the stream is actually at end of file.
+
+
+ Return the armor header line (if there is one)
+ @return the armor header line, null if none present.
+
+
+ Return the armor headers (the lines after the armor header line),
+ @return an array of armor headers, null if there aren't any.
+
+
+ Basic output stream.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+
+ Set an additional header entry. A null value will clear the entry for name.
+
+ @param name the name of the header entry.
+ @param v the value of the header entry.
+
+
+ Reset the headers to only contain a Version string (if one is present).
+
+
+ Start a clear text signed message.
+ @param hashAlgorithm
+
+
+ Note: Close() does not close the underlying stream. So it is possible to write
+ multiple objects using armoring to a single stream.
+
+
+ Basic type for a image attribute packet.
+
+
+ Reader for PGP objects.
+
+
+ Returns the next packet tag in the stream.
+
+
+
+ A stream that overlays our input stream, allowing the user to only read a segment of it.
+ NB: dataLength will be negative if the segment length is in the upper range above 2**31.
+
+
+
+ Base class for a PGP object.
+
+
+ Basic output stream.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+
+
+ Create a stream representing an old style partial object.
+ Output stream to write to.
+ The packet tag for the object.
+
+
+ Create a stream representing a general packet.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+ If true, the header is written out in old format.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Size of chunks making up the packet.
+
+
+ Create a new style partial input stream buffered into chunks.
+ Output stream to write to.
+ Packet tag.
+ Buffer to use for collecting chunks.
+
+
+ Flush the underlying stream.
+
+
+ Finish writing out the current packet without closing the underlying stream.
+
+
+ Generic compressed data object.
+
+
+ The algorithm tag value.
+
+
+ Basic tags for compression algorithms.
+
+
+ Basic type for a PGP packet.
+
+
+ Base class for a DSA public key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for a DSA secret key.
+
+
+ @param in
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ @return x
+
+
+ Base class for an ECDH Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an ECDSA Public Key.
+
+
+ The stream to read the packet from.
+
+
+ Base class for an EC Public Key.
+
+
+ The stream to read the packet from.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an EC Secret Key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal public key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an ElGamal secret key.
+
+
+ @param in
+
+
+ @param x
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Basic packet for an experimental packet.
+
+
+ Basic tags for hash algorithms.
+
+
+ Base interface for a PGP key.
+
+
+
+ The base format for this key - in the case of the symmetric keys it will generally
+ be raw indicating that the key is just a straight byte representation, for an asymmetric
+ key the format will be PGP, indicating the key is a string of MPIs encoded in PGP format.
+
+ "RAW" or "PGP".
+
+
+ Note: you can only read from this once...
+
+
+ Generic literal data packet.
+
+
+ The format tag value.
+
+
+ The modification time of the file in milli-seconds (since Jan 1, 1970 UTC)
+
+
+ Basic type for a marker packet.
+
+
+ Basic packet for a modification detection code packet.
+
+
+ A multiple precision integer
+
+
+ Generic signature object
+
+
+ The encryption algorithm tag.
+
+
+ The hash algorithm tag.
+
+
+ Basic PGP packet tag types.
+
+
+ Public Key Algorithm tag numbers.
+
+
+ Basic packet for a PGP public key.
+
+
+ Basic packet for a PGP public key.
+
+
+ Construct a version 4 public key packet.
+
+
+ Basic packet for a PGP public subkey
+
+
+ Construct a version 4 public subkey packet.
+
+
+ Base class for an RSA public key.
+
+
+ Construct an RSA public key from the passed in stream.
+
+
+ The modulus.
+ The public exponent.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ Base class for an RSA secret (or priate) key.
+
+
+ The format, as a string, always "PGP".
+
+
+ Return the standard PGP encoding of the key.
+
+
+ The string to key specifier class.
+
+
+ The hash algorithm.
+
+
+ The IV for the key generation algorithm.
+
+
+ The iteration count
+
+
+ The protection mode - only if GnuDummyS2K
+
+
+ Basic packet for a PGP secret key.
+
+
+ Basic packet for a PGP secret key.
+
+
+ Generic signature packet.
+
+
+ Generate a version 4 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param hashedData
+ @param unhashedData
+ @param fingerprint
+ @param signature
+
+
+ Generate a version 2/3 signature packet.
+
+ @param signatureType
+ @param keyAlgorithm
+ @param hashAlgorithm
+ @param fingerprint
+ @param signature
+
+
+ return the keyId
+ @return the keyId that created the signature.
+
+
+ return the signature trailer that must be included with the data
+ to reconstruct the signature
+
+ @return byte[]
+
+
+ * return the signature as a set of integers - note this is normalised to be the
+ * ASN.1 encoding of what appears in the signature packet.
+
+
+ Return the byte encoding of the signature section.
+ @return uninterpreted signature bytes.
+
+
+ Return the creation time in milliseconds since 1 Jan., 1970 UTC.
+
+
+ Basic type for a PGP Signature sub-packet.
+
+
+ Return the generic data making up the packet.
+
+
+ reader for signature sub-packets
+
+
+ Basic PGP signature sub-packet tag types.
+
+
+ Packet embedded signature
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ Identifier for the modification detection feature
+
+
+ Returns if modification detection is supported.
+
+
+ Returns if a particular feature is supported.
+
+
+ Sets support for a particular feature.
+
+
+ packet giving signature creation time.
+
+
+ packet giving time after creation at which the key expires.
+
+
+ Return the number of seconds after creation time a key is valid for.
+
+ @return second count for key validity.
+
+
+ Packet holding the key flag values.
+
+
+
+ Return the flag values contained in the first 4 octets (note: at the moment
+ the standard only uses the first one).
+
+
+
+ Class provided a NotationData object according to
+ RFC2440, Chapter 5.2.3.15. Notation Data
+
+
+ packet giving signature creation time.
+
+
+ packet giving whether or not the signature is signed using the primary user ID for the key.
+
+
+ packet giving whether or not is revocable.
+
+
+ packet giving signature creation time.
+
+
+ packet giving signature expiration time.
+
+
+ return time in seconds before signature expires after creation time.
+
+
+ packet giving the User ID of the signer.
+
+
+ packet giving trust.
+
+
+
+ Represents revocation key OpenPGP signature sub packet.
+
+
+
+
+ Represents revocation reason OpenPGP signature sub packet.
+
+
+
+ Basic type for a symmetric key encrypted packet.
+
+
+ Basic tags for symmetric key algorithms
+
+
+ Basic type for a symmetric encrypted session key packet
+
+
+ @return int
+
+
+ @return S2k
+
+
+ @return byte[]
+
+
+ @return int
+
+
+ Basic type for a trust packet.
+
+
+ Basic type for a user attribute packet.
+
+
+ Basic type for a user attribute sub-packet.
+
+
+ return the generic data making up the packet.
+
+
+ reader for user attribute sub-packets
+
+
+ Basic PGP user attribute sub-packet tag types.
+
+
+ Basic type for a user ID packet.
+
+
+ Compressed data objects
+
+
+ The algorithm used for compression
+
+
+ Get the raw input stream contained in the object.
+
+
+ Return an uncompressed input stream which allows reading of the compressed data.
+
+
+ Class for producing compressed data packets.
+
+
+
+
+ Return an output stream which will save the data being written to
+ the compressed object.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Stream to be used for output.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+
+ Return an output stream which will compress the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+ Note: using this may break compatibility with RFC 1991 compliant tools.
+ Only recent OpenPGP implementations are capable of accepting these streams.
+
+
+ Stream to be used for output.
+ The buffer to use.
+ A Stream for output of the compressed data.
+
+
+
+
+
+
+ Close the compressed object.summary>
+
+
+
+ Thrown if the IV at the start of a data stream indicates the wrong key is being used.
+
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return true if the message is integrity protected.
+ True, if there is a modification detection code namespace associated
+ with this stream.
+
+
+ Note: This can only be called after the message has been read.
+ True, if the message verifies, false otherwise
+
+
+ Generator for encrypted objects.
+
+
+ Existing SecureRandom constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+
+
+ Creates a cipher stream which will have an integrity packet associated with it.
+
+
+ Base constructor.
+ The symmetric algorithm to use.
+ Source of randomness.
+ PGP 2.6.x compatibility required.
+
+
+
+ Add a PBE encryption method to the encrypted object using the default algorithm (S2K_SHA1).
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Add a PBE encryption method to the encrypted object.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ Add a public key encrypted session key to the encrypted object.
+
+
+
+
+ If buffer is non null stream assumed to be partial, otherwise the length will be used
+ to output a fixed length packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+
+
+
+
+ Return an output stream which will encrypt the data as it is written to it.
+ The stream will be written out in chunks according to the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+
+
+
+
+
+ Close off the encrypted object - this is equivalent to calling Close() on the stream
+ returned by the Open() method.
+
+
+ Note: This does not close the underlying output stream, only the stream on top of
+ it created by the Open() method.
+
+
+
+
+ A holder for a list of PGP encryption method packets.
+
+
+ Generic exception class for PGP encoding/decoding problems.
+
+
+ Key flag values for the KeyFlags subpacket.
+
+
+
+ General class to handle JCA key pairs and convert them into OpenPGP ones.
+
+ A word for the unwary, the KeyId for an OpenPGP public key is calculated from
+ a hash that includes the time of creation, if you pass a different date to the
+ constructor below with the same public private key pair the KeyIs will not be the
+ same as for previous generations of the key, so ideally you only want to do
+ this once.
+
+
+
+
+ Create a key pair from a PgpPrivateKey and a PgpPublicKey.
+ The public key.
+ The private key.
+
+
+ The keyId associated with this key pair.
+
+
+
+ Generator for a PGP master and subkey ring.
+ This class will generate both the secret and public key rings
+
+
+
+
+ Create a new key ring generator using old style checksumming. It is recommended to use
+ SHA1 checksumming where possible.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+
+ If true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+
+ Create a new key ring generator.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The certification level for keys on this ring.
+ The master key pair.
+ The id to be associated with the ring.
+ The algorithm to be used to protect secret keys.
+ The hash algorithm.
+ The passPhrase to be used to protect secret keys.
+ Checksum the secret keys with SHA1 rather than the older 16 bit checksum.
+ Packets to be included in the certification hash.
+ Packets to be attached unhashed to the certification.
+ input secured random.
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+
+
+ Add a subkey to the key ring to be generated with default certification.
+
+ The key pair.
+ The hash algorithm.
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+
+
+
+
+ Add a subkey with specific hashed and unhashed packets associated with it and
+ default certification.
+
+ Public/private key pair.
+ Hashed packet values to be included in certification.
+ Unhashed packets values to be included in certification.
+ The hash algorithm.
+ exception adding subkey:
+
+
+
+ Return the secret key ring.
+
+
+ Return the public key ring that corresponds to the secret key ring.
+
+
+
+ Thrown if the key checksum is invalid.
+
+
+
+ Class for processing literal data objects.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+ The format of the data stream - Binary or Text
+
+
+ The file name that's associated with the data stream.
+
+
+ Return the file name as an unintrepreted byte array.
+
+
+ The modification time for the file.
+
+
+ The raw input stream for the data stream.
+
+
+ The input stream representing the data stream.
+
+
+ Class for producing literal data packets.
+
+
+ The special name indicating a "for your eyes only" packet.
+
+
+
+ Generates literal data objects in the old format.
+ This is important if you need compatibility with PGP 2.6.x.
+
+ If true, uses old format.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The length of the data we will write.
+ The time of last modification we want stored.
+
+
+
+
+ Open a literal data packet, returning a stream to store the data inside the packet,
+ as an indefinite length stream. The stream is written out as a series of partial
+ packets with a chunk size determined by the size of the passed in buffer.
+
+
+ The stream created can be closed off by either calling Close()
+ on the stream or Close() on the generator. Closing the returned
+ stream does not close off the Stream parameter outStr.
+
+
+ Note: if the buffer is not a power of 2 in length only the largest power of 2
+ bytes worth of the buffer will be used.
+
+ The stream we want the packet in.
+ The format we are using.
+ The name of the 'file'.
+ The time of last modification we want stored.
+ The buffer to use for collecting data to put into chunks.
+
+
+
+ Close the literal data packet - this is equivalent to calling Close()
+ on the stream returned by the Open() method.
+
+
+
+
+ A PGP marker packet - in general these should be ignored other than where
+ the idea is to preserve the original input stream.
+
+
+
+
+ General class for reading a PGP object stream.
+
+ Note: if this class finds a PgpPublicKey or a PgpSecretKey it
+ will create a PgpPublicKeyRing, or a PgpSecretKeyRing for each
+ key found. If all you are trying to do is read a key ring file use
+ either PgpPublicKeyRingBundle or PgpSecretKeyRingBundle.
+
+
+
+ Return the next object in the stream, or null if the end is reached.
+ On a parse error
+
+
+
+ Return all available objects in a list.
+
+ An IList containing all objects from this factory, in order.
+
+
+ A one pass signature object.
+
+
+ Initialise the signature object for verification.
+
+
+ Verify the calculated signature against the passed in PgpSignature.
+
+
+ Holder for a list of PgpOnePassSignature objects.
+
+
+ Padding functions.
+
+
+ A password based encryption object.
+
+
+ Return the raw input stream for the data stream.
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Return the decrypted input stream, using the passed in passphrase.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+ General class to contain a private key for use with other OpenPGP objects.
+
+
+
+ Create a PgpPrivateKey from a keyID, the associated public data packet, and a regular private key.
+
+ ID of the corresponding public key.
+ the public key data packet to be associated with this private key.
+ the private key data packet to be associated with this private key.
+
+
+ The keyId associated with the contained private key.
+
+
+ The public key packet associated with this private key, if available.
+
+
+ The contained private key.
+
+
+ General class to handle a PGP public key object.
+
+
+
+ Create a PgpPublicKey from the passed in lightweight one.
+
+
+ Note: the time passed in affects the value of the key's keyId, so you probably only want
+ to do this once for a lightweight key, or make sure you keep track of the time you used.
+
+ Asymmetric algorithm type representing the public key.
+ Actual public key to associate.
+ Date of creation.
+ If pubKey is not public.
+ On key creation problem.
+
+
+ Constructor for a sub-key.
+
+
+ Copy constructor.
+ The public key to copy.
+
+
+ The version of this key.
+
+
+ The creation time of this key.
+
+
+ The number of valid days from creation time - zero means no expiry.
+ WARNING: This method will return 1 for keys with version > 3 that expire in less than 1 day
+
+
+ Return the trust data associated with the public key, if present.
+ A byte array with trust data, null otherwise.
+
+
+ The number of valid seconds from creation time - zero means no expiry.
+
+
+ The keyId associated with the public key.
+
+
+ The fingerprint of the key
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for encryption.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for encryption.
+
+
+
+ True, if this is a master key.
+
+
+ The algorithm code associated with the public key.
+
+
+ The strength of the key in bits.
+
+
+ The public key contained in the object.
+ A lightweight public key.
+ If the key algorithm is not recognised.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of PgpUserAttributeSubpacketVector objects.
+
+
+ Allows enumeration of any signatures associated with the passed in id.
+ The ID to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures associated with the passed in user attributes.
+ The vector of user attributes to be matched.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of signatures of the passed in type that are on this key.
+ The type of the signature to be returned.
+ An IEnumerable of PgpSignature objects.
+
+
+ Allows enumeration of all signatures/certifications associated with this key.
+ An IEnumerable with all signatures/certifications.
+
+
+ Return all signatures/certifications directly associated with this key (ie, not to a user id).
+
+ @return an iterator (possibly empty) with all signatures/certifications.
+
+
+ Check whether this (sub)key has a revocation signature on it.
+ True, if this (sub)key has been revoked.
+
+
+ Add a certification for an id to the given public key.
+ The key the certification is to be added to.
+ The ID the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+ Add a certification for the given UserAttributeSubpackets to the given public key.
+ The key the certification is to be added to.
+ The attributes the certification is associated with.
+ The new certification.
+ The re-certified key.
+
+
+
+ Remove any certifications associated with a user attribute subpacket on a key.
+
+ The key the certifications are to be removed from.
+ The attributes to be removed.
+
+ The re-certified key, or null if the user attribute subpacket was not found on the key.
+
+
+
+ Remove any certifications associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that is to be removed.
+ The re-certified key, or null if the ID was not found on the key.
+
+
+ Remove a certification associated with a given ID on a key.
+ The key the certifications are to be removed from.
+ The ID that the certfication is to be removed from.
+ The certfication to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Remove a certification associated with a given user attributes on a key.
+ The key the certifications are to be removed from.
+ The user attributes that the certfication is to be removed from.
+ The certification to be removed.
+ The re-certified key, or null if the certification was not found.
+
+
+ Add a revocation or some other key certification to a key.
+ The key the revocation is to be added to.
+ The key signature to be added.
+ The new changed public key object.
+
+
+ Remove a certification from the key.
+ The key the certifications are to be removed from.
+ The certfication to be removed.
+ The modified key, null if the certification was not found.
+
+
+ A public key encrypted data object.
+
+
+ The key ID for the key used to encrypt the data.
+
+
+
+ Return the algorithm code for the symmetric algorithm used to encrypt the data.
+
+
+
+ Return the decrypted data stream for the packet.
+
+
+
+ Class to hold a single master public key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpPublicKeyRingBundle class.
+
+
+
+
+ Return the first public key in the ring.
+
+
+ Return the public key referred to by the passed in key ID if it is present.
+
+
+ Allows enumeration of all the public keys.
+ An IEnumerable of PgpPublicKey objects.
+
+
+
+ Returns a new key ring with the public key passed in either added or
+ replacing an existing one.
+
+ The public key ring to be modified.
+ The public key to be inserted.
+ A new PgpPublicKeyRing
+
+
+ Returns a new key ring with the public key passed in removed from the key ring.
+ The public key ring to be modified.
+ The public key to be removed.
+ A new PgpPublicKeyRing, or null if pubKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire public key file in one hit this is the class for you.
+
+
+
+ Build a PgpPublicKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpPublicKeyRing.
+
+
+ Return the number of key rings in this collection.
+
+
+ Allow enumeration of the public key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP public key associated with the given key id.
+ The ID of the public key to return.
+
+
+ Return the public key ring which contains the key referred to by keyId
+ key ID to match against
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in public key ring.
+
+ The PgpPublicKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpPublicKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in public key ring removed.
+
+ The PgpPublicKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpPublicKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ General class to handle a PGP secret key object.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ If utf8PassPhrase is true, conversion of the passphrase to bytes uses Encoding.UTF8.GetBytes(), otherwise the conversion
+ is performed using Convert.ToByte(), which is the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Check if this key has an algorithm type that makes it suitable to use for signing.
+
+
+ Note: with version 4 keys KeyFlags subpackets should also be considered when present for
+ determining the preferred use of the key.
+
+
+ true if this key algorithm is suitable for use with signing.
+
+
+
+ True, if this is a master key.
+
+
+ Detect if the Secret Key's Private Key is empty or not
+
+
+ The algorithm the key is encrypted with.
+
+
+ The key ID of the public key associated with this key.
+
+
+ Return the S2K usage associated with this key.
+
+
+ Return the S2K used to process this key.
+
+
+ The public key associated with this key.
+
+
+ Allows enumeration of any user IDs associated with the key.
+ An IEnumerable of string objects.
+
+
+ Allows enumeration of any user attribute vectors associated with the key.
+ An IEnumerable of string objects.
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+ Extract a PgpPrivateKey from this secret key's encrypted contents.
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Return a copy of the passed in secret key, encrypted using a new password
+ and the passed in algorithm.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+ The PgpSecretKey to be copied.
+ The current password for the key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+ Replace the passed the public key on the passed in secret key.
+ Secret key to change.
+ New public key.
+ A new secret key.
+ If KeyId's do not match.
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys associating it with the passed in public key.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Parse a secret key from one of the GPG S expression keys.
+
+
+
+
+ Class to hold a single master secret key and its subkeys.
+
+ Often PGP keyring files consist of multiple master keys, if you are trying to process
+ or construct one of these you should use the PgpSecretKeyRingBundle class.
+
+
+
+
+ Return the public key for the master key.
+
+
+ Return the master private key.
+
+
+ Allows enumeration of the secret keys.
+ An IEnumerable of PgpSecretKey objects.
+
+
+
+ Return an iterator of the public keys in the secret key ring that
+ have no matching private key. At the moment only personal certificate data
+ appears in this fashion.
+
+ An IEnumerable of unattached, or extra, public keys.
+
+
+
+ Replace the public key set on the secret ring with the corresponding key off the public ring.
+
+ Secret ring to be changed.
+ Public ring containing the new public key set.
+
+
+
+ Return a copy of the passed in secret key ring, with the master key and sub keys encrypted
+ using a new password and the passed in algorithm.
+
+ The PgpSecretKeyRing to be copied.
+ The current password for key.
+ The new password for the key.
+ The algorithm to be used for the encryption.
+ Source of randomness.
+
+
+
+ Returns a new key ring with the secret key passed in either added or
+ replacing an existing one with the same key ID.
+
+ The secret key ring to be modified.
+ The secret key to be inserted.
+ A new PgpSecretKeyRing
+
+
+ Returns a new key ring with the secret key passed in removed from the key ring.
+ The secret key ring to be modified.
+ The secret key to be removed.
+ A new PgpSecretKeyRing, or null if secKey is not found.
+
+
+
+ Often a PGP key ring file is made up of a succession of master/sub-key key rings.
+ If you want to read an entire secret key file in one hit this is the class for you.
+
+
+
+ Build a PgpSecretKeyRingBundle from the passed in input stream.
+ Input stream containing data.
+ If a problem parsing the stream occurs.
+ If an object is encountered which isn't a PgpSecretKeyRing.
+
+
+ Return the number of rings in this collection.
+
+
+ Allow enumeration of the secret key rings making up this collection.
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Allow enumeration of the key rings associated with the passed in userId.
+ The user ID to be matched.
+ If true, userId need only be a substring of an actual ID string to match.
+ If true, case is ignored in user ID comparisons.
+ An IEnumerable of key rings which matched (possibly none).
+
+
+ Return the PGP secret key associated with the given key id.
+ The ID of the secret key to return.
+
+
+ Return the secret key ring which contains the key referred to by keyId
+ The ID of the secret key
+
+
+
+ Return true if a key matching the passed in key ID is present, false otherwise.
+
+ key ID to look for.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle and
+ the passed in secret key ring.
+
+ The PgpSecretKeyRingBundle the key ring is to be added to.
+ The key ring to be added.
+ A new PgpSecretKeyRingBundle merging the current one with the passed in key ring.
+ If the keyId for the passed in key ring is already present.
+
+
+
+ Return a new bundle containing the contents of the passed in bundle with
+ the passed in secret key ring removed.
+
+ The PgpSecretKeyRingBundle the key ring is to be removed from.
+ The key ring to be removed.
+ A new PgpSecretKeyRingBundle not containing the passed in key ring.
+ If the keyId for the passed in key ring is not present.
+
+
+ A PGP signature object.
+
+
+ The OpenPGP version number for this signature.
+
+
+ The key algorithm associated with this signature.
+
+
+ The hash algorithm associated with this signature.
+
+
+ Return true if this signature represents a certification.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in user attributes.
+
+ User attributes the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+
+ Verify the signature as certifying the passed in public key as associated
+ with the passed in ID.
+
+ ID the key was stored under.
+ The key to be verified.
+ True, if the signature matches, false otherwise.
+
+
+ Verify a certification for the passed in key against the passed in master key.
+ The key we are verifying against.
+ The key we are verifying.
+ True, if the certification is valid, false otherwise.
+
+
+ Verify a key certification, such as revocation, for the passed in key.
+ The key we are checking.
+ True, if the certification is valid, false otherwise.
+
+
+ The ID of the key that created the signature.
+
+
+ The creation time of this signature.
+
+
+
+ Return true if the signature has either hashed or unhashed subpackets.
+
+
+
+
+ Return true if the passed in signature type represents a certification, false if the signature type is not.
+
+
+ true if signatureType is a certification, false otherwise.
+
+
+ Generator for PGP signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a signature object containing the current signature state.
+
+
+ Generate a certification for the passed in ID and key.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in userAttributes.
+ The ID we are certifying against the public key.
+ The key we are certifying against the ID.
+ The certification.
+
+
+ Generate a certification for the passed in key against the passed in master key.
+ The key we are certifying against.
+ The key we are certifying.
+ The certification.
+
+
+ Generate a certification, such as a revocation, for the passed in key.
+ The key we are certifying.
+ The certification.
+
+
+ A list of PGP signatures - normally in the signature block after literal data.
+
+
+ Generator for signature subpackets.
+
+
+
+ Add a TrustSignature packet to the signature. The values for depth and trust are largely
+ installation dependent but there are some guidelines in RFC 4880 - 5.2.3.13.
+
+ true if the packet is critical.
+ depth level.
+ trust amount.
+
+
+
+ Set the number of seconds a key is valid for after the time of its creation.
+ A value of zero means the key never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the key is valid, or zero if no expiry.
+
+
+
+ Set the number of seconds a signature is valid for after the time of its creation.
+ A value of zero means the signature never expires.
+
+ True, if should be treated as critical, false otherwise.
+ The number of seconds the signature is valid, or zero if no expiry.
+
+
+
+ Set the creation time for the signature.
+
+ Note: this overrides the generation of a creation time when the signature
+ is generated.
+
+
+
+
+ Sets revocation reason sub packet
+
+
+
+
+ Sets revocation key sub packet
+
+
+
+
+ Sets issuer key sub packet
+
+
+
+ Container for a list of signature subpackets.
+
+
+ Return true if a particular subpacket type exists.
+
+ @param type type to look for.
+ @return true if present, false otherwise.
+
+
+ Return all signature subpackets of the passed in type.
+ @param type subpacket type code
+ @return an array of zero or more matching subpackets.
+
+
+
+ Return the number of seconds a signature is valid for after its creation date.
+ A value of zero means the signature never expires.
+
+ Seconds a signature is valid for.
+
+
+
+ Return the number of seconds a key is valid for after its creation date.
+ A value of zero means the key never expires.
+
+ Seconds a signature is valid for.
+
+
+ Return the number of packets this vector contains.
+
+
+ Container for a list of user attribute subpackets.
+
+
+ Basic utility class.
+
+
+
+ Conversion of the passphrase characters to bytes is performed using Convert.ToByte(), which is
+ the historical behaviour of the library (1.7 and earlier).
+
+
+
+
+ The passphrase is encoded to bytes using UTF8 (Encoding.UTF8.GetBytes).
+
+
+
+
+ Allows the caller to handle the encoding of the passphrase to bytes.
+
+
+
+
+ Return either an ArmoredInputStream or a BcpgInputStream based on whether
+ the initial characters of the stream are binary PGP encodings or not.
+
+
+
+ Generator for old style PGP V3 Signatures.
+
+
+ Create a generator for the passed in keyAlgorithm and hashAlgorithm codes.
+
+
+ Initialise the generator for signing.
+
+
+ Initialise the generator for signing.
+
+
+ Return the one pass header associated with the current signature.
+
+
+ Return a V3 signature object containing the current signature state.
+
+
+ Utility functions for looking a S-expression keys. This class will move when it finds a better home!
+
+ Format documented here:
+ http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gnupg.git;a=blob;f=agent/keyformat.txt;h=42c4b1f06faf1bbe71ffadc2fee0fad6bec91a97;hb=refs/heads/master
+
+
+
+
+ The 'Signature' parameter is only available when generating unsigned attributes.
+
+
+
+ containing class for an CMS Authenticated Data object
+
+
+ return the object identifier for the content MAC algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the digested attributes indexed by
+ the OID of the attribute.
+
+
+ return a table of the undigested attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ General class for generating a CMS authenticated-data message.
+
+ A simple example of usage.
+
+
+ CMSAuthenticatedDataGenerator fact = new CMSAuthenticatedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSAuthenticatedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+
+
+ generate an authenticated object that contains an CMS Authenticated Data object
+
+
+ Parsing class for an CMS Authenticated Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CMSAuthenticatedDataParser ad = new CMSAuthenticatedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ad.getRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey, "BC");
+
+ processDataStream(recData.getContentStream());
+
+ if (!Arrays.equals(ad.getMac(), recipient.getMac())
+ {
+ System.err.println("Data corrupted!!!!");
+ }
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSAuthenticatedDataParser ep = new CMSAuthenticatedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the mac algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ return a table of the unauthenticated attributes indexed by
+ the OID of the attribute.
+ @exception java.io.IOException
+
+
+ General class for generating a CMS authenticated-data message stream.
+
+ A simple example of usage.
+
+ CMSAuthenticatedDataStreamGenerator edGen = new CMSAuthenticatedDataStreamGenerator();
+
+ edGen.addKeyTransRecipient(cert);
+
+ ByteArrayOutputStream bOut = new ByteArrayOutputStream();
+
+ OutputStream out = edGen.open(
+ bOut, CMSAuthenticatedDataGenerator.AES128_CBC, "BC");*
+ out.write(data);
+
+ out.close();
+
+
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+ @param rand instance of SecureRandom to use
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information
+
+
+ generate an enveloped object that contains an CMS Enveloped Data
+ object using the given provider and the passed in key generator.
+ @throws java.io.IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+
+
+ base constructor
+
+
+ constructor allowing specific source of randomness
+
+ @param rand instance of SecureRandom to use
+
+
+ containing class for an CMS AuthEnveloped Data object
+
+
+ containing class for an CMS Compressed Data object
+
+
+ Return the uncompressed content.
+
+ @return the uncompressed content
+ @throws CmsException if there is an exception uncompressing the data.
+
+
+ Return the uncompressed content, throwing an exception if the data size
+ is greater than the passed in limit. If the content is exceeded getCause()
+ on the CMSException will contain a StreamOverflowException
+
+ @param limit maximum number of bytes to read
+ @return the content read
+ @throws CMSException if there is an exception uncompressing the data.
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ * General class for generating a compressed CMS message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * CMSCompressedDataGenerator fact = new CMSCompressedDataGenerator();
+ * CMSCompressedData data = fact.Generate(content, algorithm);
+ *
+ *
+
+
+ Generate an object that contains an CMS Compressed Data
+
+
+ Class for reading a CMS Compressed Data stream.
+
+ CMSCompressedDataParser cp = new CMSCompressedDataParser(inputStream);
+
+ process(cp.GetContent().GetContentStream());
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CMSCompressedDataParser ep = new CMSCompressedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ General class for generating a compressed CMS message stream.
+
+ A simple example of usage.
+
+
+ CMSCompressedDataStreamGenerator gen = new CMSCompressedDataStreamGenerator();
+
+ Stream cOut = gen.Open(outputStream, CMSCompressedDataStreamGenerator.ZLIB);
+
+ cOut.Write(data);
+
+ cOut.Close();
+
+
+
+ base constructor
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ Close the underlying data stream.
+ @throws IOException if the close fails.
+
+
+ containing class for an CMS Enveloped Data object
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return a store of the intended recipients for this message
+
+
+ return the ContentInfo
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CmsEnvelopedDataGenerator fact = new CmsEnvelopedDataGenerator();
+
+ fact.AddKeyTransRecipient(cert);
+
+ CmsEnvelopedData data = fact.Generate(content, algorithm);
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+
+ Generate an enveloped object that contains a CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data object.
+
+
+ Parsing class for an CMS Enveloped Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one recipient can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ Example of use - assuming the first recipient matches the private key we have.
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(inputStream);
+
+ RecipientInformationStore recipients = ep.GetRecipientInfos();
+
+ Collection c = recipients.getRecipients();
+ Iterator it = c.iterator();
+
+ if (it.hasNext())
+ {
+ RecipientInformation recipient = (RecipientInformation)it.next();
+
+ CMSTypedStream recData = recipient.getContentStream(privateKey);
+
+ processDataStream(recData.getContentStream());
+ }
+
+ Note: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsEnvelopedDataParser ep = new CmsEnvelopedDataParser(new BufferedInputStream(inputStream, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+
+ return the object identifier for the content encryption algorithm.
+
+
+ return the ASN.1 encoded encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a store of the intended recipients for this message
+
+
+ return a table of the unprotected attributes indexed by
+ the OID of the attribute.
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message stream.
+
+ A simple example of usage.
+
+ CmsEnvelopedDataStreamGenerator edGen = new CmsEnvelopedDataStreamGenerator();
+
+ edGen.AddKeyTransRecipient(cert);
+
+ MemoryStream bOut = new MemoryStream();
+
+ Stream out = edGen.Open(
+ bOut, CMSEnvelopedDataGenerator.AES128_CBC);*
+ out.Write(data);
+
+ out.Close();
+
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data.
+ Length of octet strings to buffer the data.
+
+
+ Use a BER Set to store the recipient information.
+
+
+
+ Generate an enveloped object that contains an CMS Enveloped Data
+ object using the passed in key generator.
+
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ generate an enveloped object that contains an CMS Enveloped Data object
+ @throws IOException
+
+
+ General class for generating a CMS enveloped-data message.
+
+ A simple example of usage.
+
+
+ CMSEnvelopedDataGenerator fact = new CMSEnvelopedDataGenerator();
+
+ fact.addKeyTransRecipient(cert);
+
+ CMSEnvelopedData data = fact.generate(content, algorithm, "BC");
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ add a recipient.
+
+ @param cert recipient's public key certificate
+ @exception ArgumentException if there is a problem with the certificate
+
+
+ add a recipient
+
+ @param key the public key used by the recipient
+ @param subKeyId the identifier for the recipient's public key
+ @exception ArgumentException if there is a problem with the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ add a KEK recipient.
+ @param key the secret key to use for wrapping
+ @param keyIdentifier the byte string that identifies the key
+
+
+ Add a key agreement based recipient.
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCert recipient's public key certificate.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+ Add multiple key agreement based recipients (sharing a single KeyAgreeRecipientInfo structure).
+
+ @param agreementAlgorithm key agreement algorithm to use.
+ @param senderPrivateKey private key to initialise sender side of agreement with.
+ @param senderPublicKey sender public key to include with message.
+ @param recipientCerts recipients' public key certificates.
+ @param cekWrapAlgorithm OID for key wrapping algorithm to use.
+ @exception SecurityUtilityException if the algorithm requested cannot be found
+ @exception InvalidKeyException if the keys are inappropriate for the algorithm specified
+
+
+
+ Generic routine to copy out the data we want processed.
+
+
+ This routine may be called multiple times.
+
+
+
+ a holding class for a byte array of data to be processed.
+
+
+ A clone of the byte array
+
+
+ general class for handling a pkcs7-signature message.
+
+ A simple example of usage - note, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer...
+
+
+ IX509Store certs = s.GetCertificates();
+ SignerInformationStore signers = s.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ if (signer.Verify(cert.GetPublicKey()))
+ {
+ verified++;
+ }
+ }
+
+
+
+ Content with detached signature, digests precomputed
+
+ @param hashes a map of precomputed digests for content indexed by name of hash.
+ @param sigBlock the signature object.
+
+
+ base constructor - content with detached signature.
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ base constructor - with encapsulated content
+
+
+ Return the version number for this object.
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ return the ContentInfo
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Replace the signerinformation store associated with this
+ CmsSignedData object with the new one passed in. You would
+ probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ @param signedData the signed data object to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @return a new signed data object.
+
+
+ Replace the certificate and CRL information associated with this
+ CmsSignedData object with the new one passed in.
+
+ @param signedData the signed data object to be used as a base.
+ @param x509Certs the new certificates to be used.
+ @param x509Crls the new CRLs to be used.
+ @return a new signed data object.
+ @exception CmsException if there is an error processing the stores
+
+
+ * general class for generating a pkcs7-signature message.
+ *
+ * A simple example of usage.
+ *
+ *
+ * IX509Store certs...
+ * IX509Store crls...
+ * CmsSignedDataGenerator gen = new CmsSignedDataGenerator();
+ *
+ * gen.AddSigner(privKey, cert, CmsSignedGenerator.DigestSha1);
+ * gen.AddCertificates(certs);
+ * gen.AddCrls(crls);
+ *
+ * CmsSignedData data = gen.Generate(content);
+ *
+ *
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ * add a signer - no attributes other than the default ones will be
+ * provided here.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+
+
+ add a signer, specifying the digest encryption algorithm to use - no attributes other than the default ones will be
+ provided here.
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param cert certificate containing corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param cert certificate containing corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ * add a signer with extra signed/unsigned attributes.
+ *
+ * @param key signing key to use
+ * @param subjectKeyID subjectKeyID of corresponding public key
+ * @param digestOID digest algorithm OID
+ * @param signedAttr table of attributes to be included in signature
+ * @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes.
+
+ @param key signing key to use
+ @param subjectKeyID subjectKeyID of corresponding public key
+ @param encryptionOID digest encryption algorithm OID
+ @param digestOID digest algorithm OID
+ @param signedAttr table of attributes to be included in signature
+ @param unsignedAttr table of attributes to be included as unsigned
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, specifying the digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ add a signer with extra signed/unsigned attributes based on generators.
+
+
+ add a signer, including digest encryption algorithm, with extra signed/unsigned attributes based on generators.
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a set of one or more SignerInformation objects representing counter signatures on
+ the passed in SignerInformation object.
+
+ @param signer the signer to be countersigned
+ @param sigProvider the provider to be used for counter signing.
+ @return a store containing the signers.
+
+
+ Parsing class for an CMS Signed Data object from an input stream.
+
+ Note: that because we are in a streaming mode only one signer can be tried and it is important
+ that the methods on the parser are called in the appropriate order.
+
+
+ A simple example of usage for an encapsulated signature.
+
+
+ Two notes: first, in the example below the validity of
+ the certificate isn't verified, just the fact that one of the certs
+ matches the given signer, and, second, because we are in a streaming
+ mode the order of the operations is important.
+
+
+ CmsSignedDataParser sp = new CmsSignedDataParser(encapSigData);
+
+ sp.GetSignedContent().Drain();
+
+ IX509Store certs = sp.GetCertificates();
+ SignerInformationStore signers = sp.GetSignerInfos();
+
+ foreach (SignerInformation signer in signers.GetSigners())
+ {
+ ArrayList certList = new ArrayList(certs.GetMatches(signer.SignerID));
+ X509Certificate cert = (X509Certificate) certList[0];
+
+ Console.WriteLine("verify returns: " + signer.Verify(cert));
+ }
+
+ Note also: this class does not introduce buffering - if you are processing large files you should create
+ the parser with:
+
+ CmsSignedDataParser ep = new CmsSignedDataParser(new BufferedInputStream(encapSigData, bufSize));
+
+ where bufSize is a suitably large buffer size.
+
+
+ base constructor - with encapsulated content
+
+
+ base constructor
+
+ @param signedContent the content that was signed.
+ @param sigData the signature object.
+
+
+ Return the version number for the SignedData object
+
+ @return the version number
+
+
+ return the collection of signers that are associated with the
+ signatures for the message.
+ @throws CmsException
+
+
+ return a X509Store containing the attribute certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of attribute certificates
+ @exception org.bouncycastle.x509.NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing the public key certificates, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of public key certificates
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+ return a X509Store containing CRLs, if any, contained
+ in this message.
+
+ @param type type of store to create
+ @return a store of CRLs
+ @exception NoSuchStoreException if the store type isn't available.
+ @exception CmsException if a general exception prevents creation of the X509Store
+
+
+
+ Return the DerObjectIdentifier associated with the encapsulated
+ content info structure carried in the signed data.
+
+
+
+ Replace the signerinformation store associated with the passed
+ in message contained in the stream original with the new one passed in.
+ You would probably only want to do this if you wanted to change the unsigned
+ attributes associated with a signer, or perhaps delete one.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param signerInformationStore the new signer information store to use.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+
+
+ Replace the certificate and CRL information associated with this
+ CMSSignedData object with the new one passed in.
+
+ The output stream is returned unclosed.
+
+ @param original the signed data stream to be used as a base.
+ @param certsAndCrls the new certificates and CRLs to be used.
+ @param out the stream to Write the new signed data object to.
+ @return out.
+ @exception CmsException if there is an error processing the CertStore
+
+
+ General class for generating a pkcs7-signature message stream.
+
+ A simple example of usage.
+
+
+ IX509Store certs...
+ CmsSignedDataStreamGenerator gen = new CmsSignedDataStreamGenerator();
+
+ gen.AddSigner(privateKey, cert, CmsSignedDataStreamGenerator.DIGEST_SHA1);
+
+ gen.AddCertificates(certs);
+
+ Stream sigOut = gen.Open(bOut);
+
+ sigOut.Write(Encoding.UTF8.GetBytes("Hello World!"));
+
+ sigOut.Close();
+
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Set the underlying string size for encapsulated data
+
+ @param bufferSize length of octet strings to buffer the data.
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer, specifying the digest encryption algorithm - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes - specifying digest
+ encryption algorithm.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer - no attributes other than the default ones will be
+ provided here.
+ @throws NoSuchProviderException
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ add a signer with extra signed/unsigned attributes.
+ @throws NoSuchAlgorithmException
+ @throws InvalidKeyException
+
+
+ generate a signed object that for a CMS Signed Data object
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data".
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature with the
+ default content type "data". If dataOutputStream is non null the data
+ being signed will be written to the stream as it is processed.
+ @param out stream the CMS object is to be written to.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ generate a signed object that for a CMS Signed Data
+ object - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+
+
+ generate a signed object that for a CMS Signed Data
+ object using the given provider - if encapsulate is true a copy
+ of the message will be included in the signature. The content type
+ is set according to the OID represented by the string signedContentType.
+ @param out stream the CMS object is to be written to.
+ @param signedContentType OID for data to be signed.
+ @param encapsulate true if data should be encapsulated.
+ @param dataOutputStream output stream to copy the data being signed to.
+
+
+ Default type for the signed data.
+
+
+ Constructor allowing specific source of randomness
+ Instance of SecureRandom to use.
+
+
+ Add the attribute certificates contained in the passed in store to the
+ generator.
+
+ @param store a store of Version 2 attribute certificates
+ @throws CmsException if an error occurse processing the store.
+
+
+ Add a store of precalculated signers to the generator.
+
+ @param signerStore store of signers
+
+
+ Return a map of oids and byte arrays representing the digests calculated on the content during
+ the last generate.
+
+ @return a map of oids (as String objects) and byte[] representing digests.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+ Return the digest encryption algorithm using one of the standard
+ JCA string representations rather than the algorithm identifier (if
+ possible).
+
+
+ Default authenticated attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in IDictionary of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ Default signed attributes generator.
+
+
+ Initialise to use all defaults
+
+
+ Initialise with some extra attributes or overrides.
+
+ @param attributeTable initial attribute table to use.
+
+
+ Create a standard attribute table from the passed in parameters - this will
+ normally include contentType, signingTime, and messageDigest. If the constructor
+ using an AttributeTable was used, entries in it for contentType, signingTime, and
+ messageDigest will override the generated ones.
+
+ @param parameters source parameters for table generation.
+
+ @return a filled in Hashtable of attributes.
+
+
+ @param parameters source parameters
+ @return the populated attribute table
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a secret key known to the other side.
+
+
+ decrypt the content and return an input stream.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using key agreement.
+
+
+ decrypt the content and return an input stream.
+
+
+ the KeyTransRecipientInformation class for a recipient who has been sent a secret
+ key encrypted using their public key that needs to be used to
+ extract the message.
+
+
+ decrypt the content and return it as a byte array.
+
+
+ a basic index for an originator.
+
+
+ Return the certificates stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CertificateHolder objects.
+
+
+ Return the CRLs stored in the underlying OriginatorInfo object.
+
+ @return a Store of X509CRLHolder objects.
+
+
+ Return the underlying ASN.1 object defining this SignerInformation object.
+
+ @return a OriginatorInfo.
+
+
+ the RecipientInfo class for a recipient who has been sent a message
+ encrypted using a password.
+
+
+ return the object identifier for the key derivation algorithm, or null
+ if there is none present.
+
+ @return OID for key derivation algorithm, if present.
+
+
+ decrypt the content and return an input stream.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes assuming ASCII.
+
+
+
+ PKCS5 scheme-2 - password converted to bytes using UTF-8.
+
+
+
+ Generate a RecipientInfo object for the given key.
+
+
+ A
+
+
+ A
+
+
+ A
+
+
+
+
+ * return the object identifier for the key encryption algorithm.
+ *
+ * @return OID for key encryption algorithm.
+
+
+ * return the ASN.1 encoded key encryption algorithm parameters, or null if
+ * there aren't any.
+ *
+ * @return ASN.1 encoding of key encryption algorithm parameters.
+
+
+ Return the MAC calculated for the content stream. Note: this call is only meaningful once all
+ the content has been read.
+
+ @return byte array containing the mac.
+
+
+ Return the first RecipientInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a recipient
+ @return a single RecipientInformation object. Null if none matches.
+
+
+ Return the number of recipients in the collection.
+
+ @return number of recipients identified.
+
+
+ Return all recipients in the collection
+
+ @return a collection of recipients.
+
+
+ Return possible empty collection with recipients matching the passed in RecipientID
+
+ @param selector a recipient id to select against.
+ @return a collection of RecipientInformation objects.
+
+
+ a basic index for a signer.
+
+
+ If the passed in flag is true, the signer signature will be based on the data, not
+ a collection of signed attributes, and no signed attributes will be included.
+
+ @return the builder object
+
+
+ Provide a custom signed attribute generator.
+
+ @param signedGen a generator of signed attributes.
+ @return the builder object
+
+
+ Provide a generator of unsigned attributes.
+
+ @param unsignedGen a generator for signed attributes.
+ @return the builder object
+
+
+ Build a generator with the passed in certHolder issuer and serial number as the signerIdentifier.
+
+ @param contentSigner operator for generating the final signature in the SignerInfo with.
+ @param certHolder carrier for the X.509 certificate related to the contentSigner.
+ @return a SignerInfoGenerator
+ @throws OperatorCreationException if the generator cannot be built.
+
+
+ Build a generator with the passed in subjectKeyIdentifier as the signerIdentifier. If used you should
+ try to follow the calculation described in RFC 5280 section 4.2.1.2.
+
+ @param signerFactory operator factory for generating the final signature in the SignerInfo with.
+ @param subjectKeyIdentifier key identifier to identify the public key for verifying the signature.
+ @return a SignerInfoGenerator
+
+
+ an expanded SignerInfo block from a CMS Signed message
+
+
+ return the version number for this objects underlying SignerInfo structure.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature parameters, or null if there aren't any.
+
+
+ return the content digest that was calculated during verification.
+
+
+ return the object identifier for the signature.
+
+
+ return the signature/encryption algorithm parameters, or null if
+ there aren't any.
+
+
+ return a table of the signed attributes - indexed by
+ the OID of the attribute.
+
+
+ return a table of the unsigned attributes indexed by
+ the OID of the attribute.
+
+
+ return the encoded signature
+
+
+ Return a SignerInformationStore containing the counter signatures attached to this
+ signer. If no counter signatures are present an empty store is returned.
+
+
+ return the DER encoding of the signed attributes.
+ @throws IOException if an encoding error occurs.
+
+
+ verify that the given public key successfully handles and confirms the
+ signature associated with this signer.
+
+
+ verify that the given certificate successfully handles and confirms
+ the signature associated with this signer and, if a signingTime
+ attribute is available, that the certificate was valid at the time the
+ signature was generated.
+
+
+ Return the base ASN.1 CMS structure that this object contains.
+
+ @return an object containing a CMS SignerInfo structure.
+
+
+ Return a signer information object with the passed in unsigned
+ attributes replacing the ones that are current associated with
+ the object passed in.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param unsignedAttributes the unsigned attributes to add.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Return a signer information object with passed in SignerInformationStore representing counter
+ signatures attached as an unsigned attribute.
+
+ @param signerInformation the signerInfo to be used as the basis.
+ @param counterSigners signer info objects carrying counter signature.
+ @return a copy of the original SignerInformationObject with the changed attributes.
+
+
+ Create a store containing a single SignerInformation object.
+
+ @param signerInfo the signer information to contain.
+
+
+ Create a store containing a collection of SignerInformation objects.
+
+ @param signerInfos a collection signer information objects to contain.
+
+
+ Return the first SignerInformation object that matches the
+ passed in selector. Null if there are no matches.
+
+ @param selector to identify a signer
+ @return a single SignerInformation object. Null if none matches.
+
+
+ The number of signers in the collection.
+
+
+ An ICollection of all signers in the collection
+
+
+ Return possible empty collection with signers matching the passed in SignerID
+
+ @param selector a signer id to select against.
+ @return a collection of SignerInformation objects.
+
+
+ Basic generator that just returns a preconstructed attribute table
+
+
+ a Diffie-Hellman key exchange engine.
+
+ note: This uses MTI/A0 key agreement in order to make the key agreement
+ secure against passive attacks. If you're doing Diffie-Hellman and both
+ parties have long term public keys you should look at using this. For
+ further information have a look at RFC 2631.
+
+ It's possible to extend this to more than two parties as well, for the moment
+ that is left as an exercise for the reader.
+
+
+ calculate our initial message.
+
+
+ given a message from a given party and the corresponding public key
+ calculate the next message in the agreement sequence. In this case
+ this will represent the shared secret.
+
+
+ a Diffie-Hellman key agreement class.
+
+ note: This is only the basic algorithm, it doesn't take advantage of
+ long term public keys if they are available. See the DHAgreement class
+ for a "better" implementation.
+
+
+ given a short term public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Standard Diffie-Hellman groups from various IETF specifications.
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+
+ Existence of a "hidden SNFS" backdoor cannot be ruled out. see https://eprint.iacr.org/2016/961.pdf .
+
+
+
+ P1363 7.2.1 ECSVDP-DH
+
+ ECSVDP-DH is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version. It is based on the work of [DH76], [Mil86],
+ and [Kob87]. This primitive derives a shared secret value from one
+ party's private key and another party's public key, where both have
+ the same set of EC domain parameters. If two parties correctly
+ execute this primitive, they will produce the same output. This
+ primitive can be invoked by a scheme to derive a shared secret key;
+ specifically, it may be used with the schemes ECKAS-DH1 and
+ DL/ECKAS-DH2. It assumes that the input keys are valid (see also
+ Section 7.2.2).
+
+
+ P1363 7.2.2 ECSVDP-DHC
+
+ ECSVDP-DHC is Elliptic Curve Secret Value Derivation Primitive,
+ Diffie-Hellman version with cofactor multiplication. It is based on
+ the work of [DH76], [Mil86], [Kob87], [LMQ98] and [Kal98a]. This
+ primitive derives a shared secret value from one party's private key
+ and another party's public key, where both have the same set of EC
+ domain parameters. If two parties correctly execute this primitive,
+ they will produce the same output. This primitive can be invoked by a
+ scheme to derive a shared secret key; specifically, it may be used
+ with the schemes ECKAS-DH1 and DL/ECKAS-DH2. It does not assume the
+ validity of the input public key (see also Section 7.2.1).
+
+ Note: As stated P1363 compatibility mode with ECDH can be preset, and
+ in this case the implementation doesn't have a ECDH compatibility mode
+ (if you want that just use ECDHBasicAgreement and note they both implement
+ BasicAgreement!).
+
+
+
+ A participant in a Password Authenticated Key Exchange by Juggling (J-PAKE) exchange.
+
+ The J-PAKE exchange is defined by Feng Hao and Peter Ryan in the paper
+
+ "Password Authenticated Key Exchange by Juggling, 2008."
+
+ The J-PAKE protocol is symmetric.
+ There is no notion of a client or server, but rather just two participants.
+ An instance of JPakeParticipant represents one participant, and
+ is the primary interface for executing the exchange.
+
+ To execute an exchange, construct a JPakeParticipant on each end,
+ and call the following 7 methods
+ (once and only once, in the given order, for each participant, sending messages between them as described):
+
+ CreateRound1PayloadToSend() - and send the payload to the other participant
+ ValidateRound1PayloadReceived(JPakeRound1Payload) - use the payload received from the other participant
+ CreateRound2PayloadToSend() - and send the payload to the other participant
+ ValidateRound2PayloadReceived(JPakeRound2Payload) - use the payload received from the other participant
+ CalculateKeyingMaterial()
+ CreateRound3PayloadToSend(BigInteger) - and send the payload to the other participant
+ ValidateRound3PayloadReceived(JPakeRound3Payload, BigInteger) - use the payload received from the other participant
+
+ Each side should derive a session key from the keying material returned by CalculateKeyingMaterial().
+ The caller is responsible for deriving the session key using a secure key derivation function (KDF).
+
+ Round 3 is an optional key confirmation process.
+ If you do not execute round 3, then there is no assurance that both participants are using the same key.
+ (i.e. if the participants used different passwords, then their session keys will differ.)
+
+ If the round 3 validation succeeds, then the keys are guaranteed to be the same on both sides.
+
+ The symmetric design can easily support the asymmetric cases when one party initiates the communication.
+ e.g. Sometimes the round1 payload and round2 payload may be sent in one pass.
+ Also, in some cases, the key confirmation payload can be sent together with the round2 payload.
+ These are the trivial techniques to optimize the communication.
+
+ The key confirmation process is implemented as specified in
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ This class is stateful and NOT threadsafe.
+ Each instance should only be used for ONE complete J-PAKE exchange
+ (i.e. a new JPakeParticipant should be constructed for each new J-PAKE exchange).
+
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ the JPakePrimeOrderGroups#NIST_3072 prime order group,
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+
+
+
+ Convenience constructor for a new JPakeParticipant that uses
+ a SHA-256 digest, and a default SecureRandom implementation.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+
+
+
+ Constructor for a new JPakeParticipant.
+
+ After construction, the State state will be STATE_INITIALIZED.
+
+ Throws NullReferenceException if any argument is null. Throws
+ ArgumentException if password is empty.
+
+ Unique identifier of this participant.
+ The two participants in the exchange must NOT share the same id.
+ Shared secret.
+ A defensive copy of this array is made (and cleared once CalculateKeyingMaterial() is called).
+ Caller should clear the input password as soon as possible.
+ Prime order group. See JPakePrimeOrderGroups for standard groups.
+ Digest to use during zero knowledge proofs and key confirmation
+ (SHA-256 or stronger preferred).
+ Source of secure random data for x1 and x2, and for the zero knowledge proofs.
+
+
+
+ Gets the current state of this participant.
+ See the STATE_* constants for possible values.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 1.
+
+ After execution, the State state} will be STATE_ROUND_1_CREATED}.
+
+
+
+
+ Validates the payload received from the other participant during round 1.
+
+ Must be called prior to CreateRound2PayloadToSend().
+
+ After execution, the State state will be STATE_ROUND_1_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException
+ if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 2.
+
+ ValidateRound1PayloadReceived(JPakeRound1Payload) must be called prior to this method.
+
+ After execution, the State state will be STATE_ROUND_2_CREATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Validates the payload received from the other participant during round 2.
+ Note that this DOES NOT detect a non-common password.
+ The only indication of a non-common password is through derivation
+ of different keys (which can be detected explicitly by executing round 3 and round 4)
+
+ Must be called prior to CalculateKeyingMaterial().
+
+ After execution, the State state will be STATE_ROUND_2_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws
+ InvalidOperationException if called prior to ValidateRound1PayloadReceived(JPakeRound1Payload), or multiple times
+
+
+
+
+ Calculates and returns the key material.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPakeParticipant).
+
+ The keying material will be identical for each participant if and only if
+ each participant's password is the same. i.e. If the participants do not
+ share the same password, then each participant will derive a different key.
+ Therefore, if you immediately start using a key derived from
+ the keying material, then you must handle detection of incorrect keys.
+ If you want to handle this detection explicitly, you can optionally perform
+ rounds 3 and 4. See JPakeParticipant for details on how to execute
+ rounds 3 and 4.
+
+ The keying material will be in the range [0, p-1].
+
+ ValidateRound2PayloadReceived(JPakeRound2Payload) must be called prior to this method.
+
+ As a side effect, the internal password array is cleared, since it is no longer needed.
+
+ After execution, the State state will be STATE_KEY_CALCULATED.
+
+ Throws InvalidOperationException if called prior to ValidateRound2PayloadReceived(JPakeRound2Payload),
+ or if called multiple times.
+
+
+
+
+ Creates and returns the payload to send to the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state} will be STATE_ROUND_3_CREATED.
+ Throws InvalidOperationException if called prior to CalculateKeyingMaterial, or multiple
+ times.
+
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ Validates the payload received from the other participant during round 3.
+
+ See JPakeParticipant for more details on round 3.
+
+ After execution, the State state will be STATE_ROUND_3_VALIDATED.
+
+ Throws CryptoException if validation fails. Throws InvalidOperationException if called prior to
+ CalculateKeyingMaterial or multiple times
+
+ The round 3 payload received from the other participant.
+ The keying material as returned from CalculateKeyingMaterial().
+
+
+
+ A pre-computed prime order group for use during a J-PAKE exchange.
+
+ Typically a Schnorr group is used. In general, J-PAKE can use any prime order group
+ that is suitable for public key cryptography, including elliptic curve cryptography.
+
+ See JPakePrimeOrderGroups for convenient standard groups.
+
+ NIST publishes
+ many groups that can be used for the desired level of security.
+
+
+
+
+ Constructs a new JPakePrimeOrderGroup.
+
+ In general, you should use one of the pre-approved groups from
+ JPakePrimeOrderGroups, rather than manually constructing one.
+
+ The following basic checks are performed:
+
+ p-1 must be evenly divisible by q
+ g must be in [2, p-1]
+ g^q mod p must equal 1
+ p must be prime (within reasonably certainty)
+ q must be prime (within reasonably certainty)
+
+ The prime checks are performed using BigInteger#isProbablePrime(int),
+ and are therefore subject to the same probability guarantees.
+
+ These checks prevent trivial mistakes.
+ However, due to the small uncertainties if p and q are not prime,
+ advanced attacks are not prevented.
+ Use it at your own risk.
+
+ Throws NullReferenceException if any argument is null. Throws
+ InvalidOperationException is any of the above validations fail.
+
+
+
+
+ Constructor used by the pre-approved groups in JPakePrimeOrderGroups.
+ These pre-approved groups can avoid the expensive checks.
+ User-specified groups should not use this constructor.
+
+
+
+
+ Standard pre-computed prime order groups for use by J-PAKE.
+ (J-PAKE can use pre-computed prime order groups, same as DSA and Diffie-Hellman.)
+
+ This class contains some convenient constants for use as input for
+ constructing {@link JPAKEParticipant}s.
+
+ The prime order groups below are taken from Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB),
+ and from the prime order groups
+ published by NIST.
+
+
+
+
+ From Sun's JDK JavaDoc (docs/guide/security/CryptoSpec.html#AppB)
+ 1024-bit p, 160-bit q and 1024-bit g for 80-bit security.
+
+
+
+
+ From NIST.
+ 2048-bit p, 224-bit q and 2048-bit g for 112-bit security.
+
+
+
+
+ From NIST.
+ 3072-bit p, 256-bit q and 3072-bit g for 128-bit security.
+
+
+
+
+ The payload sent/received during the first round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance of this payload to
+ the other. The payload to send should be created via
+ JPAKEParticipant.CreateRound1PayloadToSend().
+
+ Each participant must also validate the payload received from the other.
+ The received payload should be validated via
+ JPAKEParticipant.ValidateRound1PayloadReceived(JPakeRound1Payload).
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of g^x1
+
+
+
+
+ The value of g^x2
+
+
+
+
+ The zero knowledge proof for x1.
+
+ This is a two element array, containing {g^v, r} for x1.
+
+
+
+
+ The zero knowledge proof for x2.
+
+ This is a two element array, containing {g^v, r} for x2.
+
+
+
+
+ The payload sent/received during the second round of a J-PAKE exchange.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound2PayloadToSend()
+
+ Each JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound2PayloadReceived(JPakeRound2Payload)
+
+
+
+
+ The id of the JPAKEParticipant who created/sent this payload.
+
+
+
+
+ The value of A, as computed during round 2.
+
+
+
+
+ The zero knowledge proof for x2 * s.
+
+ This is a two element array, containing {g^v, r} for x2 * s.
+
+
+
+
+ The payload sent/received during the optional third round of a J-PAKE exchange,
+ which is for explicit key confirmation.
+
+ Each JPAKEParticipant creates and sends an instance
+ of this payload to the other JPAKEParticipant.
+ The payload to send should be created via
+ JPAKEParticipant#createRound3PayloadToSend(BigInteger)
+
+ Eeach JPAKEParticipant must also validate the payload
+ received from the other JPAKEParticipant.
+ The received payload should be validated via
+ JPAKEParticipant#validateRound3PayloadReceived(JPakeRound3Payload, BigInteger)
+
+
+
+
+ The id of the {@link JPAKEParticipant} who created/sent this payload.
+
+
+
+
+ The value of MacTag, as computed by round 3.
+
+ See JPAKEUtil#calculateMacTag(string, string, BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, org.bouncycastle.crypto.Digest)
+
+
+
+
+ Primitives needed for a J-PAKE exchange.
+
+ The recommended way to perform a J-PAKE exchange is by using
+ two JPAKEParticipants. Internally, those participants
+ call these primitive operations in JPakeUtilities.
+
+ The primitives, however, can be used without a JPAKEParticipant if needed.
+
+
+
+
+ Return a value that can be used as x1 or x3 during round 1.
+ The returned value is a random value in the range [0, q-1].
+
+
+
+
+ Return a value that can be used as x2 or x4 during round 1.
+ The returned value is a random value in the range [1, q-1].
+
+
+
+
+ Converts the given password to a BigInteger
+ for use in arithmetic calculations.
+
+
+
+
+ Calculate g^x mod p as done in round 1.
+
+
+
+
+ Calculate ga as done in round 2.
+
+
+
+
+ Calculate x2 * s as done in round 2.
+
+
+
+
+ Calculate A as done in round 2.
+
+
+
+
+ Calculate a zero knowledge proof of x using Schnorr's signature.
+ The returned array has two elements {g^v, r = v-x*h} for x.
+
+
+
+
+ Validates that g^x4 is not 1.
+ throws CryptoException if g^x4 is 1
+
+
+
+
+ Validates that ga is not 1.
+
+ As described by Feng Hao...
+ Alice could simply check ga != 1 to ensure it is a generator.
+ In fact, as we will explain in Section 3, (x1 + x3 + x4 ) is random over Zq even in the face of active attacks.
+ Hence, the probability for ga = 1 is extremely small - on the order of 2^160 for 160-bit q.
+
+ throws CryptoException if ga is 1
+
+
+
+
+ Validates the zero knowledge proof (generated by
+ calculateZeroKnowledgeProof(BigInteger, BigInteger, BigInteger, BigInteger, BigInteger, string, Digest, SecureRandom)
+ is correct.
+
+ throws CryptoException if the zero knowledge proof is not correct
+
+
+
+
+ Calculates the keying material, which can be done after round 2 has completed.
+ A session key must be derived from this key material using a secure key derivation function (KDF).
+ The KDF used to derive the key is handled externally (i.e. not by JPAKEParticipant).
+
+ KeyingMaterial = (B/g^{x2*x4*s})^x2
+
+
+
+
+ Validates that the given participant ids are not equal.
+ (For the J-PAKE exchange, each participant must use a unique id.)
+
+ Throws CryptoException if the participantId strings are equal.
+
+
+
+
+ Validates that the given participant ids are equal.
+ This is used to ensure that the payloads received from
+ each round all come from the same participant.
+
+
+
+
+ Validates that the given object is not null.
+ throws NullReferenceException if the object is null.
+
+ object in question
+ name of the object (to be used in exception message)
+
+
+
+ Calculates the MacTag (to be used for key confirmation), as defined by
+ NIST SP 800-56A Revision 1,
+ Section 8.2 Unilateral Key Confirmation for Key Agreement Schemes.
+
+ MacTag = HMAC(MacKey, MacLen, MacData)
+ MacKey = H(K || "JPAKE_KC")
+ MacData = "KC_1_U" || participantId || partnerParticipantId || gx1 || gx2 || gx3 || gx4
+
+ Note that both participants use "KC_1_U" because the sender of the round 3 message
+ is always the initiator for key confirmation.
+
+ HMAC = {@link HMac} used with the given {@link Digest}
+ H = The given {@link Digest}
+ MacLen = length of MacTag
+
+
+
+
+ Calculates the MacKey (i.e. the key to use when calculating the MagTag for key confirmation).
+
+ MacKey = H(K || "JPAKE_KC")
+
+
+
+
+ Validates the MacTag received from the partner participant.
+
+ throws CryptoException if the participantId strings are equal.
+
+
+
+ Generator for Concatenation Key Derivation Function defined in NIST SP 800-56A, Sect 5.8.1
+
+
+ @param digest the digest to be used as the source of generated bytes
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ RFC 2631 Diffie-hellman KEK derivation function.
+
+
+ X9.63 based key derivation function for ECDH CMS.
+
+
+
+ SM2 Key Exchange protocol - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02
+
+
+
+ Implements the client side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the client to begin new authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates client's credentials given the client's salt, identity and password
+ @param salt The salt used in the client's verifier.
+ @param identity The user's identity (eg. username)
+ @param password The user's password
+ @return Client's public value to send to server
+
+
+ Generates client's verification message given the server's credentials
+ @param serverB The server's credentials
+ @return Client's verification message for the server
+ @throws CryptoException If server's credentials are invalid
+
+
+ Computes the client evidence message M1 using the previously received values.
+ To be called after calculating the secret S.
+ @return M1: the client side generated evidence message
+ @throws CryptoException
+
+
+ Authenticates the server evidence message M2 received and saves it only if correct.
+ @param M2: the server side generated evidence message
+ @return A boolean indicating if the server message M2 was the expected one.
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after verifying the server evidence message M2.
+ @return Key: the mutually authenticated symmetric session key
+ @throws CryptoException
+
+
+ Implements the server side SRP-6a protocol. Note that this class is stateful, and therefore NOT threadsafe.
+ This implementation of SRP is based on the optimized message sequence put forth by Thomas Wu in the paper
+ "SRP-6: Improvements and Refinements to the Secure Remote Password Protocol, 2002"
+
+
+ Initialises the server to accept a new client authentication attempt
+ @param N The safe prime associated with the client's verifier
+ @param g The group parameter associated with the client's verifier
+ @param v The client's verifier
+ @param digest The digest algorithm associated with the client's verifier
+ @param random For key generation
+
+
+ Generates the server's credentials that are to be sent to the client.
+ @return The server's public value to the client
+
+
+ Processes the client's credentials. If valid the shared secret is generated and returned.
+ @param clientA The client's credentials
+ @return A shared secret BigInteger
+ @throws CryptoException If client's credentials are invalid
+
+
+ Authenticates the received client evidence message M1 and saves it only if correct.
+ To be called after calculating the secret S.
+ @param M1: the client side generated evidence message
+ @return A boolean indicating if the client message M1 was the expected one.
+ @throws CryptoException
+
+
+ Computes the server evidence message M2 using the previously verified values.
+ To be called after successfully verifying the client evidence message M1.
+ @return M2: the server side generated evidence message
+ @throws CryptoException
+
+
+ Computes the final session key as a result of the SRP successful mutual authentication
+ To be called after calculating the server evidence message M2.
+ @return Key: the mutual authenticated symmetric session key
+ @throws CryptoException
+
+
+ Computes the client evidence message (M1) according to the standard routine:
+ M1 = H( A | B | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param B The public server value
+ @param S The secret calculated by both sides
+ @return M1 The calculated client evidence message
+
+
+ Computes the server evidence message (M2) according to the standard routine:
+ M2 = H( A | M1 | S )
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param A The public client value
+ @param M1 The client evidence message
+ @param S The secret calculated by both sides
+ @return M2 The calculated server evidence message
+
+
+ Computes the final Key according to the standard routine: Key = H(S)
+ @param digest The Digest used as the hashing function H
+ @param N Modulus used to get the pad length
+ @param S The secret calculated by both sides
+ @return
+
+
+ Generates new SRP verifier for user
+
+
+ Initialises generator to create new verifiers
+ @param N The safe prime to use (see DHParametersGenerator)
+ @param g The group parameter to use (see DHParametersGenerator)
+ @param digest The digest to use. The same digest type will need to be used later for the actual authentication
+ attempt. Also note that the final session key size is dependent on the chosen digest.
+
+
+ Creates a new SRP verifier
+ @param salt The salt to use, generally should be large and random
+ @param identity The user's identifying information (eg. username)
+ @param password The user's password
+ @return A new verifier for use in future SRP authentication
+
+
+ a holding class for public/private parameter pairs.
+
+
+ basic constructor.
+
+ @param publicParam a public key parameters object.
+ @param privateParam the corresponding private key parameters.
+
+
+ return the public key parameters.
+
+ @return the public key parameters.
+
+
+ return the private key parameters.
+
+ @return the private key parameters.
+
+
+ The AEAD block ciphers already handle buffering internally, so this class
+ just takes care of implementing IBufferedCipher methods.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ a buffer wrapper for an asymmetric block cipher, allowing input
+ to be accumulated in a piecemeal fashion until final processing.
+
+
+ base constructor.
+
+ @param cipher the cipher this buffering object wraps.
+
+
+ return the amount of data sitting in the buffer.
+
+ @return the amount of data sitting in the buffer.
+
+
+ initialise the buffer and the underlying cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+
+
+ process the contents of the buffer using the underlying
+ cipher.
+
+ @return the result of the encryption/decryption process on the
+ buffer.
+ @exception InvalidCipherTextException if we are given a garbage block.
+
+
+ Reset the buffer
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion. The BufferedBlockCipher outputs a block only when the
+ buffer is full and more data is being added, or on a doFinal.
+
+ Note: in the case where the underlying cipher is either a CFB cipher or an
+ OFB one the last block may not be a multiple of the block size.
+
+
+
+ constructor for subclasses
+
+
+ Create a buffered block cipher without padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ false otherwise.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the blocksize for the underlying cipher.
+
+ @return the blocksize for the underlying cipher.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output, or the input is not block size aligned and should be.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+ @exception DataLengthException if the input is not block size
+ aligned.
+
+
+ Reset the buffer and cipher. After resetting the object is in the same
+ state as it was after the last init (if there was one).
+
+
+ The base class for symmetric, or secret, cipher key generators.
+
+
+ initialise the key generator.
+
+ @param param the parameters to be used for key generation
+
+
+ Generate a secret key.
+
+ @return a byte array containing the key value.
+
+
+ this exception is thrown if a buffer that is meant to have output
+ copied into it turns out to be too short, or if we've been given
+ insufficient input. In general this exception will Get thrown rather
+ than an ArrayOutOfBounds exception.
+
+
+ base constructor.
+
+
+ create a DataLengthException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Basic sized constructor - size in bits.
+
+ @param digestSize size of the digest in bits
+
+
+ Blake2b for authentication ("Prefix-MAC mode").
+ After calling the doFinal() method, the key will
+ remain to be used for further computations of
+ this instance.
+ The key can be overwritten using the clearKey() method.
+
+ @param key A key up to 64 bytes or null
+
+
+ Blake2b with key, required digest length (in bytes), salt and personalization.
+ After calling the doFinal() method, the key, the salt and the personal string
+ will remain and might be used for further computations with this instance.
+ The key can be overwritten using the clearKey() method, the salt (pepper)
+ can be overwritten using the clearSalt() method.
+
+ @param key A key up to 64 bytes or null
+ @param digestLength from 1 up to 64 bytes
+ @param salt 16 bytes or null
+ @param personalization 16 bytes or null
+
+
+ update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+ Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to it's initial state.
+ The key, the salt and the personal string will
+ remain for further computations.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies it's compression
+ function to.
+
+ @return byte length of the digests internal buffer.
+
+
+ Overwrite the key
+ if it is no longer used (zeroization)
+
+
+ Overwrite the salt (pepper) if it
+ is secret and no longer used (zeroization)
+
+
+ Implementation of the cryptographic hash function BLAKE2s.
+
+ BLAKE2s offers a built-in keying mechanism to be used directly
+ for authentication ("Prefix-MAC") rather than a HMAC construction.
+
+ BLAKE2s offers a built-in support for a salt for randomized hashing
+ and a personal string for defining a unique hash function for each application.
+
+ BLAKE2s is optimized for 32-bit platforms and produces digests of any size
+ between 1 and 32 bytes.
+
+
+ BLAKE2s Initialization Vector
+
+
+
+ Message word permutations
+
+
+
+ Whenever this buffer overflows, it will be processed in the Compress()
+ function. For performance issues, long messages will not use this buffer.
+
+
+ Position of last inserted byte
+
+
+
+ Internal state, in the BLAKE2 paper it is called v
+
+
+
+ State vector, in the BLAKE2 paper it is called h
+
+
+
+ holds least significant bits of counter
+
+
+
+ holds most significant bits of counter
+
+
+
+ finalization flag, for last block: ~0
+
+
+
+ BLAKE2s-256 for hashing.
+
+
+ BLAKE2s for hashing.
+
+ @param digestBits the desired digest length in bits. Must be one of
+ [128, 160, 224, 256].
+
+
+ BLAKE2s for authentication ("Prefix-MAC mode").
+
+ After calling the doFinal() method, the key will remain to be used for
+ further computations of this instance. The key can be overwritten using
+ the clearKey() method.
+
+ @param key a key up to 32 bytes or null
+
+
+ BLAKE2s with key, required digest length, salt and personalization.
+
+ After calling the doFinal() method, the key, the salt and the personal
+ string will remain and might be used for further computations with this
+ instance. The key can be overwritten using the clearKey() method, the
+ salt (pepper) can be overwritten using the clearSalt() method.
+
+ @param key a key up to 32 bytes or null
+ @param digestBytes from 1 up to 32 bytes
+ @param salt 8 bytes or null
+ @param personalization 8 bytes or null
+
+
+ Update the message digest with a single byte.
+
+ @param b the input byte to be entered.
+
+
+ Update the message digest with a block of bytes.
+
+ @param message the byte array containing the data.
+ @param offset the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal() call
+ leaves the digest reset. Key, salt and personal string remain.
+
+ @param out the array the digest is to be copied into.
+ @param outOffset the offset into the out array the digest is to start at.
+
+
+ Reset the digest back to its initial state. The key, the salt and the
+ personal string will remain for further computations.
+
+
+ Return the algorithm name.
+
+ @return the algorithm name
+
+
+ Return the size in bytes of the digest produced by this message digest.
+
+ @return the size in bytes of the digest produced by this message digest.
+
+
+ Return the size in bytes of the internal buffer the digest applies its
+ compression function to.
+
+ @return byte length of the digest's internal buffer.
+
+
+ Overwrite the key if it is no longer used (zeroization).
+
+
+ Overwrite the salt (pepper) if it is secret and no longer used
+ (zeroization).
+
+
+ implementation of Ukrainian DSTU 7564 hash function
+
+
+ base implementation of MD4 family style digest as outlined in
+ "Handbook of Applied Cryptography", pages 344 - 347.
+
+
+ implementation of GOST R 34.11-94
+
+
+ Standard constructor
+
+
+ Constructor to allow use of a particular sbox with GOST28147
+ @see GOST28147Engine#getSBox(String)
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of Keccak based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Return the size of block that the compression function is applied to in bytes.
+
+ @return internal byte length of a block.
+
+
+ Base class for SHA-384 and SHA-512.
+
+
+ Constructor for variable length word
+
+
+ Copy constructor. We are using copy constructors in place
+ of the object.Clone() interface as this interface is not
+ supported by J2ME.
+
+
+ adjust the byte counts so that byteCount2 represents the
+ upper long (less 3 bits) word of the byte count.
+
+
+ implementation of MD2
+ as outlined in RFC1319 by B.Kaliski from RSA Laboratories April 1992
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param out the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ update the message digest with a single byte.
+
+ @param in the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param in the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ implementation of MD4 as RFC 1320 by R. Rivest, MIT Laboratory for
+ Computer Science and RSA Data Security, Inc.
+
+ NOTE: This algorithm is only included for backwards compatibility
+ with legacy applications, it's not secure, don't use it for anything new!
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ Wrapper removes exposure to the IMemoable interface on an IDigest implementation.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @exception IllegalArgumentException if baseDigest is null
+
+
+ implementation of RipeMD128
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of RipeMD see,
+ http://www.esat.kuleuven.ac.be/~bosselae/ripemd160.html
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD256.
+ Note: this algorithm offers the same level of security as RipeMD128.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+
+ Implementation of RipeMD 320.
+ Note: this algorithm offers the same level of security as RipeMD160.
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+ reset the chaining variables to the IV values.
+
+
+ implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349.
+
+ It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5
+ is the "endianness" of the word processing!
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ SHA-224 as described in RFC 3874
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-224 512 32 224
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-256. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Draft FIPS 180-2 implementation of SHA-384. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHA-3 based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Draft FIPS 180-2 implementation of SHA-512. Note: As this is
+ based on a draft this implementation is subject to change.
+
+
+ block word digest
+ SHA-1 512 32 160
+ SHA-256 512 32 256
+ SHA-384 1024 64 384
+ SHA-512 1024 64 512
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ FIPS 180-4 implementation of SHA-512/t
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+
+ Implementation of SHAKE based on following KeccakNISTInterface.c from http://keccak.noekeon.org/
+
+
+ Following the naming conventions used in the C source code to enable easy review of the implementation.
+
+
+
+ Wrapper class that reduces the output length of a particular digest to
+ only the first n bytes of the digest function.
+
+
+ Base constructor.
+
+ @param baseDigest underlying digest to use.
+ @param length length in bytes of the output of doFinal.
+ @exception ArgumentException if baseDigest is null, or length is greater than baseDigest.GetDigestSize().
+
+
+
+ Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block
+ sizes, based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation is the basis for and , implementing the
+ parameter based configuration system that allows Skein to be adapted to multiple applications.
+ Initialising the engine with allows standard and arbitrary parameters to
+ be applied during the Skein hash function.
+
+ Implemented:
+
+ - 256, 512 and 1024 bit internal states.
+ - Full 96 bit input length.
+ - Parameters defined in the Skein specification, and arbitrary other pre and post message
+ parameters.
+ - Arbitrary output size in 1 byte intervals.
+
+
+ Not implemented:
+
+ - Sub-byte length input (bit padding).
+ - Tree hashing.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+ The parameter type for the Skein key.
+
+
+ The parameter type for the Skein configuration block.
+
+
+ The parameter type for the message.
+
+
+ The parameter type for the output transformation.
+
+
+ Precalculated UBI(CFG) states for common state/output combinations without key or other
+ pre-message params.
+
+
+ Point at which position might overflow long, so switch to add with carry logic
+
+
+ Bit 127 = final
+
+
+ Bit 126 = first
+
+
+ UBI uses a 128 bit tweak
+
+
+ Whether 64 bit position exceeded
+
+
+ Advances the position in the tweak by the specified value.
+
+
+ The Unique Block Iteration chaining mode.
+
+
+ Buffer for the current block of message data
+
+
+ Offset into the current message block
+
+
+ Buffer for message words for feedback into encrypted block
+
+
+ Underlying Threefish tweakable block cipher
+
+
+ Size of the digest output, in bytes
+
+
+ The current chaining/state value
+
+
+ The initial state value
+
+
+ The (optional) key parameter
+
+
+ Parameters to apply prior to the message
+
+
+ Parameters to apply after the message, but prior to output
+
+
+ The current UBI operation
+
+
+ Buffer for single byte update method
+
+
+
+ Constructs a Skein digest with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/digest size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Creates a SkeinEngine as an exact copy of an existing instance.
+
+
+
+
+ Initialises the Skein engine with the provided parameters. See for
+ details on the parameterisation of the Skein hash function.
+
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+ Calculate the initial (pre message block) chaining state.
+
+
+
+ Reset the engine to the initial state (with the key and any pre-message parameters , ready to
+ accept message input.
+
+
+
+
+ Implementation of Chinese SM3 digest as described at
+ http://tools.ietf.org/html/draft-shen-sm3-hash-00
+ and at .... ( Chinese PDF )
+
+
+ The specification says "process a bit stream",
+ but this is written to process bytes in blocks of 4,
+ meaning this will process 32-bit word groups.
+ But so do also most other digest specifications,
+ including the SHA-256 which was a origin for
+ this specification.
+
+
+
+
+ Standard constructor
+
+
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+
+
+ reset the chaining variables
+
+
+
+ implementation of Tiger based on:
+
+ http://www.cs.technion.ac.il/~biham/Reports/Tiger
+
+
+ Standard constructor
+
+
+ Copy constructor. This will copy the state of the provided
+ message digest.
+
+
+ reset the chaining variables
+
+
+ Implementation of WhirlpoolDigest, based on Java source published by Barreto
+ and Rijmen.
+
+
+
+ Copy constructor. This will copy the state of the provided message
+ digest.
+
+
+ Reset the chaining variables
+
+
+ return the X9ECParameters object for the named curve represented by
+ the passed in object identifier. Null if the curve isn't present.
+
+ @param oid an object identifier representing a named curve, if present.
+
+
+ return the object identifier signified by the passed in name. Null
+ if there is no object identifier associated with name.
+
+ @return the object identifier associated with name, if present.
+
+
+ return the named curve name represented by the given object identifier.
+
+
+ returns an enumeration containing the name strings for curves
+ contained in this structure.
+
+
+ ISO 9796-1 padding. Note in the light of recent results you should
+ only use this with RSA (rather than the "simpler" Rabin keys) and you
+ should never use it with anything other than a hash (ie. even if the
+ message is small don't sign the message, sign it's hash) or some "random"
+ value. See your favorite search engine for details.
+
+
+ return the input block size. The largest message we can process
+ is (key_size_in_bits + 3)/16, which in our world comes to
+ key_size_in_bytes / 2.
+
+
+ return the maximum possible size for the output.
+
+
+ set the number of bits in the next message to be treated as
+ pad bits.
+
+
+ retrieve the number of pad bits in the last decoded message.
+
+
+ @exception InvalidCipherTextException if the decrypted block is not a valid ISO 9796 bit string
+
+
+ Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2.
+
+
+ @exception InvalidCipherTextException if the decrypted block turns out to
+ be badly formatted.
+
+
+ int to octet string.
+
+
+ mask generator function, as described in PKCS1v2.
+
+
+ this does your basic Pkcs 1 v1.5 padding - whether or not you should be using this
+ depends on your application - see Pkcs1 Version 2 for details.
+
+
+ some providers fail to include the leading zero in PKCS1 encoded blocks. If you need to
+ work with one of these set the system property Org.BouncyCastle.Pkcs1.Strict to false.
+
+
+ The same effect can be achieved by setting the static property directly
+
+ The static property is checked during construction of the encoding object, it is set to
+ true by default.
+
+
+
+ Basic constructor.
+
+ @param cipher
+
+
+ Constructor for decryption with a fixed plaintext length.
+
+ @param cipher The cipher to use for cryptographic operation.
+ @param pLen Length of the expected plaintext.
+
+
+ Constructor for decryption with a fixed plaintext length and a fallback
+ value that is returned, if the padding is incorrect.
+
+ @param cipher
+ The cipher to use for cryptographic operation.
+ @param fallback
+ The fallback value, we don't to a arraycopy here.
+
+
+ Checks if the argument is a correctly PKCS#1.5 encoded Plaintext
+ for encryption.
+
+ @param encoded The Plaintext.
+ @param pLen Expected length of the plaintext.
+ @return Either 0, if the encoding is correct, or -1, if it is incorrect.
+
+
+ Decode PKCS#1.5 encoding, and return a random value if the padding is not correct.
+
+ @param in The encrypted block.
+ @param inOff Offset in the encrypted block.
+ @param inLen Length of the encrypted block.
+ @param pLen Length of the desired output.
+ @return The plaintext without padding, or a random value if the padding was incorrect.
+ @throws InvalidCipherTextException
+
+
+ @exception InvalidCipherTextException if the decrypted block is not in Pkcs1 format.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first.
+
+ The slowest version uses no static tables at all and computes the values in each round.
+
+
+ This file contains the middle performance version with 2Kbytes of static tables for round precomputation.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael)), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor), they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations), 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each), for a total of 2Kbytes),
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values in each round
+
+
+ This file contains the fast version with 8Kbytes of static tables for round precomputation
+
+
+ Unfortunately this class has a few side channel issues.
+ In an environment where encryption/decryption may be closely observed it should not be used.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ an implementation of the AES (Rijndael), from FIPS-197.
+
+ For further details see: http://csrc.nist.gov/encryption/aes/.
+
+ This implementation is based on optimizations from Dr. Brian Gladman's paper and C code at
+ http://fp.gladman.plus.com/cryptography_technology/rijndael/
+
+ There are three levels of tradeoff of speed vs memory
+ Because java has no preprocessor, they are written as three separate classes from which to choose
+
+ The fastest uses 8Kbytes of static tables to precompute round calculations, 4 256 word tables for encryption
+ and 4 for decryption.
+
+ The middle performance version uses only one 256 word table for each, for a total of 2Kbytes,
+ adding 12 rotate operations per round to compute the values contained in the other tables from
+ the contents of the first
+
+ The slowest version uses no static tables at all and computes the values
+ in each round.
+
+
+ This file contains the slowest performance version with no static tables
+ for round precomputation, but it has the smallest foot print.
+
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on key size and block size
+ AES specified a fixed block size of 128 bits and key sizes 128/192/256 bits
+ This code is written assuming those are the only possible values
+
+
+ default constructor - 128 bit block size.
+
+
+ initialise an AES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap Specification.
+
+ For further details see: http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ A class that provides Blowfish key encryption operations,
+ such as encoding data and generating keys.
+ All the algorithms herein are from Applied Cryptography
+ and implement a simplified cryptography interface.
+
+
+ initialise a Blowfish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ apply the encryption cycle to each value pair in the table.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Camellia - based on RFC 3713.
+
+
+ Camellia - based on RFC 3713, smaller implementation, about half the size of CamelliaEngine.
+
+
+
+ An implementation of the Camellia key wrapper based on RFC 3657/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3657.txt.
+
+
+
+ A class that provides CAST key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC's
+
+ RFC2144 - Cast5 (64bit block, 40-128bit key)
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ initialise a CAST cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ The first of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The second of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ The third of the three processing functions for the
+ encryption and decryption.
+
+ @param D the input to be processed
+ @param Kmi the mask to be used from Km[n]
+ @param Kri the rotation value to be used
+
+
+
+ Does the 16 rounds to encrypt the block.
+
+ @param L0 the LH-32bits of the plaintext block
+ @param R0 the RH-32bits of the plaintext block
+
+
+ A class that provides CAST6 key encryption operations,
+ such as encoding data and generating keys.
+
+ All the algorithms herein are from the Internet RFC
+
+ RFC2612 - CAST6 (128bit block, 128-256bit key)
+
+ and implement a simplified cryptography interface.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param src The plaintext buffer
+ @param srcIndex An offset into src
+ @param dst The ciphertext buffer
+ @param dstIndex An offset into dst
+
+
+ Does the 12 quad rounds rounds to encrypt the block.
+
+ @param A the 00-31 bits of the plaintext block
+ @param B the 32-63 bits of the plaintext block
+ @param C the 64-95 bits of the plaintext block
+ @param D the 96-127 bits of the plaintext block
+ @param result the resulting ciphertext
+
+
+ Does the 12 quad rounds rounds to decrypt the block.
+
+ @param A the 00-31 bits of the ciphertext block
+ @param B the 32-63 bits of the ciphertext block
+ @param C the 64-95 bits of the ciphertext block
+ @param D the 96-127 bits of the ciphertext block
+ @param result the resulting plaintext
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Implementation of Daniel J. Bernstein's ChaCha stream cipher.
+
+
+
+
+ Creates a 20 rounds ChaCha engine.
+
+
+
+
+ Creates a ChaCha engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+
+ ChaCha function.
+
+ The number of ChaCha rounds to execute
+ The input words.
+ The ChaCha state to modify.
+
+
+ A class that provides a basic DESede (or Triple DES) engine.
+
+
+ initialise a DESede cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ * Wrap keys according to
+ *
+ * draft-ietf-smime-key-wrap-01.txt.
+ *
+ * Note:
+ *
+ * - this is based on a draft, and as such is subject to change - don't use this class for anything requiring long term storage.
+ * - if you are using this to wrap triple-des keys you need to set the
+ * parity bits on the key and, if it's a two-key triple-des key, pad it
+ * yourself.
+ *
+ *
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ A class that provides a basic DES engine.
+
+
+ initialise a DES cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ what follows is mainly taken from "Applied Cryptography", by
+ Bruce Schneier, however it also bears great resemblance to Richard
+ Outerbridge's D3DES...
+
+
+ Generate an integer based working key based on our secret key
+ and what we processing we are planning to do.
+
+ Acknowledgements for this routine go to James Gillogly and Phil Karn.
+ (whoever, and wherever they are!).
+
+
+ the DES engine.
+
+
+ implementation of DSTU 7624 (Kalyna)
+
+
+ this does your basic ElGamal algorithm.
+
+
+ initialise the ElGamal engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary ElGamal key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ encryption, and twice the length as the size of P on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For ElGamal this is always one byte less than the size of P on
+ decryption, and twice the length as the size of P on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic ElGamal algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param length the length of the data to be processed.
+ @return the result of the ElGamal process.
+ @exception DataLengthException the input block is too large.
+
+
+ implementation of GOST 28147-89
+
+
+ standard constructor.
+
+
+ initialise an Gost28147 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ Return the S-Box associated with SBoxName
+ @param sBoxName name of the S-Box
+ @return byte array representing the S-Box
+
+
+ HC-128 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 128-bit secret key and a 128-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc128_p3.pdf
+
+ It is a third phase candidate in the eStream contest, and is patent-free.
+ No attacks are known as of today (April 2007). See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-128 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 128 bit long).
+
+
+ HC-256 is a software-efficient stream cipher created by Hongjun Wu. It
+ generates keystream from a 256-bit secret key and a 256-bit initialization
+ vector.
+
+ http://www.ecrypt.eu.org/stream/p3ciphers/hc/hc256_p3.pdf
+
+ Its brother, HC-128, is a third phase candidate in the eStream contest.
+ The algorithm is patent-free. No attacks are known as of today (April 2007).
+ See
+
+ http://www.ecrypt.eu.org/stream/hcp3.html
+
+
+
+ Initialise a HC-256 cipher.
+
+ @param forEncryption whether or not we are for encryption. Irrelevant, as
+ encryption and decryption are the same.
+ @param params the parameters required to set up the cipher.
+ @throws ArgumentException if the params argument is
+ inappropriate (ie. the key is not 256 bit long).
+
+
+ A class that provides a basic International Data Encryption Algorithm (IDEA) engine.
+
+ This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM"
+ implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (baring 1 typo at the
+ end of the mulinv function!).
+
+
+ It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/
+
+
+ Note 1: This algorithm is patented in the USA, Japan, and Europe including
+ at least Austria, France, Germany, Italy, Netherlands, Spain, Sweden, Switzerland
+ and the United Kingdom. Non-commercial use is free, however any commercial
+ products are liable for royalties. Please see
+ www.mediacrypt.com for
+ further details. This announcement has been included at the request of
+ the patent holders.
+
+
+ Note 2: Due to the requests concerning the above, this algorithm is now only
+ included in the extended assembly. It is not included in the default distributions.
+
+
+
+ standard constructor.
+
+
+ initialise an IDEA cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return x = x * y where the multiplication is done modulo
+ 65537 (0x10001) (as defined in the IDEA specification) and
+ a zero input is taken to be 65536 (0x10000).
+
+ @param x the x value
+ @param y the y value
+ @return x = x * y
+
+
+ The following function is used to expand the user key to the encryption
+ subkey. The first 16 bytes are the user key, and the rest of the subkey
+ is calculated by rotating the previous 16 bytes by 25 bits to the left,
+ and so on until the subkey is completed.
+
+
+ This function computes multiplicative inverse using Euclid's Greatest
+ Common Divisor algorithm. Zero and one are self inverse.
+
+ i.e. x * MulInv(x) == 1 (modulo BASE)
+
+
+
+ Return the additive inverse of x.
+
+ i.e. x + AddInv(x) == 0
+
+
+
+ The function to invert the encryption subkey to the decryption subkey.
+ It also involves the multiplicative inverse and the additive inverse functions.
+
+
+ support class for constructing intergrated encryption ciphers
+ for doing basic message exchanges on top of key agreement ciphers
+
+
+ set up for use with stream mode, where the key derivation function
+ is used to provide a stream of bytes to xor with the message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+
+
+ set up for use in conjunction with a block cipher to handle the
+ message.
+
+ @param agree the key agreement used as the basis for the encryption
+ @param kdf the key derivation function used for byte generation
+ @param mac the message authentication code generator for the message
+ @param cipher the cipher to used for encrypting the message
+
+
+ Initialise the encryptor.
+
+ @param forEncryption whether or not this is encryption/decryption.
+ @param privParam our private key parameters
+ @param pubParam the recipient's/sender's public key parameters
+ @param param encoding and derivation parameters.
+
+
+ Implementation of Bob Jenkin's ISAAC (Indirection Shift Accumulate Add and Count).
+ see: http://www.burtleburtle.net/bob/rand/isaacafa.html
+
+
+ initialise an ISAAC cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ NaccacheStern Engine. For details on this cipher, please see
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Initializes this algorithm. Must be called before all other Functions.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#init(bool,
+ org.bouncycastle.crypto.CipherParameters)
+
+
+ Returns the input block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetInputBlockSize()
+
+
+ Returns the output block size of this algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#GetOutputBlockSize()
+
+
+ Process a single Block using the Naccache-Stern algorithm.
+
+ @see org.bouncycastle.crypto.AsymmetricBlockCipher#ProcessBlock(byte[],
+ int, int)
+
+
+ Encrypts a BigInteger aka Plaintext with the public key.
+
+ @param plain
+ The BigInteger to encrypt
+ @return The byte[] representation of the encrypted BigInteger (i.e.
+ crypted.toByteArray())
+
+
+ Adds the contents of two encrypted blocks mod sigma
+
+ @param block1
+ the first encrypted block
+ @param block2
+ the second encrypted block
+ @return encrypt((block1 + block2) mod sigma)
+ @throws InvalidCipherTextException
+
+
+ Convenience Method for data exchange with the cipher.
+
+ Determines blocksize and splits data to blocksize.
+
+ @param data the data to be processed
+ @return the data after it went through the NaccacheSternEngine.
+ @throws InvalidCipherTextException
+
+
+ Computes the integer x that is expressed through the given primes and the
+ congruences with the chinese remainder theorem (CRT).
+
+ @param congruences
+ the congruences c_i
+ @param primes
+ the primes p_i
+ @return an integer x for that x % p_i == c_i
+
+
+ A Noekeon engine, using direct-key mode.
+
+
+ Create an instance of the Noekeon encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ The no-op engine that just copies bytes through, irrespective of whether encrypting and decrypting.
+ Provided for the sake of completeness.
+
+
+ an implementation of RC2 as described in RFC 2268
+ "A Description of the RC2(r) Encryption Algorithm" R. Rivest.
+
+
+ initialise a RC2 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the result rotating the 16 bit number in x left by y
+
+
+ Wrap keys according to RFC 3217 - RC2 mechanism
+
+
+ Field engine
+
+
+ Field param
+
+
+ Field paramPlusIV
+
+
+ Field iv
+
+
+ Field forWrapping
+
+
+ Field IV2
+
+
+ Method init
+
+ @param forWrapping
+ @param param
+
+
+ Method GetAlgorithmName
+
+ @return
+
+
+ Method wrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+
+
+ Method unwrap
+
+ @param in
+ @param inOff
+ @param inLen
+ @return
+ @throws InvalidCipherTextException
+
+
+ Some key wrap algorithms make use of the Key Checksum defined
+ in CMS [CMS-Algorithms]. This is used to provide an integrity
+ check value for the key being wrapped. The algorithm is
+
+ - Compute the 20 octet SHA-1 hash on the key being wrapped.
+ - Use the first 8 octets of this hash as the checksum value.
+
+ @param key
+ @return
+ @throws Exception
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ @param key
+ @param checksum
+ @return
+ @see http://www.w3.org/TR/xmlenc-core/#sec-CMSKeyChecksum
+
+
+ initialise a RC4 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation has a word size of 32 bits.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(32) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % 32
+
+
+ The specification for RC5 came from the RC5 Encryption Algorithm
+ publication in RSA CryptoBytes, Spring of 1995.
+ http://www.rsasecurity.com/rsalabs/cryptobytes.
+
+ This implementation is set to work with a 64 bit word size.
+
+
+ Create an instance of the RC5 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-64 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Encrypt the given block starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+
+ @param in in byte buffer containing data to encrypt
+ @param inOff offset into src buffer
+ @param out out buffer where encrypted data is written
+ @param outOff offset into out buffer
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ An RC6 engine.
+
+
+ Create an instance of the RC6 encryption algorithm
+ and set some defaults
+
+
+ initialise a RC5-32 cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param inKey the key to be used
+
+
+ Perform a left "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ Perform a right "spin" of the word. The rotation of the given
+ word x is rotated left by y bits.
+ Only the lg(wordSize) low-order bits of y
+ are used to determine the rotation amount. Here it is
+ assumed that the wordsize used is a power of 2.
+
+ @param x word to rotate
+ @param y number of bits to rotate % wordSize
+
+
+ an implementation of the RFC 3211 Key Wrap
+ Specification.
+
+
+
+ An implementation of the AES Key Wrapper from the NIST Key Wrap
+ Specification as described in RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc3394.txt
+ and http://csrc.nist.gov/encryption/kms/key-wrap.pdf.
+
+
+
+ an implementation of Rijndael, based on the documentation and reference implementation
+ by Paulo Barreto, Vincent Rijmen, for v2.0 August '99.
+
+ Note: this implementation is based on information prior to readonly NIST publication.
+
+
+
+ multiply two elements of GF(2^m)
+ needed for MixColumn and InvMixColumn
+
+
+ xor corresponding text input and round key input bytes
+
+
+ Row 0 remains unchanged
+ The other three rows are shifted a variable amount
+
+
+ Replace every byte of the input by the byte at that place
+ in the nonlinear S-box
+
+
+ Mix the bytes of every column in a linear way
+
+
+ Mix the bytes of every column in a linear way
+ This is the opposite operation of Mixcolumn
+
+
+ Calculate the necessary round keys
+ The number of calculations depends on keyBits and blockBits
+
+
+ default constructor - 128 bit block size.
+
+
+ basic constructor - set the cipher up for a given blocksize
+
+ @param blocksize the blocksize in bits, must be 128, 192, or 256.
+
+
+ initialise a Rijndael cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ this does your basic RSA algorithm with blinding
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+ This does your basic RSA Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475. You need to use this if you are
+ trying to get another party to generate signatures without them being aware
+ of the message they are signing.
+
+
+ Initialise the blinding engine.
+
+ @param forEncryption true if we are encrypting (blinding), false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the RSA blinding algorithm.
+
+ @param in the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @throws DataLengthException the input block is too large.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ this does your basic RSA algorithm.
+
+
+ initialise the RSA engine.
+
+ @param forEncryption true if we are encrypting, false otherwise.
+ @param param the necessary RSA key parameters.
+
+
+ Return the maximum size for an input block to this engine.
+ For RSA this is always one byte less than the key size on
+ encryption, and the same length as the key size on decryption.
+
+ @return maximum size for an input block.
+
+
+ Return the maximum size for an output block to this engine.
+ For RSA this is always one byte less than the key size on
+ decryption, and the same length as the key size on encryption.
+
+ @return maximum size for an output block.
+
+
+ Process a single block using the basic RSA algorithm.
+
+ @param inBuf the input array.
+ @param inOff the offset into the input buffer where the data starts.
+ @param inLen the length of the data to be processed.
+ @return the result of the RSA process.
+ @exception DataLengthException the input block is too large.
+
+
+
+ Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005
+
+
+
+ Constants
+
+
+
+ Creates a 20 round Salsa20 engine.
+
+
+
+
+ Creates a Salsa20 engine with a specific number of rounds.
+
+ the number of rounds (must be an even number).
+
+
+ Rotate left
+
+ @param x value to rotate
+ @param y amount to rotate x
+
+ @return rotated x
+
+
+ Implementation of the SEED algorithm as described in RFC 4009
+
+
+
+ An implementation of the SEED key wrapper based on RFC 4010/RFC 3394.
+
+ For further details see: http://www.ietf.org/rfc/rfc4010.txt.
+
+
+
+ * Serpent is a 128-bit 32-round block cipher with variable key lengths,
+ * including 128, 192 and 256 bit keys conjectured to be at least as
+ * secure as three-key triple-DES.
+ *
+ * Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ * candidate algorithm for the NIST AES Quest.
+ *
+ *
+ * For full details see The Serpent home page
+ *
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ initialise a Serpent cipher.
+
+ @param encrypting whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @throws IllegalArgumentException if the params argument is
+ inappropriate.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @return the number of bytes processed and produced.
+ @throws DataLengthException if there isn't enough data in in, or
+ space in out.
+ @throws IllegalStateException if the cipher isn't initialised.
+
+
+ InvSO - {13, 3,11, 0,10, 6, 5,12, 1,14, 4, 7,15, 9, 8, 2 } - 15 terms.
+
+
+ S1 - {15,12, 2, 7, 9, 0, 5,10, 1,11,14, 8, 6,13, 3, 4 } - 14 terms.
+
+
+ InvS1 - { 5, 8, 2,14,15, 6,12, 3,11, 4, 7, 9, 1,13,10, 0 } - 14 steps.
+
+
+ S2 - { 8, 6, 7, 9, 3,12,10,15,13, 1,14, 4, 0,11, 5, 2 } - 16 terms.
+
+
+ InvS2 - {12, 9,15, 4,11,14, 1, 2, 0, 3, 6,13, 5, 8,10, 7 } - 16 steps.
+
+
+ S3 - { 0,15,11, 8,12, 9, 6, 3,13, 1, 2, 4,10, 7, 5,14 } - 16 terms.
+
+
+ InvS3 - { 0, 9,10, 7,11,14, 6,13, 3, 5,12, 2, 4, 8,15, 1 } - 15 terms
+
+
+ S4 - { 1,15, 8, 3,12, 0,11, 6, 2, 5, 4,10, 9,14, 7,13 } - 15 terms.
+
+
+ InvS4 - { 5, 0, 8, 3,10, 9, 7,14, 2,12,11, 6, 4,15,13, 1 } - 15 terms.
+
+
+ S5 - {15, 5, 2,11, 4,10, 9,12, 0, 3,14, 8,13, 6, 7, 1 } - 16 terms.
+
+
+ InvS5 - { 8,15, 2, 9, 4, 1,13,14,11, 6, 5, 3, 7,12,10, 0 } - 16 terms.
+
+
+ S6 - { 7, 2,12, 5, 8, 4, 6,11,14, 9, 1,15,13, 3,10, 0 } - 15 terms.
+
+
+ InvS6 - {15,10, 1,13, 5, 3, 6, 0, 4, 9,14, 7, 2,12, 8,11 } - 15 terms.
+
+
+ S7 - { 1,13,15, 0,14, 8, 2,11, 7, 4,12,10, 9, 3, 5, 6 } - 16 terms.
+
+
+ InvS7 - { 3, 0, 6,13, 9,14,15, 8, 5,12,11, 7,10, 1, 4, 2 } - 17 terms.
+
+
+ Apply the linear transformation to the register set.
+
+
+ Apply the inverse of the linear transformation to the register set.
+
+
+ a class that provides a basic SKIPJACK engine.
+
+
+ initialise a SKIPJACK cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ The G permutation
+
+
+ the inverse of the G permutation.
+
+
+
+ SM2 public key encryption engine - based on https://tools.ietf.org/html/draft-shen-sm2-ecdsa-02.
+
+
+
+ An TEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+
+ Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block
+ sizes.
+
+
+ This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST
+ SHA-3 competition in October 2010.
+
+ Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+ This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables
+ to speed up key schedule injection.
+ 2 x block size state is retained by each cipher instance.
+
+
+
+
+ 256 bit block size - Threefish-256
+
+
+
+
+ 512 bit block size - Threefish-512
+
+
+
+
+ 1024 bit block size - Threefish-1024
+
+
+
+ Size of the tweak in bytes (always 128 bit/16 bytes)
+
+
+ Rounds in Threefish-256
+
+
+ Rounds in Threefish-512
+
+
+ Rounds in Threefish-1024
+
+
+ Max rounds of any of the variants
+
+
+ Key schedule parity constant
+
+
+ Block size in bytes
+
+
+ Block size in 64 bit words
+
+
+ Buffer for byte oriented processBytes to call internal word API
+
+
+ Tweak bytes (2 byte t1,t2, calculated t3 and repeat of t1,t2 for modulo free lookup
+
+
+ Key schedule words
+
+
+ The internal cipher implementation (varies by blocksize)
+
+
+
+ Constructs a new Threefish cipher, with a specified block size.
+
+ the block size in bits, one of , ,
+ .
+
+
+
+ Initialise the engine.
+
+ Initialise for encryption if true, for decryption if false.
+ an instance of or (to
+ use a 0 tweak)
+
+
+
+ Initialise the engine, specifying the key and tweak directly.
+
+ the cipher mode.
+ the words of the key, or null to use the current key.
+ the 2 word (128 bit) tweak, or null to use the current tweak.
+
+
+
+ Process a block of data represented as 64 bit words.
+
+ the number of 8 byte words processed (which will be the same as the block size).
+ a block sized buffer of words to process.
+ a block sized buffer of words to receive the output of the operation.
+ if either the input or output is not block sized
+ if this engine is not initialised
+
+
+
+ Read a single 64 bit word from input in LSB first order.
+
+
+
+
+ Write a 64 bit word to output in LSB first order.
+
+
+
+ Rotate left + xor part of the mix operation.
+
+
+ Rotate xor + rotate right part of the unmix operation.
+
+
+ The extended + repeated tweak words
+
+
+ The extended + repeated key words
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Mix rotation constants defined in Skein 1.3 specification
+
+
+ Tnepres is a 128-bit 32-round block cipher with variable key lengths,
+ including 128, 192 and 256 bit keys conjectured to be at least as
+ secure as three-key triple-DES.
+
+ Tnepres is based on Serpent which was designed by Ross Anderson, Eli Biham and Lars Knudsen as a
+ candidate algorithm for the NIST AES Quest. Unfortunately there was an endianness issue
+ with test vectors in the AES submission and the resulting confusion lead to the Tnepres cipher
+ as well, which is a byte swapped version of Serpent.
+
+
+ For full details see The Serpent home page
+
+
+
+ Expand a user-supplied key material into a session key.
+
+ @param key The user-key bytes (multiples of 4) to use.
+ @exception ArgumentException
+
+
+ Encrypt one block of plaintext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ Decrypt one block of ciphertext.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+
+
+ A class that provides Twofish encryption operations.
+
+ This Java implementation is based on the Java reference
+ implementation provided by Bruce Schneier and developed
+ by Raif S. Naffah.
+
+
+ Define the fixed p0/p1 permutations used in keyed S-box lookup.
+ By changing the following constant definitions, the S-boxes will
+ automatically Get changed in the Twofish engine.
+
+
+ gSubKeys[] and gSBox[] are eventually used in the
+ encryption and decryption methods.
+
+
+ initialise a Twofish cipher.
+
+ @param forEncryption whether or not we are for encryption.
+ @param parameters the parameters required to set up the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+ encryptBlock uses the pre-calculated gSBox[] and subKey[]
+ arrays.
+
+
+ Decrypt the given input starting at the given offset and place
+ the result in the provided buffer starting at the given offset.
+ The input will be an exact multiple of our blocksize.
+
+
+ Use (12, 8) Reed-Solomon code over GF(256) to produce
+ a key S-box 32-bit entity from 2 key material 32-bit
+ entities.
+
+ @param k0 first 32-bit entity
+ @param k1 second 32-bit entity
+ @return Remainder polynomial Generated using RS code
+
+
+ * Reed-Solomon code parameters: (12,8) reversible code:
+ *
+ *
+ * G(x) = x^4 + (a+1/a)x^3 + ax^2 + (a+1/a)x + 1
+ *
+ * where a = primitive root of field generator 0x14D
+ *
+
+
+ initialise a VMPC cipher.
+
+ @param forEncryption
+ whether or not we are for encryption.
+ @param params
+ the parameters required to set up the cipher.
+ @exception ArgumentException
+ if the params argument is inappropriate.
+
+
+
+ Implementation of Daniel J. Bernstein's XSalsa20 stream cipher - Salsa20 with an extended nonce.
+
+
+ XSalsa20 requires a 256 bit key, and a 192 bit nonce.
+
+
+
+
+ XSalsa20 key generation: process 256 bit input key and 128 bits of the input nonce
+ using a core Salsa20 function without input addition to produce 256 bit working key
+ and use that with the remaining 64 bits of nonce to initialize a standard Salsa20 engine state.
+
+
+
+ An XTEA engine.
+
+
+ Create an instance of the TEA encryption algorithm
+ and set some defaults
+
+
+ initialise
+
+ @param forEncryption whether or not we are for encryption.
+ @param params the parameters required to set up the cipher.
+ @exception ArgumentException if the params argument is
+ inappropriate.
+
+
+ Re-key the cipher.
+
+ @param key the key to be used
+
+
+ Basic KDF generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on ISO 18033/P1363a.
+
+
+ Construct a KDF Parameters generator.
+
+ @param counterStart value of counter.
+ @param digest the digest to be used as the source of derived keys.
+
+
+ return the underlying digest.
+
+
+ fill len bytes of the output buffer with bytes generated from
+ the derivation function.
+
+ @throws ArgumentException if the size of the request will cause an overflow.
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Core of password hashing scheme Bcrypt,
+ designed by Niels Provos and David Mazières,
+ corresponds to the C reference implementation.
+
+ This implementation does not correspondent to the 1999 published paper
+ "A Future-Adaptable Password Scheme" of Niels Provos and David Mazières,
+ see: https://www.usenix.org/legacy/events/usenix99/provos/provos_html/node1.html.
+ In contrast to the paper, the order of key setup and salt setup is reversed:
+ state <- ExpandKey(state, 0, key)
+ state %lt;- ExpandKey(state, 0, salt)
+ This corresponds to the OpenBSD reference implementation of Bcrypt.
+
+ Note:
+ There is no successful cryptanalysis (status 2015), but
+ the amount of memory and the band width of Bcrypt
+ may be insufficient to effectively prevent attacks
+ with custom hardware like FPGAs, ASICs
+
+ This implementation uses some parts of Bouncy Castle's BlowfishEngine.
+
+
+
+ Derives a raw 192 bit Bcrypt key
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param psw the password
+ @return a 192 bit key
+
+
+ Size of the salt parameter in bytes
+
+
+ Minimum value of cost parameter, equal to log2(bytes of salt)
+
+
+ Maximum value of cost parameter (31 == 2,147,483,648)
+
+
+ Maximum size of password == max (unrestricted) size of Blowfish key
+
+
+ Calculates the bcrypt hash of a password.
+
+ This implements the raw bcrypt function as defined in the bcrypt specification, not
+ the crypt encoded version implemented in OpenBSD.
+
+ @param password the password bytes (up to 72 bytes) to use for this invocation.
+ @param salt the 128 bit salt to use for this invocation.
+ @param cost the bcrypt cost parameter. The cost of the bcrypt function grows as
+ 2^cost. Legal values are 4..31 inclusive.
+ @return the output of the raw bcrypt operation: a 192 bit (24 byte) hash.
+
+
+ initialise the key generator - if strength is set to zero
+ the key Generated will be 192 bits in size, otherwise
+ strength can be 128 or 192 (or 112 or 168 if you don't count
+ parity bits), depending on whether you wish to do 2-key or 3-key
+ triple DES.
+
+ @param param the parameters to be used for key generation
+
+
+ initialise the key generator - if strength is set to zero
+ the key generated will be 64 bits in size, otherwise
+ strength can be 64 or 56 bits (if you don't count the parity bits).
+
+ @param param the parameters to be used for key generation
+
+
+ a basic Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use with the basic algorithm for
+ Diffie-Hellman.
+
+
+ a Diffie-Hellman key pair generator.
+
+ This generates keys consistent for use in the MTI/A0 key agreement protocol
+ as described in "Handbook of Applied Cryptography", Pages 516-519.
+
+
+ which Generates the p and g values from the given parameters,
+ returning the DHParameters object.
+
+ Note: can take a while...
+
+
+ a DSA key pair generator.
+
+ This Generates DSA keys in line with the method described
+ in FIPS 186-3 B.1 FFC Key Pair Generation.
+
+
+ Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3.
+
+
+ Initialise the generator
+ This form can only be used for older DSA (pre-DSA2) parameters
+ the size of keys in bits (from 512 up to 1024, and a multiple of 64)
+ measure of robustness of primes (at least 80 for FIPS 186-2 compliance)
+ the source of randomness to use
+
+
+ Initialise the generator for DSA 2
+ You must use this Init method if you need to generate parameters for DSA 2 keys
+ An instance of DsaParameterGenerationParameters used to configure this generator
+
+
+ Generates a set of DsaParameters
+ Can take a while...
+
+
+ generate suitable parameters for DSA, in line with
+ FIPS 186-3 A.1 Generation of the FFC Primes p and q.
+
+
+ Given the domain parameters this routine generates an EC key
+ pair in accordance with X9.62 section 5.2.1 pages 26, 27.
+
+
+ a ElGamal key pair generator.
+
+ This Generates keys consistent for use with ElGamal as described in
+ page 164 of "Handbook of Applied Cryptography".
+
+
+ * which Generates the p and g values from the given parameters,
+ * returning the ElGamalParameters object.
+ *
+ * Note: can take a while...
+ *
+
+
+ a GOST3410 key pair generator.
+ This generates GOST3410 keys in line with the method described
+ in GOST R 34.10-94.
+
+
+ generate suitable parameters for GOST3410.
+
+
+ initialise the key generator.
+
+ @param size size of the key
+ @param typeProcedure type procedure A,B = 1; A',B' - else
+ @param random random byte source.
+
+
+ Procedure C
+ procedure generates the a value from the given p,q,
+ returning the a value.
+
+
+ which generates the p , q and a values from the given parameters,
+ returning the Gost3410Parameters object.
+
+
+ HMAC-based Extract-and-Expand Key Derivation Function (HKDF) implemented
+ according to IETF RFC 5869, May 2010 as specified by H. Krawczyk, IBM
+ Research & P. Eronen, Nokia. It uses a HMac internally to compute de OKM
+ (output keying material) and is likely to have better security properties
+ than KDF's based on just a hash function.
+
+
+ Creates a HKDFBytesGenerator based on the given hash function.
+
+ @param hash the digest to be used as the source of generatedBytes bytes
+
+
+ Performs the extract part of the key derivation function.
+
+ @param salt the salt to use
+ @param ikm the input keying material
+ @return the PRK as KeyParameter
+
+
+ Performs the expand part of the key derivation function, using currentT
+ as input and output buffer.
+
+ @throws DataLengthException if the total number of bytes generated is larger than the one
+ specified by RFC 5869 (255 * HashLen)
+
+
+ KFD2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF1 byte generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ KDF2 generator for derived keys and ivs as defined by IEEE P1363a/ISO 18033
+
+ This implementation is based on IEEE P1363/ISO 18033.
+
+
+ Construct a KDF2 bytes generator. Generates key material
+ according to IEEE P1363 or ISO 18033 depending on the initialisation.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ Generator for MGF1 as defined in Pkcs 1v2
+
+
+ @param digest the digest to be used as the source of Generated bytes
+
+
+ return the underlying digest.
+
+
+ int to octet string.
+
+
+ fill len bytes of the output buffer with bytes Generated from
+ the derivation function.
+
+ @throws DataLengthException if the out buffer is too small.
+
+
+ Key generation parameters for NaccacheStern cipher. For details on this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Generates a permuted ArrayList from the original one. The original List
+ is not modified
+
+ @param arr
+ the ArrayList to be permuted
+ @param rand
+ the source of Randomness for permutation
+ @return a new IList with the permuted elements.
+
+
+ Finds the first 'count' primes starting with 3
+
+ @param count
+ the number of primes to find
+ @return a vector containing the found primes as Integer
+
+
+ Password hashing scheme BCrypt,
+ designed by Niels Provos and David Mazières, using the
+ String format and the Base64 encoding
+ of the reference implementation on OpenBSD
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Creates a 60 character Bcrypt String, including
+ version, cost factor, salt and hash, separated by '$'
+
+ @param cost the cost factor, treated as an exponent of 2
+ @param salt a 16 byte salt
+ @param password the password
+ @return a 60 character Bcrypt String
+
+
+ Checks if a password corresponds to a 60 character Bcrypt String
+
+ @param bcryptString a 60 character Bcrypt String, including
+ version, cost factor, salt and hash,
+ separated by '$'
+ @param password the password as an array of chars
+ @return true if the password corresponds to the
+ Bcrypt String, otherwise false
+
+
+ Generator for PBE derived keys and ivs as usd by OpenSSL.
+
+ The scheme is a simple extension of PKCS 5 V2.0 Scheme 1 using MD5 with an
+ iteration count of 1.
+
+
+
+ Construct a OpenSSL Parameters generator.
+
+
+ Initialise - note the iteration count for this algorithm is fixed at 1.
+
+ @param password password to use.
+ @param salt salt to use.
+
+
+ the derived key function, the ith hash of the password and the salt.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 12 V1.0.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs12 Page
+
+
+
+ Construct a Pkcs 12 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+ @exception ArgumentException if an unknown digest is passed in.
+
+
+ add a + b + 1, returning the result in a. The a value is treated
+ as a BigInteger of length (b.Length * 8) bits. The result is
+ modulo 2^b.Length in case of overflow.
+
+
+ generation of a derived key ala Pkcs12 V1.0.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 1.
+ Note this generator is limited to the size of the hash produced by the
+ digest used to drive it.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+
+ Construct a Pkcs 5 Scheme 1 Parameters generator.
+
+ @param digest the digest to be used as the source of derived keys.
+
+
+ the derived key function, the ith hash of the mPassword and the mSalt.
+
+
+ Generate a key parameter derived from the mPassword, mSalt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the mPassword, mSalt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+ @exception ArgumentException if keySize + ivSize is larger than the base hash size.
+
+
+ Generate a key parameter for use with a MAC derived from the mPassword,
+ mSalt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+ @exception ArgumentException if the key length larger than the base hash size.
+
+
+ Generator for Pbe derived keys and ivs as defined by Pkcs 5 V2.0 Scheme 2.
+ This generator uses a SHA-1 HMac as the calculation function.
+
+ The document this implementation is based on can be found at
+
+ RSA's Pkcs5 Page
+
+
+ construct a Pkcs5 Scheme 2 Parameters generator.
+
+
+ Generate a key parameter derived from the password, salt, and iteration
+ count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+ Generate a key with initialisation vector parameter derived from
+ the password, salt, and iteration count we are currently initialised
+ with.
+
+ @param keySize the size of the key we want (in bits)
+ @param ivSize the size of the iv we want (in bits)
+ @return a ParametersWithIV object.
+
+
+ Generate a key parameter for use with a MAC derived from the password,
+ salt, and iteration count we are currently initialised with.
+
+ @param keySize the size of the key we want (in bits)
+ @return a KeyParameter object.
+
+
+
+ Generates keys for the Poly1305 MAC.
+
+
+ Poly1305 keys are 256 bit keys consisting of a 128 bit secret key used for the underlying block
+ cipher followed by a 128 bit {@code r} value used for the polynomial portion of the Mac.
+ The {@code r} value has a specific format with some bits required to be cleared, resulting in an
+ effective 106 bit key.
+ A separately generated 256 bit key can be modified to fit the Poly1305 key format by using the
+ {@link #clamp(byte[])} method to clear the required bits.
+
+
+
+
+
+ Initialises the key generator.
+
+
+ Poly1305 keys are always 256 bits, so the key length in the provided parameters is ignored.
+
+
+
+
+ Generates a 256 bit key in the format required for Poly1305 - e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+
+
+
+ Modifies an existing 32 byte key value to comply with the requirements of the Poly1305 key by
+ clearing required bits in the r (second 16 bytes) portion of the key.
+ Specifically:
+
+ - r[3], r[7], r[11], r[15] have top four bits clear (i.e., are {0, 1, . . . , 15})
+ - r[4], r[8], r[12] have bottom two bits clear (i.e., are in {0, 4, 8, . . . , 252})
+
+
+ a 32 byte key value k[0] ... k[15], r[0] ... r[15]
+
+
+
+ Checks a 32 byte key for compliance with the Poly1305 key requirements, e.g.
+ k[0] ... k[15], r[0] ... r[15] with the required bits in r cleared
+ as per .
+
+ Key.
+ if the key is of the wrong length, or has invalid bits set
+ in the r portion of the key.
+
+
+ Generate a random factor suitable for use with RSA blind signatures
+ as outlined in Chaum's blinding and unblinding as outlined in
+ "Handbook of Applied Cryptography", page 475.
+
+
+ Initialise the factor generator
+
+ @param param the necessary RSA key parameters.
+
+
+ Generate a suitable blind factor for the public key the generator was initialised with.
+
+ @return a random blind factor
+
+
+ an RSA key pair generator.
+
+
+ Choose a random prime value for use with RSA
+ the bit-length of the returned prime
+ the RSA public exponent
+ a prime p, with (p-1) relatively prime to e
+
+
+ Implementation of the scrypt a password-based key derivation function.
+
+ Scrypt was created by Colin Percival and is specified in
+ draft-josefsson-scrypt-kd.
+
+
+
+ Generate a key using the scrypt key derivation function.
+ the bytes of the pass phrase.
+ the salt to use for this invocation.
+ CPU/Memory cost parameter. Must be larger than 1, a power of 2 and less than
+ 2^(128 * r / 8).
+ the block size, must be >= 1.
+ Parallelization parameter. Must be a positive integer less than or equal to
+ Int32.MaxValue / (128 * r * 8).
+ the length of the key to generate.
+ the generated key.
+
+
+ Base interface for a public/private key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The maximum size, in bytes, an input block may be.
+
+
+ The maximum size, in bytes, an output block will be.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The length of the input block.
+ Input decrypts improperly.
+ Input is too large for the cipher.
+
+
+ interface that a public/private key pair generator should conform to.
+
+
+ intialise the key pair generator.
+
+ @param the parameters the key pair is to be initialised with.
+
+
+ return an AsymmetricCipherKeyPair containing the Generated keys.
+
+ @return an AsymmetricCipherKeyPair containing the Generated keys.
+
+
+ The basic interface that basic Diffie-Hellman implementations
+ conforms to.
+
+
+ initialise the agreement engine.
+
+
+ return the field size for the agreement algorithm in bytes.
+
+
+ given a public key from a given party calculate the next
+ message in the agreement sequence.
+
+
+ Base interface for a symmetric key block cipher.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Indicates whether this cipher can handle partial blocks.
+
+
+ Process a block.
+ The input buffer.
+ The offset into inBuf that the input block begins.
+ The output buffer.
+ The offset into outBuf to write the output block.
+ If input block is wrong size, or outBuf too small.
+ The number of bytes processed and produced.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to a single block return an object
+ of this type.
+
+
+
+
+ Return the final result of the operation.
+
+ A block of bytes, representing the result of an operation.
+
+
+
+ Store the final result of the operation by copying it into the destination array.
+
+ The number of bytes copied into destination.
+ The byte array to copy the result into.
+ The offset into destination to start copying the result at.
+
+
+ Block cipher engines are expected to conform to this interface.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+
+
+ Reset the cipher. After resetting the cipher is in the same state
+ as it was after the last init (if there was one).
+
+
+
+ all parameter classes implement this.
+
+
+ base interface for general purpose byte derivation functions.
+
+
+ return the message digest used as the basis for the function
+
+
+ Parameters for key/byte stream derivation classes
+
+
+ interface that a message digest conforms to.
+
+
+ return the algorithm name
+
+ @return the algorithm name
+
+
+ return the size, in bytes, of the digest produced by this message digest.
+
+ @return the size, in bytes, of the digest produced by this message digest.
+
+
+ return the size, in bytes, of the internal buffer used by this digest.
+
+ @return the size, in bytes, of the internal buffer used by this digest.
+
+
+ update the message digest with a single byte.
+
+ @param inByte the input byte to be entered.
+
+
+ update the message digest with a block of bytes.
+
+ @param input the byte array containing the data.
+ @param inOff the offset into the byte array where the data starts.
+ @param len the length of the data.
+
+
+ Close the digest, producing the final digest value. The doFinal
+ call leaves the digest reset.
+
+ @param output the array the digest is to be copied into.
+ @param outOff the offset into the out array the digest is to start at.
+
+
+ reset the digest back to it's initial state.
+
+
+ interface for classes implementing the Digital Signature Algorithm
+
+
+ initialise the signer for signature generation or signature
+ verification.
+
+ @param forSigning true if we are generating a signature, false
+ otherwise.
+ @param param key parameters for signature generation.
+
+
+ sign the passed in message (usually the output of a hash function).
+
+ @param message the message to be signed.
+ @return two big integers representing the r and s values respectively.
+
+
+ verify the message message against the signature values r and s.
+
+ @param message the message that was supposed to have been signed.
+ @param r the r signature value.
+ @param s the s signature value.
+
+
+
+ Base interface describing an entropy source for a DRBG.
+
+
+
+
+ Return whether or not this entropy source is regarded as prediction resistant.
+
+ true if this instance is prediction resistant; otherwise, false.
+
+
+
+ Return a byte array of entropy.
+
+ The entropy bytes.
+
+
+
+ Return the number of bits of entropy this source can produce.
+
+ The size, in bits, of the return value of getEntropy.
+
+
+
+ Base interface describing a provider of entropy sources.
+
+
+
+
+ Return an entropy source providing a block of entropy.
+
+ The size of the block of entropy required.
+ An entropy source providing bitsRequired blocks of entropy.
+
+
+ The base interface for implementations of message authentication codes (MACs).
+
+
+ Initialise the MAC.
+
+ @param param the key and other data required by the MAC.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Return the name of the algorithm the MAC implements.
+
+ @return the name of the algorithm the MAC implements.
+
+
+ Return the block size for this MAC (in bytes).
+
+ @return the block size for this MAC in bytes.
+
+
+ add a single byte to the mac for processing.
+
+ @param in the byte to be processed.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ @param in the array containing the input.
+ @param inOff the index in the array the data begins at.
+ @param len the length of the input starting at inOff.
+ @exception InvalidOperationException if the MAC is not initialised.
+ @exception DataLengthException if there isn't enough data in in.
+
+
+ Compute the final stage of the MAC writing the output to the out
+ parameter.
+
+ doFinal leaves the MAC in the same state it was after the last init.
+
+ @param out the array the MAC is to be output to.
+ @param outOff the offset into the out buffer the output is to start at.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the MAC is not initialised.
+
+
+ Reset the MAC. At the end of resetting the MAC should be in the
+ in the same state it was after the last init (if there was one).
+
+
+ this exception is thrown whenever we find something we don't expect in a
+ message.
+
+
+ base constructor.
+
+
+ create a InvalidCipherTextException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Base interface for operators that serve as stream-based signature calculators.
+
+
+
+ The algorithm details object for this calculator.
+
+
+
+ Create a stream calculator for this signature calculator. The stream
+ calculator is used for the actual operation of entering the data to be signed
+ and producing the signature block.
+
+ A calculator producing an IBlockResult with a signature in it.
+
+
+ Return the name of the algorithm the signer implements.
+
+ @return the name of the algorithm the signer implements.
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ reset the internal state
+
+
+ Signer with message recovery.
+
+
+ Returns true if the signer has recovered the full message as
+ part of signature verification.
+
+ @return true if full message recovered.
+
+
+ Returns a reference to what message was recovered (if any).
+
+ @return full/partial message, null if nothing.
+
+
+ Perform an update with the recovered message before adding any other data. This must
+ be the first update method called, and calling it will result in the signer assuming
+ that further calls to update will include message content past what is recoverable.
+
+ @param signature the signature that we are in the process of verifying.
+ @throws IllegalStateException
+
+
+
+ Base interface for cryptographic operations such as Hashes, MACs, and Signatures which reduce a stream of data
+ to a single value.
+
+
+
+ Return a "sink" stream which only exists to update the implementing object.
+ A stream to write to in order to update the implementing object.
+
+
+
+ Return the result of processing the stream. This value is only available once the stream
+ has been closed.
+
+ The result of processing the stream.
+
+
+ The interface stream ciphers conform to.
+
+
+ The name of the algorithm this cipher implements.
+
+
+ Initialise the cipher.
+ If true the cipher is initialised for encryption,
+ if false for decryption.
+ The key and other data required by the cipher.
+
+ If the parameters argument is inappropriate.
+
+
+
+ encrypt/decrypt a single byte returning the result.
+ the byte to be processed.
+ the result of processing the input byte.
+
+
+
+ Process a block of bytes from input putting the result into output.
+
+ The input byte array.
+
+ The offset into input where the data to be processed starts.
+
+ The number of bytes to be processed.
+ The output buffer the processed bytes go into.
+
+ The offset into output the processed data starts at.
+
+ If the output buffer is too small.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Operators that reduce their input to the validation of a signature produce this type.
+
+
+
+
+ Return true if the passed in data matches what is expected by the verification result.
+
+ The bytes representing the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Return true if the length bytes from off in the source array match the signature
+ expected by the verification result.
+
+ Byte array containing the signature.
+ The offset into the source array where the signature starts.
+ The number of bytes in source making up the signature.
+ true if the signature verifies, false otherwise.
+
+
+
+ Base interface for operators that serve as stream-based signature verifiers.
+
+
+
+ The algorithm details object for this verifier.
+
+
+
+ Create a stream calculator for this verifier. The stream
+ calculator is used for the actual operation of entering the data to be verified
+ and producing a result which can be used to verify the original signature.
+
+ A calculator producing an IVerifier which can verify the signature.
+
+
+
+ Base interface for a provider to support the dynamic creation of signature verifiers.
+
+
+
+
+ Return a signature verfier for signature algorithm described in the passed in algorithm details object.
+
+ The details of the signature algorithm verification is required for.
+ A new signature verifier.
+
+
+ The name of the algorithm this cipher implements.
+
+
+
+ With FIPS PUB 202 a new kind of message digest was announced which supported extendable output, or variable digest sizes.
+ This interface provides the extra method required to support variable output on a digest implementation.
+
+
+
+
+ Output the results of the final calculation for this digest to outLen number of bytes.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+
+ Start outputting the results of the final calculation for this digest. Unlike DoFinal, this method
+ will continue producing output until the Xof is explicitly reset, or signals otherwise.
+
+ output array to write the output bytes to.
+ offset to start writing the bytes at.
+ the number of output bytes requested.
+ the number of bytes written
+
+
+ The base class for parameters to key generators.
+
+
+ initialise the generator with a source of randomness
+ and a strength (in bits).
+
+ @param random the random byte source.
+ @param strength the size, in bits, of the keys we want to produce.
+
+
+ return the random source associated with this
+ generator.
+
+ @return the generators random source.
+
+
+ return the bit strength for keys produced by this generator,
+
+ @return the strength of the keys this generator produces (in bits).
+
+
+ standard CBC Block Cipher MAC - if no padding is specified the default of
+ pad of zeroes is used.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CBC block cipher. This will produce an
+ authentication code half the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a CFB block cipher. This will produce an
+ authentication code half the length of the block size of the cipher, with
+ the CFB mode set to 8 bits.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses CFB mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param cfbBitSize the size of an output block produced by the CFB mode.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding a padding to be used.
+
+
+ Reset the mac generator.
+
+
+ CMAC - as specified at www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html
+
+ CMAC is analogous to OMAC1 - see also en.wikipedia.org/wiki/CMAC
+
+ CMAC is a NIST recomendation - see
+ csrc.nist.gov/CryptoToolkit/modes/800-38_Series_Publications/SP800-38B.pdf
+
+ CMAC/OMAC1 is a blockcipher-based message authentication code designed and
+ analyzed by Tetsu Iwata and Kaoru Kurosawa.
+
+ CMAC/OMAC1 is a simple variant of the CBC MAC (Cipher Block Chaining Message
+ Authentication Code). OMAC stands for One-Key CBC MAC.
+
+ It supports 128- or 64-bits block ciphers, with any key size, and returns
+ a MAC with dimension less or equal to the block size of the underlying
+ cipher.
+
+
+
+ create a standard MAC based on a CBC block cipher (64 or 128 bit block).
+ This will produce an authentication code the length of the block size
+ of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8 and @lt;= 128.
+
+
+ Reset the mac generator.
+
+
+
+ Implementation of DSTU7564 mac mode
+
+
+
+ implementation of DSTU 7624 MAC
+
+
+
+ The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication
+ 800-38D.
+
+
+ GMac is an invocation of the GCM mode where no data is encrypted (i.e. all input data to the Mac
+ is processed as additional authenticated data with the underlying GCM block cipher).
+
+
+
+
+ Creates a GMAC based on the operation of a block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+
+
+
+ Creates a GMAC based on the operation of a 128 bit block cipher in GCM mode.
+
+
+ This will produce an authentication code the length of the block size of the cipher.
+
+ the cipher to be used in GCM mode to generate the MAC.
+ the mac size to generate, in bits. Must be a multiple of 8, between 32 and 128 (inclusive).
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ Initialises the GMAC - requires a
+ providing a and a nonce.
+
+
+
+ implementation of GOST 28147-89 MAC
+
+
+ HMAC implementation based on RFC2104
+
+ H(K XOR opad, H(K XOR ipad, text))
+
+
+ Reset the mac generator.
+
+
+ DES based CBC Block Cipher MAC according to ISO9797, algorithm 3 (ANSI X9.19 Retail MAC)
+
+ This could as well be derived from CBCBlockCipherMac, but then the property mac in the base
+ class must be changed to protected
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation. This must
+ be DESEngine.
+
+
+ create a Retail-MAC based on a CBC block cipher. This will produce an
+ authentication code of the length of the block size of the cipher.
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param padding the padding to be used to complete the last block.
+
+
+ create a Retail-MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+
+
+ create a standard MAC based on a block cipher with the size of the
+ MAC been given in bits. This class uses single DES CBC mode as the basis for the
+ MAC generation. The final block is decrypted and then encrypted using the
+ middle and right part of the key.
+
+ Note: the size of the MAC must be at least 24 bits (FIPS Publication 81),
+ or 16 bits if being used as a data authenticator (FIPS Publication 113),
+ and in general should be less than the size of the block cipher as it reduces
+ the chance of an exhaustive attack (see Handbook of Applied Cryptography).
+
+ @param cipher the cipher to be used as the basis of the MAC generation.
+ @param macSizeInBits the size of the MAC in bits, must be a multiple of 8.
+ @param padding the padding to be used to complete the last block.
+
+
+ Reset the mac generator.
+
+
+
+ Poly1305 message authentication code, designed by D. J. Bernstein.
+
+
+ Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key
+ consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106
+ effective key bits) used in the authenticator.
+
+ The polynomial calculation in this implementation is adapted from the public domain poly1305-donna-unrolled C implementation
+ by Andrew M (@floodyberry).
+
+
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Polynomial key
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Precomputed 5 * r[1..4]
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Encrypted nonce
+
+
+ Current block of buffered input
+
+
+ Current offset in input buffer
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Polynomial accumulator
+
+
+ Constructs a Poly1305 MAC, where the key passed to init() will be used directly.
+
+
+ Constructs a Poly1305 MAC, using a 128 bit block cipher.
+
+
+
+ Initialises the Poly1305 MAC.
+
+ a {@link ParametersWithIV} containing a 128 bit nonce and a {@link KeyParameter} with
+ a 256 bit key complying to the {@link Poly1305KeyGenerator Poly1305 key format}.
+
+
+
+ Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe
+ Aumasson and Daniel J. Bernstein (https://131002.net/siphash/siphash.pdf).
+
+
+ "SipHash is a family of PRFs SipHash-c-d where the integer parameters c and d are the number of
+ compression rounds and the number of finalization rounds. A compression round is identical to a
+ finalization round and this round function is called SipRound. Given a 128-bit key k and a
+ (possibly empty) byte string m, SipHash-c-d returns a 64-bit value..."
+
+
+
+ SipHash-2-4
+
+
+ SipHash-c-d
+ the number of compression rounds
+ the number of finalization rounds
+
+
+
+ Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes,
+ based on the Threefish tweakable block cipher.
+
+
+ This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3
+ competition in October 2010.
+
+ Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir
+ Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker.
+
+
+
+
+
+
+ 256 bit block size - Skein-256
+
+
+
+
+ 512 bit block size - Skein-512
+
+
+
+
+ 1024 bit block size - Skein-1024
+
+
+
+
+ Constructs a Skein MAC with an internal state size and output size.
+
+ the internal state size in bits - one of or
+ .
+ the output/MAC size to produce in bits, which must be an integral number of
+ bytes.
+
+
+
+ Optionally initialises the Skein digest with the provided parameters.
+
+ See for details on the parameterisation of the Skein hash function.
+ the parameters to apply to this engine, or null to use no parameters.
+
+
+
+ This exception is thrown whenever a cipher requires a change of key, iv
+ or similar after x amount of bytes enciphered
+
+
+
+ implements Cipher-Block-Chaining (CBC) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of chaining.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CBC".
+
+
+ return the block size of the underlying cipher.
+
+ @return the block size of the underlying cipher.
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Do the appropriate chaining step for CBC mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate chaining step for CBC mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the decrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Counter with Cipher Block Chaining mode (CCM) detailed in
+ NIST Special Publication 800-38C.
+
+ Note: this mode is a packet mode - it needs all the data up front.
+
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Returns a byte array containing the mac calculated as part of the
+ last encrypt or decrypt operation.
+
+ @return the last mac calculated.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @return a byte array containing the processed input..
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+
+
+ Process a packet of data for either CCM decryption or encryption.
+
+ @param in data for processing.
+ @param inOff offset at which data starts in the input array.
+ @param inLen length of the data in the input array.
+ @param output output array.
+ @param outOff offset into output array to start putting processed bytes.
+ @return the number of bytes added to output.
+ @throws IllegalStateException if the cipher is not appropriately set up.
+ @throws InvalidCipherTextException if the input data is truncated or the mac check fails.
+ @throws DataLengthException if output buffer too short.
+
+
+ implements a Cipher-FeedBack (CFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/CFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ A Cipher Text Stealing (CTS) mode cipher. CTS allows block ciphers to
+ be used to produce cipher text which is the same outLength as the plain text.
+
+
+ Create a buffered block cipher that uses Cipher Text Stealing
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ return the size of the output buffer required for an update of 'length' bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update
+ with length bytes of input.
+
+
+ return the size of the output buffer required for an update plus a
+ doFinal with an input of length bytes.
+
+ @param length the outLength of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with length bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param length the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if cipher text decrypts wrongly (in
+ case the exception will never Get thrown).
+
+
+ A Two-Pass Authenticated-Encryption Scheme Optimized for Simplicity and
+ Efficiency - by M. Bellare, P. Rogaway, D. Wagner.
+
+ http://www.cs.ucdavis.edu/~rogaway/papers/eax.pdf
+
+ EAX is an AEAD scheme based on CTR and OMAC1/CMAC, that uses a single block
+ cipher to encrypt and authenticate data. It's on-line (the length of a
+ message isn't needed to begin processing it), has good performances, it's
+ simple and provably secure (provided the underlying block cipher is secure).
+
+ Of course, this implementations is NOT thread-safe.
+
+
+ Constructor that accepts an instance of a block cipher engine.
+
+ @param cipher the engine to use
+
+
+
+ Implements the Galois/Counter mode (GCM) detailed in
+ NIST Special Publication 800-38D.
+
+
+
+
+ MAC sizes from 32 bits to 128 bits (must be a multiple of 8) are supported. The default is 128 bits.
+ Sizes less than 96 are not recommended, but are supported for specialized applications.
+
+
+
+ implements the GOST 28147 OFB counter mode (GCTR).
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ counter mode (must have a 64 bit block size).
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param encrypting if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/GCTR"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+
+ A block cipher mode that includes authenticated encryption with a streaming mode
+ and optional associated data.
+
+
+
+ The name of the algorithm this cipher implements.
+
+
+ The block cipher underlying this algorithm.
+
+
+ Initialise the cipher.
+ Parameter can either be an AeadParameters or a ParametersWithIV object.
+ Initialise for encryption if true, for decryption if false.
+ The key or other data required by the cipher.
+
+
+ The block size for this cipher, in bytes.
+
+
+ Add a single byte to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The byte to be processed.
+
+
+ Add a sequence of bytes to the associated data check.
+ If the implementation supports it, this will be an online operation and will not retain the associated data.
+ The input byte array.
+ The offset into the input array where the data to be processed starts.
+ The number of bytes to be processed.
+
+
+ Encrypt/decrypt a single byte.
+
+ @param input the byte to be processed.
+ @param outBytes the output buffer the processed byte goes into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Process a block of bytes from in putting the result into out.
+
+ @param inBytes the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param outBytes the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data starts at.
+ @return the number of bytes written to out.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ Finish the operation either appending or verifying the MAC at the end of the data.
+
+ @param outBytes space for any resulting output data.
+ @param outOff offset into out to start copying the data at.
+ @return number of bytes written into out.
+ @throws InvalidOperationException if the cipher is in an inappropriate state.
+ @throws InvalidCipherTextException if the MAC fails to match.
+
+
+ Return the value of the MAC associated with the last stream processed.
+
+ @return MAC for plaintext data.
+
+
+ Return the size of the output buffer required for a ProcessBytes
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes
+ with len bytes of input.
+
+
+ Return the size of the output buffer required for a ProcessBytes plus a
+ DoFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to ProcessBytes and DoFinal
+ with len bytes of input.
+
+
+
+ Reset the cipher to the same state as it was after the last init (if there was one).
+
+
+
+
+ Base constructor. Nb value is set to 4.
+
+ base cipher to use under CCM.
+
+
+
+ Constructor allowing Nb configuration.
+
+ Nb is a parameter specified in CCM mode of DSTU7624 standard.
+ This parameter specifies maximum possible length of input.It should
+ be calculated as follows: Nb = 1 / 8 * (-3 + log[2]Nmax) + 1,
+ where Nmax - length of input message in bits.For practical reasons
+ Nmax usually less than 4Gb, e.g. for Nmax = 2^32 - 1, Nb = 4.
+
+ base cipher to use under CCM.
+ Nb value to use.
+
+
+ Implements a Gamming or Counter (CTR) mode on top of a DSTU 7624 block cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/KCTR"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param input the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param output the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ An implementation of RFC 7253 on The OCB
+ Authenticated-Encryption Algorithm, licensed per:
+
+ License for
+ Open-Source Software Implementations of OCB (Jan 9, 2013) - 'License 1'
+ Under this license, you are authorized to make, use, and distribute open-source software
+ implementations of OCB. This license terminates for you if you sue someone over their open-source
+ software implementation of OCB claiming that you have a patent covering their implementation.
+
+ This is a non-binding summary of a legal document (the link above). The parameters of the license
+ are specified in the license document and that document is controlling.
+
+
+ implements a Output-FeedBack (OFB) mode on top of a simple cipher.
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+ @param blockSize the block size in bits (note: a multiple of 8)
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/OFB"
+ and the block size in bits
+
+
+ return the block size we are operating at (in bytes).
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the feedback vector back to the IV and reset the underlying
+ cipher.
+
+
+ * Implements OpenPGP's rather strange version of Cipher-FeedBack (CFB) mode
+ * on top of a simple cipher. This class assumes the IV has been prepended
+ * to the data stream already, and just accomodates the reset after
+ * (blockSize + 2) bytes have been read.
+ *
+ * For further info see RFC 2440.
+ *
+
+
+ Basic constructor.
+
+ @param cipher the block cipher to be used as the basis of the
+ feedback mode.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ return the algorithm name and mode.
+
+ @return the name of the underlying algorithm followed by "/PGPCFB"
+ and the block size in bits.
+
+
+ return the block size we are operating at.
+
+ @return the block size we are operating at (in bytes).
+
+
+ Process one block of input from the array in and write it to
+ the out array.
+
+ @param in the array containing the input data.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the output data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ reset the chaining vector back to the IV and reset the underlying
+ cipher.
+
+
+ Initialise the cipher and, possibly, the initialisation vector (IV).
+ If an IV isn't passed as part of the parameter, the IV will be all zeros.
+ An IV which is too short is handled in FIPS compliant fashion.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param parameters the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ Encrypt one byte of data according to CFB mode.
+ @param data the byte to encrypt
+ @param blockOff offset in the current block
+ @returns the encrypted byte
+
+
+ Do the appropriate processing for CFB IV mode encryption.
+
+ @param in the array containing the data to be encrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Do the appropriate processing for CFB IV mode decryption.
+
+ @param in the array containing the data to be decrypted.
+ @param inOff offset into the in array the data starts at.
+ @param out the array the encrypted data will be copied into.
+ @param outOff the offset into the out array the output will start at.
+ @exception DataLengthException if there isn't enough data in in, or
+ space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+ @return the number of bytes processed and produced.
+
+
+ Implements the Segmented Integer Counter (SIC) mode on top of a simple
+ block cipher.
+
+
+ Basic constructor.
+
+ @param c the block cipher to be used.
+
+
+ return the underlying block cipher that we are wrapping.
+
+ @return the underlying block cipher that we are wrapping.
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Calculator factory class for signature generation in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+
+
+
+ Constructor which also specifies a source of randomness to be used if one is required.
+
+ The name of the signature algorithm to use.
+ The private key to be used in the signing operation.
+ The source of randomness to be used in signature calculation.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+
+ Verifier class for signature verification in ASN.1 based profiles that use an AlgorithmIdentifier to preserve
+ signature algorithm details.
+
+
+
+
+ Base constructor.
+
+ The name of the signature algorithm to use.
+ The public key to be used in the verification operation.
+
+
+
+ Provider class which supports dynamic creation of signature verifiers.
+
+
+
+
+ Base constructor - specify the public key to be used in verification.
+
+ The public key to be used in creating verifiers provided by this object.
+
+
+
+ Allows enumeration of the signature names supported by the verifier provider.
+
+
+
+ Block cipher padders are expected to conform to this interface
+
+
+ Initialise the padder.
+
+ @param param parameters, if any required.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+ @exception InvalidCipherTextException if the padding is badly formed
+ or invalid.
+
+
+ A padder that adds ISO10126-2 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds the padding according to the scheme referenced in
+ ISO 7814-4 - scheme 2 from ISO 9797-1. The first byte is 0x80, rest is 0x00
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the padder implements.
+
+ @return the name of the algorithm the padder implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A wrapper class that allows block ciphers to be used to process data in
+ a piecemeal fashion with padding. The PaddedBufferedBlockCipher
+ outputs a block only when the buffer is full and more data is being added,
+ or on a doFinal (unless the current block in the buffer is a pad block).
+ The default padding mechanism used is the one outlined in Pkcs5/Pkcs7.
+
+
+ Create a buffered block cipher with the desired padding.
+
+ @param cipher the underlying block cipher this buffering object wraps.
+ @param padding the padding type.
+
+
+ Create a buffered block cipher Pkcs7 padding
+
+ @param cipher the underlying block cipher this buffering object wraps.
+
+
+ initialise the cipher.
+
+ @param forEncryption if true the cipher is initialised for
+ encryption, if false for decryption.
+ @param param the key and other data required by the cipher.
+ @exception ArgumentException if the parameters argument is
+ inappropriate.
+
+
+ return the minimum size of the output buffer required for an update
+ plus a doFinal with an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update and doFinal
+ with len bytes of input.
+
+
+ return the size of the output buffer required for an update
+ an input of len bytes.
+
+ @param len the length of the input.
+ @return the space required to accommodate a call to update
+ with len bytes of input.
+
+
+ process a single byte, producing an output block if necessary.
+
+ @param in the input byte.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ process an array of bytes, producing output if necessary.
+
+ @param in the input byte array.
+ @param inOff the offset at which the input data starts.
+ @param len the number of bytes to be copied out of the input array.
+ @param out the space for any output that might be produced.
+ @param outOff the offset from which the output will be copied.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there isn't enough space in out.
+ @exception InvalidOperationException if the cipher isn't initialised.
+
+
+ Process the last block in the buffer. If the buffer is currently
+ full and padding needs to be added a call to doFinal will produce
+ 2 * GetBlockSize() bytes.
+
+ @param out the array the block currently being held is copied into.
+ @param outOff the offset at which the copying starts.
+ @return the number of output bytes copied to out.
+ @exception DataLengthException if there is insufficient space in out for
+ the output or we are decrypting and the input is not block size aligned.
+ @exception InvalidOperationException if the underlying cipher is not
+ initialised.
+ @exception InvalidCipherTextException if padding is expected and not found.
+
+
+ A padder that adds Pkcs7/Pkcs5 padding to a block.
+
+
+ Initialise the padder.
+
+ @param random - a SecureRandom if available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Trailing-Bit-Compliment padding to a block.
+
+ This padding pads the block out compliment of the last bit
+ of the plain text.
+
+
+
+
+ Return the name of the algorithm the cipher implements.
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+ Note: this assumes that the last block of plain text is always
+ passed to it inside in. i.e. if inOff is zero, indicating the
+ entire block is to be overwritten with padding the value of in
+ should be the same as the last block of plain text.
+
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds X9.23 padding to a block - if a SecureRandom is
+ passed in random padding is assumed, otherwise padding with zeros is used.
+
+
+ Initialise the padder.
+
+ @param random a SecureRandom if one is available.
+
+
+ Return the name of the algorithm the cipher implements.
+
+ @return the name of the algorithm the cipher implements.
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+ return the number of pad bytes present in the block.
+
+
+ A padder that adds Null byte padding to a block.
+
+
+ Return the name of the algorithm the cipher implements.
+
+
+ the name of the algorithm the cipher implements.
+
+
+
+ Initialise the padder.
+
+
+ - a SecureRandom if available.
+
+
+
+ add the pad bytes to the passed in block, returning the
+ number of bytes added.
+
+
+
+ return the number of pad bytes present in the block.
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ Base constructor.
+
+ @param key key to be used by underlying cipher
+ @param macSize macSize in bits
+ @param nonce nonce to be used
+ @param associatedText associated text, if any
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+ @param length number of bytes making up the key
+
+
+ return true if the passed in key is a DES-EDE weak key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2/3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 2 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ return true if the passed in key is a real 3 part DES-EDE key.
+
+ @param key bytes making up the key
+ @param offset offset into the byte array the key starts at
+
+
+ DES has 16 weak keys. This method will check
+ if the given DES key material is weak or semi-weak.
+ Key material that is too short is regarded as weak.
+
+ See "Applied
+ Cryptography" by Bruce Schneier for more information.
+
+ @return true if the given DES key material is weak or semi-weak,
+ false otherwise.
+
+
+ DES Keys use the LSB as the odd parity bit. This can
+ be used to check for corrupt keys.
+
+ @param bytes the byte array to set the parity on.
+
+
+ The minimum bitlength of the private value.
+
+
+ The bitlength of the private value.
+
+
+ Construct without a usage index, this will do a random construction of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+
+
+ Construct for a specific usage index - this has the effect of using verifiable canonical generation of G.
+
+ @param L desired length of prime P in bits (the effective key size).
+ @param N desired length of prime Q in bits.
+ @param certainty certainty level for prime number generation.
+ @param random the source of randomness to use.
+ @param usageIndex a valid usage index.
+
+
+ return the generator - g
+
+
+ return private value limit - l
+
+
+ Parameter class for the HkdfBytesGenerator class.
+
+
+ Generates parameters for HKDF, specifying both the optional salt and
+ optional info. Step 1: Extract won't be skipped.
+
+ @param ikm the input keying material or seed
+ @param salt the salt to use, may be null for a salt for hashLen zeros
+ @param info the info to use, may be null for an info field of zero bytes
+
+
+ Factory method that makes the HKDF skip the extract part of the key
+ derivation function.
+
+ @param ikm the input keying material or seed, directly used for step 2:
+ Expand
+ @param info the info to use, may be null for an info field of zero bytes
+ @return HKDFParameters that makes the implementation skip step 1
+
+
+ Returns the input keying material or seed.
+
+ @return the keying material
+
+
+ Returns if step 1: extract has to be skipped or not
+
+ @return true for skipping, false for no skipping of step 1
+
+
+ Returns the salt, or null if the salt should be generated as a byte array
+ of HashLen zeros.
+
+ @return the salt, or null
+
+
+ Returns the info field, which may be empty (null is converted to empty).
+
+ @return the info field, never null
+
+
+ parameters for using an integrated cipher in stream mode.
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+
+
+ @param derivation the derivation parameter for the KDF function.
+ @param encoding the encoding parameter for the KDF function.
+ @param macKeySize the size of the MAC key (in bits).
+ @param cipherKeySize the size of the associated Cipher key (in bits).
+
+
+ parameters for Key derivation functions for ISO-18033
+
+
+ parameters for Key derivation functions for IEEE P1363a
+
+
+ Parameters for mask derivation functions.
+
+
+ Parameters for NaccacheStern public private key generation. For details on
+ this cipher, please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Parameters for generating a NaccacheStern KeyPair.
+
+ @param random
+ The source of randomness
+ @param strength
+ The desired strength of the Key in Bits
+ @param certainty
+ the probability that the generated primes are not really prime
+ as integer: 2^(-certainty) is then the probability
+ @param countSmallPrimes
+ How many small key factors are desired
+
+
+ * Parameters for a NaccacheStern KeyPair.
+ *
+ * @param random
+ * The source of randomness
+ * @param strength
+ * The desired strength of the Key in Bits
+ * @param certainty
+ * the probability that the generated primes are not really prime
+ * as integer: 2^(-certainty) is then the probability
+ * @param cntSmallPrimes
+ * How many small key factors are desired
+ * @param debug
+ * Ignored
+
+
+ @return Returns the certainty.
+
+
+ @return Returns the countSmallPrimes.
+
+
+ Public key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ @param privateKey
+
+
+ @return Returns the g.
+
+
+ @return Returns the lowerSigmaBound.
+
+
+ @return Returns the n.
+
+
+ Private key parameters for NaccacheStern cipher. For details on this cipher,
+ please see
+
+ http://www.gemplus.com/smart/rd/publications/pdf/NS98pkcs.pdf
+
+
+ Constructs a NaccacheSternPrivateKey
+
+ @param g
+ the public enryption parameter g
+ @param n
+ the public modulus n = p*q
+ @param lowerSigmaBound
+ the public lower sigma bound up to which data can be encrypted
+ @param smallPrimes
+ the small primes, of which sigma is constructed in the right
+ order
+ @param phi_n
+ the private modulus phi(n) = (p-1)(q-1)
+
+
+ Cipher parameters with a fixed salt value associated with them.
+
+
+
+ Parameters for the Skein hash function - a series of byte[] strings identified by integer tags.
+
+
+ Parameterised Skein can be used for:
+
+ - MAC generation, by providing a key.
+ - Randomised hashing, by providing a nonce.
+ - A hash function for digital signatures, associating a
+ public key with the message digest.
+ - A key derivation function, by providing a
+ key identifier.
+ - Personalised hashing, by providing a
+ recommended format or
+ arbitrary personalisation string.
+
+
+
+
+
+
+
+
+ The parameter type for a secret key, supporting MAC or KDF functions: 0
+
+
+
+
+ The parameter type for the Skein configuration block: 4
+
+
+
+
+ The parameter type for a personalisation string: 8
+
+
+
+
+ The parameter type for a public key: 12
+
+
+
+
+ The parameter type for a key identifier string: 16
+
+
+
+
+ The parameter type for a nonce: 20
+
+
+
+
+ The parameter type for the message: 48
+
+
+
+
+ The parameter type for the output transformation: 63
+
+
+
+
+ Obtains a map of type (int) to value (byte[]) for the parameters tracked in this object.
+
+
+
+
+ Obtains the value of the key parameter, or null if not
+ set.
+
+ The key.
+
+
+
+ Obtains the value of the personalisation parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the public key parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the key identifier parameter, or
+ null if not set.
+
+
+
+
+ Obtains the value of the nonce parameter, or null if
+ not set.
+
+
+
+
+ A builder for .
+
+
+
+
+ Sets a parameters to apply to the Skein hash function.
+
+
+ Parameter types must be in the range 0,5..62, and cannot use the value 48
+ (reserved for message body).
+
+ Parameters with type < 48 are processed before
+ the message content, parameters with type > 48
+ are processed after the message and prior to output.
+
+ the type of the parameter, in the range 5..62.
+ the byte sequence of the parameter.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Implements the recommended personalisation format for Skein defined in Section 4.11 of
+ the Skein 1.3 specification.
+
+
+ The format is YYYYMMDD email@address distinguisher, encoded to a byte
+ sequence using UTF-8 encoding.
+
+ the date the personalised application of the Skein was defined.
+ the email address of the creation of the personalised application.
+ an arbitrary personalisation string distinguishing the application.
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Sets the parameter.
+
+
+
+
+ Constructs a new instance with the parameters provided to this
+ builder.
+
+
+
+ Private parameters for an SM2 key exchange.
+ The ephemeralPrivateKey is used to calculate the random point used in the algorithm.
+
+
+ Public parameters for an SM2 key exchange.
+ In this case the ephemeralPublicKey provides the random point used in the algorithm.
+
+
+
+ Parameters for tweakable block ciphers.
+
+
+
+
+ Gets the key.
+
+ the key to use, or null to use the current key.
+
+
+
+ Gets the tweak value.
+
+ The tweak to use, or null to use the current tweak.
+
+
+ super class for all Password Based Encyrption (Pbe) parameter generator classes.
+
+
+ base constructor.
+
+
+ initialise the Pbe generator.
+
+ @param password the password converted into bytes (see below).
+ @param salt the salt to be mixed with the password.
+ @param iterationCount the number of iterations the "mixing" function
+ is to be applied for.
+
+
+ return the password byte array.
+
+ @return the password byte array.
+
+
+ return the salt byte array.
+
+ @return the salt byte array.
+
+
+ return the iteration count.
+
+ @return the iteration count.
+
+
+ Generate derived parameters for a key of length keySize.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ Generate derived parameters for a key of length keySize, and
+ an initialisation vector (IV) of length ivSize.
+
+ @param keySize the length, in bits, of the key required.
+ @param ivSize the length, in bits, of the iv required.
+ @return a parameters object representing a key and an IV.
+
+
+ Generate derived parameters for a key of length keySize, specifically
+ for use with a MAC.
+
+ @param keySize the length, in bits, of the key required.
+ @return a parameters object representing a key.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs5 (ascii, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ PKCS5 (UTF-8, no padding)
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ converts a password to a byte array according to the scheme in
+ Pkcs12 (unicode, big endian, 2 zero pad bytes at the end).
+
+ @param password a character array representing the password.
+ @return a byte array representing the password.
+
+
+ An EntropySourceProvider where entropy generation is based on a SecureRandom output using SecureRandom.generateSeed().
+
+
+ Create a entropy source provider based on the passed in SecureRandom.
+
+ @param secureRandom the SecureRandom to base EntropySource construction on.
+ @param isPredictionResistant boolean indicating if the SecureRandom is based on prediction resistant entropy or not (true if it is).
+
+
+ Return an entropy source that will create bitsRequired bits of entropy on
+ each invocation of getEntropy().
+
+ @param bitsRequired size (in bits) of entropy to be created by the provided source.
+ @return an EntropySource that generates bitsRequired bits of entropy on each call to its getEntropy() method.
+
+
+ Random generation based on the digest with counter. Calling AddSeedMaterial will
+ always increase the entropy of the hash.
+
+ Internal access to the digest is synchronized so a single one of these can be shared.
+
+
+
+ A SP800-90A CTR DRBG.
+
+
+ Construct a SP800-90A CTR DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param engine underlying block cipher to use to support DRBG
+ @param keySizeInBits size of the key to use with the block cipher.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Pad out a key for TDEA, setting odd parity for each byte.
+
+ @param keyMaster
+ @param keyOff
+ @param tmp
+ @param tmpOff
+
+
+ Used by both Dual EC and Hash.
+
+
+ A SP800-90A Hash DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param digest source digest to use for DRB stream.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each internal round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ A SP800-90A HMAC DRBG.
+
+
+ Construct a SP800-90A Hash DRBG.
+
+ Minimum entropy requirement is the security strength requested.
+
+ @param hMac Hash MAC to base the DRBG on.
+ @param securityStrength security strength required (in bits)
+ @param entropySource source of entropy to use for seeding/reseeding.
+ @param personalizationString personalization string to distinguish this DRBG (may be null).
+ @param nonce nonce to further distinguish this DRBG (may be null).
+
+
+ Return the block size (in bits) of the DRBG.
+
+ @return the number of bits produced on each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Interface to SP800-90A deterministic random bit generators.
+
+
+ Return the block size of the DRBG.
+
+ @return the block size (in bits) produced by each round of the DRBG.
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param additionalInput additional input to be added to the DRBG in this step.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the DRBG.
+
+ @param additionalInput additional input to be added to the DRBG in this step.
+
+
+ Generate numBytes worth of entropy from the passed in entropy source.
+
+ @param entropySource the entropy source to request the data from.
+ @param numBytes the number of bytes of entropy requested.
+ @return a byte array populated with the random data.
+
+
+ Generic interface for objects generating random bytes.
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+
+ Takes bytes generated by an underling RandomGenerator and reverses the order in
+ each small window (of configurable size).
+
+ Access to internals is synchronized so a single one of these can be shared.
+
+
+
+
+ Add more seed material to the generator.
+ A byte array to be mixed into the generator's state.
+
+
+ Add more seed material to the generator.
+ A long value to be mixed into the generator's state.
+
+
+ Fill byte array with random values.
+ Array to be filled.
+
+
+ Fill byte array with random values.
+ Array to receive bytes.
+ Index to start filling at.
+ Length of segment to fill.
+
+
+ Force a reseed of the DRBG.
+ optional additional input
+
+
+ Builder class for making SecureRandom objects based on SP 800-90A Deterministic Random Bit Generators (DRBG).
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Set the personalization string for DRBG SecureRandoms created by this builder
+ @param personalizationString the personalisation string for the underlying DRBG.
+ @return the current builder.
+
+
+ Set the security strength required for DRBGs used in building SecureRandom objects.
+
+ @param securityStrength the security strength (in bits)
+ @return the current builder.
+
+
+ Set the amount of entropy bits required for seeding and reseeding DRBGs used in building SecureRandom objects.
+
+ @param entropyBitsRequired the number of bits of entropy to be requested from the entropy source on each seed/reseed.
+ @return the current builder.
+
+
+ Build a SecureRandom based on a SP 800-90A Hash DRBG.
+
+ @param digest digest algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a Hash DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A CTR DRBG.
+
+ @param cipher the block cipher to base the DRBG on.
+ @param keySizeInBits key size in bits to be used with the block cipher.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a CTR DRBG.
+
+
+ Build a SecureRandom based on a SP 800-90A HMAC DRBG.
+
+ @param hMac HMAC algorithm to use in the DRBG underneath the SecureRandom.
+ @param nonce nonce value to use in DRBG construction.
+ @param predictionResistant specify whether the underlying DRBG in the resulting SecureRandom should reseed on each request for bytes.
+ @return a SecureRandom supported by a HMAC DRBG.
+
+
+ A thread based seed generator - one source of randomness.
+
+ Based on an idea from Marcus Lippert.
+
+
+
+ Generate seed bytes. Set fast to false for best quality.
+
+ If fast is set to true, the code should be round about 8 times faster when
+ generating a long sequence of random bytes. 20 bytes of random values using
+ the fast mode take less than half a second on a Nokia e70. If fast is set to false,
+ it takes round about 2500 ms.
+
+ @param numBytes the number of bytes to generate
+ @param fast true if fast mode should be used
+
+
+
+ Permutation generated by code:
+
+ // First 1850 fractional digit of Pi number.
+ byte[] key = new BigInteger("14159265358979323846...5068006422512520511").ToByteArray();
+ s = 0;
+ P = new byte[256];
+ for (int i = 0; i < 256; i++)
+ {
+ P[i] = (byte) i;
+ }
+ for (int m = 0; m < 768; m++)
+ {
+ s = P[(s + P[m & 0xff] + key[m % key.length]) & 0xff];
+ byte temp = P[m & 0xff];
+ P[m & 0xff] = P[s & 0xff];
+ P[s & 0xff] = temp;
+ }
+
+
+
+ Value generated in the same way as P.
+
+
+
+ @param engine
+ @param entropySource
+
+
+ Populate a passed in array with random data.
+
+ @param output output array for generated bits.
+ @param predictionResistant true if a reseed should be forced, false otherwise.
+
+ @return number of bits generated, -1 if a reseed required.
+
+
+ Reseed the RNG.
+
+
+ Basic constructor, creates a builder using an EntropySourceProvider based on the default SecureRandom with
+ predictionResistant set to false.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the default SecureRandom does for its generateSeed() call.
+
+
+
+ Construct a builder with an EntropySourceProvider based on the passed in SecureRandom and the passed in value
+ for prediction resistance.
+
+ Any SecureRandom created from a builder constructed like this will make use of input passed to SecureRandom.setSeed() if
+ the passed in SecureRandom does for its generateSeed() call.
+
+ @param entropySource
+ @param predictionResistant
+
+
+ Create a builder which makes creates the SecureRandom objects from a specified entropy source provider.
+
+ Note: If this constructor is used any calls to setSeed() in the resulting SecureRandom will be ignored.
+
+ @param entropySourceProvider a provider of EntropySource objects.
+
+
+ Construct a X9.31 secure random generator using the passed in engine and key. If predictionResistant is true the
+ generator will be reseeded on each request.
+
+ @param engine a block cipher to use as the operator.
+ @param key the block cipher key to initialise engine with.
+ @param predictionResistant true if engine to be reseeded on each use, false otherwise.
+ @return a SecureRandom.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ The Digital Signature Algorithm - as described in "Handbook of Applied
+ Cryptography", pages 452 - 453.
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message for standard DSA the message should be a
+ SHA-1 hash of the real message to be verified.
+
+
+ EC-DSA as described in X9.62
+
+
+ Default configuration, random K values.
+
+
+ Configuration with an alternate, possibly deterministic calculator of K.
+
+ @param kCalculator a K value calculator.
+
+
+ Generate a signature for the given message using the key we were
+ initialised with. For conventional DSA the message should be a SHA-1
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a DSA signature for
+ the passed in message (for standard DSA the message should be
+ a SHA-1 hash of the real message to be verified).
+
+
+ GOST R 34.10-2001 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional GOST3410 the message should be a GOST3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a GOST3410 signature for
+ the passed in message (for standard GOST3410 the message should be
+ a GOST3411 hash of the real message to be verified).
+
+
+ EC-NR as described in IEEE 1363-2000
+
+
+ generate a signature for the given message using the key we were
+ initialised with. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR it *must* be at least as long.
+
+ @param digest the digest to be signed.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ return true if the value r and s represent a signature for the
+ message passed in. Generally, the order of the curve should be at
+ least as long as the hash of the message of interest, and with
+ ECNR, it *must* be at least as long. But just in case the signer
+ applied mod(n) to the longer digest, this implementation will
+ apply mod(n) during verification.
+
+ @param digest the digest to be verified.
+ @param r the r value of the signature.
+ @param s the s value of the signature.
+ @exception DataLengthException if the digest is longer than the key allows
+
+
+ initialise the signer for signing or verification.
+
+ @param forSigning
+ true if for signing, false otherwise
+ @param parameters
+ necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using the key
+ we were initialised with.
+
+
+ return true if the internal state represents the signature described in
+ the passed in array.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ true if the internal state represents the signature described in the passed in array.
+
+
+ Reset the internal state
+
+
+ Gost R 34.10-94 Signature Algorithm
+
+
+ generate a signature for the given message using the key we were
+ initialised with. For conventional Gost3410 the message should be a Gost3411
+ hash of the message of interest.
+
+ @param message the message that will be verified later.
+
+
+ return true if the value r and s represent a Gost3410 signature for
+ the passed in message for standard Gost3410 the message should be a
+ Gost3411 hash of the real message to be verified.
+
+
+ A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979.
+
+
+ Base constructor.
+
+ @param digest digest to build the HMAC on.
+
+
+ Interface define calculators of K values for DSA/ECDSA.
+
+
+ Return true if this calculator is deterministic, false otherwise.
+
+ @return true if deterministic, otherwise false.
+
+
+ Non-deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param random a source of randomness.
+
+
+ Deterministic initialiser.
+
+ @param n the order of the DSA group.
+ @param d the DSA private value.
+ @param message the message being signed.
+
+
+ Return the next valid value of K.
+
+ @return a K value.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3).
+
+ Note: the usual length for the salt is the length of the hash
+ function used in bytes.
+
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2, scheme 2 or 3.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ length of salt in bytes.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+ length of salt in bytes.
+
+
+
+ Initialise the signer.
+ true if for signing, false if for verification.
+ parameters for signature generation/verification. If the
+ parameters are for generation they should be a ParametersWithRandom,
+ a ParametersWithSalt, or just an RsaKeyParameters object. If RsaKeyParameters
+ are passed in a SecureRandom will be created.
+
+ if wrong parameter type or a fixed
+ salt is passed in which is the wrong length.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise, or if not sure.
+
+
+
+ int to octet string.
+ int to octet string.
+
+
+ long to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+ ISO9796-2 - mechanism using a hash function with recovery (scheme 1)
+
+
+
+ Return a reference to the recoveredMessage message.
+
+ The full/partial recoveredMessage message.
+
+
+
+
+ Generate a signer with either implicit or explicit trailers for ISO9796-2.
+
+ base cipher to use for signature creation/verification
+ digest to use.
+ whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+
+ cipher to use.
+
+ digest to sign with.
+
+
+
+ compare two byte arrays - constant time.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+
+
+ Return true if the full message was recoveredMessage.
+
+ true on full message recovery, false otherwise.
+
+
+
+ RSA-PSS as described in Pkcs# 1 v 2.1.
+
+ Note: the usual value for the salt length is the number of
+ bytes in the hash function.
+
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the length of the salt to use (in bytes).
+
+
+ Basic constructor
+ the asymmetric cipher to use.
+ the digest to use.
+ the fixed salt to be used.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+
+ int to octet string.
+
+
+ mask generator function, as described in Pkcs1v2.
+
+
+
+ Load oid table.
+
+
+
+ Initialise the signer for signing or verification.
+
+ @param forSigning true if for signing, false otherwise
+ @param param necessary parameters.
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ Generate a signature for the message we've been loaded with using
+ the key we were initialised with.
+
+
+ return true if the internal state represents the signature described
+ in the passed in array.
+
+
+ The SM2 Digital Signature algorithm.
+
+
+ X9.31-1998 - signing using a hash.
+
+ The message digest hash, H, is encapsulated to form a byte string as follows
+
+
+ EB = 06 || PS || 0xBA || H || TRAILER
+
+ where PS is a string of bytes all of value 0xBB of length such that |EB|=|n|, and TRAILER is the ISO/IEC 10118 part number†for the digest. The byte string, EB, is converted to an integer value, the message representative, f.
+
+
+ Generate a signer with either implicit or explicit trailers for X9.31.
+
+ @param cipher base cipher to use for signature creation/verification
+ @param digest digest to use.
+ @param implicit whether or not the trailer is implicit or gives the hash.
+
+
+ Constructor for a signer with an explicit digest trailer.
+
+ @param cipher cipher to use.
+ @param digest digest to sign with.
+
+
+ clear possible sensitive data
+
+
+ update the internal digest with the byte b
+
+
+ update the internal digest with the byte array in
+
+
+ reset the internal state
+
+
+ generate a signature for the loaded message using the key we were
+ initialised with.
+
+
+ return true if the signature represents a ISO9796-2 signature
+ for the passed in message.
+
+
+ a wrapper for block ciphers with a single byte block size, so that they
+ can be treated like stream ciphers.
+
+
+ basic constructor.
+
+ @param cipher the block cipher to be wrapped.
+ @exception ArgumentException if the cipher has a block size other than
+ one.
+
+
+ initialise the underlying cipher.
+
+ @param forEncryption true if we are setting up for encryption, false otherwise.
+ @param param the necessary parameters for the underlying cipher to be initialised.
+
+
+ return the name of the algorithm we are wrapping.
+
+ @return the name of the algorithm we are wrapping.
+
+
+ encrypt/decrypt a single byte returning the result.
+
+ @param in the byte to be processed.
+ @return the result of processing the input byte.
+
+
+ process a block of bytes from in putting the result into out.
+
+ @param in the input byte array.
+ @param inOff the offset into the in array where the data to be processed starts.
+ @param len the number of bytes to be processed.
+ @param out the output buffer the processed bytes go into.
+ @param outOff the offset into the output byte array the processed data stars at.
+ @exception DataLengthException if the output buffer is too small.
+
+
+ reset the underlying cipher. This leaves it in the same state
+ it was at after the last init (if there was one).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 5246 7.2
+
+
+
+ This message notifies the recipient that the sender will not send any more messages on this
+ connection. Note that as of TLS 1.1, failure to properly close a connection no longer
+ requires that a session not be resumed. This is a change from TLS 1.0 ("The session becomes
+ unresumable if any connection is terminated without proper close_notify messages with level
+ equal to warning.") to conform with widespread implementation practice.
+
+
+ An inappropriate message was received. This alert is always fatal and should never be
+ observed in communication between proper implementations.
+
+
+ This alert is returned if a record is received with an incorrect MAC. This alert also MUST be
+ returned if an alert is sent because a TLSCiphertext decrypted in an invalid way: either it
+ wasn't an even multiple of the block length, or its padding values, when checked, weren't
+ correct. This message is always fatal and should never be observed in communication between
+ proper implementations (except when messages were corrupted in the network).
+
+
+ This alert was used in some earlier versions of TLS, and may have permitted certain attacks
+ against the CBC mode [CBCATT]. It MUST NOT be sent by compliant implementations.
+
+
+ A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record
+ decrypted to a TLSCompressed record with more than 2^14+1024 bytes. This message is always
+ fatal and should never be observed in communication between proper implementations (except
+ when messages were corrupted in the network).
+
+
+ The decompression function received improper input (e.g., data that would expand to excessive
+ length). This message is always fatal and should never be observed in communication between
+ proper implementations.
+
+
+ Reception of a handshake_failure alert message indicates that the sender was unable to
+ negotiate an acceptable set of security parameters given the options available. This is a
+ fatal error.
+
+
+ This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ A certificate was corrupt, contained signatures that did not verify correctly, etc.
+
+
+ A certificate was of an unsupported type.
+
+
+ A certificate was revoked by its signer.
+
+
+ A certificate has expired or is not currently valid.
+
+
+ Some other (unspecified) issue arose in processing the certificate, rendering it
+ unacceptable.
+
+
+ A field in the handshake was out of range or inconsistent with other fields. This message is
+ always fatal.
+
+
+ A valid certificate chain or partial chain was received, but the certificate was not accepted
+ because the CA certificate could not be located or couldn't be matched with a known, trusted
+ CA. This message is always fatal.
+
+
+ A valid certificate was received, but when access control was applied, the sender decided not
+ to proceed with negotiation. This message is always fatal.
+
+
+ A message could not be decoded because some field was out of the specified range or the
+ length of the message was incorrect. This message is always fatal and should never be
+ observed in communication between proper implementations (except when messages were corrupted
+ in the network).
+
+
+ A handshake cryptographic operation failed, including being unable to correctly verify a
+ signature or validate a Finished message. This message is always fatal.
+
+
+ This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant
+ implementations.
+
+
+ The protocol version the client has attempted to negotiate is recognized but not supported.
+ (For example, old protocol versions might be avoided for security reasons.) This message is
+ always fatal.
+
+
+ Returned instead of handshake_failure when a negotiation has failed specifically because the
+ server requires ciphers more secure than those supported by the client. This message is
+ always fatal.
+
+
+ An internal error unrelated to the peer or the correctness of the protocol (such as a memory
+ allocation failure) makes it impossible to continue. This message is always fatal.
+
+
+ This handshake is being canceled for some reason unrelated to a protocol failure. If the user
+ cancels an operation after the handshake is complete, just closing the connection by sending
+ a close_notify is more appropriate. This alert should be followed by a close_notify. This
+ message is generally a warning.
+
+
+ Sent by the client in response to a hello request or by the server in response to a client
+ hello after initial handshaking. Either of these would normally lead to renegotiation; when
+ that is not appropriate, the recipient should respond with this alert. At that point, the
+ original requester can decide whether to proceed with the connection. One case where this
+ would be appropriate is where a server has spawned a process to satisfy a request; the
+ process might receive security parameters (key length, authentication, etc.) at startup, and
+ it might be difficult to communicate changes to these parameters after that point. This
+ message is always a warning.
+
+
+ Sent by clients that receive an extended server hello containing an extension that they did
+ not put in the corresponding client hello. This message is always fatal.
+
+
+ This alert is sent by servers who are unable to retrieve a certificate chain from the URL
+ supplied by the client (see Section 3.3). This message MAY be fatal - for example if client
+ authentication is required by the server for the handshake to continue and the server is
+ unable to retrieve the certificate chain, it may send a fatal alert.
+
+
+ This alert is sent by servers that receive a server_name extension request, but do not
+ recognize the server name. This message MAY be fatal.
+
+
+ This alert is sent by clients that receive an invalid certificate status response (see
+ Section 3.6). This message is always fatal.
+
+
+ This alert is sent by servers when a certificate hash does not match a client provided
+ certificate_hash. This message is always fatal.
+
+
+ If the server does not recognize the PSK identity, it MAY respond with an
+ "unknown_psk_identity" alert message.
+
+
+ If TLS_FALLBACK_SCSV appears in ClientHello.cipher_suites and the highest protocol version
+ supported by the server is higher than the version indicated in ClientHello.client_version,
+ the server MUST respond with a fatal inappropriate_fallback alert [..].
+
+
+
+ RFC 5246 7.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ A queue for bytes.
+
+ This file could be more optimized.
+
+
+
+
+ The smallest number which can be written as 2^x which is bigger than i.
+
+
+ The initial size for our buffer.
+
+
+ The buffer where we store our data.
+
+
+ How many bytes at the beginning of the buffer are skipped.
+
+
+ How many bytes in the buffer are valid data.
+
+
+ Add some data to our buffer.
+ A byte-array to read data from.
+ How many bytes to skip at the beginning of the array.
+ How many bytes to read from the array.
+
+
+ The number of bytes which are available in this buffer.
+
+
+ Copy some bytes from the beginning of the data to the provided Stream.
+ The Stream to copy the bytes to.
+ How many bytes to copy.
+ If insufficient data is available.
+ If there is a problem copying the data.
+
+
+ Read data from the buffer.
+ The buffer where the read data will be copied to.
+ How many bytes to skip at the beginning of buf.
+ How many bytes to read at all.
+ How many bytes from our data to skip.
+
+
+ Return a MemoryStream over some bytes at the beginning of the data.
+ How many bytes will be readable.
+ A MemoryStream over the data.
+ If insufficient data is available.
+
+
+ Remove some bytes from our data from the beginning.
+ How many bytes to remove.
+
+
+ Parsing and encoding of a Certificate struct from RFC 4346.
+
+
+ opaque ASN.1Cert<2^24-1>;
+
+ struct {
+ ASN.1Cert certificate_list<0..2^24-1>;
+ } Certificate;
+
+
+ @see Org.BouncyCastle.Asn1.X509.X509CertificateStructure
+
+
+ The certificates.
+
+
+ @return an array of {@link org.bouncycastle.asn1.x509.Certificate} representing a certificate
+ chain.
+
+
+ @return true if this certificate chain contains no certificates, or
+ false otherwise.
+
+
+ Encode this {@link Certificate} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link Certificate} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link Certificate} object.
+ @throws IOException
+
+
+ Parsing and encoding of a CertificateRequest struct from RFC 4346.
+
+
+ struct {
+ ClientCertificateType certificate_types<1..2^8-1>;
+ DistinguishedName certificate_authorities<3..2^16-1>
+ } CertificateRequest;
+
+
+ @see ClientCertificateType
+ @see X509Name
+
+
+ @param certificateTypes see {@link ClientCertificateType} for valid constants.
+ @param certificateAuthorities an {@link IList} of {@link X509Name}.
+
+
+ @return an array of certificate types
+ @see {@link ClientCertificateType}
+
+
+ @return an {@link IList} of {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ @return an {@link IList} of {@link X509Name}
+
+
+ Encode this {@link CertificateRequest} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateRequest} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateRequest} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatus} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatus} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatus} object.
+ @throws IOException
+
+
+ Encode this {@link CertificateStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateStatusRequest} object.
+ @throws IOException
+
+
+ RFC 6091
+
+
+ @param type
+ see {@link CertChainType} for valid constants.
+ @param urlAndHashList
+ a {@link IList} of {@link UrlAndHash}.
+
+
+ @return {@link CertChainType}
+
+
+ @return an {@link IList} of {@link UrlAndHash}
+
+
+ Encode this {@link CertificateUrl} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link CertificateUrl} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link CertificateUrl} object.
+ @throws IOException
+
+
+ draft-ietf-tls-chacha20-poly1305-04
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RFC 2246 A.5
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ A combined hash, which implements md5(m) || sha1(m).
+
+
+ @see org.bouncycastle.crypto.Digest#update(byte[], int, int)
+
+
+ @see org.bouncycastle.crypto.Digest#doFinal(byte[], int)
+
+
+ @see org.bouncycastle.crypto.Digest#reset()
+
+
+
+ RFC 2246 6.1
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246 6.2.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Accept only the group parameters specified in RFC 5054 Appendix A.
+
+
+ Specify a custom set of acceptable group parameters.
+
+ @param groups a {@link Vector} of acceptable {@link SRP6GroupParameters}
+
+
+ Buffers input until the hash algorithm is determined.
+
+
+ @return a {@link SignatureAndHashAlgorithm} (or null before TLS 1.2).
+
+
+ Encode this {@link DigitallySigned} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link DigitallySigned} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link DigitallySigned} object.
+ @throws IOException
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Check that there are no "extra" messages left in the current inbound flight
+
+
+ RFC 4347 4.1.2.5 Anti-replay
+
+ Support fast rejection of duplicate records by maintaining a sliding receive window
+
+
+ Check whether a received record with the given sequence number should be rejected as a duplicate.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of a received record.
+ @return true if the record should be discarded without further processing.
+
+
+ Report that a received record with the given sequence number passed authentication checks.
+
+ @param seq the 48-bit DTLSPlainText.sequence_number field of an authenticated record.
+
+
+ When a new epoch begins, sequence numbers begin again at 0
+
+
+ RFC 4492 5.4. (Errata ID: 2389)
+
+
+
+ RFC 4492 5.4
+
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a prime field.
+
+
+ Indicates the elliptic curve domain parameters are conveyed verbosely, and the
+ underlying finite field is a characteristic-2 field.
+
+
+ Indicates that a named curve is used. This option SHOULD be used when applicable.
+
+
+
+ RFC 4492 5.1.2
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 5705
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ Encode this {@link HeartbeatExtension} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatExtension} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatExtension} object.
+ @throws IOException
+
+
+ Encode this {@link HeartbeatMessage} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link HeartbeatMessage} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link HeartbeatMessage} object.
+ @throws IOException
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+ RFC 2246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+ RFC 4492 5.1.1
+ The named curves defined here are those specified in SEC 2 [13]. Note that many of
+ these curves are also recommended in ANSI X9.62 [7] and FIPS 186-2 [11]. Values 0xFE00
+ through 0xFEFF are reserved for private use. Values 0xFF01 and 0xFF02 indicate that the
+ client supports arbitrary prime and characteristic-2 curves, respectively (the curve
+ parameters must be encoded explicitly in ECParameters).
+
+
+
+ Encode this {@link NewSessionTicket} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link NewSessionTicket} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link NewSessionTicket} object.
+ @throws IOException
+
+
+ RFC 3546 3.6
+
+
+ @param responderIDList
+ an {@link IList} of {@link ResponderID}, specifying the list of trusted OCSP
+ responders. An empty list has the special meaning that the responders are
+ implicitly known to the server - e.g., by prior arrangement.
+ @param requestExtensions
+ OCSP request extensions. A null value means that there are no extensions.
+
+
+ @return an {@link IList} of {@link ResponderID}
+
+
+ @return OCSP request extensions
+
+
+ Encode this {@link OcspStatusRequest} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link OcspStatusRequest} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return an {@link OcspStatusRequest} object.
+ @throws IOException
+
+
+ RFC 5246
+
+ Note that the values here are implementation-specific and arbitrary. It is recommended not to
+ depend on the particular values (e.g. serialization).
+
+
+
+
+
+
+ An implementation of the TLS 1.0/1.1/1.2 record layer, allowing downgrade to SSLv3.
+
+
+ RFC 5246 E.1. "Earlier versions of the TLS specification were not fully clear on what the
+ record layer version number (TLSPlaintext.version) should contain when sending ClientHello
+ (i.e., before it is known which version of the protocol will be employed). Thus, TLS servers
+ compliant with this specification MUST accept any value {03,XX} as the record layer version
+ number for ClientHello."
+
+
+ @return {@link ConnectionEnd}
+
+
+ @return {@link CipherSuite}
+
+
+ @return {@link CompressionMethod}
+
+
+ @return {@link PRFAlgorithm}
+
+
+ Encode this {@link ServerDHParams} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerDHParams} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerDHParams} object.
+ @throws IOException
+
+
+ Encode this {@link ServerName} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerName} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerName} object.
+ @throws IOException
+
+
+ @param serverNameList an {@link IList} of {@link ServerName}.
+
+
+ @return an {@link IList} of {@link ServerName}.
+
+
+ Encode this {@link ServerNameList} to a {@link Stream}.
+
+ @param output
+ the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerNameList} from a {@link Stream}.
+
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link ServerNameList} object.
+ @throws IOException
+
+
+ Encode this {@link ServerSRPParams} to an {@link OutputStream}.
+
+ @param output
+ the {@link OutputStream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link ServerSRPParams} from an {@link InputStream}.
+
+ @param input
+ the {@link InputStream} to parse from.
+ @return a {@link ServerSRPParams} object.
+ @throws IOException
+
+
+ RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned)
+
+
+ RFC 5246 7.4.1.4.1
+
+
+ @param hash {@link HashAlgorithm}
+ @param signature {@link SignatureAlgorithm}
+
+
+ @return {@link HashAlgorithm}
+
+
+ @return {@link SignatureAlgorithm}
+
+
+ Encode this {@link SignatureAndHashAlgorithm} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link SignatureAndHashAlgorithm} from a {@link Stream}.
+
+ @param input the {@link Stream} to parse from.
+ @return a {@link SignatureAndHashAlgorithm} object.
+ @throws IOException
+
+
+ An implementation of {@link TlsSRPIdentityManager} that simulates the existence of "unknown" identities
+ to obscure the fact that there is no verifier for them.
+
+
+ Create a {@link SimulatedTlsSRPIdentityManager} that implements the algorithm from RFC 5054 2.5.1.3
+
+ @param group the {@link SRP6GroupParameters} defining the group that SRP is operating in
+ @param seedKey the secret "seed key" referred to in RFC 5054 2.5.1.3
+ @return an instance of {@link SimulatedTlsSRPIdentityManager}
+
+
+ HMAC implementation based on original internet draft for HMAC (RFC 2104)
+
+ The difference is that padding is concatentated versus XORed with the key
+
+ H(K + opad, H(K + ipad, text))
+
+
+ Base constructor for one of the standard digest algorithms that the byteLength of
+ the algorithm is know for. Behaviour is undefined for digests other than MD5 or SHA1.
+
+ @param digest the digest.
+
+
+ Reset the mac generator.
+
+
+ RFC 4680
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called by the protocol handler to report the server certificate.
+
+
+ This method is responsible for certificate verification and validation
+
+ The server received
+
+
+
+
+ Return client credentials in response to server's certificate request
+
+
+ A containing server certificate request details
+
+
+ A to be used for client authentication
+ (or null for no client authentication)
+
+
+
+
+
+ A generic TLS 1.0-1.2 / SSLv3 block cipher. This can be used for AES or 3DES for example.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called at the start of a new TLS session, before any other methods.
+
+
+ A
+
+
+
+ Return the session this client wants to resume, if any.
+ Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.
+
+ A representing the resumable session to be used for this connection,
+ or null to use a new session.
+
+
+
+
+ Return the to use for the TLSPlaintext.version field prior to
+ receiving the server version. NOTE: This method is not called for DTLS.
+
+
+ See RFC 5246 E.1.: "TLS clients that wish to negotiate with older servers MAY send any value
+ {03,XX} as the record layer version number. Typical values would be {03,00}, the lowest
+ version number supported by the client, and the value of ClientHello.client_version. No
+ single value will guarantee interoperability with all old servers, but this is a complex
+ topic beyond the scope of this document."
+
+ The to use.
+
+
+
+ Get the list of cipher suites that this client supports.
+
+
+ An array of values, each specifying a supported cipher suite.
+
+
+
+
+ Get the list of compression methods that this client supports.
+
+
+ An array of values, each specifying a supported compression method.
+
+
+
+
+ Get the (optional) table of client extensions to be included in (extended) client hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+
+
+
+ Notifies the client of the session_id sent in the ServerHello.
+
+ An array of
+
+
+
+ Report the cipher suite that was selected by the server.
+
+
+ The protocol handler validates this value against the offered cipher suites
+
+
+
+ A
+
+
+
+
+ Report the compression method that was selected by the server.
+
+
+ The protocol handler validates this value against the offered compression methods
+
+
+
+ A
+
+
+
+
+ Report the extensions from an extended server hello.
+
+
+ Will only be called if we returned a non-null result from .
+
+
+ A (Int32 -> byte[])
+
+
+
+ A list of
+
+
+
+
+ Return an implementation of to negotiate the key exchange
+ part of the protocol.
+
+
+ A
+
+
+
+
+
+ Return an implementation of to handle authentication
+ part of the protocol.
+
+
+
+
+ A list of
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message
+
+ This method will be called (only) when a NewSessionTicket handshake message is received. The
+ ticket is opaque to the client and clients MUST NOT examine the ticket under the assumption
+ that it complies with e.g. RFC 5077 4. Recommended Ticket Construction.
+
+ The ticket
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the server
+ @param output The stream of data to the server
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Initiates a TLS handshake in the role of client.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#NotifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsClient The {@link TlsClient} to use for the handshake.
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+ Used to get the resumable session, if any, used by this connection. Only available after the
+ handshake has successfully completed.
+
+ @return A {@link TlsSession} representing the resumable session used by this connection, or
+ null if no resumable session available.
+ @see TlsPeer#NotifyHandshakeComplete()
+
+
+ Export keying material according to RFC 5705: "Keying Material Exporters for TLS".
+
+ @param asciiLabel indicates which application will use the exported keys.
+ @param context_value allows the application using the exporter to mix its own data with the TLS PRF for
+ the exporter output.
+ @param length the number of bytes to generate
+ @return a pseudorandom bit string of 'length' bytes generated from the master_secret.
+
+
+ (D)TLS DH key exchange.
+
+
+ (D)TLS ECDHE key exchange (see RFC 4492).
+
+
+ (D)TLS ECDH key exchange (see RFC 4492).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic interface for key exchange implementations in (D)TLS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest.
+
+
+
+ Generate a new instance of an TlsMac.
+
+ @param context the TLS client context
+ @param digest The digest to use.
+ @param key A byte-array where the key for this MAC is located.
+ @param keyOff The number of bytes to skip, before the key starts in the buffer.
+ @param keyLen The length of the key.
+
+
+ @return the MAC write secret
+
+
+ @return The output length of this MAC.
+
+
+ Calculate the MAC for some given data.
+
+ @param type The message type of the message.
+ @param message A byte-buffer containing the message.
+ @param offset The number of bytes to skip, before the message starts.
+ @param length The length of the message.
+ @return A new byte-buffer containing the MAC value.
+
+
+
+ This exception will be thrown(only) when the connection is closed by the peer without sending a
+ close_notify warning alert.
+
+
+ If this happens, the TLS protocol cannot rule out truncation of the connection data (potentially
+ malicious). It may be possible to check for truncation via some property of a higher level protocol
+ built upon TLS, e.g.the Content-Length header for HTTPS.
+
+
+
+
+ A NULL CipherSuite, with optional MAC.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on
+ gmt_unix_time containing the current time, we recommend that implementors MAY provide the
+ ability to set gmt_unix_time as an option only, off by default."
+
+
+ true if the current time should be used in the gmt_unix_time field of
+ Random, or false if gmt_unix_time should contain a cryptographically
+ random value.
+
+
+
+
+ Report whether the server supports secure renegotiation
+
+
+ The protocol handler automatically processes the relevant extensions
+
+
+ A , true if the server supports secure renegotiation
+
+
+
+
+
+ Return an implementation of to handle record compression.
+
+ A
+
+
+
+
+ Return an implementation of to use for encryption/decryption.
+
+ A
+
+
+
+ This method will be called when an alert is raised by the protocol.
+
+
+ A human-readable message explaining what caused this alert. May be null.
+ The Exception that caused this alert to be raised. May be null.
+
+
+ This method will be called when an alert is received from the remote peer.
+
+
+
+
+ Notifies the peer that the handshake has been successfully completed.
+
+
+
+ This method is called, when a change cipher spec message is received.
+
+ @throws IOException If the message has an invalid content or the handshake is not in the correct
+ state.
+
+
+ Read data from the network. The method will return immediately, if there is still some data
+ left in the buffer, or block until some application data has been read from the network.
+
+ @param buf The buffer where the data will be copied to.
+ @param offset The position where the data will be placed in the buffer.
+ @param len The maximum number of bytes to read.
+ @return The number of bytes read.
+ @throws IOException If something goes wrong during reading data.
+
+
+ Send some application data to the remote system.
+
+ The method will handle fragmentation internally.
+
+ @param buf The buffer with the data.
+ @param offset The position in the buffer where the data is placed.
+ @param len The length of the data.
+ @throws IOException If something goes wrong during sending.
+
+
+ The secure bidirectional stream for this connection
+ Only allowed in blocking mode.
+
+
+ Should be called in non-blocking mode when the input data reaches EOF.
+
+
+ Offer input from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the input buffer is "owned" by this object. Other code
+ must not attempt to do anything with it.
+
+ This method will decrypt and process all records that are fully available.
+ If only part of a record is available, the buffer will be retained until the
+ remainder of the record is offered.
+
+ If any records containing application data were processed, the decrypted data
+ can be obtained using {@link #readInput(byte[], int, int)}. If any records
+ containing protocol data were processed, a response may have been generated.
+ You should always check to see if there is any available output after calling
+ this method by calling {@link #getAvailableOutputBytes()}.
+ @param input The input buffer to offer
+ @throws IOException If an error occurs while decrypting or processing a record
+
+
+ Gets the amount of received application data. A call to {@link #readInput(byte[], int, int)}
+ is guaranteed to be able to return at least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available application data
+
+
+ Retrieves received application data. Use {@link #getAvailableInputBytes()} to check
+ how much application data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the application data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Offer output from an arbitrary source. Only allowed in non-blocking mode.
+
+ After this method returns, the specified section of the buffer will have been
+ processed. Use {@link #readOutput(byte[], int, int)} to get the bytes to
+ transmit to the other peer.
+
+ This method must not be called until after the handshake is complete! Attempting
+ to call it before the handshake is complete will result in an exception.
+ @param buffer The buffer containing application data to encrypt
+ @param offset The offset at which to begin reading data
+ @param length The number of bytes of data to read
+ @throws IOException If an error occurs encrypting the data, or the handshake is not complete
+
+
+ Gets the amount of encrypted data available to be sent. A call to
+ {@link #readOutput(byte[], int, int)} is guaranteed to be able to return at
+ least this much data.
+
+ Only allowed in non-blocking mode.
+ @return The number of bytes of available encrypted data
+
+
+ Retrieves encrypted data to be sent. Use {@link #getAvailableOutputBytes()} to check
+ how much encrypted data is currently available. This method functions similarly to
+ {@link InputStream#read(byte[], int, int)}, except that it never blocks. If no data
+ is available, nothing will be copied and zero will be returned.
+
+ Only allowed in non-blocking mode.
+ @param buffer The buffer to hold the encrypted data
+ @param offset The start offset in the buffer at which the data is written
+ @param length The maximum number of bytes to read
+ @return The total number of bytes copied to the buffer. May be less than the
+ length specified if the length was greater than the amount of available data.
+
+
+ Closes this connection.
+
+ @throws IOException If something goes wrong during closing.
+
+
+ Make sure the InputStream 'buf' now empty. Fail otherwise.
+
+ @param buf The InputStream to check.
+ @throws IOException If 'buf' is not empty.
+
+
+ 'sender' only relevant to SSLv3
+
+
+ Both streams can be the same object
+
+
+ (D)TLS PSK key exchange (RFC 4279).
+
+
+ (D)TLS and SSLv3 RSA key exchange.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A (Int32 -> byte[]). Will never be null.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the (optional) table of server extensions to be included in (extended) server hello.
+
+
+ A (Int32 -> byte[]). May be null.
+
+
+
+
+
+ A (). May be null.
+
+
+
+
+
+
+
+
+ This method will be called (only) if the server included an extension of type
+ "status_request" with empty "extension_data" in the extended server hello. See RFC 3546
+ 3.6. Certificate Status Request. If a non-null is returned, it
+ is sent to the client as a handshake message of type "certificate_status".
+
+ A to be sent to the client (or null for none).
+
+
+
+
+
+
+
+
+
+ ()
+
+
+
+
+ Called by the protocol handler to report the client certificate, only if GetCertificateRequest
+ returned non-null.
+
+ Note: this method is responsible for certificate verification and validation.
+ the effective client certificate (may be an empty chain).
+
+
+
+ RFC 5077 3.3. NewSessionTicket Handshake Message.
+
+ This method will be called (only) if a NewSessionTicket extension was sent by the server. See
+ RFC 5077 4. Recommended Ticket Construction for recommended format and protection.
+
+ The ticket)
+
+
+
+ Constructor for blocking mode.
+ @param stream The bi-directional stream of data to/from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for blocking mode.
+ @param input The stream of data from the client
+ @param output The stream of data to the client
+ @param secureRandom Random number generator for various cryptographic functions
+
+
+ Constructor for non-blocking mode.
+
+ When data is received, use {@link #offerInput(java.nio.ByteBuffer)} to
+ provide the received ciphertext, then use
+ {@link #readInput(byte[], int, int)} to read the corresponding cleartext.
+
+ Similarly, when data needs to be sent, use
+ {@link #offerOutput(byte[], int, int)} to provide the cleartext, then use
+ {@link #readOutput(byte[], int, int)} to get the corresponding
+ ciphertext.
+
+ @param secureRandom
+ Random number generator for various cryptographic functions
+
+
+ Receives a TLS handshake in the role of server.
+
+ In blocking mode, this will not return until the handshake is complete.
+ In non-blocking mode, use {@link TlsPeer#notifyHandshakeComplete()} to
+ receive a callback when the handshake is complete.
+
+ @param tlsServer
+ @throws IOException If in blocking mode and handshake was not successful.
+
+
+
+
+
+ Check whether the given SRP group parameters are acceptable for use.
+
+ @param group the {@link SRP6GroupParameters} to check
+ @return true if (and only if) the specified group parameters are acceptable
+
+
+ Lookup the {@link TlsSRPLoginParameters} corresponding to the specified identity.
+
+ NOTE: To avoid "identity probing", unknown identities SHOULD be handled as recommended in RFC
+ 5054 2.5.1.3. {@link SimulatedTlsSRPIdentityManager} is provided for this purpose.
+
+ @param identity
+ the SRP identity sent by the connecting client
+ @return the {@link TlsSRPLoginParameters} for the specified identity, or else 'simulated'
+ parameters if the identity is not recognized. A null value is also allowed, but not
+ recommended.
+
+
+ (D)TLS SRP key exchange (RFC 5054).
+
+
+ RFC 5764 DTLS Extension to Establish Keys for SRTP.
+
+
+
+
+
+
+
+
+
+
+
+ Some helper functions for MicroTLS.
+
+
+ Add a 'signature_algorithms' extension to existing extensions.
+
+ @param extensions A {@link Hashtable} to add the extension to.
+ @param supportedSignatureAlgorithms {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ Get a 'signature_algorithms' extension from extensions.
+
+ @param extensions A {@link Hashtable} to get the extension from, if it is present.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}, or null.
+ @throws IOException
+
+
+ Create a 'signature_algorithms' extension value.
+
+ @param supportedSignatureAlgorithms A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @return A byte array suitable for use as an extension value.
+ @throws IOException
+
+
+ Read 'signature_algorithms' extension data.
+
+ @param extensionData The extension data.
+ @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}.
+ @throws IOException
+
+
+ RFC 6066 5.
+
+
+ Encode this {@link UrlAndHash} to a {@link Stream}.
+
+ @param output the {@link Stream} to encode to.
+ @throws IOException
+
+
+ Parse a {@link UrlAndHash} from a {@link Stream}.
+
+ @param context
+ the {@link TlsContext} of the current connection.
+ @param input
+ the {@link Stream} to parse from.
+ @return a {@link UrlAndHash} object.
+ @throws IOException
+
+
+ RFC 4681
+
+
+ RFC 5764 4.1.1
+
+
+ @param protectionProfiles see {@link SrtpProtectionProfile} for valid constants.
+ @param mki valid lengths from 0 to 255.
+
+
+ @return see {@link SrtpProtectionProfile} for valid constants.
+
+
+ @return valid lengths from 0 to 255.
+
+
+ return a = a + b - b preserved.
+
+
+ unsigned comparison on two arrays - note the arrays may
+ start with leading zeros.
+
+
+ return z = x / y - done in place (z value preserved, x contains the
+ remainder)
+
+
+ return whether or not a BigInteger is probably prime with a
+ probability of 1 - (1/2)**certainty.
+ From Knuth Vol 2, pg 395.
+
+
+ Calculate the numbers u1, u2, and u3 such that:
+
+ u1 * a + u2 * b = u3
+
+ where u3 is the greatest common divider of a and b.
+ a and b using the extended Euclid algorithm (refer p. 323
+ of The Art of Computer Programming vol 2, 2nd ed).
+ This also seems to have the side effect of calculating
+ some form of multiplicative inverse.
+
+ @param a First number to calculate gcd for
+ @param b Second number to calculate gcd for
+ @param u1Out the return object for the u1 value
+ @return The greatest common divisor of a and b
+
+
+ return w with w = x * x - w is assumed to have enough space.
+
+
+ return x with x = y * z - x is assumed to have enough space.
+
+
+ Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size)
+
+
+ Montgomery multiplication: a = x * y * R^(-1) mod m
+
+ Based algorithm 14.36 of Handbook of Applied Cryptography.
+
+ m, x, y should have length n
+ a should have length (n + 1)
+ b = 2^32, R = b^n
+
+ The result is put in x
+
+ NOTE: the indices of x, y, m, a different in HAC and in Java
+
+
+ return x = x % y - done in place (y value preserved)
+
+
+ do a left shift - this returns a new array.
+
+
+ do a right shift - this does it in place.
+
+
+ do a right shift by one - this does it in place.
+
+
+ returns x = x - y - we assume x is >= y
+
+
+ Class representing a simple version of a big decimal. A
+ SimpleBigDecimal is basically a
+ {@link java.math.BigInteger BigInteger} with a few digits on the right of
+ the decimal point. The number of (binary) digits on the right of the decimal
+ point is called the scale of the SimpleBigDecimal.
+ Unlike in {@link java.math.BigDecimal BigDecimal}, the scale is not adjusted
+ automatically, but must be set manually. All SimpleBigDecimals
+ taking part in the same arithmetic operation must have equal scale. The
+ result of a multiplication of two SimpleBigDecimals returns a
+ SimpleBigDecimal with double scale.
+
+
+ Returns a SimpleBigDecimal representing the same numerical
+ value as value.
+ @param value The value of the SimpleBigDecimal to be
+ created.
+ @param scale The scale of the SimpleBigDecimal to be
+ created.
+ @return The such created SimpleBigDecimal.
+
+
+ Constructor for SimpleBigDecimal. The value of the
+ constructed SimpleBigDecimal Equals bigInt /
+ 2scale.
+ @param bigInt The bigInt value parameter.
+ @param scale The scale of the constructed SimpleBigDecimal.
+
+
+ Class holding methods for point multiplication based on the window
+ τ-adic nonadjacent form (WTNAF). The algorithms are based on the
+ paper "Improved Algorithms for Arithmetic on Anomalous Binary Curves"
+ by Jerome A. Solinas. The paper first appeared in the Proceedings of
+ Crypto 1997.
+
+
+ The window width of WTNAF. The standard value of 4 is slightly less
+ than optimal for running time, but keeps space requirements for
+ precomputation low. For typical curves, a value of 5 or 6 results in
+ a better running time. When changing this value, the
+ αu's must be computed differently, see
+ e.g. "Guide to Elliptic Curve Cryptography", Darrel Hankerson,
+ Alfred Menezes, Scott Vanstone, Springer-Verlag New York Inc., 2004,
+ p. 121-122
+
+
+ 24
+
+
+ The αu's for a=0 as an array
+ of ZTauElements.
+
+
+ The αu's for a=0 as an array
+ of TNAFs.
+
+
+ The αu's for a=1 as an array
+ of ZTauElements.
+
+
+ The αu's for a=1 as an array
+ of TNAFs.
+
+
+ Computes the norm of an element λ of
+ Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The norm of λ.
+
+
+ Computes the norm of an element λ of
+ R[τ], where λ = u + vτ
+ and u and u are real numbers (elements of
+ R).
+ @param mu The parameter μ of the elliptic curve.
+ @param u The real part of the element λ of
+ R[τ].
+ @param v The τ-adic part of the element
+ λ of R[τ].
+ @return The norm of λ.
+
+
+ Rounds an element λ of R[τ]
+ to an element of Z[τ], such that their difference
+ has minimal norm. λ is given as
+ λ = λ0 + λ1τ.
+ @param lambda0 The component λ0.
+ @param lambda1 The component λ1.
+ @param mu The parameter μ of the elliptic curve. Must
+ equal 1 or -1.
+ @return The rounded element of Z[τ].
+ @throws ArgumentException if lambda0 and
+ lambda1 do not have same scale.
+
+
+ Approximate division by n. For an integer
+ k, the value λ = s k / n is
+ computed to c bits of accuracy.
+ @param k The parameter k.
+ @param s The curve parameter s0 or
+ s1.
+ @param vm The Lucas Sequence element Vm.
+ @param a The parameter a of the elliptic curve.
+ @param m The bit length of the finite field
+ Fm.
+ @param c The number of bits of accuracy, i.e. the scale of the returned
+ SimpleBigDecimal.
+ @return The value λ = s k / n computed to
+ c bits of accuracy.
+
+
+ Computes the τ-adic NAF (non-adjacent form) of an
+ element λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The τ-adic NAF of λ.
+
+
+ Applies the operation τ() to an
+ AbstractF2mPoint.
+ @param p The AbstractF2mPoint to which τ() is applied.
+ @return τ(p)
+
+
+ Returns the parameter μ of the elliptic curve.
+ @param curve The elliptic curve from which to obtain μ.
+ The curve must be a Koblitz curve, i.e. a Equals
+ 0 or 1 and b Equals
+ 1.
+ @return μ of the elliptic curve.
+ @throws ArgumentException if the given ECCurve is not a Koblitz
+ curve.
+
+
+ Calculates the Lucas Sequence elements Uk-1 and
+ Uk or Vk-1 and
+ Vk.
+ @param mu The parameter μ of the elliptic curve.
+ @param k The index of the second element of the Lucas Sequence to be
+ returned.
+ @param doV If set to true, computes Vk-1 and
+ Vk, otherwise Uk-1 and
+ Uk.
+ @return An array with 2 elements, containing Uk-1
+ and Uk or Vk-1
+ and Vk.
+
+
+ Computes the auxiliary value tw. If the width is
+ 4, then for mu = 1, tw = 6 and for
+ mu = -1, tw = 10
+ @param mu The parameter μ of the elliptic curve.
+ @param w The window width of the WTNAF.
+ @return the auxiliary value tw
+
+
+ Computes the auxiliary values s0 and
+ s1 used for partial modular reduction.
+ @param curve The elliptic curve for which to compute
+ s0 and s1.
+ @throws ArgumentException if curve is not a
+ Koblitz curve (Anomalous Binary Curve, ABC).
+
+
+ Partial modular reduction modulo
+ (τm - 1)/(τ - 1).
+ @param k The integer to be reduced.
+ @param m The bitlength of the underlying finite field.
+ @param a The parameter a of the elliptic curve.
+ @param s The auxiliary values s0 and
+ s1.
+ @param mu The parameter μ of the elliptic curve.
+ @param c The precision (number of bits of accuracy) of the partial
+ modular reduction.
+ @return ρ := k partmod (τm - 1)/(τ - 1)
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by a BigInteger using the reduced τ-adic
+ NAF (RTNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param k The BigInteger by which to Multiply p.
+ @return k * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param lambda The element λ of
+ Z[τ].
+ @return λ * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method, given the TNAF
+ of λ.
+ @param p The AbstractF2mPoint to Multiply.
+ @param u The the TNAF of λ..
+ @return λ * p
+
+
+ Computes the [τ]-adic window NAF of an element
+ λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @param width The window width of the resulting WNAF.
+ @param pow2w 2width.
+ @param tw The auxiliary value tw.
+ @param alpha The αu's for the window width.
+ @return The [τ]-adic window NAF of
+ λ.
+
+
+ Does the precomputation for WTNAF multiplication.
+ @param p The ECPoint for which to do the precomputation.
+ @param a The parameter a of the elliptic curve.
+ @return The precomputation array for p.
+
+
+ Class representing an element of Z[τ]. Let
+ λ be an element of Z[τ]. Then
+ λ is given as λ = u + vτ. The
+ components u and v may be used directly, there
+ are no accessor methods.
+ Immutable class.
+
+
+ The "real" part of λ.
+
+
+ The "τ-adic" part of λ.
+
+
+ Constructor for an element λ of
+ Z[τ].
+ @param u The "real" part of λ.
+ @param v The "τ-adic" part of
+ λ.
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(boolean)}
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.CreatePoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ return a sqrt root - the routine verifies that the calculation returns the right value - if
+ none exists it returns null.
+
+
+ Create a point which encodes with point compression.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ Create a point that encodes with or without point compresion.
+
+ @param curve
+ the curve to use
+ @param x
+ affine x co-ordinate
+ @param y
+ affine y co-ordinate
+ @param withCompression
+ if true encode with point compression
+
+ @deprecated per-point compression property will be removed, refer
+ {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ @deprecated Use ECCurve.createPoint to construct points
+
+
+ @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)}
+
+
+ Simple shift-and-add multiplication. Serves as reference implementation
+ to verify (possibly faster) implementations, and for very small scalars.
+
+ @param p
+ The point to multiply.
+ @param k
+ The multiplier.
+ @return The result of the point multiplication kP.
+
+
+ Base class for an elliptic curve.
+
+
+ Adds PreCompInfo for a point on this curve, under a given name. Used by
+ ECMultipliers to save the precomputation for this ECPoint for use
+ by subsequent multiplication.
+
+ @param point
+ The ECPoint to store precomputations for.
+ @param name
+ A String used to index precomputations of different types.
+ @param preCompInfo
+ The values precomputed by the ECMultiplier.
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately.
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately. An (optional) z-scaling factor can be applied; effectively
+ each z coordinate is scaled by this value prior to normalization (but only one
+ actual multiplication is needed).
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+ @param off
+ The start of the range of points to normalize
+ @param len
+ The length of the range of points to normalize
+ @param iso
+ The (optional) z-scaling factor - can be null
+
+
+ Sets the default ECMultiplier, unless already set.
+
+
+ Decode a point on this curve from its ASN.1 encoding. The different
+ encodings are taken account of, including point compression for
+ Fp (X9.62 s 4.2.1 pg 17).
+ @return The decoded point.
+
+
+ Elliptic curve over Fp
+
+
+ The auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Solves a quadratic equation z2 + z = beta(X9.62
+ D.1.6) The other solution is z + 1.
+
+ @param beta
+ The value to solve the qradratic equation for.
+ @return the solution for z2 + z = beta or
+ null if no solution exists.
+
+
+ @return the auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Returns true if this is a Koblitz curve (ABC curve).
+ @return true if this is a Koblitz curve (ABC curve), false otherwise
+
+
+ Elliptic curves over F2m. The Weierstrass equation is given by
+ y2 + xy = x3 + ax2 + b.
+
+
+ The exponent m of F2m.
+
+
+ TPB: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ PPB: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ The point at infinity on this curve.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Return true if curve uses a Trinomial basis.
+
+ @return true if curve Trinomial, false otherwise.
+
+
+ return the field name for this field.
+
+ @return the string "Fp".
+
+
+ return a sqrt root - the routine verifies that the calculation
+ returns the right value - if none exists it returns null.
+
+
+ Class representing the Elements of the finite field
+ F2m in polynomial basis (PB)
+ representation. Both trinomial (Tpb) and pentanomial (Ppb) polynomial
+ basis representations are supported. Gaussian normal basis (GNB)
+ representation is not supported.
+
+
+ Indicates gaussian normal basis representation (GNB). Number chosen
+ according to X9.62. GNB is not implemented at present.
+
+
+ Indicates trinomial basis representation (Tpb). Number chosen
+ according to X9.62.
+
+
+ Indicates pentanomial basis representation (Ppb). Number chosen
+ according to X9.62.
+
+
+ Tpb or Ppb.
+
+
+ The exponent m of F2m.
+
+
+ The LongArray holding the bits.
+
+
+ Constructor for Ppb.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Constructor for Tpb.
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Checks, if the ECFieldElements a and b
+ are elements of the same field F2m
+ (having the same representation).
+ @param a field element.
+ @param b field element to be compared.
+ @throws ArgumentException if a and b
+ are not elements of the same field
+ F2m (having the same
+ representation).
+
+
+ @return the representation of the field
+ F2m, either of
+ {@link F2mFieldElement.Tpb} (trinomial
+ basis representation) or
+ {@link F2mFieldElement.Ppb} (pentanomial
+ basis representation).
+
+
+ @return the degree m of the reduction polynomial
+ f(z).
+
+
+ @return Tpb: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ Ppb: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always returns 0
+ Ppb: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always set to 0
+ Ppb: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ base class for points on elliptic curves.
+
+
+ Normalizes this point, and then returns the affine x-coordinate.
+
+ Note: normalization can be expensive, this method is deprecated in favour
+ of caller-controlled normalization.
+
+
+ Normalizes this point, and then returns the affine y-coordinate.
+
+ Note: normalization can be expensive, this method is deprecated in favour
+ of caller-controlled normalization.
+
+
+ Returns the affine x-coordinate after checking that this point is normalized.
+
+ @return The affine x-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the affine y-coordinate after checking that this point is normalized
+
+ @return The affine y-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the x-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineXCoord if you expect the point to already have been normalized.
+
+ @return the x-coordinate of this point
+
+
+ Returns the y-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineYCoord if you expect the point to already have been normalized.
+
+ @return the y-coordinate of this point
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system.
+
+ @return a new ECPoint instance representing the same point, but with normalized coordinates
+
+
+ return the field element encoded with point compression. (S 4.3.6)
+
+
+ Multiplies this ECPoint by the given number.
+ @param k The multiplicator.
+ @return k * this.
+
+
+ Elliptic curve points over Fp
+
+
+ Create a point which encodes without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+
+ Create a point that encodes with or without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+
+ Elliptic curve points over F2m
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+ @param withCompression true if encode with point compression.
+
+
+ Constructor for point at infinity
+
+
+ Joye's double-add algorithm.
+
+
+ Interface for classes encapsulating a point multiplication algorithm
+ for ECPoints.
+
+
+ Multiplies the ECPoint p by k, i.e.
+ p is added k times to itself.
+ @param p The ECPoint to be multiplied.
+ @param k The factor by which p is multiplied.
+ @return p multiplied by k.
+
+
+ Class holding precomputation data for fixed-point multiplications.
+
+
+ Array holding the precomputed ECPoints used for a fixed
+ point multiplication.
+
+
+ The width used for the precomputation. If a larger width precomputation
+ is already available this may be larger than was requested, so calling
+ code should refer to the actual width.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left) using
+ mixed coordinates.
+
+
+ By default, addition will be done in Jacobian coordinates, and doubling will be done in
+ Modified Jacobian coordinates (independent of the original coordinate system of each point).
+
+
+ Montgomery ladder.
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (left-to-right).
+
+
+ Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left).
+
+
+ Interface for classes storing precomputation data for multiplication
+ algorithms. Used as a Memento (see GOF patterns) for
+ WNafMultiplier.
+
+
+ Class implementing the WNAF (Window Non-Adjacent Form) multiplication
+ algorithm.
+
+
+ Multiplies this by an integer k using the
+ Window NAF method.
+ @param k The integer by which this is multiplied.
+ @return A new ECPoint which equals this
+ multiplied by k.
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Class holding precomputation data for the WNAF (Window Non-Adjacent Form)
+ algorithm.
+
+
+ Array holding the precomputed ECPoints used for a Window
+ NAF multiplication.
+
+
+ Array holding the negations of the precomputed ECPoints used
+ for a Window NAF multiplication.
+
+
+ Holds an ECPoint representing Twice(this). Used for the
+ Window NAF multiplication to create or extend the precomputed values.
+
+
+ Computes the Window NAF (non-adjacent Form) of an integer.
+ @param width The width w of the Window NAF. The width is
+ defined as the minimal number w, such that for any
+ w consecutive digits in the resulting representation, at
+ most one is non-zero.
+ @param k The integer of which the Window NAF is computed.
+ @return The Window NAF of the given width, such that the following holds:
+ k = ∑i=0l-1 ki2i
+ , where the ki denote the elements of the
+ returned byte[].
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @return the window size to use
+
+
+ Class implementing the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by k using the reduced τ-adic NAF (RTNAF)
+ method.
+ @param p The AbstractF2mPoint to multiply.
+ @param k The integer by which to multiply k.
+ @return p multiplied by k.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ] using
+ the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to multiply.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @return p multiplied by λ.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the window τ-adic NAF (TNAF) method, given the
+ WTNAF of λ.
+ @param p The AbstractF2mPoint to multiply.
+ @param u The the WTNAF of λ..
+ @return λ * p
+
+
+ Class holding precomputation data for the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Array holding the precomputed AbstractF2mPoints used for the
+ WTNAF multiplication in
+ {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
+ WTauNafMultiplier.multiply()}.
+
+
+ 'Zeroless' Signed Digit Left-to-Right.
+
+
+ 'Zeroless' Signed Digit Right-to-Left.
+
+
+ Utility methods for generating primes and testing for primality.
+
+
+ Used to return the output from the
+ {@linkplain Primes#enhancedMRProbablePrimeTest(BigInteger, SecureRandom, int) Enhanced
+ Miller-Rabin Probabilistic Primality Test}
+
+
+ Used to return the output from the {@linkplain Primes#generateSTRandomPrime(Digest, int, byte[]) Shawe-Taylor Random_Prime Routine}
+
+
+ FIPS 186-4 C.6 Shawe-Taylor Random_Prime Routine
+
+ Construct a provable prime number using a hash function.
+
+ @param hash
+ the {@link Digest} instance to use (as "Hash()"). Cannot be null.
+ @param length
+ the length (in bits) of the prime to be generated. Must be at least 2.
+ @param inputSeed
+ the seed to be used for the generation of the requested prime. Cannot be null or
+ empty.
+ @return an {@link STOutput} instance containing the requested prime.
+
+
+ FIPS 186-4 C.3.2 Enhanced Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases. This is an
+ alternative to {@link #isMRProbablePrime(BigInteger, SecureRandom, int)} that provides more
+ information about a composite candidate, which may be useful when generating or validating
+ RSA moduli.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return an {@link MROutput} instance that can be further queried for details.
+
+
+ A fast check for small divisors, up to some implementation-specific limit.
+
+ @param candidate
+ the {@link BigInteger} instance to test for division by small factors.
+
+ @return true if the candidate is found to have any small factors,
+ false otherwise.
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test
+
+ Run several iterations of the Miller-Rabin algorithm with randomly-chosen bases.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param random
+ the source of randomness to use to choose bases.
+ @param iterations
+ the number of randomly-chosen bases to perform the test for.
+ @return false if any witness to compositeness is found amongst the chosen bases
+ (so candidate is definitely NOT prime), or else true
+ (indicating primality with some probability dependent on the number of iterations
+ that were performed).
+
+
+ FIPS 186-4 C.3.1 Miller-Rabin Probabilistic Primality Test (to a fixed base).
+
+ Run a single iteration of the Miller-Rabin algorithm against the specified base.
+
+ @param candidate
+ the {@link BigInteger} instance to test for primality.
+ @param baseValue
+ the base value to use for this iteration.
+ @return false if the specified base is a witness to compositeness (so
+ candidate is definitely NOT prime), or else true.
+
+
+
+
+ BasicOcspResponse ::= SEQUENCE {
+ tbsResponseData ResponseData,
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL
+ }
+
+
+
+
+ The DER encoding of the tbsResponseData field.
+ In the event of an encoding error.
+
+
+ The certificates, if any, associated with the response.
+ In the event of an encoding error.
+
+
+
+ Verify the signature against the tbsResponseData object we contain.
+
+
+
+ The ASN.1 encoded representation of this object.
+
+
+ Generator for basic OCSP response objects.
+
+
+ basic constructor
+
+
+ construct with the responderID to be the SHA-1 keyHash of the passed in public key.
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Add a response for a particular Certificate ID.
+
+ @param certID certificate ID details
+ @param thisUpdate date this response was valid on
+ @param nextUpdate date when next update should be requested
+ @param certStatus status of the certificate - null if okay
+ @param singleExtensions optional extensions
+
+
+ Set the extensions for the response.
+
+ @param responseExtensions the extension object to carry.
+
+
+
+ Generate the signed response using the passed in signature calculator.
+
+ Implementation of signing calculator factory.
+ The certificate chain associated with the response signer.
+ "produced at" date.
+
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ create from an issuer certificate and the serial number of the
+ certificate it signed.
+ @exception OcspException if any problems occur creating the id fields.
+
+
+ return the serial number for the certificate associated
+ with this request.
+
+
+ Create a new CertificateID for a new serial number derived from a previous one
+ calculated for the same CA certificate.
+
+ @param original the previously calculated CertificateID for the CA.
+ @param newSerialNumber the serial number for the new certificate of interest.
+
+ @return a new CertificateID for newSerialNumber
+
+
+
+ OcspRequest ::= SEQUENCE {
+ tbsRequest TBSRequest,
+ optionalSignature [0] EXPLICIT Signature OPTIONAL }
+
+ TBSRequest ::= SEQUENCE {
+ version [0] EXPLICIT Version DEFAULT v1,
+ requestorName [1] EXPLICIT GeneralName OPTIONAL,
+ requestList SEQUENCE OF Request,
+ requestExtensions [2] EXPLICIT Extensions OPTIONAL }
+
+ Signature ::= SEQUENCE {
+ signatureAlgorithm AlgorithmIdentifier,
+ signature BIT STRING,
+ certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL}
+
+ Version ::= INTEGER { v1(0) }
+
+ Request ::= SEQUENCE {
+ reqCert CertID,
+ singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL }
+
+ CertID ::= SEQUENCE {
+ hashAlgorithm AlgorithmIdentifier,
+ issuerNameHash OCTET STRING, -- Hash of Issuer's DN
+ issuerKeyHash OCTET STRING, -- Hash of Issuers public key
+ serialNumber CertificateSerialNumber }
+
+
+
+ Return the DER encoding of the tbsRequest field.
+ @return DER encoding of tbsRequest
+ @throws OcspException in the event of an encoding error.
+
+
+ return the object identifier representing the signature algorithm
+
+
+ If the request is signed return a possibly empty CertStore containing the certificates in the
+ request. If the request is not signed the method returns null.
+
+ @return null if not signed, a CertStore otherwise
+ @throws OcspException
+
+
+ Return whether or not this request is signed.
+
+ @return true if signed false otherwise.
+
+
+ Verify the signature against the TBSRequest object we contain.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Add a request for the given CertificateID.
+
+ @param certId certificate ID of interest
+
+
+ Add a request with extensions
+
+ @param certId certificate ID of interest
+ @param singleRequestExtensions the extensions to attach to the request
+
+
+ Set the requestor name to the passed in X509Principal
+
+ @param requestorName a X509Principal representing the requestor name.
+
+
+ Generate an unsigned request
+
+ @return the OcspReq
+ @throws OcspException
+
+
+ Return an IEnumerable of the signature names supported by the generator.
+
+ @return an IEnumerable containing recognised names.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ base generator for an OCSP response - at the moment this only supports the
+ generation of responses containing BasicOCSP responses.
+
+
+ note 4 is not used.
+
+
+ Carrier for a ResponderID.
+
+
+ wrapper for the RevokedInfo object
+
+
+ return the revocation reason. Note: this field is optional, test for it
+ with hasRevocationReason() first.
+ @exception InvalidOperationException if a reason is asked for and none is avaliable
+
+
+ Return the status object for the response - null indicates good.
+
+ @return the status object for the response, null if it is good.
+
+
+ return the NextUpdate value - note: this is an optional field so may
+ be returned as null.
+
+ @return nextUpdate, or null if not present.
+
+
+ wrapper for the UnknownInfo object
+
+
+
+ Utility class for creating IBasicAgreement objects from their names/Oids
+
+
+
+
+ Cipher Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Utility class for creating IDigest objects from their names/Oids
+
+
+
+
+ Returns a ObjectIdentifier for a given digest mechanism.
+
+ A string representation of the digest meanism.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Utility class for creating HMac object from their names/Oids
+
+
+
+
+
+
+
+
+
+ Returns a ObjectIdentifier for a give encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the Oid is not available.
+
+
+
+ Create and auto-seed an instance based on the given algorithm.
+
+ Equivalent to GetInstance(algorithm, true)
+ e.g. "SHA256PRNG"
+
+
+
+ Create an instance based on the given algorithm, with optional auto-seeding
+
+ e.g. "SHA256PRNG"
+ If true, the instance will be auto-seeded.
+
+
+
+ To replicate existing predictable output, replace with GetInstance("SHA1PRNG", false), followed by SetSeed(seed)
+
+
+
+ Use the specified instance of IRandomGenerator as random source.
+
+ This constructor performs no seeding of either the IRandomGenerator or the
+ constructed SecureRandom. It is the responsibility of the client to provide
+ proper seed material as necessary/appropriate for the given IRandomGenerator
+ implementation.
+
+ The source to generate all random bytes from.
+
+
+ base constructor.
+
+
+ create a SecurityUtilityException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+
+ Signer Utility class contains methods that can not be specifically grouped into other classes.
+
+
+
+
+ Returns an ObjectIdentifier for a given encoding.
+
+ A string representation of the encoding.
+ A DerObjectIdentifier, null if the OID is not available.
+
+
+
+ Utility class for creating IWrapper objects from their names/Oids
+
+
+
+ PEM generator for the original set of PEM objects used in Open SSL.
+
+
+ Class for reading OpenSSL PEM encoded streams containing
+ X509 certificates, PKCS8 encoded keys and PKCS7 objects.
+
+ In the case of PKCS7 objects the reader will return a CMS ContentInfo object. Keys and
+ Certificates will be returned using the appropriate java.security type.
+
+
+ Create a new PemReader
+
+ @param reader the Reader
+
+
+ Create a new PemReader with a password finder
+
+ @param reader the Reader
+ @param pFinder the password finder
+
+
+ Reads in a X509Certificate.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509CRL.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS10 certification request.
+
+ @return the certificate request.
+ @throws IOException if an I/O error occured
+
+
+ Reads in a X509 Attribute Certificate.
+
+ @return the X509 Attribute Certificate
+ @throws IOException if an I/O error occured
+
+
+ Reads in a PKCS7 object. This returns a ContentInfo object suitable for use with the CMS
+ API.
+
+ @return the X509Certificate
+ @throws IOException if an I/O error occured
+
+
+ Read a Key Pair
+
+
+ General purpose writer for OpenSSL PEM objects.
+
+
+ The TextWriter object to write the output to.
+
+
+ Constructor for an unencrypted private key PEM object.
+
+ @param key private key to be encoded.
+
+
+ Constructor for an encrypted private key PEM object.
+
+ @param key private key to be encoded
+ @param algorithm encryption algorithm to use
+ @param provider provider to use
+ @throws NoSuchAlgorithmException if algorithm/mode cannot be found
+
+
+
+ A class for verifying and creating Pkcs10 Certification requests.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ The factory for signature calculators to sign the PKCS#10 request with.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+ Matching Private key for nominated (above) public key to be used to sign the request.
+
+
+
+ Get the public key.
+
+ The public key.
+
+
+
+ Verify Pkcs10 Cert Request is valid.
+
+ true = valid.
+
+
+
+ A class for creating and verifying Pkcs10 Certification requests (this is an extension on ).
+ The requests are made using delay signing. This is useful for situations where
+ the private key is in another environment and not directly accessible (e.g. HSM)
+ So the first step creates the request, then the signing is done outside this
+ object and the signature is then used to complete the request.
+
+
+ CertificationRequest ::= Sequence {
+ certificationRequestInfo CertificationRequestInfo,
+ signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
+ signature BIT STRING
+ }
+
+ CertificationRequestInfo ::= Sequence {
+ version Integer { v1(0) } (v1,...),
+ subject Name,
+ subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
+ attributes [0] Attributes{{ CRIAttributes }}
+ }
+
+ Attributes { ATTRIBUTE:IOSet } ::= Set OF Attr{{ IOSet }}
+
+ Attr { ATTRIBUTE:IOSet } ::= Sequence {
+ type ATTRIBUTE.&id({IOSet}),
+ values Set SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
+ }
+
+ see
+
+
+
+ Instantiate a Pkcs10CertificationRequest object with the necessary credentials.
+
+ Name of Sig Alg.
+ X509Name of subject eg OU="My unit." O="My Organisatioin" C="au"
+ Public Key to be included in cert reqest.
+ ASN1Set of Attributes.
+
+ After the object is constructed use the and finally the
+ SignRequest methods to finalize the request.
+
+
+
+ simply return the cert entry for the private key
+
+
+ Utility class for reencoding PKCS#12 files to definite length.
+
+
+ Just re-encode the outer layer of the PKCS#12 file to definite length encoding.
+
+ @param berPKCS12File - original PKCS#12 file
+ @return a byte array representing the DER encoding of the PFX structure
+ @throws IOException
+
+
+ Re-encode the PKCS#12 structure to definite length encoding at the inner layer
+ as well, recomputing the MAC accordingly.
+
+ @param berPKCS12File - original PKCS12 file.
+ @param provider - provider to use for MAC calculation.
+ @return a byte array representing the DER encoding of the PFX structure.
+ @throws IOException on parsing, encoding errors.
+
+
+
+ Returns the revocationDate.
+
+
+
+
+ Returns the certStatus.
+
+
+
+ Returns an immutable Set of X.509 attribute certificate
+ extensions that this PkixAttrCertChecker supports or
+ null if no extensions are supported.
+
+ Each element of the set is a String representing the
+ Object Identifier (OID) of the X.509 extension that is supported.
+
+
+ All X.509 attribute certificate extensions that a
+ PkixAttrCertChecker might possibly be able to process
+ should be included in the set.
+
+
+ @return an immutable Set of X.509 extension OIDs (in
+ String format) supported by this
+ PkixAttrCertChecker, or null if no
+ extensions are supported
+
+
+ Performs checks on the specified attribute certificate. Every handled
+ extension is rmeoved from the unresolvedCritExts
+ collection.
+
+ @param attrCert The attribute certificate to be checked.
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param holderCertPath The certificate path which belongs to the holder
+ certificate.
+ @param unresolvedCritExts a Collection of OID strings
+ representing the current set of unresolved critical extensions
+ @throws CertPathValidatorException if the specified attribute certificate
+ does not pass the check.
+
+
+ Returns a clone of this object.
+
+ @return a copy of this PkixAttrCertChecker
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+ CertPathValidatorSpi implementation for X.509 Attribute Certificates la RFC 3281.
+
+ @see org.bouncycastle.x509.ExtendedPkixParameters
+
+
+ Validates an attribute certificate with the given certificate path.
+
+
+ params must be an instance of
+ ExtendedPkixParameters.
+
+ The target constraints in the params must be an
+ X509AttrCertStoreSelector with at least the attribute
+ certificate criterion set. Obey that also target informations may be
+ necessary to correctly validate this attribute certificate.
+
+ The attribute certificate issuer must be added to the trusted attribute
+ issuers with {@link ExtendedPkixParameters#setTrustedACIssuers(Set)}.
+
+ @param certPath The certificate path which belongs to the attribute
+ certificate issuer public key certificate.
+ @param params The PKIX parameters.
+ @return A PKIXCertPathValidatorResult of the result of
+ validating the certPath.
+ @throws InvalidAlgorithmParameterException if params is
+ inappropriate for this validator.
+ @throws CertPathValidatorException if the verification fails.
+
+
+
+ Summary description for PkixBuilderParameters.
+
+
+
+ Returns an instance of PkixBuilderParameters.
+
+ This method can be used to get a copy from other
+ PKIXBuilderParameters, PKIXParameters,
+ and ExtendedPKIXParameters instances.
+
+
+ @param pkixParams The PKIX parameters to create a copy of.
+ @return An PkixBuilderParameters instance.
+
+
+
+ Excluded certificates are not used for building a certification path.
+
+ the excluded certificates.
+
+
+
+ Sets the excluded certificates which are not used for building a
+ certification path. If the ISet is null an
+ empty set is assumed.
+
+
+ The given set is cloned to protect it against subsequent modifications.
+
+ The excluded certificates to set.
+
+
+ Can alse handle ExtendedPKIXBuilderParameters and
+ PKIXBuilderParameters.
+
+ @param params Parameters to set.
+ @see org.bouncycastle.x509.ExtendedPKIXParameters#setParams(java.security.cert.PKIXParameters)
+
+
+ Makes a copy of this PKIXParameters object. Changes to the
+ copy will not affect the original and vice versa.
+
+ @return a copy of this PKIXParameters object
+
+
+ An immutable sequence of certificates (a certification path).
+
+ This is an abstract class that defines the methods common to all CertPaths.
+ Subclasses can handle different kinds of certificates (X.509, PGP, etc.).
+
+ All CertPath objects have a type, a list of Certificates, and one or more
+ supported encodings. Because the CertPath class is immutable, a CertPath
+ cannot change in any externally visible way after being constructed. This
+ stipulation applies to all public fields and methods of this class and any
+ added or overridden by subclasses.
+
+ The type is a string that identifies the type of Certificates in the
+ certification path. For each certificate cert in a certification path
+ certPath, cert.getType().equals(certPath.getType()) must be true.
+
+ The list of Certificates is an ordered List of zero or more Certificates.
+ This List and all of the Certificates contained in it must be immutable.
+
+ Each CertPath object must support one or more encodings so that the object
+ can be translated into a byte array for storage or transmission to other
+ parties. Preferably, these encodings should be well-documented standards
+ (such as PKCS#7). One of the encodings supported by a CertPath is considered
+ the default encoding. This encoding is used if no encoding is explicitly
+ requested (for the {@link #getEncoded()} method, for instance).
+
+ All CertPath objects are also Serializable. CertPath objects are resolved
+ into an alternate {@link CertPathRep} object during serialization. This
+ allows a CertPath object to be serialized into an equivalent representation
+ regardless of its underlying implementation.
+
+ CertPath objects can be created with a CertificateFactory or they can be
+ returned by other classes, such as a CertPathBuilder.
+
+ By convention, X.509 CertPaths (consisting of X509Certificates), are ordered
+ starting with the target certificate and ending with a certificate issued by
+ the trust anchor. That is, the issuer of one certificate is the subject of
+ the following one. The certificate representing the
+ {@link TrustAnchor TrustAnchor} should not be included in the certification
+ path. Unvalidated X.509 CertPaths may not follow these conventions. PKIX
+ CertPathValidators will detect any departure from these conventions that
+ cause the certification path to be invalid and throw a
+ CertPathValidatorException.
+
+ Concurrent Access
+
+ All CertPath objects must be thread-safe. That is, multiple threads may
+ concurrently invoke the methods defined in this class on a single CertPath
+ object (or more than one) with no ill effects. This is also true for the List
+ returned by CertPath.getCertificates.
+
+ Requiring CertPath objects to be immutable and thread-safe allows them to be
+ passed around to various pieces of code without worrying about coordinating
+ access. Providing this thread-safety is generally not difficult, since the
+ CertPath and List objects in question are immutable.
+
+ @see CertificateFactory
+ @see CertPathBuilder
+
+ CertPath implementation for X.509 certificates.
+
+
+
+ @param certs
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Creates a CertPath of the specified type.
+ This constructor is protected because most users should use
+ a CertificateFactory to create CertPaths.
+
+ @param type the standard name of the type of Certificatesin this path
+
+
+
+ Returns an iteration of the encodings supported by this
+ certification path, with the default encoding
+ first. Attempts to modify the returned Iterator via its
+ remove method result in an UnsupportedOperationException.
+
+ @return an Iterator over the names of the supported encodings (as Strings)
+
+
+
+ Compares this certification path for equality with the specified object.
+ Two CertPaths are equal if and only if their types are equal and their
+ certificate Lists (and by implication the Certificates in those Lists)
+ are equal. A CertPath is never equal to an object that is not a CertPath.
+
+ This algorithm is implemented by this method. If it is overridden, the
+ behavior specified here must be maintained.
+
+ @param other
+ the object to test for equality with this certification path
+
+ @return true if the specified object is equal to this certification path,
+ false otherwise
+
+ @see Object#hashCode() Object.hashCode()
+
+
+ Returns the encoded form of this certification path, using
+ the default encoding.
+
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error occurs
+
+
+
+ Returns the encoded form of this certification path, using
+ the specified encoding.
+
+ @param encoding the name of the encoding to use
+ @return the encoded bytes
+ @exception CertificateEncodingException if an encoding error
+ occurs or the encoding requested is not supported
+
+
+
+
+ Returns the list of certificates in this certification
+ path.
+
+
+
+ Return a DERObject containing the encoded certificate.
+
+ @param cert the X509Certificate object to be encoded
+
+ @return the DERObject
+
+
+
+ Implements the PKIX CertPathBuilding algorithm for BouncyCastle.
+
+ @see CertPathBuilderSpi
+
+
+ Build and validate a CertPath using the given parameter.
+
+ @param params PKIXBuilderParameters object containing all information to
+ build the CertPath
+
+
+
+ Summary description for PkixCertPathBuilderException.
+
+
+
+
+ Summary description for PkixCertPathBuilderResult.
+
+
+
+ * Initializes the internal state of this PKIXCertPathChecker.
+ *
+ * The forward flag specifies the order that certificates
+ * will be passed to the {@link #check check} method (forward or reverse). A
+ * PKIXCertPathChecker must support reverse checking
+ * and may support forward checking.
+ *
+ *
+ * @param forward
+ * the order that certificates are presented to the
+ * check method. If true,
+ * certificates are presented from target to most-trusted CA
+ * (forward); if false, from most-trusted CA to
+ * target (reverse).
+ * @exception CertPathValidatorException
+ * if this PKIXCertPathChecker is unable to
+ * check certificates in the specified order; it should never
+ * be thrown if the forward flag is false since reverse
+ * checking must be supported
+
+
+ Indicates if forward checking is supported. Forward checking refers to
+ the ability of the PKIXCertPathChecker to perform its
+ checks when certificates are presented to the check method
+ in the forward direction (from target to most-trusted CA).
+
+ @return true if forward checking is supported,
+ false otherwise
+
+
+ * Returns an immutable Set of X.509 certificate extensions
+ * that this PKIXCertPathChecker supports (i.e. recognizes,
+ * is able to process), or null if no extensions are
+ * supported.
+ *
+ * Each element of the set is a String representing the
+ * Object Identifier (OID) of the X.509 extension that is supported. The OID
+ * is represented by a set of nonnegative integers separated by periods.
+ *
+ * All X.509 certificate extensions that a PKIXCertPathChecker
+ * might possibly be able to process should be included in the set.
+ *
+ *
+ * @return an immutable Set of X.509 extension OIDs (in
+ * String format) supported by this
+ * PKIXCertPathChecker, or null if no
+ * extensions are supported
+
+
+ Performs the check(s) on the specified certificate using its internal
+ state and removes any critical extensions that it processes from the
+ specified collection of OID strings that represent the unresolved
+ critical extensions. The certificates are presented in the order
+ specified by the init method.
+
+ @param cert
+ the Certificate to be checked
+ @param unresolvedCritExts
+ a Collection of OID strings representing the
+ current set of unresolved critical extensions
+ @exception CertPathValidatorException
+ if the specified certificate does not pass the check
+
+
+ Returns a clone of this object. Calls the Object.clone()
+ method. All subclasses which maintain state must support and override
+ this method, if necessary.
+
+ @return a copy of this PKIXCertPathChecker
+
+
+ The Service Provider Interface (SPI)
+ for the {@link CertPathValidator CertPathValidator} class. All
+ CertPathValidator implementations must include a class (the
+ SPI class) that extends this class (CertPathValidatorSpi)
+ and implements all of its methods. In general, instances of this class
+ should only be accessed through the CertPathValidator class.
+ For details, see the Java Cryptography Architecture.
+
+ Concurrent Access
+
+ Instances of this class need not be protected against concurrent
+ access from multiple threads. Threads that need to access a single
+ CertPathValidatorSpi instance concurrently should synchronize
+ amongst themselves and provide the necessary locking before calling the
+ wrapping CertPathValidator object.
+
+ However, implementations of CertPathValidatorSpi may still
+ encounter concurrency issues, since multiple threads each
+ manipulating a different CertPathValidatorSpi instance need not
+ synchronize.
+
+ CertPathValidatorSpi implementation for X.509 Certificate validation a la RFC
+ 3280.
+
+
+
+ An exception indicating one of a variety of problems encountered when
+ validating a certification path.
+
+ A CertPathValidatorException provides support for wrapping
+ exceptions. The {@link #getCause getCause} method returns the throwable,
+ if any, that caused this exception to be thrown.
+
+ A CertPathValidatorException may also include the
+ certification path that was being validated when the exception was thrown
+ and the index of the certificate in the certification path that caused the
+ exception to be thrown. Use the {@link #getCertPath getCertPath} and
+ {@link #getIndex getIndex} methods to retrieve this information.
+
+ Concurrent Access
+
+ Unless otherwise specified, the methods defined in this class are not
+ thread-safe. Multiple threads that need to access a single
+ object concurrently should synchronize amongst themselves and
+ provide the necessary locking. Multiple threads each manipulating
+ separate objects need not synchronize.
+
+ @see CertPathValidator
+
+
+
+
+ Creates a PkixCertPathValidatorException with the given detail
+ message. A detail message is a String that describes this
+ particular exception.
+
+ the detail message
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message and cause.
+
+ the detail message
+ the cause (which is saved for later retrieval by the
+ {@link #getCause getCause()} method). (A null
+ value is permitted, and indicates that the cause is
+ nonexistent or unknown.)
+
+
+
+ Creates a PkixCertPathValidatorException with the specified
+ detail message, cause, certification path, and index.
+
+ the detail message (or null if none)
+ the cause (or null if none)
+ the certification path that was in the process of being
+ validated when the error was encountered
+ the index of the certificate in the certification path that *
+
+
+
+ Returns the detail message for this CertPathValidatorException.
+
+ the detail message, or null if neither the message nor cause were specified
+
+
+ Returns the certification path that was being validated when the
+ exception was thrown.
+
+ @return the CertPath that was being validated when the
+ exception was thrown (or null if not specified)
+
+
+ Returns the index of the certificate in the certification path that
+ caused the exception to be thrown. Note that the list of certificates in
+ a CertPath is zero based. If no index has been set, -1 is
+ returned.
+
+ @return the index that has been set, or -1 if none has been set
+
+
+
+ Summary description for PkixCertPathValidatorResult.
+
+
+
+
+ Summary description for PkixCertPathValidatorUtilities.
+
+
+
+
+ key usage bits
+
+
+
+
+ Search the given Set of TrustAnchor's for one that is the
+ issuer of the given X509 certificate.
+
+ the X509 certificate
+ a Set of TrustAnchor's
+ the TrustAnchor object if found or
+ null if not.
+
+ @exception
+
+
+
+ Returns the issuer of an attribute certificate or certificate.
+
+ The attribute certificate or certificate.
+ The issuer as X500Principal.
+
+
+ Return the next working key inheriting DSA parameters if necessary.
+
+ This methods inherits DSA parameters from the indexed certificate or
+ previous certificates in the certificate chain to the returned
+ PublicKey. The list is searched upwards, meaning the end
+ certificate is at position 0 and previous certificates are following.
+
+
+ If the indexed certificate does not contain a DSA key this method simply
+ returns the public key. If the DSA key already contains DSA parameters
+ the key is also only returned.
+
+
+ @param certs The certification path.
+ @param index The index of the certificate which contains the public key
+ which should be extended with DSA parameters.
+ @return The public key of the certificate in list position
+ index extended with DSA parameters if applicable.
+ @throws Exception if DSA parameters cannot be inherited.
+
+
+
+ Return a Collection of all certificates or attribute certificates found
+ in the X509Store's that are matching the certSelect criteriums.
+
+ a {@link Selector} object that will be used to select
+ the certificates
+ a List containing only X509Store objects. These
+ are used to search for certificates.
+ a Collection of all found or
+ objects.
+ May be empty but never null.
+
+
+
+ Add the CRL issuers from the cRLIssuer field of the distribution point or
+ from the certificate if not given to the issuer criterion of the
+ selector.
+
+ The issuerPrincipals are a collection with a single
+ X500Principal for X509Certificates. For
+ {@link X509AttributeCertificate}s the issuer may contain more than one
+ X500Principal.
+
+
+ @param dp The distribution point.
+ @param issuerPrincipals The issuers of the certificate or attribute
+ certificate which contains the distribution point.
+ @param selector The CRL selector.
+ @param pkixParams The PKIX parameters containing the cert stores.
+ @throws Exception if an exception occurs while processing.
+ @throws ClassCastException if issuerPrincipals does not
+ contain only X500Principals.
+
+
+ Fetches complete CRLs according to RFC 3280.
+
+ @param dp The distribution point for which the complete CRL
+ @param cert The X509Certificate or
+ {@link org.bouncycastle.x509.X509AttributeCertificate} for
+ which the CRL should be searched.
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @return A Set of X509CRLs with complete
+ CRLs.
+ @throws Exception if an exception occurs while picking the CRLs
+ or no CRLs are found.
+
+
+ Fetches delta CRLs according to RFC 3280 section 5.2.4.
+
+ @param currentDate The date for which the delta CRLs must be valid.
+ @param paramsPKIX The extended PKIX parameters.
+ @param completeCRL The complete CRL the delta CRL is for.
+ @return A Set of X509CRLs with delta CRLs.
+ @throws Exception if an exception occurs while picking the delta
+ CRLs.
+
+
+ Find the issuer certificates of a given certificate.
+
+ @param cert
+ The certificate for which an issuer should be found.
+ @param pkixParams
+ @return A Collection object containing the issuer
+ X509Certificates. Never null.
+
+ @exception Exception
+ if an error occurs.
+
+
+
+ Extract the value of the given extension, if it exists.
+
+ The extension object.
+ The object identifier to obtain.
+ Asn1Object
+ if the extension cannot be read.
+
+
+
+ crl checking
+ Return a Collection of all CRLs found in the X509Store's that are
+ matching the crlSelect criteriums.
+
+ a {@link X509CRLStoreSelector} object that will be used
+ to select the CRLs
+ a List containing only {@link org.bouncycastle.x509.X509Store
+ X509Store} objects. These are used to search for CRLs
+ a Collection of all found {@link X509CRL X509CRL} objects. May be
+ empty but never null.
+
+
+
+ Returns the intersection of the permitted IP ranges in
+ permitted with ip.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ips The IP address with its subnet mask.
+ @return The Set of permitted IP ranges intersected with
+ ip.
+
+
+ Returns the union of the excluded IP ranges in excluded
+ with ip.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address with its subnet mask.
+ @return The Set of excluded IP ranges unified with
+ ip as byte arrays.
+
+
+ Calculates the union if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the union of both addresses.
+
+
+ Calculates the interesction if two IP ranges.
+
+ @param ipWithSubmask1 The first IP address with its subnet mask.
+ @param ipWithSubmask2 The second IP address with its subnet mask.
+ @return A Set with the single IP address with its subnet
+ mask as a byte array or an empty Set.
+
+
+ Concatenates the IP address with its subnet mask.
+
+ @param ip The IP address.
+ @param subnetMask Its subnet mask.
+ @return The concatenated IP address with its subnet mask.
+
+
+ Splits the IP addresses and their subnet mask.
+
+ @param ipWithSubmask1 The first IP address with the subnet mask.
+ @param ipWithSubmask2 The second IP address with the subnet mask.
+ @return An array with two elements. Each element contains the IP address
+ and the subnet mask in this order.
+
+
+ Based on the two IP addresses and their subnet masks the IP range is
+ computed for each IP address - subnet mask pair and returned as the
+ minimum IP address and the maximum address of the range.
+
+ @param ip1 The first IP address.
+ @param subnetmask1 The subnet mask of the first IP address.
+ @param ip2 The second IP address.
+ @param subnetmask2 The subnet mask of the second IP address.
+ @return A array with two elements. The first/second element contains the
+ min and max IP address of the first/second IP address and its
+ subnet mask.
+
+
+ Checks if the IP ip is included in the permitted ISet
+ permitted.
+
+ @param permitted A Set of permitted IP addresses with
+ their subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is not permitted.
+
+
+ Checks if the IP ip is included in the excluded ISet
+ excluded.
+
+ @param excluded A Set of excluded IP addresses with their
+ subnet mask as byte arrays.
+ @param ip The IP address.
+ @throws PkixNameConstraintValidatorException
+ if the IP is excluded.
+
+
+ Checks if the IP address ip is constrained by
+ constraint.
+
+ @param ip The IP address.
+ @param constraint The constraint. This is an IP address concatenated with
+ its subnetmask.
+ @return true if constrained, false
+ otherwise.
+
+
+ The common part of email1 and email2 is
+ added to the union union. If email1 and
+ email2 have nothing in common they are added both.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param union The union.
+
+
+ The most restricting part from email1 and
+ email2 is added to the intersection intersect.
+
+ @param email1 Email address constraint 1.
+ @param email2 Email address constraint 2.
+ @param intersect The intersection.
+
+
+ Checks if the given GeneralName is in the permitted ISet.
+
+ @param name The GeneralName
+ @throws PkixNameConstraintValidatorException
+ If the name
+
+
+ Check if the given GeneralName is contained in the excluded ISet.
+
+ @param name The GeneralName.
+ @throws PkixNameConstraintValidatorException
+ If the name is
+ excluded.
+
+
+ Updates the permitted ISet of these name constraints with the intersection
+ with the given subtree.
+
+ @param permitted The permitted subtrees
+
+
+ Adds a subtree to the excluded ISet of these name constraints.
+
+ @param subtree A subtree with an excluded GeneralName.
+
+
+ Returns the maximum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The maximum IP address.
+
+
+ Returns the minimum IP address.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The minimum IP address.
+
+
+ Compares IP address ip1 with ip2. If ip1
+ is equal to ip2 0 is returned. If ip1 is bigger 1 is returned, -1
+ otherwise.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return 0 if ip1 is equal to ip2, 1 if ip1 is bigger, -1 otherwise.
+
+
+ Returns the logical OR of the IP addresses ip1 and
+ ip2.
+
+ @param ip1 The first IP address.
+ @param ip2 The second IP address.
+ @return The OR of ip1 and ip2.
+
+
+ Stringifies an IPv4 or v6 address with subnet mask.
+
+ @param ip The IP with subnet mask.
+ @return The stringified IP address.
+
+
+
+ Summary description for PkixParameters.
+
+
+
+ This is the default PKIX validity model. Actually there are two variants
+ of this: The PKIX model and the modified PKIX model. The PKIX model
+ verifies that all involved certificates must have been valid at the
+ current time. The modified PKIX model verifies that all involved
+ certificates were valid at the signing time. Both are indirectly choosen
+ with the {@link PKIXParameters#setDate(java.util.Date)} method, so this
+ methods sets the Date when all certificates must have been
+ valid.
+
+
+ This model uses the following validity model. Each certificate must have
+ been valid at the moment where is was used. That means the end
+ certificate must have been valid at the time the signature was done. The
+ CA certificate which signed the end certificate must have been valid,
+ when the end certificate was signed. The CA (or Root CA) certificate must
+ have been valid, when the CA certificate was signed and so on. So the
+ {@link PKIXParameters#setDate(java.util.Date)} method sets the time, when
+ the end certificate must have been valid. It is used e.g.
+ in the German signature law.
+
+
+ Creates an instance of PKIXParameters with the specified Set of
+ most-trusted CAs. Each element of the set is a TrustAnchor.
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+ @param trustAnchors
+ a Set of TrustAnchors
+
+ @exception InvalidAlgorithmParameterException
+ if the specified Set is empty
+ (trustAnchors.isEmpty() == true)
+ @exception NullPointerException
+ if the specified Set is null
+ @exception ClassCastException
+ if any of the elements in the Set are not of type
+ java.security.cert.TrustAnchor
+
+
+ Returns the required constraints on the target certificate. The
+ constraints are returned as an instance of CertSelector. If
+ null, no constraints are defined.
+
+ Note that the CertSelector returned is cloned to protect against
+ subsequent modifications.
+
+ @return a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #setTargetCertConstraints(CertSelector)
+
+
+ Sets the required constraints on the target certificate. The constraints
+ are specified as an instance of CertSelector. If null, no constraints are
+ defined.
+
+ Note that the CertSelector specified is cloned to protect against
+ subsequent modifications.
+
+ @param selector
+ a CertSelector specifying the constraints on the target
+ certificate (or null)
+
+ @see #getTargetCertConstraints()
+
+
+ Returns an immutable Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. The
+ default return value is an empty Set, which is
+ interpreted as meaning that any policy would be acceptable.
+
+ @return an immutable Set of initial policy OIDs in String
+ format, or an empty Set (implying any policy is
+ acceptable). Never returns null.
+
+ @see #setInitialPolicies(java.util.Set)
+
+
+ Sets the Set of initial policy identifiers (OID strings),
+ indicating that any one of these policies would be acceptable to the
+ certificate user for the purposes of certification path processing. By
+ default, any policy is acceptable (i.e. all policies), so a user that
+ wants to allow any policy as acceptable does not need to call this
+ method, or can call it with an empty Set (or
+ null).
+
+ Note that the Set is copied to protect against subsequent modifications.
+
+
+ @param initialPolicies
+ a Set of initial policy OIDs in String format (or
+ null)
+
+ @exception ClassCastException
+ if any of the elements in the set are not of type String
+
+ @see #getInitialPolicies()
+
+
+ Sets a List of additional certification path checkers. If
+ the specified List contains an object that is not a PKIXCertPathChecker,
+ it is ignored.
+
+ Each PKIXCertPathChecker specified implements additional
+ checks on a certificate. Typically, these are checks to process and
+ verify private extensions contained in certificates. Each
+ PKIXCertPathChecker should be instantiated with any
+ initialization parameters needed to execute the check.
+
+ This method allows sophisticated applications to extend a PKIX
+ CertPathValidator or CertPathBuilder. Each
+ of the specified PKIXCertPathCheckers will be called, in turn, by a PKIX
+ CertPathValidator or CertPathBuilder for
+ each certificate processed or validated.
+
+ Regardless of whether these additional PKIXCertPathCheckers are set, a
+ PKIX CertPathValidator or CertPathBuilder
+ must perform all of the required PKIX checks on each certificate. The one
+ exception to this rule is if the RevocationEnabled flag is set to false
+ (see the {@link #setRevocationEnabled(boolean) setRevocationEnabled}
+ method).
+
+ Note that the List supplied here is copied and each PKIXCertPathChecker
+ in the list is cloned to protect against subsequent modifications.
+
+ @param checkers
+ a List of PKIXCertPathCheckers. May be null, in which case no
+ additional checkers will be used.
+ @exception ClassCastException
+ if any of the elements in the list are not of type
+ java.security.cert.PKIXCertPathChecker
+ @see #getCertPathCheckers()
+
+
+ Returns the List of certification path checkers. Each PKIXCertPathChecker
+ in the returned IList is cloned to protect against subsequent modifications.
+
+ @return an immutable List of PKIXCertPathCheckers (may be empty, but not
+ null)
+
+ @see #setCertPathCheckers(java.util.List)
+
+
+ Adds a PKIXCertPathChecker to the list of certification
+ path checkers. See the {@link #setCertPathCheckers setCertPathCheckers}
+ method for more details.
+
+ Note that the PKIXCertPathChecker is cloned to protect
+ against subsequent modifications.
+
+ @param checker a PKIXCertPathChecker to add to the list of
+ checks. If null, the checker is ignored (not added to list).
+
+
+ Method to support Clone() under J2ME.
+ super.Clone() does not exist and fields are not copied.
+
+ @param params Parameters to set. If this are
+ ExtendedPkixParameters they are copied to.
+
+
+ Whether delta CRLs should be used for checking the revocation status.
+ Defaults to false.
+
+
+ The validity model.
+ @see #CHAIN_VALIDITY_MODEL
+ @see #PKIX_VALIDITY_MODEL
+
+
+ Sets the Bouncy Castle Stores for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ The IList is cloned.
+
+
+ @param stores A list of stores to use.
+ @see #getStores
+ @throws ClassCastException if an element of stores is not
+ a {@link Store}.
+
+
+ Adds a Bouncy Castle {@link Store} to find CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ This method should be used to add local stores, like collection based
+ X.509 stores, if available. Local stores should be considered first,
+ before trying to use additional (remote) locations, because they do not
+ need possible additional network traffic.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores
+
+
+ Adds an additional Bouncy Castle {@link Store} to find CRLs, certificates,
+ attribute certificates or cross certificates.
+
+ You should not use this method. This method is used for adding additional
+ X.509 stores, which are used to add (remote) locations, e.g. LDAP, found
+ during X.509 object processing, e.g. in certificates or CRLs. This method
+ is used in PKIX certification path processing.
+
+ If store is null it is ignored.
+
+
+ @param store The store to add.
+ @see #getStores()
+
+
+ Returns an IList of additional Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of additional Bouncy Castle
+ Stores. Never null.
+
+ @see #addAddionalStore(Store)
+
+
+ Returns an IList of Bouncy Castle
+ Stores used for finding CRLs, certificates, attribute
+ certificates or cross certificates.
+
+ @return an immutable IList of Bouncy Castle
+ Stores. Never null.
+
+ @see #setStores(IList)
+
+
+ Returns if additional {@link X509Store}s for locations like LDAP found
+ in certificates or CRLs should be used.
+
+ @return Returns true if additional stores are used.
+
+
+ Sets if additional {@link X509Store}s for locations like LDAP found in
+ certificates or CRLs should be used.
+
+ @param enabled true if additional stores are used.
+
+
+ Returns the required constraints on the target certificate or attribute
+ certificate. The constraints are returned as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector returned is cloned to protect
+ against subsequent modifications.
+
+ @return a IX509Selector specifying the constraints on the
+ target certificate or attribute certificate (or null)
+ @see #setTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Sets the required constraints on the target certificate or attribute
+ certificate. The constraints are specified as an instance of
+ IX509Selector. If null, no constraints are
+ defined.
+
+ The target certificate in a PKIX path may be a certificate or an
+ attribute certificate.
+
+ Note that the IX509Selector specified is cloned to protect
+ against subsequent modifications.
+
+
+ @param selector a IX509Selector specifying the constraints on
+ the target certificate or attribute certificate (or
+ null)
+ @see #getTargetConstraints
+ @see X509CertStoreSelector
+ @see X509AttributeCertStoreSelector
+
+
+ Returns the trusted attribute certificate issuers. If attribute
+ certificates is verified the trusted AC issuers must be set.
+
+ The returned ISet consists of TrustAnchors.
+
+ The returned ISet is immutable. Never null
+
+
+ @return Returns an immutable set of the trusted AC issuers.
+
+
+ Sets the trusted attribute certificate issuers. If attribute certificates
+ is verified the trusted AC issuers must be set.
+
+ The trustedACIssuers must be a ISet of
+ TrustAnchor
+
+ The given set is cloned.
+
+
+ @param trustedACIssuers The trusted AC issuers to set. Is never
+ null.
+ @throws ClassCastException if an element of stores is not
+ a TrustAnchor.
+
+
+ Returns the necessary attributes which must be contained in an attribute
+ certificate.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the necessary AC attributes.
+
+
+ Sets the necessary which must be contained in an attribute certificate.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param necessaryACAttributes The necessary AC attributes to set.
+ @throws ClassCastException if an element of
+ necessaryACAttributes is not a
+ String.
+
+
+ Returns the attribute certificates which are not allowed.
+
+ The returned ISet is immutable and contains
+ Strings with the OIDs.
+
+
+ @return Returns the prohibited AC attributes. Is never null.
+
+
+ Sets the attribute certificates which are not allowed.
+
+ The ISet must contain Strings with the
+ OIDs.
+
+ The set is cloned.
+
+
+ @param prohibitedACAttributes The prohibited AC attributes to set.
+ @throws ClassCastException if an element of
+ prohibitedACAttributes is not a
+ String.
+
+
+ Returns the attribute certificate checker. The returned set contains
+ {@link PKIXAttrCertChecker}s and is immutable.
+
+ @return Returns the attribute certificate checker. Is never
+ null.
+
+
+ Sets the attribute certificate checkers.
+
+ All elements in the ISet must a {@link PKIXAttrCertChecker}.
+
+
+ The given set is cloned.
+
+
+ @param attrCertCheckers The attribute certificate checkers to set. Is
+ never null.
+ @throws ClassCastException if an element of attrCertCheckers
+ is not a PKIXAttrCertChecker.
+
+
+
+ Summary description for PkixPolicyNode.
+
+
+
+ Constructors
+
+
+
+ This class helps to handle CRL revocation reasons mask. Each CRL handles a
+ certain set of revocation reasons.
+
+
+
+
+ Constructs are reason mask with the reasons.
+
+ The reasons.
+
+
+
+ A reason mask with no reason.
+
+
+
+
+ A mask with all revocation reasons.
+
+
+
+ Adds all reasons from the reasons mask to this mask.
+
+ @param mask The reasons mask to add.
+
+
+
+ Returns true if this reasons mask contains all possible
+ reasons.
+
+ true if this reasons mask contains all possible reasons.
+
+
+
+
+ Intersects this mask with the given reasons mask.
+
+ mask The mask to intersect with.
+ The intersection of this and teh given mask.
+
+
+
+ Returns true if the passed reasons mask has new reasons.
+
+ The reasons mask which should be tested for new reasons.
+ true if the passed reasons mask has new reasons.
+
+
+
+ Returns the reasons in this mask.
+
+
+
+ If the complete CRL includes an issuing distribution point (IDP) CRL
+ extension check the following:
+
+ (i) If the distribution point name is present in the IDP CRL extension
+ and the distribution field is present in the DP, then verify that one of
+ the names in the IDP matches one of the names in the DP. If the
+ distribution point name is present in the IDP CRL extension and the
+ distribution field is omitted from the DP, then verify that one of the
+ names in the IDP matches one of the names in the cRLIssuer field of the
+ DP.
+
+
+ (ii) If the onlyContainsUserCerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate does not include the basic
+ constraints extension with the cA boolean asserted.
+
+
+ (iii) If the onlyContainsCACerts boolean is asserted in the IDP CRL
+ extension, verify that the certificate includes the basic constraints
+ extension with the cA boolean asserted.
+
+
+ (iv) Verify that the onlyContainsAttributeCerts boolean is not asserted.
+
+
+ @param dp The distribution point.
+ @param cert The certificate.
+ @param crl The CRL.
+ @throws AnnotatedException if one of the conditions is not met or an error occurs.
+
+
+ If the DP includes cRLIssuer, then verify that the issuer field in the
+ complete CRL matches cRLIssuer in the DP and that the complete CRL
+ contains an
+ g distribution point extension with the indirectCRL
+ boolean asserted. Otherwise, verify that the CRL issuer matches the
+ certificate issuer.
+
+ @param dp The distribution point.
+ @param cert The certificate ot attribute certificate.
+ @param crl The CRL for cert.
+ @throws AnnotatedException if one of the above conditions does not apply or an error
+ occurs.
+
+
+ Obtain and validate the certification path for the complete CRL issuer.
+ If a key usage extension is present in the CRL issuer's certificate,
+ verify that the cRLSign bit is set.
+
+ @param crl CRL which contains revocation information for the certificate
+ cert.
+ @param cert The attribute certificate or certificate to check if it is
+ revoked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param paramsPKIX paramsPKIX PKIX parameters.
+ @param certPathCerts The certificates on the certification path.
+ @return A Set with all keys of possible CRL issuer
+ certificates.
+ @throws AnnotatedException if the CRL is not valid or the status cannot be checked or
+ some error occurs.
+
+
+ Checks a distribution point for revocation information for the
+ certificate cert.
+
+ @param dp The distribution point to consider.
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param defaultCRLSignCert The issuer certificate of the certificate cert.
+ @param defaultCRLSignKey The public key of the issuer certificate
+ defaultCRLSignCert.
+ @param certStatus The current certificate revocation status.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ Checks a certificate if it is revoked.
+
+ @param paramsPKIX PKIX parameters.
+ @param cert Certificate to check if it is revoked.
+ @param validDate The date when the certificate revocation status should be
+ checked.
+ @param sign The issuer certificate of the certificate cert.
+ @param workingPublicKey The public key of the issuer certificate sign.
+ @param certPathCerts The certificates of the certification path.
+ @throws AnnotatedException if the certificate is revoked or the status cannot be checked
+ or some error occurs.
+
+
+ If use-deltas is set, verify the issuer and scope of the delta CRL.
+
+ @param deltaCRL The delta CRL.
+ @param completeCRL The complete CRL.
+ @param pkixParams The PKIX paramaters.
+ @throws AnnotatedException if an exception occurs.
+
+
+ Checks if an attribute certificate is revoked.
+
+ @param attrCert Attribute certificate to check if it is revoked.
+ @param paramsPKIX PKIX parameters.
+ @param issuerCert The issuer certificate of the attribute certificate
+ attrCert.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+
+ @throws CertPathValidatorException if the certificate is revoked or the
+ status cannot be checked or some error occurs.
+
+
+ Searches for a holder public key certificate and verifies its
+ certification path.
+
+ @param attrCert the attribute certificate.
+ @param pkixParams The PKIX parameters.
+ @return The certificate path of the holder certificate.
+ @throws Exception if
+
+ - no public key certificate can be found although holder
+ information is given by an entity name or a base certificate
+ ID
+ - support classes cannot be created
+ - no certification path for the public key certificate can
+ be built
+
+
+
+
+ Checks a distribution point for revocation information for the
+ certificate attrCert.
+
+ @param dp The distribution point to consider.
+ @param attrCert The attribute certificate which should be checked.
+ @param paramsPKIX PKIX parameters.
+ @param validDate The date when the certificate revocation status should
+ be checked.
+ @param issuerCert Certificate to check if it is revoked.
+ @param reasonMask The reasons mask which is already checked.
+ @param certPathCerts The certificates of the certification path to be
+ checked.
+ @throws Exception if the certificate is revoked or the status
+ cannot be checked or some error occurs.
+
+
+
+ A trust anchor or most-trusted Certification Authority (CA).
+
+ This class represents a "most-trusted CA", which is used as a trust anchor
+ for validating X.509 certification paths. A most-trusted CA includes the
+ public key of the CA, the CA's name, and any constraints upon the set of
+ paths which may be validated using this key. These parameters can be
+ specified in the form of a trusted X509Certificate or as individual
+ parameters.
+
+
+
+
+ Creates an instance of TrustAnchor with the specified X509Certificate and
+ optional name constraints, which are intended to be used as additional
+ constraints when validating an X.509 certification path.
+ The name constraints are specified as a byte array. This byte array
+ should contain the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459 and
+ X.509. The ASN.1 definition of this structure appears below.
+
+
+ NameConstraints ::= SEQUENCE {
+ permittedSubtrees [0] GeneralSubtrees OPTIONAL,
+ excludedSubtrees [1] GeneralSubtrees OPTIONAL }
+
+ GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree
+
+ GeneralSubtree ::= SEQUENCE {
+ base GeneralName,
+ minimum [0] BaseDistance DEFAULT 0,
+ maximum [1] BaseDistance OPTIONAL }
+
+ BaseDistance ::= INTEGER (0..MAX)
+
+ GeneralName ::= CHOICE {
+ otherName [0] OtherName,
+ rfc822Name [1] IA5String,
+ dNSName [2] IA5String,
+ x400Address [3] ORAddress,
+ directoryName [4] Name,
+ ediPartyName [5] EDIPartyName,
+ uniformResourceIdentifier [6] IA5String,
+ iPAddress [7] OCTET STRING,
+ registeredID [8] OBJECT IDENTIFIER}
+
+
+ Note that the name constraints byte array supplied is cloned to protect
+ against subsequent modifications.
+
+ a trusted X509Certificate
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ if the specified X509Certificate is null
+
+
+
+ Creates an instance of TrustAnchor where the
+ most-trusted CA is specified as an X500Principal and public key.
+
+
+
+ Name constraints are an optional parameter, and are intended to be used
+ as additional constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they
+ would appear in the NameConstraints structure defined in RFC 2459
+ and X.509. The ASN.1 notation for this structure is supplied in the
+ documentation for the other constructors.
+
+ Note that the name constraints byte array supplied here is cloned to
+ protect against subsequent modifications.
+
+
+ the name of the most-trusted CA as X509Name
+ the public key of the most-trusted CA
+
+ a byte array containing the ASN.1 DER encoding of a NameConstraints extension to
+ be used for checking name constraints. Only the value of the extension is included,
+ not the OID or criticality flag. Specify null to omit the parameter.
+
+
+ if caPrincipal or pubKey is null
+
+
+
+
+ Creates an instance of TrustAnchor where the most-trusted
+ CA is specified as a distinguished name and public key. Name constraints
+ are an optional parameter, and are intended to be used as additional
+ constraints when validating an X.509 certification path.
+
+ The name constraints are specified as a byte array. This byte array
+ contains the DER encoded form of the name constraints, as they would
+ appear in the NameConstraints structure defined in RFC 2459 and X.509.
+
+ the X.500 distinguished name of the most-trusted CA in RFC
+ 2253 string format
+ the public key of the most-trusted CA
+ a byte array containing the ASN.1 DER encoding of a
+ NameConstraints extension to be used for checking name
+ constraints. Only the value of the extension is included, not
+ the OID or criticality flag. Specify null to omit the
+ parameter.
+ throws NullPointerException, IllegalArgumentException
+
+
+
+ Returns the most-trusted CA certificate.
+
+
+
+
+ Returns the name of the most-trusted CA as an X509Name.
+
+
+
+
+ Returns the name of the most-trusted CA in RFC 2253 string format.
+
+
+
+
+ Returns the public key of the most-trusted CA.
+
+
+
+
+ Decode the name constraints and clone them if not null.
+
+
+
+
+ Returns a formatted string describing the TrustAnchor.
+
+ a formatted string describing the TrustAnchor
+
+
+ Base class for an RFC 3161 Time Stamp Request.
+
+
+ Create a TimeStampRequest from the past in byte array.
+
+ @param req byte array containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Create a TimeStampRequest from the past in input stream.
+
+ @param in input stream containing the request.
+ @throws IOException if the request is malformed.
+
+
+ Validate the timestamp request, checking the digest to see if it is of an
+ accepted type and whether it is of the correct length for the algorithm specified.
+
+ @param algorithms a set of string OIDS giving accepted algorithms.
+ @param policies if non-null a set of policies we are willing to sign under.
+ @param extensions if non-null a set of extensions we are willing to accept.
+ @throws TspException if the request is invalid, or processing fails.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Request objects.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ @throws IOException
+
+
+ add a given extension field for the standard extensions tag
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+ Base class for an RFC 3161 Time Stamp Response object.
+
+
+ Create a TimeStampResponse from a byte array containing an ASN.1 encoding.
+
+ @param resp the byte array containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the byte array doesn't represent an ASN.1 encoding.
+
+
+ Create a TimeStampResponse from an input stream containing an ASN.1 encoding.
+
+ @param input the input stream containing the encoded response.
+ @throws TspException if the response is malformed.
+ @throws IOException if the stream doesn't represent an ASN.1 encoding.
+
+
+ Check this response against to see if it a well formed response for
+ the passed in request. Validation will include checking the time stamp
+ token if the response status is GRANTED or GRANTED_WITH_MODS.
+
+ @param request the request to be checked against
+ @throws TspException if the request can not match this response.
+
+
+ return the ASN.1 encoded representation of this object.
+
+
+ Generator for RFC 3161 Time Stamp Responses.
+
+
+ Return an appropriate TimeStampResponse.
+
+ If genTime is null a timeNotAvailable error response will be returned.
+
+ @param request the request this response is for.
+ @param serialNumber serial number for the response token.
+ @param genTime generation time for the response token.
+ @param provider provider to use for signature calculation.
+ @return
+ @throws NoSuchAlgorithmException
+ @throws NoSuchProviderException
+ @throws TSPException
+
+
+
+ Generate a TimeStampResponse with chosen status and FailInfoField.
+
+ @param status the PKIStatus to set.
+ @param failInfoField the FailInfoField to set.
+ @param statusString an optional string describing the failure.
+ @return a TimeStampResponse with a failInfoField and optional statusString
+ @throws TSPException in case the response could not be created
+
+
+ Validate the time stamp token.
+
+ To be valid the token must be signed by the passed in certificate and
+ the certificate must be the one referred to by the SigningCertificate
+ attribute included in the hashed attributes of the token. The
+ certificate must also have the ExtendedKeyUsageExtension with only
+ KeyPurposeID.IdKPTimeStamping and have been valid at the time the
+ timestamp was created.
+
+
+ A successful call to validate means all the above are true.
+
+
+
+ Return the underlying CmsSignedData object.
+
+ @return the underlying CMS structure.
+
+
+ Return a ASN.1 encoded byte stream representing the encoded object.
+
+ @throws IOException if encoding fails.
+
+
+ basic creation - only the default attributes will be included here.
+
+
+ create with a signer with extra signed/unsigned attributes.
+
+
+ @return the nonce value, null if there isn't one.
+
+
+ Recognised hash algorithms for the time stamp protocol.
+
+
+ Fetches the signature time-stamp attributes from a SignerInformation object.
+ Checks that the MessageImprint for each time-stamp matches the signature field.
+ (see RFC 3161 Appendix A).
+
+ @param signerInfo a SignerInformation to search for time-stamps
+ @return a collection of TimeStampToken objects
+ @throws TSPValidationException
+
+
+ Validate the passed in certificate as being of the correct type to be used
+ for time stamping. To be valid it must have an ExtendedKeyUsage extension
+ which has a key purpose identifier of id-kp-timeStamping.
+
+ @param cert the certificate of interest.
+ @throws TspValidationException if the certicate fails on one of the check points.
+
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Exception thrown if a TSP request or response fails to validate.
+
+ If a failure code is associated with the exception it can be retrieved using
+ the getFailureCode() method.
+
+
+ Return the failure code associated with this exception - if one is set.
+
+ @return the failure code if set, -1 otherwise.
+
+
+ General array utilities.
+
+
+
+ Are two arrays equal.
+
+ Left side.
+ Right side.
+ True if equal.
+
+
+
+ A constant time equals comparison - does not terminate early if
+ test will fail.
+
+ first array
+ second array
+ true if arrays equal, false otherwise.
+
+
+ Make a copy of a range of bytes from the passed in data array. The range can
+ extend beyond the end of the input array, in which case the return array will
+ be padded with zeroes.
+
+ @param data the array from which the data is to be copied.
+ @param from the start index at which the copying should take place.
+ @param to the final index of the range (exclusive).
+
+ @return a new byte array containing the range given.
+
+
+ BigInteger utilities.
+
+
+ Return the passed in value as an unsigned byte array.
+
+ @param value value to be converted.
+ @return a byte array without a leading zero byte if present in the signed encoding.
+
+
+ Return the passed in value as an unsigned byte array of specified length, zero-extended as necessary.
+
+ @param length desired length of result array.
+ @param n value to be converted.
+ @return a byte array of specified length, with leading zeroes as necessary given the size of n.
+
+
+ Return a random BigInteger not less than 'min' and not greater than 'max'
+
+ @param min the least value that may be generated
+ @param max the greatest value that may be generated
+ @param random the source of randomness
+ @return a random BigInteger value in the range [min,max]
+
+
+
+ Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value.
+
+ A UTC DateTime value not before epoch.
+ Number of whole milliseconds after epoch.
+ 'dateTime' is before epoch.
+
+
+
+ Create a DateTime value from the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+ Number of milliseconds since the epoch.
+ A UTC DateTime value
+
+
+
+ Return the current number of milliseconds since the Unix epoch (1 Jan., 1970 UTC).
+
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ encode the input data producing a base 64 encoded byte array.
+
+ @return a byte array containing the base 64 encoded data.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Encode the byte data to base 64 writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a base 64 output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A buffering class to allow translation from one format to another to
+ be done in discrete chunks.
+
+
+
+
+ Create a buffered Decoder.
+
+ The translater to use.
+ The size of the buffer.
+
+
+
+ Process one byte of data.
+
+ Data in.
+ Byte array for the output.
+ The offset in the output byte array to start writing from.
+ The amount of output bytes.
+
+
+
+ Process data from a byte array.
+
+ The input data.
+ Start position within input data array.
+ Amount of data to process from input data array.
+ Array to store output.
+ Position in output array to start writing from.
+ The amount of output bytes.
+
+
+
+ A class that allows encoding of data using a specific encoder to be processed in chunks.
+
+
+
+
+ Create.
+
+ The translator to use.
+ Size of the chunks.
+
+
+
+ Process one byte of data.
+
+ The byte.
+ An array to store output in.
+ Offset within output array to start writing from.
+
+
+
+
+ Process data from a byte array.
+
+ Input data Byte array containing data to be processed.
+ Start position within input data array.
+ Amount of input data to be processed.
+ Output data array.
+ Offset within output data array to start writing to.
+ The amount of data written.
+
+
+
+ Class to decode and encode Hex.
+
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a Hex output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ A hex translator.
+
+
+
+
+ Return encoded block size.
+
+ 2
+
+
+
+ Encode some data.
+
+ Input data array.
+ Start position within input data array.
+ The amount of data to process.
+ The output data array.
+ The offset within the output data array to start writing from.
+ Amount of data encoded.
+
+
+
+ Returns the decoded block size.
+
+ 1
+
+
+
+ Decode data from a byte array.
+
+ The input data array.
+ Start position within input data array.
+ The amounty of data to process.
+ The output data array.
+ The position within the output data array to start writing from.
+ The amount of data written.
+
+
+ Encode and decode byte arrays (typically from binary to 7-bit ASCII
+ encodings).
+
+
+
+ Translator interface.
+
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+ Encode the input data producing a URL safe base 64 encoded byte array.
+
+ @return a byte array containing the URL safe base 64 encoded data.
+
+
+ Encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Decode the URL safe base 64 encoded input data - white space will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the URL safe base 64 encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the URL safe base 64 encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ Decode the URL safe base 64 encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ Convert binary data to and from UrlBase64 encoding. This is identical to
+ Base64 encoding, except that the padding character is "." and the other
+ non-alphanumeric characters are "-" and "_" instead of "+" and "/".
+
+ The purpose of UrlBase64 encoding is to provide a compact encoding of binary
+ data that is safe for use as an URL parameter. Base64 encoding does not
+ produce encoded values that are safe for use in URLs, since "/" can be
+ interpreted as a path delimiter; "+" is the encoded form of a space; and
+ "=" is used to separate a name from the corresponding value in an URL
+ parameter.
+
+
+
+
+ Produce a copy of this object with its configuration and in its current state.
+
+
+ The returned object may be used simply to store the state, or may be used as a similar object
+ starting from the copied state.
+
+
+
+
+ Restore a copied object state into this object.
+
+
+ Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
+
+ an object originally {@link #copy() copied} from an object of the same type as this instance.
+ if the provided object is not of the correct type.
+ if the other parameter is in some other way invalid.
+
+
+
+ A
+
+
+
+
+
+ A
+
+
+ A
+
+
+
+
+
+ A
+
+
+
+
+ A generic PEM writer, based on RFC 1421
+
+
+ Base constructor.
+
+ @param out output stream to use.
+
+
+ Return the number of bytes or characters required to contain the
+ passed in object if it is PEM encoded.
+
+ @param obj pem object to be output
+ @return an estimate of the number of bytes
+
+
+
+ Pipe all bytes from inStr to outStr, throwing StreamFlowException if greater
+ than limit bytes in inStr.
+
+
+ A
+
+
+ A
+
+
+ A
+
+ The number of bytes actually transferred, if not greater than limit
+
+
+
+
+
+
+ Exception to be thrown on a failure to reset an object implementing Memoable.
+
+ The exception extends InvalidCastException to enable users to have a single handling case,
+ only introducing specific handling of this one if required.
+
+
+
+ Basic Constructor.
+
+ @param msg message to be associated with this exception.
+
+
+ Validate the given IPv4 or IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address, false otherwise
+
+
+ Validate the given IPv4 or IPv6 address and netmask.
+
+ @param address the IP address as a string.
+
+ @return true if a valid address with netmask, false otherwise
+
+
+ Validate the given IPv4 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ Validate the given IPv6 address.
+
+ @param address the IP address as a string.
+
+ @return true if a valid IPv4 address, false otherwise
+
+
+ General string utilities.
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ Summary description for DeflaterOutputStream.
+
+
+
+
+ The Holder object.
+
+ Holder ::= SEQUENCE {
+ baseCertificateID [0] IssuerSerial OPTIONAL,
+ -- the issuer and serial number of
+ -- the holder's Public Key Certificate
+ entityName [1] GeneralNames OPTIONAL,
+ -- the name of the claimant or role
+ objectDigestInfo [2] ObjectDigestInfo OPTIONAL
+ -- used to directly authenticate the holder,
+ -- for example, an executable
+ }
+
+
+
+
+ Constructs a holder for v2 attribute certificates with a hash value for
+ some type of object.
+
+ digestedObjectType can be one of the following:
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+ This cannot be used if a v1 attribute certificate is used.
+
+ @param digestedObjectType The digest object type.
+ @param digestAlgorithm The algorithm identifier for the hash.
+ @param otherObjectTypeID The object type ID if
+ digestedObjectType is
+ otherObjectDigest.
+ @param objectDigest The hash value.
+
+
+ Returns the digest object type if an object digest info is used.
+
+
+ - 0 - publicKey - A hash of the public key of the holder must be
+ passed.
+ - 1 - publicKeyCert - A hash of the public key certificate of the
+ holder must be passed.
+ - 2 - otherObjectDigest - A hash of some other object type must be
+ passed.
otherObjectTypeID must not be empty.
+
+
+
+ @return The digest object type or -1 if no object digest info is set.
+
+
+ Returns the other object type ID if an object digest info is used.
+
+ @return The other object type ID or null if no object
+ digest info is set.
+
+
+ Returns the hash if an object digest info is used.
+
+ @return The hash or null if no object digest info is set.
+
+
+ Returns the digest algorithm ID if an object digest info is used.
+
+ @return The digest algorithm ID or null if no object
+ digest info is set.
+
+
+ Return any principal objects inside the attribute certificate holder entity names field.
+
+ @return an array of IPrincipal objects (usually X509Name), null if no entity names field is set.
+
+
+ Return the principals associated with the issuer attached to this holder
+
+ @return an array of principals, null if no BaseCertificateID is set.
+
+
+ Return the serial number associated with the issuer attached to this holder.
+
+ @return the certificate serial number, null if no BaseCertificateID is set.
+
+
+ Carrying class for an attribute certificate issuer.
+
+
+ Set the issuer directly with the ASN.1 structure.
+
+ @param issuer The issuer
+
+
+ Return any principal objects inside the attribute certificate issuer object.
+ An array of IPrincipal objects (usually X509Principal).
+
+
+ A high level authority key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Create an AuthorityKeyIdentifier using the passed in certificate's public
+ key, issuer and serial number.
+
+ @param certificate the certificate providing the information.
+ @throws CertificateParsingException if there is a problem processing the certificate
+
+
+ Create an AuthorityKeyIdentifier using just the hash of the
+ public key.
+
+ @param pubKey the key to generate the hash from.
+ @throws InvalidKeyException if there is a problem using the key.
+
+
+ A high level subject key identifier.
+
+
+ Constructor which will take the byte[] returned from getExtensionValue()
+
+ @param encodedValue a DER octet encoded string with the extension structure in it.
+ @throws IOException on parsing errors.
+
+
+ Interface for an X.509 Attribute Certificate.
+
+
+ The version number for the certificate.
+
+
+ The serial number for the certificate.
+
+
+ The UTC DateTime before which the certificate is not valid.
+
+
+ The UTC DateTime after which the certificate is not valid.
+
+
+ The holder of the certificate.
+
+
+ The issuer details for the certificate.
+
+
+ Return the attributes contained in the attribute block in the certificate.
+ An array of attributes.
+
+
+ Return the attributes with the same type as the passed in oid.
+ The object identifier we wish to match.
+ An array of matched attributes, null if there is no match.
+
+
+ Return an ASN.1 encoded byte array representing the attribute certificate.
+ An ASN.1 encoded byte array.
+ If the certificate cannot be encoded.
+
+
+
+ Get all critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ Get all non-critical extension values, by oid
+
+ IDictionary with string (OID) keys and Asn1OctetString values
+
+
+
+ A utility class that will extract X509Principal objects from X.509 certificates.
+
+ Use this in preference to trying to recreate a principal from a string, not all
+ DNs are what they should be, so it's best to leave them encoded where they
+ can be.
+
+
+
+ Return the issuer of the given cert as an X509Principal.
+
+
+ Return the subject of the given cert as an X509Principal.
+
+
+ Return the issuer of the given CRL as an X509Principal.
+
+
+ This class is an Selector like implementation to select
+ attribute certificates from a given set of criteria.
+
+ @see org.bouncycastle.x509.X509AttributeCertificate
+ @see org.bouncycastle.x509.X509Store
+
+
+
+ Decides if the given attribute certificate should be selected.
+
+ The attribute certificate to be checked.
+ true if the object matches this selector.
+
+
+ The attribute certificate which must be matched.
+ If null is given, any will do.
+
+
+ The criteria for validity
+ If null is given any will do.
+
+
+ The holder.
+ If null is given any will do.
+
+
+ The issuer.
+ If null is given any will do.
+
+
+ The serial number.
+ If null is given any will do.
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name The name as a GeneralName (not null)
+
+
+ Adds a target name criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target names.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the name in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target names criteria. If null is
+ given any will do.
+
+ The collection consists of either GeneralName objects or byte[] arrays representing
+ DER encoded GeneralName structures.
+
+
+ @param names A collection of target names.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetName(byte[])
+ @see #AddTargetName(GeneralName)
+
+
+ Gets the target names. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target names
+ @see #setTargetNames(Collection)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param group The group as GeneralName form (not null)
+
+
+ Adds a target group criterion for the attribute certificate to the target
+ information extension criteria. The X509AttributeCertificate
+ must contain at least one of the specified target groups.
+
+ Each attribute certificate may contain a target information extension
+ limiting the servers where this attribute certificate can be used. If
+ this extension is not present, the attribute certificate is not targeted
+ and may be accepted by any server.
+
+
+ @param name a byte array containing the group in ASN.1 DER encoded form of a GeneralName
+ @throws IOException if a parsing error occurs.
+
+
+ Adds a collection with target groups criteria. If null is
+ given any will do.
+
+ The collection consists of GeneralName objects or byte[]
+ representing DER encoded GeneralNames.
+
+
+ @param names A collection of target groups.
+ @throws IOException if a parsing error occurs.
+ @see #AddTargetGroup(byte[])
+ @see #AddTargetGroup(GeneralName)
+
+
+ Gets the target groups. The collection consists of Lists
+ made up of an Integer in the first entry and a DER encoded
+ byte array or a String in the second entry.
+ The returned collection is immutable.
+
+ @return The collection of target groups.
+ @see #setTargetGroups(Collection)
+
+
+
+ This class is an IX509Selector implementation to select
+ certificate pairs, which are e.g. used for cross certificates. The set of
+ criteria is given from two X509CertStoreSelector objects,
+ each of which, if present, must match the respective component of a pair.
+
+
+
+ The certificate pair which is used for testing on equality.
+
+
+ The certificate selector for the forward part.
+
+
+ The certificate selector for the reverse part.
+
+
+
+ Decides if the given certificate pair should be selected. If
+ obj is not a X509CertificatePair, this method
+ returns false.
+
+ The X509CertificatePair to be tested.
+ true if the object matches this selector.
+
+
+
+ An ISet of DerObjectIdentifier objects.
+
+
+
+ A simple collection backed store.
+
+
+ Basic constructor.
+
+ @param collection - initial contents for the store, this is copied.
+
+
+ Return the matches in the collection for the passed in selector.
+
+ @param selector the selector to match against.
+ @return a possibly empty collection of matching objects.
+
+
+ This class contains a collection for collection based X509Stores.
+
+
+
+ Constructor.
+
+ The collection is copied.
+
+
+ The collection containing X.509 object types.
+ If collection is null.
+
+
+ Returns a copy of the ICollection.
+
+
+ Returns a formatted string describing the parameters.
+
+
+
+ An ICollection of X509Name objects
+
+
+
+ The attribute certificate being checked. This is not a criterion.
+ Rather, it is optional information that may help a {@link X509Store} find
+ CRLs that would be relevant when checking revocation for the specified
+ attribute certificate. If null is specified, then no such
+ optional information is provided.
+
+ @param attrCert the IX509AttributeCertificate being checked (or
+ null)
+ @see #getAttrCertificateChecking()
+
+
+ If true only complete CRLs are returned. Defaults to
+ false.
+
+ @return true if only complete CRLs are returned.
+
+
+ Returns if this selector must match CRLs with the delta CRL indicator
+ extension set. Defaults to false.
+
+ @return Returns true if only CRLs with the delta CRL
+ indicator extension are selected.
+
+
+ The issuing distribution point.
+
+ The issuing distribution point extension is a CRL extension which
+ identifies the scope and the distribution point of a CRL. The scope
+ contains among others information about revocation reasons contained in
+ the CRL. Delta CRLs and complete CRLs must have matching issuing
+ distribution points.
+
+ The byte array is cloned to protect against subsequent modifications.
+
+ You must also enable or disable this criteria with
+ {@link #setIssuingDistributionPointEnabled(bool)}.
+
+ @param issuingDistributionPoint The issuing distribution point to set.
+ This is the DER encoded OCTET STRING extension value.
+ @see #getIssuingDistributionPoint()
+
+
+ Whether the issuing distribution point criteria should be applied.
+ Defaults to false.
+
+ You may also set the issuing distribution point criteria if not a missing
+ issuing distribution point should be assumed.
+
+ @return Returns if the issuing distribution point check is enabled.
+
+
+ The maximum base CRL number. Defaults to null.
+
+ @return Returns the maximum base CRL number.
+ @see #setMaxBaseCRLNumber(BigInteger)
+
+
+
+ A factory to produce Public Key Info Objects.
+
+
+
+
+ Create a Subject Public Key Info object for a given public key.
+
+ One of ElGammalPublicKeyParameters, DSAPublicKeyParameter, DHPublicKeyParameters, RsaKeyParameters or ECPublicKeyParameters
+ A subject public key info object.
+ Throw exception if object provided is not one of the above.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+ Class for carrying the values in an X.509 Attribute.
+
+
+ @param at an object representing an attribute.
+
+
+ Create an X.509 Attribute with the type given by the passed in oid and
+ the value represented by an ASN.1 Set containing value.
+
+ @param oid type of the attribute
+ @param value value object to go into the atribute's value set.
+
+
+ Create an X.59 Attribute with the type given by the passed in oid and the
+ value represented by an ASN.1 Set containing the objects in value.
+
+ @param oid type of the attribute
+ @param value vector of values to go in the attribute's value set.
+
+
+
+ An Object representing an X509 Certificate.
+ Has static methods for loading Certificates encoded in many forms that return X509Certificate Objects.
+
+
+
+
+ Return true if the current time is within the start and end times nominated on the certificate.
+
+ true id certificate is valid for the current time.
+
+
+
+ Return true if the nominated time is within the start and end times nominated on the certificate.
+
+ The time to test validity against.
+ True if certificate is valid for nominated time.
+
+
+
+ Checks if the current date is within certificate's validity period.
+
+
+
+
+ Checks if the given date is within certificate's validity period.
+
+ if the certificate is expired by given date
+ if the certificate is not yet valid on given date
+
+
+
+ Return the certificate's version.
+
+ An integer whose value Equals the version of the cerficate.
+
+
+
+ Return a BigInteger containing the serial number.
+
+ The Serial number.
+
+
+
+ Get the Issuer Distinguished Name. (Who signed the certificate.)
+
+ And X509Object containing name and value pairs.
+
+
+
+ Get the subject of this certificate.
+
+ An X509Name object containing name and value pairs.
+
+
+
+ The time that this certificate is valid from.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ The time that this certificate is valid up to.
+
+ A DateTime object representing that time in the local time zone.
+
+
+
+ Return the Der encoded TbsCertificate data.
+ This is the certificate component less the signature.
+ To Get the whole certificate call the GetEncoded() member.
+
+ A byte array containing the Der encoded Certificate component.
+
+
+
+ The signature.
+
+ A byte array containg the signature of the certificate.
+
+
+
+ A meaningful version of the Signature Algorithm. (EG SHA1WITHRSA)
+
+ A sting representing the signature algorithm.
+
+
+
+ Get the Signature Algorithms Object ID.
+
+ A string containg a '.' separated object id.
+
+
+
+ Get the signature algorithms parameters. (EG DSA Parameters)
+
+ A byte array containing the Der encoded version of the parameters or null if there are none.
+
+
+
+ Get the issuers UID.
+
+ A DerBitString.
+
+
+
+ Get the subjects UID.
+
+ A DerBitString.
+
+
+
+ Get a key usage guidlines.
+
+
+
+
+ Get the public key of the subject of the certificate.
+
+ The public key parameters.
+
+
+
+ Return a Der encoded version of this certificate.
+
+ A byte array.
+
+
+
+ Verify the certificate's signature using the nominated public key.
+
+ An appropriate public key parameter object, RsaPublicKeyParameters, DsaPublicKeyParameters or ECDsaPublicKeyParameters
+ True if the signature is valid.
+ If key submitted is not of the above nominated types.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+
+ This class contains a cross certificate pair. Cross certificates pairs may
+ contain two cross signed certificates from two CAs. A certificate from the
+ other CA to this CA is contained in the forward certificate, the certificate
+ from this CA to the other CA is contained in the reverse certificate.
+
+
+
+ Constructor
+ Certificate from the other CA to this CA.
+ Certificate from this CA to the other CA.
+
+
+ Constructor from a ASN.1 CertificatePair structure.
+ The CertificatePair ASN.1 object.
+
+
+ Returns the certificate from the other CA to this CA.
+
+
+ Returns the certificate from this CA to the other CA.
+
+
+ class for dealing with X509 certificates.
+
+ At the moment this will deal with "-----BEGIN CERTIFICATE-----" to "-----END CERTIFICATE-----"
+ base 64 encoded certs, as well as the BER binaries of certificates and some classes of PKCS#7
+ objects.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate object and initializes it with the data
+ read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the certificates
+ read from the given input stream inStream.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRLs
+
+ Authority Key Identifier
+ Issuer Alternative Name
+ CRL Number
+ Delta CRL Indicator (critical)
+ Issuing Distribution Point (critical)
+
+
+
+ Verify the CRL's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the CRL's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the CRL algorithm is invalid.
+
+
+ Returns a string representation of this CRL.
+
+ @return a string representation of this CRL.
+
+
+ Checks whether the given certificate is on this CRL.
+
+ @param cert the certificate to check for.
+ @return true if the given certificate is on this CRL,
+ false otherwise.
+
+
+ The following extensions are listed in RFC 2459 as relevant to CRL Entries
+
+ ReasonCode Hode Instruction Code Invalidity Date Certificate Issuer
+ (critical)
+
+
+ Constructor for CRLEntries of indirect CRLs. If isIndirect
+ is false {@link #getCertificateIssuer()} will always
+ return null, previousCertificateIssuer is
+ ignored. If this isIndirect is specified and this CrlEntry
+ has no certificate issuer CRL entry extension
+ previousCertificateIssuer is returned by
+ {@link #getCertificateIssuer()}.
+
+ @param c
+ TbsCertificateList.CrlEntry object.
+ @param isIndirect
+ true if the corresponding CRL is a indirect
+ CRL.
+ @param previousCertificateIssuer
+ Certificate issuer of the previous CrlEntry.
+
+
+
+ Create loading data from byte array.
+
+
+
+
+
+ Create loading data from byte array.
+
+
+
+
+ Generates a certificate revocation list (CRL) object and initializes
+ it with the data read from the input stream inStream.
+
+
+ Returns a (possibly empty) collection view of the CRLs read from
+ the given input stream inStream.
+
+ The inStream may contain a sequence of DER-encoded CRLs, or
+ a PKCS#7 CRL set. This is a PKCS#7 SignedData object, with the
+ only significant field being crls. In particular the signature
+ and the contents are ignored.
+
+
+
+ Get non critical extensions.
+
+ A set of non critical extension oids.
+
+
+
+ Get any critical extensions.
+
+ A sorted list of critical entension.
+
+
+
+ Get the value of a given extension.
+
+ The object ID of the extension.
+ An Asn1OctetString object if that extension is found or null if not.
+
+
+ A holding class for constructing an X509 Key Usage extension.
+
+
+ id-ce-keyUsage OBJECT IDENTIFIER ::= { id-ce 15 }
+
+ KeyUsage ::= BIT STRING {
+ digitalSignature (0),
+ nonRepudiation (1),
+ keyEncipherment (2),
+ dataEncipherment (3),
+ keyAgreement (4),
+ keyCertSign (5),
+ cRLSign (6),
+ encipherOnly (7),
+ decipherOnly (8) }
+
+
+
+ Basic constructor.
+
+ @param usage - the bitwise OR of the Key Usage flags giving the
+ allowed uses for the key.
+ e.g. (X509KeyUsage.keyEncipherment | X509KeyUsage.dataEncipherment)
+
+
+ Return the digest algorithm using one of the standard JCA string
+ representations rather than the algorithm identifier (if possible).
+
+
+
+ Class to Generate X509V1 Certificates.
+
+
+
+
+ Default Constructor.
+
+
+
+
+ Reset the generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can get.
+ The serial number.
+
+
+
+ Set the issuer distinguished name.
+ The issuer is the entity whose private key is used to sign the certificate.
+
+ The issuers DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the subject distinguished name.
+ The subject describes the entity associated with the public key.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+ This can be either a name or an OID, names are treated as case insensitive.
+
+ string representation of the algorithm name
+
+
+
+ Generate a new X509Certificate.
+
+ The private key of the issuer used to sign this certificate.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate specifying a SecureRandom instance that you would like to use.
+
+ The private key of the issuer used to sign this certificate.
+ The Secure Random you want to use.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ An implementation of a version 2 X.509 Attribute Certificate.
+
+
+
+ Verify the certificate's signature using a verifier created using the passed in verifier provider.
+
+ An appropriate provider for verifying the certificate's signature.
+ True if the signature is valid.
+ If verifier provider is not appropriate or the certificate algorithm is invalid.
+
+
+ Class to produce an X.509 Version 2 AttributeCertificate.
+
+
+ Reset the generator
+
+
+ Set the Holder of this Attribute Certificate.
+
+
+ Set the issuer.
+
+
+ Set the serial number for the certificate.
+
+
+
+ Set the signature algorithm. This can be either a name or an OID, names
+ are treated as case insensitive.
+
+ The algorithm name.
+
+
+ Add an attribute.
+
+
+ Add a given extension field for the standard extensions tag.
+
+
+
+ Add a given extension field for the standard extensions tag.
+ The value parameter becomes the contents of the octet string associated
+ with the extension.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject.
+
+
+
+
+ Generate an X509 certificate, based on the current issuer and subject,
+ using the supplied source of randomness, if required.
+
+
+
+
+ Generate a new X.509 Attribute Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An IX509AttributeCertificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ class to produce an X.509 Version 2 CRL.
+
+
+ reset the generator
+
+
+ Set the issuer distinguished name - the issuer is the entity whose private key is used to sign the
+ certificate.
+
+
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with an Invalidity Date extension as well as a CrlReason extension.
+ Reason being as indicated by CrlReason, i.e. CrlReason.KeyCompromise
+ or 0 if CrlReason is not to be used
+
+
+
+ Add a CRL entry with extensions.
+
+
+
+ Add the CRLEntry objects contained in a previous CRL.
+
+ @param other the X509Crl to source the other entries from.
+
+
+
+ Set the signature algorithm that will be used to sign this CRL.
+
+
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+ add a given extension field for the standard extensions tag (tag 0)
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Crl.
+
+
+
+ Generate an X.509 CRL, based on the current issuer and subject using the specified secure random.
+
+ The private key of the issuer that is signing this certificate.
+ Your Secure Random instance.
+ An X509Crl.
+
+
+
+ Generate a new X509Crl using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Crl.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+
+ A class to Generate Version 3 X509Certificates.
+
+
+
+
+ Reset the Generator.
+
+
+
+
+ Set the certificate's serial number.
+
+ Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data.
+ You will be surprised how ugly a serial number collision can Get.
+ The serial number.
+
+
+
+ Set the distinguished name of the issuer.
+ The issuer is the entity which is signing the certificate.
+
+ The issuer's DN.
+
+
+
+ Set the date that this certificate is to be valid from.
+
+
+
+
+
+ Set the date after which this certificate will no longer be valid.
+
+
+
+
+
+ Set the DN of the entity that this certificate is about.
+
+
+
+
+
+ Set the public key that this certificate identifies.
+
+
+
+
+
+ Set the signature algorithm that will be used to sign this certificate.
+
+
+
+
+
+ Set the subject unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Set the issuer unique ID - note: it is very rare that it is correct to do this.
+
+
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3).
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ The value.
+
+
+
+ Add an extension using a string with a dotted decimal OID.
+
+ string containing a dotted decimal Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add an extension to this certificate.
+
+ Its Object Identifier.
+ Is it critical.
+ byte[] containing the value of this extension.
+
+
+
+ Add a given extension field for the standard extensions tag (tag 3),
+ copying the extension value from another certificate.
+
+
+
+ add a given extension field for the standard extensions tag (tag 3)
+ copying the extension value from another certificate.
+ @throws CertificateParsingException if the extension cannot be extracted.
+
+
+
+ Generate an X509Certificate.
+
+ The private key of the issuer that is signing this certificate.
+ An X509Certificate.
+
+
+
+ Generate an X509Certificate using your own SecureRandom.
+
+ The private key of the issuer that is signing this certificate.
+ You Secure Random instance.
+ An X509Certificate.
+
+
+
+ Generate a new X509Certificate using the passed in SignatureCalculator.
+
+ A signature calculator factory with the necessary algorithm details.
+ An X509Certificate.
+
+
+
+ Allows enumeration of the signature names supported by the generator.
+
+
+
+ Base class for both the compress and decompress classes.
+ Holds common arrays, and static data.
+
+ @author Keiron Liddle
+
+
+ An input stream that decompresses from the BZip2 format (with the file
+ header chars) to be read as any other stream.
+
+ @author Keiron Liddle
+
+ NB: note this class has been modified to read the leading BZ from the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+ An output stream that compresses into the BZip2 format (with the file
+ header chars) into another stream.
+
+ @author Keiron Liddle
+
+ TODO: Update to BZip2 1.0.1
+ NB: note this class has been modified to add a leading BZ to the
+ start of the BZIP2 stream to make it compatible with other PGP programs.
+
+
+
+ modified by Oliver Merkel, 010128
+
+
+
+ A simple class the hold and calculate the CRC for sanity checking
+ of the data.
+
+ @author Keiron Liddle
+
+
+
diff --git a/packages/System.Collections.Specialized.4.3.0/.signature.p7s b/packages/System.Collections.Specialized.4.3.0/.signature.p7s
new file mode 100644
index 0000000..be968ae
Binary files /dev/null and b/packages/System.Collections.Specialized.4.3.0/.signature.p7s differ
diff --git a/packages/System.Collections.Specialized.4.3.0/System.Collections.Specialized.4.3.0.nupkg b/packages/System.Collections.Specialized.4.3.0/System.Collections.Specialized.4.3.0.nupkg
new file mode 100644
index 0000000..817968d
Binary files /dev/null and b/packages/System.Collections.Specialized.4.3.0/System.Collections.Specialized.4.3.0.nupkg differ
diff --git a/packages/System.Collections.Specialized.4.3.0/ThirdPartyNotices.txt b/packages/System.Collections.Specialized.4.3.0/ThirdPartyNotices.txt
new file mode 100644
index 0000000..55cfb20
--- /dev/null
+++ b/packages/System.Collections.Specialized.4.3.0/ThirdPartyNotices.txt
@@ -0,0 +1,31 @@
+This Microsoft .NET Library may incorporate components from the projects listed
+below. Microsoft licenses these components under the Microsoft .NET Library
+software license terms. The original copyright notices and the licenses under
+which Microsoft received such components are set forth below for informational
+purposes only. Microsoft reserves all rights not expressly granted herein,
+whether by implication, estoppel or otherwise.
+
+1. .NET Core (https://github.com/dotnet/core/)
+
+.NET Core
+Copyright (c) .NET Foundation and Contributors
+
+The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/packages/System.Collections.Specialized.4.3.0/dotnet_library_license.txt b/packages/System.Collections.Specialized.4.3.0/dotnet_library_license.txt
new file mode 100644
index 0000000..92b6c44
--- /dev/null
+++ b/packages/System.Collections.Specialized.4.3.0/dotnet_library_license.txt
@@ -0,0 +1,128 @@
+
+MICROSOFT SOFTWARE LICENSE TERMS
+
+
+MICROSOFT .NET LIBRARY
+
+These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft
+
+· updates,
+
+· supplements,
+
+· Internet-based services, and
+
+· support services
+
+for this software, unless other terms accompany those items. If so, those terms apply.
+
+BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.
+
+
+IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW.
+
+1. INSTALLATION AND USE RIGHTS.
+
+a. Installation and Use. You may install and use any number of copies of the software to design, develop and test your programs.
+
+b. Third Party Programs. The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only.
+
+2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.
+
+a. DISTRIBUTABLE CODE. The software is comprised of Distributable Code. “Distributable Code” is code that you are permitted to distribute in programs you develop if you comply with the terms below.
+
+i. Right to Use and Distribute.
+
+· You may copy and distribute the object code form of the software.
+
+· Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs.
+
+ii. Distribution Requirements. For any Distributable Code you distribute, you must
+
+· add significant primary functionality to it in your programs;
+
+· require distributors and external end users to agree to terms that protect it at least as much as this agreement;
+
+· display your valid copyright notice on your programs; and
+
+· indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your programs.
+
+iii. Distribution Restrictions. You may not
+
+· alter any copyright, trademark or patent notice in the Distributable Code;
+
+· use Microsoft’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by Microsoft;
+
+· include Distributable Code in malicious, deceptive or unlawful programs; or
+
+· modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that
+
+· the code be disclosed or distributed in source code form; or
+
+· others have the right to modify it.
+
+3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not
+
+· work around any technical limitations in the software;
+
+· reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;
+
+· publish the software for others to copy;
+
+· rent, lease or lend the software;
+
+· transfer the software or this agreement to any third party; or
+
+· use the software for commercial software hosting services.
+
+4. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software.
+
+5. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes.
+
+6. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting.
+
+7. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it.
+
+8. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.
+
+9. APPLICABLE LAW.
+
+a. United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort.
+
+b. Outside the United States. If you acquired the software in any other country, the laws of that country apply.
+
+10. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.
+
+11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+FOR AUSTRALIA – YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS.
+
+12. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.
+
+This limitation applies to
+
+· anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and
+
+· claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.
+
+It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.
+
+Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French.
+
+Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français.
+
+EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont exclues.
+
+LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices.
+
+Cette limitation concerne :
+
+· tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et
+
+· les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur.
+
+Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel dommage. Si votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’appliquera pas à votre égard.
+
+EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas.
+
+
diff --git a/packages/System.Collections.Specialized.4.3.0/lib/MonoAndroid10/_._ b/packages/System.Collections.Specialized.4.3.0/lib/MonoAndroid10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Collections.Specialized.4.3.0/lib/MonoTouch10/_._ b/packages/System.Collections.Specialized.4.3.0/lib/MonoTouch10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Collections.Specialized.4.3.0/lib/net46/System.Collections.Specialized.dll b/packages/System.Collections.Specialized.4.3.0/lib/net46/System.Collections.Specialized.dll
new file mode 100644
index 0000000..3e16aec
Binary files /dev/null and b/packages/System.Collections.Specialized.4.3.0/lib/net46/System.Collections.Specialized.dll differ
diff --git a/packages/System.Collections.Specialized.4.3.0/lib/netstandard1.3/System.Collections.Specialized.dll b/packages/System.Collections.Specialized.4.3.0/lib/netstandard1.3/System.Collections.Specialized.dll
new file mode 100644
index 0000000..a132364
Binary files /dev/null and b/packages/System.Collections.Specialized.4.3.0/lib/netstandard1.3/System.Collections.Specialized.dll differ
diff --git a/packages/System.Collections.Specialized.4.3.0/lib/xamarinios10/_._ b/packages/System.Collections.Specialized.4.3.0/lib/xamarinios10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Collections.Specialized.4.3.0/lib/xamarinmac20/_._ b/packages/System.Collections.Specialized.4.3.0/lib/xamarinmac20/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Collections.Specialized.4.3.0/lib/xamarintvos10/_._ b/packages/System.Collections.Specialized.4.3.0/lib/xamarintvos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Collections.Specialized.4.3.0/lib/xamarinwatchos10/_._ b/packages/System.Collections.Specialized.4.3.0/lib/xamarinwatchos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/MonoAndroid10/_._ b/packages/System.Collections.Specialized.4.3.0/ref/MonoAndroid10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/MonoTouch10/_._ b/packages/System.Collections.Specialized.4.3.0/ref/MonoTouch10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/net46/System.Collections.Specialized.dll b/packages/System.Collections.Specialized.4.3.0/ref/net46/System.Collections.Specialized.dll
new file mode 100644
index 0000000..3e16aec
Binary files /dev/null and b/packages/System.Collections.Specialized.4.3.0/ref/net46/System.Collections.Specialized.dll differ
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/System.Collections.Specialized.dll b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/System.Collections.Specialized.dll
new file mode 100644
index 0000000..a229f7e
Binary files /dev/null and b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/System.Collections.Specialized.dll differ
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/System.Collections.Specialized.xml b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/System.Collections.Specialized.xml
new file mode 100644
index 0000000..fce8d86
--- /dev/null
+++ b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/System.Collections.Specialized.xml
@@ -0,0 +1,1021 @@
+
+
+
+ System.Collections.Specialized
+
+
+
+ Provides a simple structure that stores Boolean values and small integers in 32 bits of memory.
+
+
+ Initializes a new instance of the structure containing the data represented in an existing structure.
+ A structure that contains the data to copy.
+
+
+ Initializes a new instance of the structure containing the data represented in an integer.
+ An integer representing the data of the new .
+
+
+ Creates the first mask in a series of masks that can be used to retrieve individual bits in a that is set up as bit flags.
+ A mask that isolates the first bit flag in the .
+
+
+
+
+
+ Creates an additional mask following the specified mask in a series of masks that can be used to retrieve individual bits in a that is set up as bit flags.
+ A mask that isolates the bit flag following the one that points to in .
+ The mask that indicates the previous bit flag.
+
+ indicates the last bit flag in the .
+
+
+ Creates the first in a series of sections that contain small integers.
+ A that can hold a number from zero to .
+ A 16-bit signed integer that specifies the maximum value for the new .
+
+ is less than 1.
+
+
+ Creates a new following the specified in a series of sections that contain small integers.
+ A that can hold a number from zero to .
+ A 16-bit signed integer that specifies the maximum value for the new .
+ The previous in the .
+
+ is less than 1.
+
+ includes the final bit in the .-or- is greater than the highest value that can be represented by the number of bits after .
+
+
+ Gets the value of the as an integer.
+ The value of the as an integer.
+
+
+ Determines whether the specified object is equal to the .
+ true if the specified object is equal to the ; otherwise, false.
+ The object to compare with the current .
+
+
+ Serves as a hash function for the .
+ A hash code for the .
+
+
+ Gets or sets the value stored in the specified .
+ The value stored in the specified .
+ A that contains the value to get or set.
+
+
+ Gets or sets the state of the bit flag indicated by the specified mask.
+ true if the specified bit flag is on (1); otherwise, false.
+ A mask that indicates the bit to get or set.
+
+
+ Returns a string that represents the current .
+ A string that represents the current .
+
+
+ Returns a string that represents the specified .
+ A string that represents the specified .
+ The to represent.
+
+
+ Represents a section of the vector that can contain an integer number.
+
+
+ Determines whether the specified object is the same as the current object.
+ true if the parameter is the same as the current object; otherwise false.
+ The object to compare with the current object.
+
+
+ Determines whether the specified object is the same as the current object.
+ true if the specified object is the same as the current object; otherwise, false.
+ The object to compare with the current .
+
+
+ Serves as a hash function for the current , suitable for hashing algorithms and data structures, such as a hash table.
+ A hash code for the current .
+
+
+ Gets a mask that isolates this section within the .
+ A mask that isolates this section within the .
+
+
+ Gets the offset of this section from the start of the .
+ The offset of this section from the start of the .
+
+
+ Determines whether two specified objects are equal.
+ true if the and parameters represent the same object, otherwise, false.
+ A object.
+ A object.
+
+
+ Determines whether two objects have different values.
+ true if the and parameters represent different objects; otherwise, false.
+ A object.
+ A object.
+
+
+ Returns a string that represents the current .
+ A string that represents the current .
+
+
+ Returns a string that represents the specified .
+ A string that represents the specified .
+ The to represent.
+
+
+ Implements IDictionary by using a while the collection is small, and then switching to a when the collection gets large.
+
+
+ Creates an empty case-sensitive .
+
+
+ Creates an empty with the specified case sensitivity.
+ A Boolean that denotes whether the is case-insensitive.
+
+
+ Creates a case-sensitive with the specified initial size.
+ The approximate number of entries that the can initially contain.
+
+
+ Creates a with the specified initial size and case sensitivity.
+ The approximate number of entries that the can initially contain.
+ A Boolean that denotes whether the is case-insensitive.
+
+
+ Adds an entry with the specified key and value into the .
+ The key of the entry to add.
+ The value of the entry to add. The value can be null.
+
+ is null.
+ An entry with the same key already exists in the .
+
+
+ Removes all entries from the .
+
+
+ Determines whether the contains a specific key.
+ true if the contains an entry with the specified key; otherwise, false.
+ The key to locate in the .
+
+ is null.
+
+
+ Copies the entries to a one-dimensional instance at the specified index.
+ The one-dimensional that is the destination of the objects copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is null.
+
+ is less than zero.
+
+ is multidimensional.-or- The number of elements in the source is greater than the available space from to the end of the destination .
+ The type of the source cannot be cast automatically to the type of the destination .
+
+
+ Gets the number of key/value pairs contained in the .
+ The number of key/value pairs contained in the .Retrieving the value of this property is an O(1) operation.
+
+
+ Returns an that iterates through the .
+ An for the .
+
+
+ Gets a value indicating whether the has a fixed size.
+ This property always returns false.
+
+
+ Gets a value indicating whether the is read-only.
+ This property always returns false.
+
+
+ Gets a value indicating whether the is synchronized (thread safe).
+ This property always returns false.
+
+
+ Gets or sets the value associated with the specified key.
+ The value associated with the specified key. If the specified key is not found, attempting to get it returns null, and attempting to set it creates a new entry using the specified key.
+ The key whose value to get or set.
+
+ is null.
+
+
+ Gets an containing the keys in the .
+ An containing the keys in the .
+
+
+ Removes the entry with the specified key from the .
+ The key of the entry to remove.
+
+ is null.
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ Returns an that iterates through the .
+ An for the .
+
+
+ Gets an containing the values in the .
+ An containing the values in the .
+
+
+ Represents an indexed collection of key/value pairs.
+
+
+ Returns an enumerator that iterates through the collection.
+ An for the entire collection.
+
+
+ Inserts a key/value pair into the collection at the specified index.
+ The zero-based index at which the key/value pair should be inserted.
+ The object to use as the key of the element to add.
+ The object to use as the value of the element to add. The value can be null.
+
+ is less than 0.-or- is greater than .
+
+ is null.
+ An element with the same key already exists in the collection.
+ The collection is read-only.-or-The collection has a fixed size.
+
+
+ Gets or sets the element at the specified index.
+ The element at the specified index.
+ The zero-based index of the element to get or set.
+
+ is less than 0.-or- is equal to or greater than .
+
+
+ Removes the element at the specified index.
+ The zero-based index of the element to remove.
+
+ is less than 0.-or- is equal to or greater than .
+ The collection is read-only.-or- The collection has a fixed size.
+
+
+ Implements IDictionary using a singly linked list. Recommended for collections that typically include fewer than 10 items.
+
+
+ Creates an empty using the default comparer.
+
+
+ Creates an empty using the specified comparer.
+ The to use to determine whether two keys are equal.-or- null to use the default comparer, which is each key's implementation of .
+
+
+ Adds an entry with the specified key and value into the .
+ The key of the entry to add.
+ The value of the entry to add. The value can be null.
+
+ is null.
+ An entry with the same key already exists in the .
+
+
+ Removes all entries from the .
+
+
+ Determines whether the contains a specific key.
+ true if the contains an entry with the specified key; otherwise, false.
+ The key to locate in the .
+
+ is null.
+
+
+ Copies the entries to a one-dimensional instance at the specified index.
+ The one-dimensional that is the destination of the objects copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is null.
+
+ is less than zero.
+
+ is multidimensional.-or- The number of elements in the source is greater than the available space from to the end of the destination .
+ The type of the source cannot be cast automatically to the type of the destination .
+
+
+ Gets the number of key/value pairs contained in the .
+ The number of key/value pairs contained in the .
+
+
+ Returns an that iterates through the .
+ An for the .
+
+
+ Gets a value indicating whether the has a fixed size.
+ This property always returns false.
+
+
+ Gets a value indicating whether the is read-only.
+ This property always returns false.
+
+
+ Gets a value indicating whether the is synchronized (thread safe).
+ This property always returns false.
+
+
+ Gets or sets the value associated with the specified key.
+ The value associated with the specified key. If the specified key is not found, attempting to get it returns null, and attempting to set it creates a new entry using the specified key.
+ The key whose value to get or set.
+
+ is null.
+
+
+ Gets an containing the keys in the .
+ An containing the keys in the .
+
+
+ Removes the entry with the specified key from the .
+ The key of the entry to remove.
+
+ is null.
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ Returns an that iterates through the .
+ An for the .
+
+
+ Gets an containing the values in the .
+ An containing the values in the .
+
+
+ Provides the abstract base class for a collection of associated keys and values that can be accessed either with the key or with the index.
+
+
+ Initializes a new instance of the class that is empty.
+
+
+ Initializes a new instance of the class that is empty, has the default initial capacity, and uses the specified object.
+ The object to use to determine whether two keys are equal and to generate hash codes for the keys in the collection.
+
+
+ Initializes a new instance of the class that is empty, has the specified initial capacity, and uses the default hash code provider and the default comparer.
+ The approximate number of entries that the instance can initially contain.
+
+ is less than zero.
+
+
+ Initializes a new instance of the class that is empty, has the specified initial capacity, and uses the specified object.
+ The approximate number of entries that the object can initially contain.
+ The object to use to determine whether two keys are equal and to generate hash codes for the keys in the collection.
+
+ is less than zero.
+
+
+ Adds an entry with the specified key and value into the instance.
+ The key of the entry to add. The key can be null.
+ The value of the entry to add. The value can be null.
+ The collection is read-only.
+
+
+ Removes all entries from the instance.
+ The collection is read-only.
+
+
+ Gets the value of the entry at the specified index of the instance.
+ An that represents the value of the entry at the specified index.
+ The zero-based index of the value to get.
+
+ is outside the valid range of indexes for the collection.
+
+
+ Gets the value of the first entry with the specified key from the instance.
+ An that represents the value of the first entry with the specified key, if found; otherwise, null.
+ The key of the entry to get. The key can be null.
+
+
+ Returns a array that contains all the keys in the instance.
+ A array that contains all the keys in the instance.
+
+
+ Returns an array that contains all the values in the instance.
+ An array that contains all the values in the instance.
+
+
+ Returns an array of the specified type that contains all the values in the instance.
+ An array of the specified type that contains all the values in the instance.
+ A that represents the type of array to return.
+
+ is null.
+
+ is not a valid .
+
+
+ Gets the key of the entry at the specified index of the instance.
+ A that represents the key of the entry at the specified index.
+ The zero-based index of the key to get.
+
+ is outside the valid range of indexes for the collection.
+
+
+ Gets a value indicating whether the instance contains entries whose keys are not null.
+ true if the instance contains entries whose keys are not null; otherwise, false.
+
+
+ Removes the entries with the specified key from the instance.
+ The key of the entries to remove. The key can be null.
+ The collection is read-only.
+
+
+ Removes the entry at the specified index of the instance.
+ The zero-based index of the entry to remove.
+
+ is outside the valid range of indexes for the collection.
+ The collection is read-only.
+
+
+ Sets the value of the entry at the specified index of the instance.
+ The zero-based index of the entry to set.
+ The that represents the new value of the entry to set. The value can be null.
+ The collection is read-only.
+
+ is outside the valid range of indexes for the collection.
+
+
+ Sets the value of the first entry with the specified key in the instance, if found; otherwise, adds an entry with the specified key and value into the instance.
+ The key of the entry to set. The key can be null.
+ The that represents the new value of the entry to set. The value can be null.
+ The collection is read-only.
+
+
+ Gets the number of key/value pairs contained in the instance.
+ The number of key/value pairs contained in the instance.
+
+
+ Returns an enumerator that iterates through the .
+ An for the instance.
+
+
+ Gets or sets a value indicating whether the instance is read-only.
+ true if the instance is read-only; otherwise, false.
+
+
+ Gets a instance that contains all the keys in the instance.
+ A instance that contains all the keys in the instance.
+
+
+ Copies the entire to a compatible one-dimensional , starting at the specified index of the target array.
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is null.
+
+ is less than zero.
+
+ is multidimensional.-or-The number of elements in the source is greater than the available space from to the end of the destination .
+ The type of the source cannot be cast automatically to the type of the destination .
+
+
+ Gets a value indicating whether access to the object is synchronized (thread safe).
+ true if access to the object is synchronized (thread safe); otherwise, false. The default is false.
+
+
+ Gets an object that can be used to synchronize access to the object.
+ An object that can be used to synchronize access to the object.
+
+
+ Represents a collection of the keys of a collection.
+
+
+ Gets the number of keys in the .
+ The number of keys in the .
+
+
+ Gets the key at the specified index of the collection.
+ A that contains the key at the specified index of the collection.
+ The zero-based index of the key to get from the collection.
+
+ is outside the valid range of indexes for the collection.
+
+
+ Returns an enumerator that iterates through the .
+ An for the .
+
+
+ Gets the entry at the specified index of the collection.
+ The key of the entry at the specified index of the collection.
+ The zero-based index of the entry to locate in the collection.
+
+ is outside the valid range of indexes for the collection.
+
+
+ Copies the entire to a compatible one-dimensional , starting at the specified index of the target array.
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is null.
+
+ is less than zero.
+
+ is multidimensional.-or- The number of elements in the source is greater than the available space from to the end of the destination .
+ The type of the source cannot be cast automatically to the type of the destination .
+
+
+ Gets a value indicating whether access to the is synchronized (thread safe).
+ true if access to the is synchronized (thread safe); otherwise, false. The default is false.
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ Represents a collection of associated keys and values that can be accessed either with the key or with the index.
+
+
+ Initializes a new instance of the class that is empty, has the default initial capacity and uses the default case-insensitive hash code provider and the default case-insensitive comparer.
+
+
+ Initializes a new instance of the class that is empty, has the default initial capacity, and uses the specified object.
+ The object to use to determine whether two keys are equal and to generate hash codes for the keys in the collection.
+
+
+ Copies the entries from the specified to a new with the same initial capacity as the number of entries copied and using the same hash code provider and the same comparer as the source collection.
+ The to copy to the new instance.
+
+ is null.
+
+
+ Initializes a new instance of the class that is empty, has the specified initial capacity and uses the default case-insensitive hash code provider and the default case-insensitive comparer.
+ The initial number of entries that the can contain.
+
+ is less than zero.
+
+
+ Initializes a new instance of the class that is empty, has the specified initial capacity, and uses the specified object.
+ The initial number of entries that the object can contain.
+ The object to use to determine whether two keys are equal and to generate hash codes for the keys in the collection.
+
+ is less than zero.
+
+
+ Copies the entries from the specified to a new with the specified initial capacity or the same initial capacity as the number of entries copied, whichever is greater, and using the default case-insensitive hash code provider and the default case-insensitive comparer.
+ The initial number of entries that the can contain.
+ The to copy to the new instance.
+
+ is less than zero.
+
+ is null.
+
+
+ Copies the entries in the specified to the current .
+ The to copy to the current .
+ The collection is read-only.
+
+ is null.
+
+
+ Adds an entry with the specified name and value to the .
+ The key of the entry to add. The key can be null.
+ The value of the entry to add. The value can be null.
+ The collection is read-only.
+
+
+ Gets all the keys in the .
+ A array that contains all the keys of the .
+
+
+ Invalidates the cached arrays and removes all entries from the .
+ The collection is read-only.
+
+
+
+
+
+ Copies the entire to a compatible one-dimensional , starting at the specified index of the target array.
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is null.
+
+ is less than zero.
+
+ is multidimensional.-or- The number of elements in the source is greater than the available space from to the end of the destination .
+ The type of the source cannot be cast automatically to the type of the destination .
+
+
+ Gets the values at the specified index of the combined into one comma-separated list.
+ A that contains a comma-separated list of the values at the specified index of the , if found; otherwise, null.
+ The zero-based index of the entry that contains the values to get from the collection.
+
+ is outside the valid range of indexes for the collection.
+
+
+ Gets the values associated with the specified key from the combined into one comma-separated list.
+ A that contains a comma-separated list of the values associated with the specified key from the , if found; otherwise, null.
+ The key of the entry that contains the values to get. The key can be null.
+
+
+ Gets the key at the specified index of the .
+ A that contains the key at the specified index of the , if found; otherwise, null.
+ The zero-based index of the key to get from the collection.
+
+ is outside the valid range of indexes for the collection.
+
+
+ Gets the values at the specified index of the .
+ A array that contains the values at the specified index of the , if found; otherwise, null.
+ The zero-based index of the entry that contains the values to get from the collection.
+
+ is outside the valid range of indexes for the collection.
+
+
+ Gets the values associated with the specified key from the .
+ A array that contains the values associated with the specified key from the , if found; otherwise, null.
+ The key of the entry that contains the values to get. The key can be null.
+
+
+ Gets a value indicating whether the contains keys that are not null.
+ true if the contains keys that are not null; otherwise, false.
+
+
+ Resets the cached arrays of the collection to null.
+
+
+ Gets the entry at the specified index of the .
+ A that contains the comma-separated list of values at the specified index of the collection.
+ The zero-based index of the entry to locate in the collection.
+
+ is outside the valid range of indexes for the collection.
+
+
+ Gets or sets the entry with the specified key in the .
+ A that contains the comma-separated list of values associated with the specified key, if found; otherwise, null.
+ The key of the entry to locate. The key can be null.
+ The collection is read-only and the operation attempts to modify the collection.
+
+
+ Removes the entries with the specified key from the instance.
+ The key of the entry to remove. The key can be null.
+ The collection is read-only.
+
+
+ Sets the value of an entry in the .
+ The key of the entry to add the new value to. The key can be null.
+ The that represents the new value to add to the specified entry. The value can be null.
+ The collection is read-only.
+
+
+ Represents a collection of key/value pairs that are accessible by the key or index.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the specified comparer.
+ The to use to determine whether two keys are equal.-or- null to use the default comparer, which is each key's implementation of .
+
+
+ Initializes a new instance of the class using the specified initial capacity.
+ The initial number of elements that the collection can contain.
+
+
+ Initializes a new instance of the class using the specified initial capacity and comparer.
+ The initial number of elements that the collection can contain.
+ The to use to determine whether two keys are equal.-or- null to use the default comparer, which is each key's implementation of .
+
+
+ Adds an entry with the specified key and value into the collection with the lowest available index.
+ The key of the entry to add.
+ The value of the entry to add. This value can be null.
+ The collection is read-only.
+
+
+ Returns a read-only copy of the current collection.
+ A read-only copy of the current collection.
+
+
+ Removes all elements from the collection.
+ The collection is read-only.
+
+
+ Determines whether the collection contains a specific key.
+ true if the collection contains an element with the specified key; otherwise, false.
+ The key to locate in the collection.
+
+
+ Copies the elements to a one-dimensional object at the specified index.
+ The one-dimensional object that is the destination of the objects copied from collection. The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Gets the number of key/values pairs contained in the collection.
+ The number of key/value pairs contained in the collection.
+
+
+ Returns an object that iterates through the collection.
+ An object for the collection.
+
+
+ Inserts a new entry into the collection with the specified key and value at the specified index.
+ The zero-based index at which the element should be inserted.
+ The key of the entry to add.
+ The value of the entry to add. The value can be null.
+
+ is out of range.
+ This collection is read-only.
+
+
+ Gets a value indicating whether the collection is read-only.
+ true if the collection is read-only; otherwise, false. The default is false.
+
+
+ Gets or sets the value at the specified index.
+ The value of the item at the specified index.
+ The zero-based index of the value to get or set.
+ The property is being set and the collection is read-only.
+
+ is less than zero.-or- is equal to or greater than .
+
+
+ Gets or sets the value with the specified key.
+ The value associated with the specified key. If the specified key is not found, attempting to get it returns null, and attempting to set it creates a new element using the specified key.
+ The key of the value to get or set.
+ The property is being set and the collection is read-only.
+
+
+ Gets an object containing the keys in the collection.
+ An object containing the keys in the collection.
+
+
+ Removes the entry with the specified key from the collection.
+ The key of the entry to remove.
+ The collection is read-only.
+
+ is null.
+
+
+ Removes the entry at the specified index from the collection.
+ The zero-based index of the entry to remove.
+ The collection is read-only.
+
+ is less than zero.- or - is equal to or greater than .
+
+
+ Gets a value indicating whether access to the object is synchronized (thread-safe).
+ This method always returns false.
+
+
+ Gets an object that can be used to synchronize access to the object.
+ An object that can be used to synchronize access to the object.
+
+
+ Gets a value indicating whether the has a fixed size.
+ true if the has a fixed size; otherwise, false. The default is false.
+
+
+ Returns an object that iterates through the collection.
+ An object for the collection.
+
+
+ Gets an object containing the values in the collection.
+ An object containing the values in the collection.
+
+
+ Represents a collection of strings.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a string to the end of the .
+ The zero-based index at which the new element is inserted.
+ The string to add to the end of the . The value can be null.
+
+
+ Copies the elements of a string array to the end of the .
+ An array of strings to add to the end of the . The array itself can not be null but it can contain elements that are null.
+
+ is null.
+
+
+ Removes all the strings from the .
+
+
+ Determines whether the specified string is in the .
+ true if is found in the ; otherwise, false.
+ The string to locate in the . The value can be null.
+
+
+ Copies the entire values to a one-dimensional array of strings, starting at the specified index of the target array.
+ The one-dimensional array of strings that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is null.
+
+ is less than zero.
+
+ is multidimensional.-or- The number of elements in the source is greater than the available space from to the end of the destination .
+ The type of the source cannot be cast automatically to the type of the destination .
+
+
+ Gets the number of strings contained in the .
+ The number of strings contained in the .
+
+
+ Returns a that iterates through the .
+ A for the .
+
+
+ Searches for the specified string and returns the zero-based index of the first occurrence within the .
+ The zero-based index of the first occurrence of in the , if found; otherwise, -1.
+ The string to locate. The value can be null.
+
+
+ Inserts a string into the at the specified index.
+ The zero-based index at which is inserted.
+ The string to insert. The value can be null.
+
+ is less than zero.-or- greater than .
+
+
+ Gets a value indicating whether the is read-only.
+ This property always returns false.
+
+
+ Gets a value indicating whether access to the is synchronized (thread safe).
+ This property always returns false.
+
+
+ Gets or sets the element at the specified index.
+ The element at the specified index.
+ The zero-based index of the entry to get or set.
+
+ is less than zero.-or- is equal to or greater than .
+
+
+ Removes the first occurrence of a specific string from the .
+ The string to remove from the . The value can be null.
+
+
+ Removes the string at the specified index of the .
+ The zero-based index of the string to remove.
+
+ is less than zero.-or- is equal to or greater than .
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ Copies the entire to a compatible one-dimensional , starting at the specified index of the target array.
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is null.
+
+ is less than zero.
+
+ is multidimensional.-or- The number of elements in the source is greater than the available space from to the end of the destination .
+ The type of the source cannot be cast automatically to the type of the destination .
+
+
+ Returns a that iterates through the .
+ A for the .
+
+
+ Adds an object to the end of the .
+ The index at which the has been added.
+ The to be added to the end of the . The value can be null.
+ The is read-only.-or- The has a fixed size.
+
+
+ Determines whether an element is in the .
+ true if is found in the ; otherwise, false.
+ The to locate in the . The value can be null.
+
+
+ Searches for the specified and returns the zero-based index of the first occurrence within the entire .
+ The zero-based index of the first occurrence of within the entire , if found; otherwise, -1.
+ The to locate in the . The value can be null.
+
+
+ Inserts an element into the at the specified index.
+ The zero-based index at which should be inserted.
+ The to insert. The value can be null.
+
+ is less than zero.-or- is greater than .
+ The is read-only.-or- The has a fixed size.
+
+
+ Gets a value indicating whether the object has a fixed size.
+ true if the object has a fixed size; otherwise, false. The default is false.
+
+
+ Gets a value indicating whether the object is read-only.
+ true if the object is read-only; otherwise, false. The default is false.
+
+
+ Gets or sets the element at the specified index.
+ The element at the specified index.
+ The zero-based index of the element to get or set.
+
+ is less than zero.-or- is equal to or greater than .
+
+
+ Removes the first occurrence of a specific object from the .
+ The to remove from the . The value can be null.
+ The is read-only.-or- The has a fixed size.
+
+
+ Implements a hash table with the key and the value strongly typed to be strings rather than objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds an entry with the specified key and value into the .
+ The key of the entry to add.
+ The value of the entry to add. The value can be null.
+
+ is null.
+ An entry with the same key already exists in the .
+ The is read-only.
+
+
+ Removes all entries from the .
+ The is read-only.
+
+
+ Determines if the contains a specific key.
+ true if the contains an entry with the specified key; otherwise, false.
+ The key to locate in the .
+ The key is null.
+
+
+ Determines if the contains a specific value.
+ true if the contains an element with the specified value; otherwise, false.
+ The value to locate in the . The value can be null.
+
+
+ Copies the string dictionary values to a one-dimensional instance at the specified index.
+ The one-dimensional that is the destination of the values copied from the .
+ The index in the array where copying begins.
+
+ is multidimensional.-or- The number of elements in the is greater than the available space from to the end of .
+
+ is null.
+
+ is less than the lower bound of .
+
+
+ Gets the number of key/value pairs in the .
+ The number of key/value pairs in the .Retrieving the value of this property is an O(1) operation.
+
+
+ Returns an enumerator that iterates through the string dictionary.
+ An that iterates through the string dictionary.
+
+
+ Gets a value indicating whether access to the is synchronized (thread safe).
+ true if access to the is synchronized (thread safe); otherwise, false.
+
+
+ Gets or sets the value associated with the specified key.
+ The value associated with the specified key. If the specified key is not found, Get returns null, and Set creates a new entry with the specified key.
+ The key whose value to get or set.
+
+ is null.
+
+
+ Gets a collection of keys in the .
+ An that provides the keys in the .
+
+
+ Removes the entry with the specified key from the string dictionary.
+ The key of the entry to remove.
+ The key is null.
+ The is read-only.
+
+
+ Gets an object that can be used to synchronize access to the .
+ An that can be used to synchronize access to the .
+
+
+ Gets a collection of values in the .
+ An that provides the values in the .
+
+
+ Supports a simple iteration over a .
+
+
+ Gets the current element in the collection.
+ The current element in the collection.
+ The enumerator is positioned before the first element of the collection or after the last element.
+
+
+ Advances the enumerator to the next element of the collection.
+ true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.
+ The collection was modified after the enumerator was created.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+ The collection was modified after the enumerator was created.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/de/System.Collections.Specialized.xml b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/de/System.Collections.Specialized.xml
new file mode 100644
index 0000000..f204afc
--- /dev/null
+++ b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/de/System.Collections.Specialized.xml
@@ -0,0 +1,1024 @@
+
+
+
+ System.Collections.Specialized
+
+
+
+ Stellt eine einfache Struktur bereit, die boolesche Werte und Small Integers in 32 Speicherbits speichert.
+
+
+ Initialisiert eine neue Instanz der -Struktur, die die in einer vorhandenen -Struktur dargestellten Daten enthält.
+ A -Struktur, die die zu kopierenden Daten enthält.
+
+
+ Initialisiert eine neue Instanz der -Struktur, die die in einer Ganzzahl dargestellten Daten enthält.
+ Eine Ganzzahl, die die Daten der neuen -Struktur darstellt.
+
+
+ Erstellt die erste Maske aus einer Reihe von Masken, mit der einzelne Bits in einer-Struktur abgerufen werden können, die in Form von Bitflags eingerichtet ist.
+ Eine Maske, die das erste Bitflag in der -Struktur isoliert.
+
+
+
+
+
+ Erstellt in einer Reihe von Masken hinter der angegebenen Maske eine zusätzliche Maske, mit der einzelne Bits in einer -Struktur abgerufen werden können, die in Form von Bitflags eingerichtet ist.
+ Eine Maske, die das Bitflag hinter dem Bitflag isoliert, auf das in der -Struktur verweist.
+ Die Maske, die das vorhergehende Bitflag angibt.
+
+ indicates the last bit flag in the .
+
+
+ Erstellt die erste -Struktur in einer Reihe von Abschnitten, die Small Integers enthalten.
+ Eine -Struktur, die eine Zahl zwischen 0 (null) und enthalten kann.
+ Eine 16-Bit-Ganzzahl mit Vorzeichen, die den Höchstwert für die neue-Struktur angibt.
+
+ is less than 1.
+
+
+ Erstellt eine neue -Struktur hinter der angegebenen -Struktur in einer Reihe von Abschnitten, die Small Integers enthalten.
+ Eine -Struktur, die eine Zahl zwischen 0 (null) und enthalten kann.
+ Eine 16-Bit-Ganzzahl mit Vorzeichen, die den Höchstwert für die neue-Struktur angibt.
+ Die vorhergehende -Struktur in der -Struktur.
+
+ is less than 1.
+
+ includes the final bit in the .-or- is greater than the highest value that can be represented by the number of bits after .
+
+
+ Ruft den Wert der -Struktur als Ganzzahl ab.
+ Der Wert der -Struktur als Ganzzahl.
+
+
+ Bestimmt, ob das angegebene Objekt der -Struktur entspricht.
+ true, wenn das angegebene Objekt der-Struktur entspricht, andernfalls false.
+ Das Objekt, das mit der Instanz der aktuellen -Klasse verglichen werden soll.
+
+
+ Fungiert als eine Hashfunktion für die -Struktur.
+ Ein Hashcode für .
+
+
+ Ruft den in der angegebenen -Struktur gespeicherten Wert ab oder legt diesen fest.
+ Der in der angegebenen -Struktur gespeicherte Wert.
+ Eine -Struktur, die den festzulegenden oder abzurufenden Wert enthält.
+
+
+ Ruft den Zustand des durch die angegebene Maske bezeichneten Bitflags ab oder legt diesen fest.
+ true, wenn das angegebene Bitflag aktiviert ist (1), andernfalls false.
+ Eine Maske, die das abzurufende oder festzulegende Bit angibt.
+
+
+ Gibt eine Zeichenfolge zurück, die die aktuelle darstellt.
+ Eine Zeichenfolge, die den aktuellen darstellt.
+
+
+ Gibt eine Zeichenfolge zurück, die den darstellt.
+ Eine Zeichenfolge, die den angegebenen darstellt.
+ Die darzustellende -Struktur.
+
+
+ Stellt einen Abschnitt des Vektors dar, der eine ganze Zahl enthalten kann.
+
+
+ Ermittelt, ob das angegebene -Objekt mit dem aktuellen -Objekt identisch ist.
+ true, wenn der -Parameter derselbe ist wie das aktuelle -Objekt; andernfalls false.
+ Das -Objekt, das mit dem aktuellen -Objekt verglichen werden soll.
+
+
+ Ermittelt, ob das angegebene Objekt mit dem aktuellen -Objekt identisch ist.
+ true, wenn das angegebene Objekt dasselbe ist wie das aktuelle -Objekt; andernfalls false.
+ Das Objekt, das mit der Instanz der aktuellen -Klasse verglichen werden soll.
+
+
+ Fungiert als Hashfunktion für die aktuelle , die sich für die Verwendung in Hashalgorithmen und -datenstrukturen eignet, z. B. in einer Hashtabelle.
+ Ein Hashcode für das aktuelle .
+
+
+ Ruft eine Maske ab, die diesen Abschnitt innerhalb des isoliert.
+ Eine Maske, die diesen Abschnitt innerhalb des isoliert.
+
+
+ Ruft den Offset dieses Abschnitts vom Anfang des ab.
+ Der Offset dieses Abschnitts vom Anfang des .
+
+
+ Bestimmt, ob zwei -Objekte gleich sind.
+ true, wenn die Parameter und das gleiche -Objekt darstellen; andernfalls false.
+ Ein -Objekt.
+ Ein -Objekt.
+
+
+ Bestimmt, ob zwei -Objekte verschiedene Werte haben.
+ true, wenn die Parameter und unterschiedliche -Objekte darstellen; andernfalls false.
+ Ein -Objekt.
+ Ein -Objekt.
+
+
+ Gibt eine Zeichenfolge zurück, die die aktuelle darstellt.
+ Eine Zeichenfolge, die den aktuellen darstellt.
+
+
+ Gibt eine Zeichenfolge zurück, die den angegebenen darstellt.
+ Eine Zeichenfolge, die den angegebenen darstellt.
+ Der darzustellende .
+
+
+ Implementiert IDictionary. Dabei wird bei kleinen Auflistungen ein verwendet, und bei größeren Auflistungen wird zu einer gewechselt.
+
+
+ Erstellt ein leeres , bei dem die Groß- und Kleinschreibung berücksichtigt wird.
+
+
+ Erstellt ein leeres mit der angegebenen Berücksichtigung der Groß- und Kleinschreibung.
+ Ein boolescher Wert, der kennzeichnet, ob beim die Groß- und Kleinschreibung berücksichtigt wird.
+
+
+ Erstellt ein , bei dem die Groß- und Kleinschreibung berücksichtigt wird, mit der angegebenen Anfangsgröße.
+ Die ungefähre Anzahl von Einträgen, die die anfänglich enthalten kann.
+
+
+ Erstellt ein , bei dem die Groß- und Kleinschreibung berücksichtigt wird, mit der angegebenen Anfangsgröße.
+ Die ungefähre Anzahl von Einträgen, die die anfänglich enthalten kann.
+ Ein boolescher Wert, der kennzeichnet, ob beim die Groß- und Kleinschreibung berücksichtigt wird.
+
+
+ Fügt dem einen Eintrag mit dem angegebenen Schlüssel und Wert hinzu.
+ Der Schlüssel des hinzuzufügenden Eintrags.
+ Der Wert des hinzuzufügenden Eintrags.Der Wert kann null sein.
+
+ ist null.
+ Ein Eintrag mit demselben Schlüssel ist bereits im vorhanden.
+
+
+ Entfernt alle Einträge aus dem .
+
+
+ Stellt fest, ob der einen bestimmten Schlüssel enthält.
+ true, wenn das einen Eintrag mit dem angegebenen Schlüssel enthält, andernfalls false.
+ Der im zu suchende Schlüssel.
+
+ ist null.
+
+
+ Kopiert die -Einträge an den angegebenen Index in einer eindimensionalen -Instanz.
+ Das eindimensionale , das das Ziel der aus kopierten -Objekte ist.Für das muss eine nullbasierte Indizierung verwendet werden.
+ Der nullbasierte Index im , bei dem der Kopiervorgang beginnt.
+
+ ist null.
+
+ ist kleiner als 0.
+
+ ist mehrdimensional.- oder - Die Anzahl der Elemente in der Quell- überschreitet den verfügbaren Platz vom bis zum Ende des Ziel-.
+ Der Typ der Quell- kann nicht automatisch in den Typ des Ziel- umgewandelt werden.
+
+
+ Ruft die Anzahl der Schlüssel-Wert-Paare im ab.
+ Die Anzahl der Schlüssel-Wert-Paare im .Das Abrufen des Werts dieser Eigenschaft ist ein O(1)-Vorgang.
+
+
+ Gibt einen zurück, der durchläuft.
+ Ein für das .
+
+
+ Ruft einen Wert ab, der angibt, ob das eine feste Größe aufweist.
+ Diese Eigenschaft gibt immer false zurück.
+
+
+ Ruft einen Wert ab, der angibt, ob das schreibgeschützt ist.
+ Diese Eigenschaft gibt immer false zurück.
+
+
+ Ruft einen Wert ab, der angibt, ob synchronisiert (threadsicher) ist.
+ Diese Eigenschaft gibt immer false zurück.
+
+
+ Ruft den Wert ab, der dem angegebenen Schlüssel zugeordnet ist, oder legt diesen fest.
+ Der dem angegebenen Schlüssel zugeordnete Wert.Wenn der angegebene Schlüssel nicht gefunden werden kann, wird beim Abrufen dieses Schlüssels null zurückgegeben. Beim Festlegen wird ein neuer Eintrag mit dem angegebenen Schlüssel erstellt.
+ Der Schlüssel, dessen Wert abgerufen oder festgelegt werden soll.
+
+ ist null.
+
+
+ Ruft eine ab, die die Schlüssel in der enthält.
+ Eine , die die Schlüssel in der enthält.
+
+
+ Entfernt der Eintrag mit dem angegebenen Schlüssel aus dem .
+ Der Schlüssel des zu entfernenden Eintrags.
+
+ ist null.
+
+
+ Ruft ein Objekt ab, mit dem der Zugriff auf synchronisiert werden kann.
+ Ein Objekt, mit dem der Zugriff auf die synchronisiert werden kann.
+
+
+ Gibt einen zurück, der durchläuft.
+ Ein für das .
+
+
+ Ruft eine ab, die die Werte im enthält.
+ Eine , die die Werte im enthält.
+
+
+ Stellt eine indizierte Auflistung der Schlüssel-Wert-Paare dar.
+
+
+ Gibt einen Enumerator zurück, der die -Auflistung durchläuft.
+ Ein für die gesamte -Auflistung.
+
+
+ Fügt ein Schlüssel-Wert-Paar beim angegebenen Index in die Auflistung ein.
+ Der nullbasierte Index, an dem das Schlüssel-Wert-Paar eingefügt werden soll.
+ Das Objekt, das als Schlüssel des hinzuzufügenden Elements verwendet werden soll.
+ Das Objekt, das als Wert des hinzuzufügenden Elements verwendet werden soll.Der Wert kann null sein.
+
+ ist kleiner als 0.- oder - ist größer als .
+
+ ist null.
+ Ein Element mit demselben Schlüssel ist bereits in vorhanden.
+ Die -Auflistung ist schreibgeschützt.- oder - Die -Auflistung hat eine feste Größe.
+
+
+ Ruft das Element am angegebenen Index ab oder legt dieses fest.
+ Das Element am angegebenen Index.
+ Der nullbasierte Index des Elements, das abgerufen oder festgelegt werden soll.
+
+ ist kleiner als 0.- oder - ist größer oder gleich .
+
+
+ Entfernt das Element am angegebenen Index.
+ Der nullbasierte Index des zu entfernenden Elements.
+
+ ist kleiner als 0.- oder - ist größer oder gleich .
+ Die -Auflistung ist schreibgeschützt.- oder - Die -Auflistung hat eine feste Größe.
+
+
+ Implementiert IDictionary unter Verwendung einer einfach verknüpften Liste.Empfohlen für Auflistungen, die i. d. R. weniger als 10 Elemente enthalten.
+
+
+ Erstellt ein leeres unter Verwendung des Standardvergleichs.
+
+
+ Erstellt ein leeres unter Verwendung des angegebenen Vergleichs.
+ Der , mit dem ermittelt wird, ob zwei Schlüssel gleich sind.- oder - null, wenn der Standardcomparer verwendet werden soll. Dies ist die jeweilige -Implementierung eines Schlüssels.
+
+
+ Fügt dem einen Eintrag mit dem angegebenen Schlüssel und Wert hinzu.
+ Der Schlüssel des hinzuzufügenden Eintrags.
+ Der Wert des hinzuzufügenden Eintrags.Der Wert kann null sein.
+
+ ist null.
+ Ein Eintrag mit demselben Schlüssel ist bereits im vorhanden.
+
+
+ Entfernt alle Einträge aus dem .
+
+
+ Stellt fest, ob der einen bestimmten Schlüssel enthält.
+ true, wenn das einen Eintrag mit dem angegebenen Schlüssel enthält, andernfalls false.
+ Der im zu suchende Schlüssel.
+
+ ist null.
+
+
+ Kopiert die -Einträge an den angegebenen Index in einer eindimensionalen -Instanz.
+ The one-dimensional that is the destination of the objects copied from .Für das muss eine nullbasierte Indizierung verwendet werden.
+ Der nullbasierte Index im , bei dem der Kopiervorgang beginnt.
+
+ ist null.
+
+ ist kleiner als 0.
+
+ ist mehrdimensional.- oder - Die Anzahl der Elemente in der Quell- überschreitet den verfügbaren Platz vom bis zum Ende des Ziel-.
+ Der Typ der Quell- kann nicht automatisch in den Typ des Ziel- umgewandelt werden.
+
+
+ Ruft die Anzahl der Schlüssel-Wert-Paare im ab.
+ Die Anzahl der Schlüssel-Wert-Paare im .
+
+
+ Gibt einen zurück, der durchläuft.
+ Ein für das .
+
+
+ Ruft einen Wert ab, der angibt, ob das eine feste Größe aufweist.
+ Diese Eigenschaft gibt immer false zurück.
+
+
+ Ruft einen Wert ab, der angibt, ob das schreibgeschützt ist.
+ Diese Eigenschaft gibt immer false zurück.
+
+
+ Ruft einen Wert ab, der angibt, ob synchronisiert (threadsicher) ist.
+ Diese Eigenschaft gibt immer false zurück.
+
+
+ Ruft den Wert ab, der dem angegebenen Schlüssel zugeordnet ist, oder legt diesen fest.
+ Der dem angegebenen Schlüssel zugeordnete Wert.Wenn der angegebene Schlüssel nicht gefunden werden kann, wird beim Abrufen dieses Schlüssels null zurückgegeben. Beim Festlegen wird ein neuer Eintrag mit dem angegebenen Schlüssel erstellt.
+ Der Schlüssel, dessen Wert abgerufen oder festgelegt werden soll.
+
+ ist null.
+
+
+ Ruft eine ab, die die Schlüssel in der enthält.
+ Eine , die die Schlüssel in der enthält.
+
+
+ Entfernt der Eintrag mit dem angegebenen Schlüssel aus dem .
+ Der Schlüssel des zu entfernenden Eintrags.
+
+ ist null.
+
+
+ Ruft ein Objekt ab, mit dem der Zugriff auf synchronisiert werden kann.
+ Ein Objekt, mit dem der Zugriff auf die synchronisiert werden kann.
+
+
+ Gibt einen zurück, der durchläuft.
+ Ein für das .
+
+
+ Ruft eine ab, die die Werte im enthält.
+ Eine , die die Werte im enthält.
+
+
+ Stellt die abstract-Basisklasse für eine Auflistung zugeordneter -Schlüssel und -Werte bereit, auf die entweder über den Schlüssel oder über den Index zugegriffen werden kann.
+
+
+ Initialisiert eine neue, leere Instanz der -Klasse.
+
+
+ Initialisiert eine neue, leere Instanz der -Klasse mit der anfänglichen Standardkapazität und dem angegebenen -Objekt.
+ Das -Objekt wird verwendet, um zu ermitteln, ob zwei Schlüssel gleich sind, und um Hashcodes für die in der Auflistung befindlichen Schlüssel zu generieren.
+
+
+ Initialisiert eine neue, leere Instanz der -Klasse mit der angegebenen Anfangskapazität, wobei der Hashcode-Standardanbieter und Standardcomparer verwendet werden.
+ Die ungefähre Anzahl von Einträgen, die die -Instanz anfänglich enthalten kann.
+
+ ist kleiner als Null.
+
+
+ Initialisiert eine neue, leere Instanz der -Klasse mit der angegebenen Anfangskapazität und dem angegebenen -Objekt.
+ Die ungefähre Anzahl von Einträgen, die das -Objekt anfänglich enthalten kann.
+ Das -Objekt wird verwendet, um zu ermitteln, ob zwei Schlüssel gleich sind, und um Hashcodes für die in der Auflistung befindlichen Schlüssel zu generieren.
+
+ ist kleiner als Null.
+
+
+ Fügt einen Eintrag mit dem angegebenen Schlüssel und Wert der -Instanz hinzu.
+ Der -Schlüssel des hinzuzufügenden Eintrags.Der Schlüssel kann null sein.
+ Der -Wert des hinzuzufügenden Eintrags.Der Wert kann null sein.
+ Die Auflistung ist schreibgeschützt.
+
+
+ Entfernt alle Einträge aus der -Instanz.
+ Die Auflistung ist schreibgeschützt.
+
+
+ Ruft den Wert des Eintrags am angegebenen Index der -Instanz ab.
+ Ein , das den Wert des Eintrags am angegebenen Index darstellt.
+ Der nullbasierte Index des abzurufenden Werts.
+
+ liegt außerhalb des gültigen Indexbereichs für die Auflistung.
+
+
+ Ruft den Wert des ersten Eintrags mit dem angegebenen Schlüssel aus der -Instanz ab.
+ Ein , das den Wert des ersten Eintrags mit dem angegebenen Schlüssel darstellt, sofern ein solcher Eintrag gefunden wird; andernfalls null.
+ Der -Schlüssel des Eintrags, der abgerufen werden soll.Der Schlüssel kann null sein.
+
+
+ Gibt ein -Array zurück, das alle Schlüssel der -Instanz enthält.
+ Ein -Array, das alle Schlüssel der -Instanz enthält.
+
+
+ Gibt ein -Array zurück, das alle Werte der -Instanz enthält.
+ Ein -Array, das alle Werte der -Instanz enthält.
+
+
+ Gibt ein Array des angegebenen Typs zurück, das alle Werte der -Instanz enthält.
+ Ein Array des angegebenen Typs, das alle Werte der -Instanz enthält.
+ Ein , der den Typ des zurückzugebenden Arrays darstellt.
+
+ ist null.
+
+ ist kein gültiger .
+
+
+ Ruft den Schlüssel des Eintrags am angegebenen Index der -Instanz ab.
+ Ein , der den Schlüssel des Eintrags am angegebenen Index darstellt.
+ Der nullbasierte Index des abzurufenden Schlüssels.
+
+ liegt außerhalb des gültigen Indexbereichs für die Auflistung.
+
+
+ Ruft einen Wert ab, der angibt, ob die -Instanz Einträge enthält, deren Schlüssel nicht null sind.
+ true, wenn die -Instanz Einträge enthält, deren Schlüssel nicht null sind, andernfalls false.
+
+
+ Entfernt die Einträge mit dem angegebenen Schlüssel aus der -Instanz.
+ Der -Schlüssel der zu entfernenden Einträge.Der Schlüssel kann null sein.
+ Die Auflistung ist schreibgeschützt.
+
+
+ Entfernt den Eintrag am angegebenen Index der -Instanz.
+ Der nullbasierte Index des Eintrags, der entfernt werden soll.
+
+ liegt außerhalb des gültigen Indexbereichs für die Auflistung.
+ Die Auflistung ist schreibgeschützt.
+
+
+ Legt den Wert des Eintrags am angegebenen Index der -Instanz fest.
+ Der nullbasierte Index des Eintrags, der festgelegt werden soll.
+ Das , das den neuen Wert des Eintrags darstellt, der festgelegt werden soll.Der Wert kann null sein.
+ Die Auflistung ist schreibgeschützt.
+
+ liegt außerhalb des gültigen Indexbereichs für die Auflistung.
+
+
+ Legt den Wert des ersten Eintrags mit dem angegebenen Schlüssel in der -Instanz fest. Wenn der Schlüssel nicht vorhanden ist, wird der -Instanz ein Eintrag mit dem angegebenen Wert und Schlüssel hinzugefügt.
+ Der -Schlüssel des Eintrags, der festgelegt werden soll.Der Schlüssel kann null sein.
+ Das , das den neuen Wert des Eintrags darstellt, der festgelegt werden soll.Der Wert kann null sein.
+ Die Auflistung ist schreibgeschützt.
+
+
+ Ruft die Anzahl von Schlüssel-Wert-Paaren in der -Instanz ab.
+ Die Anzahl von Schlüssel-Wert-Paaren in der -Instanz.
+
+
+ Gibt einen Enumerator zurück, der die durchläuft.
+ Ein für die -Instanz.
+
+
+ Ruft einen Wert ab, der angibt, ob die -Instanz schreibgeschützt ist, oder legt diesen fest.
+ true, wenn die -Instanz schreibgeschützt ist, andernfalls false.
+
+
+ Ruft eine -Instanz ab, die alle Schlüssel der -Instanz enthält.
+ Eine -Instanz, die alle Schlüssel der -Instanz enthält.
+
+
+ Kopiert die gesamte -Instanz in ein kompatibles eindimensionales , beginnend am angegebenen Index des Zielarrays.
+ Das eindimensionale , das das Ziel der aus der kopierten Elemente ist.Für das muss eine nullbasierte Indizierung verwendet werden.
+ Der nullbasierte Index im , bei dem der Kopiervorgang beginnt.
+
+ ist null.
+
+ ist kleiner als Null.
+
+ ist mehrdimensional.- oder - Die Anzahl der Elemente in der Quell- überschreitet den verfügbaren Platz vom bis zum Ende des Ziel-.
+ Der Typ der Quell- kann nicht automatisch in den Typ des Ziel- umgewandelt werden.
+
+
+ Ruft einen Wert ab, der angibt, ob der Zugriff auf das -Objekt synchronisiert (threadsicher) ist.
+ true, wenn der Zugriff auf das -Objekt synchronisiert (threadsicher) ist, andernfalls false.Die Standardeinstellung ist false.
+
+
+ Ruft ein Objekt ab, mit dem der Zugriff auf das -Objekt synchronisiert werden kann.
+ Ein Objekt, mit dem der Zugriff auf das -Objekt synchronisiert werden kann.
+
+
+ Stellt eine Auflistung der -Schlüssel einer Auflistung dar.
+
+
+ Ruft die Anzahl der Schlüssel in der ab.
+ Die Anzahl der Schlüssel in der .
+
+
+ Ruft den Schlüssel am angegebenen Index der Auflistung ab.
+ Ein , der den Schlüssel am angegebenen Index der Auflistung enthält.
+ Der nullbasierte Index des aus der Auflistung abzurufenden Schlüssels.
+
+ liegt außerhalb des gültigen Indexbereichs für die Auflistung.
+
+
+ Gibt einen Enumerator zurück, der die durchläuft.
+ Ein für den .
+
+
+ Ruft den Eintrag am angegebenen Index der Auflistung ab.
+ Der -Schlüssel des Eintrags am angegebenen Index der Auflistung.
+ Der nullbasierte Index des Eintrags, der in der Auflistung gesucht werden soll.
+
+ liegt außerhalb des gültigen Indexbereichs für die Auflistung.
+
+
+ Kopiert die gesamte in ein kompatibles eindimensionales , beginnend am angegebenen Index des Zielarrays.
+ Das eindimensionale , das das Ziel der aus der kopierten Elemente ist.Für das muss eine nullbasierte Indizierung verwendet werden.
+ Der nullbasierte Index im , bei dem der Kopiervorgang beginnt.
+
+ ist null.
+
+ ist kleiner als 0.
+
+ ist mehrdimensional.- oder - Die Anzahl der Elemente in der Quell- ist größer als der verfügbare Platz von bis zum Ende des Ziel-.
+ Der Typ der Quell- kann nicht automatisch in den Typ des Ziel- umgewandelt werden.
+
+
+ Ruft einen Wert ab, der angibt, ob der Zugriff auf synchronisiert (threadsicher) ist.
+ true, wenn der Zugriff auf das synchronisiert (threadsicher) ist, andernfalls false.Die Standardeinstellung ist false.
+
+
+ Ruft ein Objekt ab, mit dem der Zugriff auf synchronisiert werden kann.
+ Ein Objekt, mit dem der Zugriff auf die synchronisiert werden kann.
+
+
+ Stellt eine Auflistung einander zugeordneter -Schlüssel und -Werte dar, auf die entweder über den Schlüssel oder über den Index zugegriffen werden kann.
+
+
+ Initialisiert eine neue, leere Instanz der -Klasse mit der anfänglichen Standardkapazität, wobei der Hashcode-Standardanbieter und die Standardvergleichsfunktion (Standardcomparer) verwendet werden, die beide die Groß- und Kleinschreibung nicht berücksichtigen.
+
+
+ Initialisiert eine neue, leere Instanz der -Klasse mit der anfänglichen Standardkapazität und dem angegebenen -Objekt.
+ Das -Objekt wird verwendet, um zu ermitteln, ob zwei Schlüssel gleich sind, und um Hashcodes für die in der Auflistung befindlichen Schlüssel zu generieren.
+
+
+ Kopiert die Einträge aus dem angegebenen -Objekt in ein neues -Objekt, dessen Anfangskapazität der Anzahl von kopierten Einträge entspricht, und verwendet denselben Hashcodeanbieter und Comparer wie die Quellauflistung.
+ Die -Instanz, die in die neue -Instanz kopiert werden soll.
+
+ ist null.
+
+
+ Initialisiert eine neue, leere Instanz der -Klasse mit der angegebenen Anfangskapazität, wobei der Hashcode-Standardanbieter und der Standardcomparer verwendet werden, die beide die Groß- und Kleinschreibung nicht berücksichtigen.
+ Die anfängliche Anzahl von Einträgen, die das -Objekt enthalten kann.
+
+ ist kleiner als Null.
+
+
+ Initialisiert eine neue, leere Instanz der -Klasse mit der angegebenen Anfangskapazität und dem angegebenen -Objekt.
+ Die anfängliche Anzahl von Einträgen, die das -Objekt enthalten kann.
+ Das -Objekt wird verwendet, um zu ermitteln, ob zwei Schlüssel gleich sind, und um Hashcodes für die in der Auflistung befindlichen Schlüssel zu generieren.
+
+ ist kleiner als Null.
+
+
+ Kopiert die Einträge aus dem angegebenen -Objekt in ein neues -Objekt mit der angegebenen Anfangskapazität bzw. mit einer Anfangskapazität, die der Anzahl der kopierten Einträge entspricht, je nachdem, welche größer ist. Es werden der Hashcode-Standardanbieter und der Standardcomparer verwendet, die die Groß- und Kleinschreibung nicht berücksichtigen.
+ Die anfängliche Anzahl von Einträgen, die das -Objekt enthalten kann.
+ Die -Instanz, die in die neue -Instanz kopiert werden soll.
+
+ ist kleiner als Null.
+
+ ist null.
+
+
+ Kopiert die Einträge in der angegebenen -Instanz in die aktuelle -Instanz.
+ Die -Instanz, die in die aktuelle -Instanz kopiert werden soll.
+ Die Auflistung ist schreibgeschützt.
+
+ ist null.
+
+
+ Fügt der -Instanz einen Eintrag mit dem angegebenen Schlüssel und Wert hinzu.
+ Der -Schlüssel des hinzuzufügenden Eintrags.Der Schlüssel kann null sein.
+ Der -Wert des hinzuzufügenden Eintrags.Der Wert kann null sein.
+ Die Auflistung ist schreibgeschützt.
+
+
+ Ruft alle Schlüssel in der -Instanz ab.
+ Ein -Array, das alle Schlüssel der -Instanz enthält.
+
+
+ Erklärt die zwischengespeicherten Arrays für ungültig und entfernt alle Einträge aus der -Instanz.
+ Die Auflistung ist schreibgeschützt.
+
+
+
+
+
+ Kopiert die gesamte -Instanz in ein kompatibles eindimensionales , beginnend am angegebenen Index des Zielarrays.
+ Das eindimensionale , das das Ziel der aus der kopierten Elemente ist.Für das muss eine nullbasierte Indizierung verwendet werden.
+ Der nullbasierte Index im , bei dem der Kopiervorgang beginnt.
+
+ ist null.
+
+ ist kleiner als Null.
+
+ ist mehrdimensional.- oder - Die Anzahl der Elemente in der Quell- überschreitet den verfügbaren Platz vom bis zum Ende des Ziel-.
+ Der Typ der Quell- kann nicht automatisch in den Typ des Ziel- umgewandelt werden.
+
+
+ Ruft die Werte am angegebenen Index der -Instanz ab, die in einer einzigen, durch Trennzeichen getrennten Liste zusammengefasst werden.
+ Ein , der am angegebenen Index der -Instanz eine Liste mit durch Trennzeichen getrennten Werten enthält, sofern gefunden; andernfalls null.
+ Der nullbasierte Index des Eintrags, der die aus der Auflistung abzurufenden Werte enthält.
+
+ liegt außerhalb des gültigen Indexbereichs für die Auflistung.
+
+
+ Ruft die dem angegebenen Schlüssel zugeordneten Werte aus der -Instanz ab, die in einer einzigen, durch Trennzeichen getrennten Liste zusammengefasst werden.
+ Ein , der eine Liste mit durch Trennzeichen getrennten Werten enthält, die dem angegebenen Schlüssel aus der -Instanz zugeordnet sind, sofern gefunden; andernfalls null.
+ Der -Schlüssel des Eintrags, der die abzurufenden Werte enthält.Der Schlüssel kann null sein.
+
+
+ Ruft den Schlüssel am angegebenen Index der -Instanz ab.
+ Ein , der den Schlüssel am angegebenen Index der -Instanz enthält, sofern gefunden; andernfalls null.
+ Der nullbasierte Index des aus der Auflistung abzurufenden Schlüssels.
+
+ liegt außerhalb des gültigen Indexbereichs für die Auflistung.
+
+
+ Ruft die Werte am angegebenen Index der -Instanz ab.
+ Ein -Array, das die Werte am angegebenen Index der -Instanz enthält, sofern gefunden; andernfalls null.
+ Der nullbasierte Index des Eintrags, der die aus der Auflistung abzurufenden Werte enthält.
+
+ liegt außerhalb des gültigen Indexbereichs für die Auflistung.
+
+
+ Ruft aus der -Instanz die Werte ab, die dem angegebenen Schlüssel zugeordnet sind.
+ Ein -Array mit den Werten, die dem angegebenen Schlüssel aus der -Instanz zugeordnet sind, sofern gefunden; andernfalls null.
+ Der -Schlüssel des Eintrags, der die abzurufenden Werte enthält.Der Schlüssel kann null sein.
+
+
+ Ruft einen Wert ab, der angibt, ob die -Instanz Schlüssel enthält, die nicht null sind.
+ true, wenn die -Instanz Schlüssel enthält, die nicht null sind; andernfalls false.
+
+
+ Setzt die zwischengespeicherten Arrays der Auflistung auf null zurück.
+
+
+ Ruft den Eintrag am angegebenen Index der -Instanz ab.
+ Ein , der am angegebenen Index der Auflistung die Liste von durch Trennzeichen getrennten Werten enthält.
+ Der nullbasierte Index des Eintrags, der in der Auflistung gesucht werden soll.
+
+ liegt außerhalb des gültigen Indexbereichs für die Auflistung.
+
+
+ Ruft den Eintrag mit dem angegebenen Schlüssel in der -Instanz ab oder legt diesen fest.
+ Ein , der die Liste mit durch Trennzeichen getrennten Werten enthält, die dem angegebenen Schlüssel zugeordnet sind, sofern dieser gefunden wurde; andernfalls null.
+ Der -Schlüssel des zu suchenden Eintrags.Der Schlüssel kann null sein.
+ Die Auflistung ist schreibgeschützt, und der Vorgang versucht, die Auflistung zu ändern.
+
+
+ Entfernt die Einträge mit dem angegebenen Schlüssel aus der -Instanz.
+ Der -Schlüssel des zu entfernenden Eintrags.Der Schlüssel kann null sein.
+ Die Auflistung ist schreibgeschützt.
+
+
+ Legt den Wert eines Eintrags in der -Instanz fest.
+ Der -Schlüssel des Eintrags, dem der neue Wert hinzugefügt werden soll.Der Schlüssel kann null sein.
+ Das , das den neuen Wert darstellt, der dem angegebenen Eintag hinzugefügt werden soll.Der Wert kann null sein.
+ Die Auflistung ist schreibgeschützt.
+
+
+ Stellt eine Auflistung von Schlüssel-Wert-Paaren dar, auf die nach Schlüssel oder Index zugegriffen werden kann.
+
+
+ Initialisiert eine neue Instanz der-Klasse.
+
+
+ Initialisiert eine neue Instanz der -Klasse anhand des angegebenen Vergleichs.
+ Der , mit dem ermittelt wird, ob zwei Schlüssel gleich sind.- oder - null, wenn der Standardcomparer verwendet werden soll. Dies ist die jeweilige -Implementierung eines Schlüssels.
+
+
+ Initialisiert eine neue Instanz der -Klasse anhand der angegebenen Anfangskapazität.
+ Die anfängliche Anzahl von Elementen, die die -Auflistung enthalten kann.
+
+
+ Initialisiert eine neue Instanz der -Klasse anhand der angegebenen Anfangskapazität und des angegebenen Comparers.
+ Die anfängliche Anzahl von Elementen, die die -Auflistung enthalten kann.
+ Der , mit dem ermittelt wird, ob zwei Schlüssel gleich sind.- oder - null, wenn der Standardcomparer verwendet werden soll. Dies ist die jeweilige -Implementierung eines Schlüssels.
+
+
+ Fügt der -Auflistung am kleinsten verfügbaren Index einen Eintrag mit dem angegebenen Schlüssel und Wert hinzu.
+ Der Schlüssel des hinzuzufügenden Eintrags.
+ Der Wert des hinzuzufügenden Eintrags.Dieser Wert kann null sein.
+ Die -Auflistung ist schreibgeschützt.
+
+
+ Gibt eine schreibgeschützte Kopie der aktuellen -Auflistung zurück.
+ Eine schreibgeschützte Kopie der aktuellen -Auflistung.
+
+
+ Entfernt alle Elemente aus der -Auflistung.
+ Die -Auflistung ist schreibgeschützt.
+
+
+ Bestimmt, ob die -Auflistung einen bestimmten Schlüssel enthält.
+ true, wenn die -Auflistung ein Element mit dem angegebenen Schlüssel enthält, andernfalls false.
+ Der in der -Auflistung zu suchende Schlüssel.
+
+
+ Kopiert die -Elemente am angegebenen Index in ein eindimensionales -Objekt.
+ Das eindimensionale -Objekt, das das Ziel der aus der -Auflistung kopierten -Objekte ist.Für das muss eine nullbasierte Indizierung verwendet werden.
+ Der nullbasierte Index im , bei dem der Kopiervorgang beginnt.
+
+
+ Ruft die Anzahl der Schlüssel-Wert-Paare in der -Auflistung ab.
+ Die Anzahl der Schlüssel-Wert-Paare in der -Auflistung.
+
+
+ Gibt ein -Objekt zurück, das die -Auflistung durchläuft.
+ Ein -Objekt für die -Auflistung.
+
+
+ Fügt am angegebenen Index einen neuen Eintrag mit dem angegebenen Schlüssel und Wert in die -Auflistung ein.
+ Der nullbasierte Index, an dem das Element eingefügt werden soll.
+ Der Schlüssel des hinzuzufügenden Eintrags.
+ Der Wert des hinzuzufügenden Eintrags.Der Wert kann null sein.
+
+ liegt außerhalb des Bereichs.
+ Diese Auflistung ist schreibgeschützt.
+
+
+ Ruft einen Wert ab, der angibt, ob die -Auflistung schreibgeschützt ist.
+ true, wenn die -Auflistung schreibgeschützt ist, andernfalls false.Die Standardeinstellung ist false.
+
+
+ Ruft den Wert am angegebenen Index ab oder legt diesen fest.
+ Der Wert des Elements am angegebenen Index.
+ Der nullbasierte Index des Werts, der abgerufen oder festgelegt werden soll.
+ Die Eigenschaft wird festgelegt, und die -Auflistung ist schreibgeschützt.
+
+ ist kleiner als 0.- oder - ist größer oder gleich .
+
+
+ Ruft den Wert mit dem angegebenen Schlüssel ab oder legt diesen fest.
+ Der dem angegebenen Schlüssel zugeordnete Wert.Wenn der angegebene Schlüssel nicht gefunden werden kann, wird beim Abrufen dieses Schlüssels null zurückgegeben. Beim Festlegen wird ein neues Element mit dem angegebenen Schlüssel erstellt.
+ Der Schlüssel des abzurufenden oder festzulegenden Werts.
+ Die Eigenschaft wird festgelegt, und die -Auflistung ist schreibgeschützt.
+
+
+ Ruft ein -Objekt ab, das die Schlüssel der -Auflistung enthält.
+ Ein -Objekt, das die Schlüssel in der -Auflistung enthält.
+
+
+ Entfernt der Eintrag mit dem angegebenen Schlüssel aus der -Auflistung.
+ Der Schlüssel des zu entfernenden Eintrags.
+ Die -Auflistung ist schreibgeschützt.
+
+ ist null.
+
+
+ Entfernt den Eintrag am angegebenen Index aus der -Auflistung.
+ Der nullbasierte Index des Eintrags, der entfernt werden soll.
+ Die -Auflistung ist schreibgeschützt.
+
+ ist kleiner als 0.- oder - ist größer oder gleich .
+
+
+ Ruft einen Wert ab, der angibt, ob der Zugriff auf das -Objekt synchronisiert (threadsicher) ist.
+ Diese Methode gibt immer false zurück.
+
+
+ Ruft ein Objekt ab, mit dem der Zugriff auf das -Objekt synchronisiert werden kann.
+ Ein Objekt, mit dem der Zugriff auf das -Objekt synchronisiert werden kann.
+
+
+ Ruft einen Wert ab, der angibt, ob das eine feste Größe aufweist.
+ true, wenn das eine feste Größe aufweist, andernfalls false.Die Standardeinstellung ist false.
+
+
+ Gibt ein -Objekt zurück, das die -Auflistung durchläuft.
+ Ein -Objekt für die -Auflistung.
+
+
+ Ruft ein -Objekt ab, das die Werte der -Auflistung enthält.
+ Ein -Objekt, das die Werte der -Auflistung enthält.
+
+
+ Stellt eine Auflistung von Zeichenfolgen dar.
+
+
+ Initialisiert eine neue Instanz der -Klasse.
+
+
+ Fügt am Ende der eine Zeichenfolge hinzu.
+ Der nullbasierte Index, an dem das neue Element eingefügt wird.
+ Die Zeichenfolge, die am Ende der hinzugefügt werden soll.Der Wert kann null sein.
+
+
+ Kopiert die Elemente eines Zeichenfolgenarrays an das Ende der .
+ Ein Array von Zeichenfolgen, die am Ende der hinzugefügt werden sollen.Das Array selbst kann nicht null sein, aber es kann Elemente enthalten, die null sind.
+
+ ist null.
+
+
+ Entfernt alle Zeichenfolgen aus der .
+
+
+ Bestimmt, ob sich die angegebene Zeichenfolge in der befindet.
+ true, wenn sich in befindet, andernfalls false.
+ Die in der zu suchende Zeichenfolge.Der Wert kann null sein.
+
+
+ Kopiert alle -Werte beginnend am angegebenen Index des Zielarrays in ein eindimensionales Zeichenfolgenarray.
+ Das eindimensionale Zeichenfolgenarray, das das Ziel der aus kopierten Elemente ist.Für das muss eine nullbasierte Indizierung verwendet werden.
+ Der nullbasierte Index im , bei dem der Kopiervorgang beginnt.
+
+ ist null.
+
+ ist kleiner als 0.
+
+ ist mehrdimensional.- oder - Die Anzahl der Elemente in der Quell- ist größer als der verfügbare Platz von bis zum Ende des Ziel-.
+ Der Typ der Quell- kann nicht automatisch in den Typ des Ziel- umgewandelt werden.
+
+
+ Ruft die Anzahl der Zeichenfolgen ab, die in der enthalten sind.
+ Die Anzahl der Zeichenfolgen, die in der enthalten sind.
+
+
+ Gibt einen zurück, der die durchläuft.
+ Ein für die .
+
+
+ Sucht nach der angegebenen Zeichenfolge und gibt den nullbasierten Index des ersten Vorkommens in der zurück.
+ Der nullbasierte Index des ersten Vorkommens von in der , sofern gefunden; andernfalls -1.
+ Die zu suchende Zeichenfolge.Der Wert kann null sein.
+
+
+ Fügt eine Zeichenfolge am angegebenen Index in die ein.
+ Der nullbasierte Index, an dem eingefügt wird.
+ Die einzufügende Zeichenfolge.Der Wert kann null sein.
+
+ ist kleiner als 0.- oder - ist größer als .
+
+
+ Ruft einen Wert ab, der angibt, ob das schreibgeschützt ist.
+ Diese Eigenschaft gibt immer false zurück.
+
+
+ Ruft einen Wert ab, der angibt, ob der Zugriff auf synchronisiert (threadsicher) ist.
+ Diese Eigenschaft gibt immer false zurück.
+
+
+ Ruft das Element am angegebenen Index ab oder legt dieses fest.
+ Das Element am angegebenen Index.
+ Der nullbasierte Index des Eintrags, der abgerufen oder festgelegt werden soll.
+
+ ist kleiner als 0.- oder - ist größer oder gleich .
+
+
+ Entfernt das erste Vorkommen einer bestimmten Zeichenfolge aus der .
+ Die Zeichenfolge, die aus der entfernt werden soll.Der Wert kann null sein.
+
+
+ Entfernt die Zeichenfolge am angegebenen Index der .
+ Der nullbasierte Index der zu entfernenden Zeichenfolge.
+
+ ist kleiner als 0.- oder - ist größer oder gleich .
+
+
+ Ruft ein Objekt ab, mit dem der Zugriff auf synchronisiert werden kann.
+ Ein Objekt, mit dem der Zugriff auf die synchronisiert werden kann.
+
+
+ Kopiert die gesamte in ein kompatibles eindimensionales , beginnend am angegebenen Index des Zielarrays.
+ Das eindimensionale , das das Ziel der aus der kopierten Elemente ist.Für das muss eine nullbasierte Indizierung verwendet werden.
+ Der nullbasierte Index im , bei dem der Kopiervorgang beginnt.
+
+ ist null.
+
+ ist kleiner als 0.
+
+ ist mehrdimensional.- oder - Die Anzahl der Elemente in der Quell- ist größer als der verfügbare Platz von bis zum Ende des Ziel-.
+ Der Typ der Quell- kann nicht automatisch in den Typ des Ziel- umgewandelt werden.
+
+
+ Gibt einen zurück, der die durchläuft.
+ Ein für die .
+
+
+ Fügt am Ende der ein Objekt hinzu.
+ Der -Index, an dem hinzugefügt wurde.
+ Das , das am Ende der hinzugefügt werden soll.Der Wert kann null sein.
+
+ ist schreibgeschützt.- oder - hat eine feste Größe.
+
+
+ Bestimmt, ob sich ein Element in befindet.
+ true, wenn sich in befindet, andernfalls false.
+ Das , das in der gesucht werden soll.Der Wert kann null sein.
+
+
+ Sucht nach dem angegebenen und gibt den nullbasierten Index des ersten Vorkommens innerhalb der gesamten zurück.
+ Der nullbasierte Index des ersten Vorkommens des in der gesamten , sofern vorhanden, andernfalls -1.
+ Das , das in der gesucht werden soll.Der Wert kann null sein.
+
+
+ Fügt am angegebenen Index ein Element in die ein.
+ Der nullbasierte Index, an dem eingefügt werden soll.
+ Die einzufügende .Der Wert kann null sein.
+
+ ist kleiner als 0.- oder - ist größer als .
+
+ ist schreibgeschützt.- oder - hat eine feste Größe.
+
+
+ Ruft einen Wert ab, der angibt, ob das -Objekt eine feste Größe hat.
+ true, wenn das -Objekt eine feste Größe hat, andernfalls false.Die Standardeinstellung ist false.
+
+
+ Ruft einen Wert ab, der angibt, ob das -Objekt schreibgeschützt ist.
+ true, wenn das -Objekt schreibgeschützt ist, andernfalls false.Die Standardeinstellung ist false.
+
+
+ Ruft das Element am angegebenen Index ab oder legt dieses fest.
+ Das Element am angegebenen Index.
+ Der nullbasierte Index des Elements, das abgerufen oder festgelegt werden soll.
+
+ ist kleiner als 0.- oder - ist größer oder gleich .
+
+
+ Entfernt das erste Vorkommen eines angegebenen Objekts aus der .
+ Der , der aus der entfernt werden soll.Der Wert kann null sein.
+
+ ist schreibgeschützt.- oder - hat eine feste Größe.
+
+
+ Implementiert eine Hashtabelle, bei der Schlüssel und Wert stark als Zeichenfolgen und nicht als Objekte typisiert sind.
+
+
+ Initialisiert eine neue Instanz der -Klasse.
+
+
+ Fügt dem einen Eintrag mit dem angegebenen Schlüssel und Wert hinzu.
+ Der Schlüssel des hinzuzufügenden Eintrags.
+ Der Wert des hinzuzufügenden Eintrags.Der Wert kann null sein.
+
+ is null.
+ An entry with the same key already exists in the .
+ The is read-only.
+
+
+ Entfernt alle Einträge aus dem .
+ The is read-only.
+
+
+ Stellt fest, ob der einen bestimmten Schlüssel enthält.
+ true, wenn das einen Eintrag mit dem angegebenen Schlüssel enthält, andernfalls false.
+ Der im zu suchende Schlüssel.
+ The key is null.
+
+
+ Stellt fest, ob das einen bestimmten Wert enthält.
+ true, wenn das ein Element mit dem angegebenen Wert enthält, andernfalls false.
+ Der im zu suchende Wert.Der Wert kann null sein.
+
+
+ Kopiert die Werte des Zeichenfolgenwörterbuchs am angegebenen Index in eine eindimensionale-Instanz.
+ Das eindimensionale , das das Ziel der aus dem kopierten Werte ist.
+ Der Index im Array, bei dem mit dem Kopieren begonnen wird.
+
+ is multidimensional.-or- The number of elements in the is greater than the available space from to the end of .
+
+ is null.
+
+ is less than the lower bound of .
+
+
+ Ruft die Anzahl der Schlüssel-Wert-Paare im ab.
+ Die Anzahl der Schlüssel-Wert-Paare im .Das Abrufen des Werts dieser Eigenschaft ist ein O(1)-Vorgang.
+
+
+ Gibt einen Enumerator zurück, der das Zeichenfolgenwörterbuch durchläuft.
+ Ein , der das Zeichenfolgenwörterbuch durchläuft.
+
+
+ Ruft einen Wert ab, der angibt, ob der Zugriff auf die synchronisiert (threadsicher) ist.
+ true, wenn der Zugriff auf das synchronisiert (threadsicher) ist, andernfalls false.
+
+
+ Ruft den Wert ab, der dem angegebenen Schlüssel zugeordnet ist, oder legt diesen fest.
+ Der dem angegebenen Schlüssel zugeordnete Wert.I Wenn der angegebene Schlüssel nicht gefunden wird, gibt Get nullzurück, und Set erstellt einen neuen Eintrag mit dem angegebenen Schlüssel.
+ Der Schlüssel, dessen Wert abgerufen oder festgelegt werden soll.
+
+ is null.
+
+
+ Ruft eine Auflistung der Schlüssel im .
+ Eine , die die Schlüssel im bereitstellt.
+
+
+ Entfernt den Eintrag mit dem angegebenen Schlüssel aus dem Zeichenfolgenwörterbuch.
+ Der Schlüssel des zu entfernenden Eintrags.
+ The key is null.
+ The is read-only.
+
+
+ Ruft ein Objekt ab, mit dem der Zugriff auf synchronisiert werden kann.
+ Ein , mit dem der Zugriff auf das synchronisiert werden kann.
+
+
+ Ruft eine Auflistung der Schlüssel im .
+ Eine , die die Werte im bereitstellt.
+
+
+ Unterstützt eine einfache Iteration durch eine .
+
+
+ Ruft das aktuelle Element in der Auflistung ab.
+ Das aktuelle Element in der Auflistung.
+ Der Enumerator ist vor dem ersten Element oder hinter dem letzten Element der Auflistung positioniert.
+
+
+ Setzt den Enumerator auf das nächste Element der Auflistung.
+ true, wenn der Enumerator erfolgreich auf das nächste Element gesetzt wurde, false, wenn der Enumerator das Ende der Auflistung überschritten hat.
+ Die Auflistung wurde nach dem Erstellen des Enumerators geändert.
+
+
+ Setzt den Enumerator auf seine anfängliche Position vor dem ersten Element in der Auflistung.
+ Die Auflistung wurde nach dem Erstellen des Enumerators geändert.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/es/System.Collections.Specialized.xml b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/es/System.Collections.Specialized.xml
new file mode 100644
index 0000000..712bc6a
--- /dev/null
+++ b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/es/System.Collections.Specialized.xml
@@ -0,0 +1,1056 @@
+
+
+
+ System.Collections.Specialized
+
+
+
+ Proporciona una estructura simple que almacena valores booleanos y pequeños enteros en 32 bits de memoria.
+
+
+ Inicializa una nueva instancia de la estructura que contiene los datos representados en una estructura existente.
+ Estructura que contiene los datos que hay que copiar.
+
+
+ Inicializa una nueva instancia de la estructura que contiene los datos representados en un entero.
+ Entero que representa los datos del nuevo .
+
+
+ Crea la primera máscara de una serie, que puede usarse para recuperar bits individuales en que está configurado en marcadores de bits.
+ Máscara que aísla el primer marcador de bits de .
+
+
+
+
+
+ Crea una máscara adicional que sigue a la máscara especificada de una serie, que puede usarse para recuperar bits individuales en que está configurado como marcadores de bits.
+ Máscara que aísla el marcador de bits que sigue al que apunta en .
+ Máscara que muestra el marcador de bits previo.
+
+ indicates the last bit flag in the .
+
+
+ Crea la primera de una serie de secciones que contienen pequeños enteros.
+
+ que puede contener un número de cero a .
+ Entero de 16 bits con signo, que especifica el valor máximo de la nueva .
+
+ is less than 1.
+
+
+ Crea una nueva que sigue a la especificada de una serie de secciones que contienen pequeños enteros.
+
+ que puede contener un número de cero a .
+ Entero de 16 bits con signo, que especifica el valor máximo de la nueva .
+
+ previo en .
+
+ is less than 1.
+
+ includes the final bit in the .-or- is greater than the highest value that can be represented by the number of bits after .
+
+
+ Obtiene el valor de como un entero.
+ Valor de como un entero.
+
+
+ Determina si el objeto especificado es igual a .
+ Es true si el objeto especificado es igual a ; en caso contrario, es false.
+ Objeto que se va a comparar con el objeto actual.
+
+
+ Sirve como función hash para .
+ Código hash para .
+
+
+ Obtiene o establece el valor almacenado en la especificada.
+ Valor almacenado en la especificada.
+
+ que contiene el valor que hay que obtener o establecer.
+
+
+ Obtiene o establece el estado del marcador de bits que indica la máscara especificada.
+ true si el marcador de bits especificado está activo (1); en caso contrario, es false.
+ Máscara que indica el bit que hay que obtener o establecer.
+
+
+ Devuelve una cadena que representa el objeto actual.
+ Cadena que representa el objeto actual.
+
+
+ Devuelve una cadena que representa la estructura especificada.
+ Una cadena que representa la estructura especificada.
+ Estructura que se va a representar.
+
+
+ Representa una sección del vector que puede contener un número entero.
+
+
+ Determina si el objeto especificado coincide con el objeto actual.
+ Es true si el parámetro coincide con el objeto actual; en caso contrario, es false.
+ Objeto que se va a comparar con el objeto actual.
+
+
+ Determina si el objeto especificado coincide con el objeto actual.
+ Es true si el objeto especificado coincide con el objeto actual; en caso contrario, es false.
+ Objeto que se va a comparar con el objeto actual.
+
+
+ Sirve como función hash para la actual, que se puede utilizar en algoritmos hash y estructuras de datos, como una tabla hash.
+ Código hash para el objeto actual.
+
+
+ Obtiene una máscara que aísla esta sección dentro de .
+ Una máscara que aísla esta sección dentro de .
+
+
+ Obtiene el desplazamiento de esta sección desde el inicio de .
+ El desplazamiento de esta sección desde el inicio de .
+
+
+ Determina si los dos objetos especificados son iguales.
+ Es true si los parámetros y representan el mismo objeto ; de lo contrario, es false.
+ Un objeto .
+ Un objeto .
+
+
+ Determina si dos objetos tienen valores diferentes.
+ Es true si los parámetros y representan objetos diferentes; de lo contrario, es false.
+ Un objeto .
+ Un objeto .
+
+
+ Devuelve una cadena que representa el objeto actual.
+ Cadena que representa el objeto actual.
+
+
+ Devuelve una cadena que representa el objeto especificado.
+ Una cadena que representa el objeto especificado.
+ El objeto que se va a representar.
+
+
+ Implementa IDictionary mediante el uso de un mientras la colección es pequeña y, a continuación, cambiar a un cuando la colección se hace grande.
+
+
+ Crea un vacío que distingue entre mayúsculas y minúsculas.
+
+
+ Crea un valor vacío con especificado entre mayúsculas y minúsculas.
+ Valor booleano que indica si distingue entre mayúsculas y minúsculas.
+
+
+ Crea una mayúsculas y minúsculas con el tamaño inicial especificado.
+ Número aproximado de entradas que puede contener inicialmente.
+
+
+ Crea un con el tamaño inicial especificado y la distinción de mayúsculas y minúsculas.
+ Número aproximado de entradas que puede contener inicialmente.
+ Valor booleano que indica si distingue entre mayúsculas y minúsculas.
+
+
+ Agrega una entrada con la clave y el valor especificados a .
+ Clave de la entrada que se va a agregar.
+ Valor de la entrada que se va a agregar.El valor puede ser null.
+
+ is null.
+ Ya existe una entrada con la misma clave en .
+
+
+ Quita todas las entradas de .
+
+
+ Determina si contiene una clave específica.
+ trueSi el contiene una entrada con la clave especificada; de lo contrario, false.
+ Clave que se buscará en .
+
+ is null.
+
+
+ Copia las entradas de a una instancia de unidimensional en el índice especificado.
+
+ unidimensional que constituye el destino de los objetos copiados de . debe tener una indización de base cero.
+ Índice de base cero en la donde comienza la copia.
+
+ is null.
+
+ es menor que cero.
+
+ es multidimensional.o bien El número de elementos de la interfaz de origen es mayor que el espacio disponible desde hasta el final del parámetro de destino.
+ El tipo de la interfaz de origen no se puede convertir automáticamente al tipo de la matriz de destino.
+
+
+ Obtiene el número de pares clave-valor incluidos en .
+ El número de pares de clave y valor incluidos en la .La recuperación del valor de esta propiedad es una operación O(1).
+
+
+ Devuelve un que recorre en iteración la .
+ Estructura para la colección .
+
+
+ Obtiene un valor que indica si la interfaz tiene un tamaño fijo.
+ Esta propiedad devuelve siempre false.
+
+
+ Obtiene un valor que indica si es de solo lectura.
+ Esta propiedad devuelve siempre false.
+
+
+ Obtiene un valor que indica si la está sincronizado (seguro para subprocesos).
+ Esta propiedad devuelve siempre false.
+
+
+ Obtiene o establece el valor asociado a la clave especificada.
+ Valor asociado a la clave especificada.Si no se encuentra la clave especificada, al intentar obtenerla, se devuelve null y, al intentar establecerla, se crea una nueva entrada con la clave especificada.
+ Clave cuyo valor se va a obtener o a establecer.
+
+ is null.
+
+
+ Obtiene un que contiene las claves de .
+
+ que contiene las claves de .
+
+
+ Quita la entrada con la clave especificada de .
+ Clave de la entrada que se va a quitar.
+
+ is null.
+
+
+ Obtiene un objeto que se puede usar para sincronizar el acceso a .
+ Objeto que se puede usar para sincronizar el acceso a .
+
+
+ Devuelve un que recorre en iteración la .
+ Estructura para la colección .
+
+
+ Obtiene un que contiene los valores en el .
+ Un que contiene los valores en el .
+
+
+ Representa una colección indizada de pares de clave y valor.
+
+
+ Devuelve un enumerador que itera por la colección .
+
+ para toda la colección .
+
+
+ Inserta un par de clave y valor en la colección, en el índice especificado.
+ Índice de base cero donde se debe insertar el par de clave y valor.
+ Objeto que se va a utilizar como clave del elemento que se va a agregar.
+ El objeto que se va a usar como valor del elemento que se va a agregar.El valor puede ser null.
+
+ es menor que 0.o bien es mayor que .
+
+ is null.
+ Ya existe un elemento con la misma clave en la colección .
+ La colección es de sólo lectura.o bienLa colección tiene un tamaño fijo.
+
+
+ Obtiene o establece el elemento en el índice especificado.
+ Elemento en el índice especificado.
+ Índice de base cero del elemento que se va a obtener o establecer.
+
+ es menor que 0.o bien es mayor o igual que .
+
+
+ Quita el elemento en el índice especificado.
+ Índice de base cero del elemento que se va a quitar.
+
+ es menor que 0.o bien es mayor o igual que .
+ La colección es de sólo lectura.o bien La colección tiene un tamaño fijo.
+
+
+ Implementa IDictionary utilizando una lista de vínculo única.Se recomienda para las colecciones que normalmente contienen menos de 10 elementos.
+
+
+ Crea un vacío mediante el comparador predeterminado.
+
+
+ Crea un vacío mediante el comparador especificado.
+
+ que se va a utilizar para determinar si dos claves son iguales.o bien null para utilizar el comparador predeterminado, que es la implementación de cada clave de .
+
+
+ Agrega una entrada con la clave y el valor especificados a .
+ Clave de la entrada que se va a agregar.
+ Valor de la entrada que se va a agregar.El valor puede ser null.
+
+ is null.
+ Ya existe una entrada con la misma clave en .
+
+
+ Quita todas las entradas de .
+
+
+ Determina si contiene una clave específica.
+ trueSi el contiene una entrada con la clave especificada; de lo contrario, false.
+ Clave que se buscará en .
+
+ is null.
+
+
+ Copia las entradas de a una instancia de unidimensional en el índice especificado.
+
+ unidimensional que constituye el destino de los objetos copiados de . debe tener una indización de base cero.
+ Índice de base cero en la donde comienza la copia.
+
+ is null.
+
+ es menor que cero.
+
+ es multidimensional.o bien El número de elementos de la interfaz de origen es mayor que el espacio disponible desde hasta el final del parámetro de destino.
+ El tipo de la interfaz de origen no se puede convertir automáticamente al tipo de la matriz de destino.
+
+
+ Obtiene el número de pares clave-valor incluidos en .
+ El número de pares de clave y valor incluidos en la .
+
+
+ Devuelve un que recorre en iteración la .
+ Estructura para la colección .
+
+
+ Obtiene un valor que indica si la interfaz tiene un tamaño fijo.
+ Esta propiedad devuelve siempre false.
+
+
+ Obtiene un valor que indica si es de solo lectura.
+ Esta propiedad devuelve siempre false.
+
+
+ Obtiene un valor que indica si la está sincronizado (seguro para subprocesos).
+ Esta propiedad devuelve siempre false.
+
+
+ Obtiene o establece el valor asociado a la clave especificada.
+ Valor asociado a la clave especificada.Si no se encuentra la clave especificada, al intentar obtenerla, se devuelve null y, al intentar establecerla, se crea una nueva entrada con la clave especificada.
+ Clave cuyo valor se va a obtener o a establecer.
+
+ is null.
+
+
+ Obtiene un que contiene las claves de .
+
+ que contiene las claves de .
+
+
+ Quita la entrada con la clave especificada de .
+ Clave de la entrada que se va a quitar.
+
+ is null.
+
+
+ Obtiene un objeto que se puede usar para sincronizar el acceso a .
+ Objeto que se puede usar para sincronizar el acceso a .
+
+
+ Devuelve un que recorre en iteración la .
+ Estructura para la colección .
+
+
+ Obtiene un que contiene los valores en el .
+ Un que contiene los valores en el .
+
+
+ Proporciona la clase base abstract de una colección de claves de y valores de asociados a los que se puede obtener acceso con la clave o con el índice.
+
+
+ Inicializa una nueva instancia de la clase que está vacía.
+
+
+ Inicializa una nueva instancia de la clase que está vacía, tiene la capacidad inicial predeterminada y usa el objeto especificado.
+ Objeto que se usa para determinar si dos claves son iguales y generar los códigos hash para las claves de la colección.
+
+
+ Inicializa una nueva instancia de la clase que está vacía, tiene la capacidad inicial especificada y usa el proveedor de código hash y el comparador predeterminados.
+ Número aproximado de entradas que la instancia puede contener inicialmente.
+
+ es menor que cero.
+
+
+ Inicializa una nueva instancia de la clase que está vacía, tiene la capacidad inicial especificada y usa el objeto especificado.
+ Número aproximado de entradas que el objeto puede contener inicialmente.
+ Objeto que se usa para determinar si dos claves son iguales y generar los códigos hash para las claves de la colección.
+
+ es menor que cero.
+
+
+ Agrega una entrada con la clave y el valor especificados a la instancia .
+ Clave de de la entrada que se va a agregar.La clave puede ser null.
+ Valor de la entrada que se va a agregar.El valor puede ser null.
+ La colección es de sólo lectura.
+
+
+ Elimina todas las entradas de la instancia .
+ La colección es de sólo lectura.
+
+
+ Obtiene el valor de la entrada que se encuentra en el índice especificado de la instancia .
+
+ que representa el valor de la entrada que se encuentra en el índice especificado.
+ Índice de base cero del valor que se va a obtener.
+
+ está fuera del intervalo válido de índices de la colección.
+
+
+ Obtiene el valor de la primera entrada con la clave especificada desde la instancia .
+
+ que representa el valor de la primera entrada con la clave especificada, si se encuentra; en caso contrario, es null.
+ Clave de la entrada que se va a obtener.La clave puede ser null.
+
+
+ Devuelve una matriz que contiene todas las claves de la instancia .
+ Matriz que contiene todas las claves de la instancia .
+
+
+ Devuelve una matriz que contiene todos los valores de la instancia .
+ Matriz que contiene todos los valores de la instancia .
+
+
+ Devuelve una matriz del tipo especificado que contiene todos los valores de la instancia .
+ Matriz del tipo especificado que contiene todos los valores de la instancia .
+
+ que representa el tipo de matriz que se va a devolver.
+ El valor de es null.
+
+ no es válida .
+
+
+ Obtiene la clave de la entrada que se encuentra en el índice especificado de la instancia .
+
+ que representa la clave de la entrada que se encuentra en el índice especificado.
+ Índice de base cero de la clave que se va a obtener.
+
+ está fuera del intervalo válido de índices de la colección.
+
+
+ Obtiene un valor que indica si la instancia contiene entradas cuyas claves no son null.
+ true si la instancia contiene entradas cuyas claves no son null; en caso contrario, es false.
+
+
+ Quita las entradas con la clave especificada de la instancia de .
+ Clave de las entradas que se van a quitar.La clave puede ser null.
+ La colección es de sólo lectura.
+
+
+ Elimina la entrada que se encuentra en el índice especificado de la instancia .
+ Índice de base cero de la entrada que se va a quitar.
+
+ está fuera del intervalo válido de índices de la colección.
+ La colección es de sólo lectura.
+
+
+ Establece el valor de la entrada que se encuentra en el índice especificado de la instancia .
+ Índice de base cero de la entrada que se va a establecer.
+
+ que representa el nuevo valor de la entrada que se va a establecer.El valor puede ser null.
+ La colección es de sólo lectura.
+
+ está fuera del intervalo válido de índices de la colección.
+
+
+ Establece el valor de la primera entrada con la clave especificada de la instancia , si la encuentra; en caso contrario, agrega una entrada con la clave y el valor especificados a la instancia .
+ Clave de la entrada que se va a establecer.La clave puede ser null.
+
+ que representa el nuevo valor de la entrada que se va a establecer.El valor puede ser null.
+ La colección es de sólo lectura.
+
+
+ Obtiene el número de pares de clave y valor incluidos en la instancia .
+ El número de pares de clave y valor incluidos en la instancia .
+
+
+ Devuelve un enumerador que itera a través de .
+
+ correspondiente a la instancia de .
+
+
+ Obtiene o establece un valor que indica si la instancia es de solo lectura.
+ true si la instancia es de solo lectura; en caso contrario, false.
+
+
+ Obtiene una instancia que contiene todas las claves de la instancia .
+ Instancia que contiene todas las claves de la instancia .
+
+
+ Copia la totalidad de en una matriz unidimensional compatible, comenzando en el índice especificado de la matriz de destino.
+
+ unidimensional que constituye el destino de los elementos copiados de .La matriz debe tener una indización de base cero.
+ Índice de base cero en la donde comienza la copia.
+ El valor de es null.
+
+ es menor que cero.
+
+ es multidimensional.o bienEl número de elementos en el origen de es mayor que el espacio disponible desde hasta el final del destino de .
+ El tipo de origen no puede convertirse automáticamente al tipo del destino de .
+
+
+ Obtiene un valor que indica si el acceso al objeto está sincronizado (es seguro para subprocesos).
+ Es true si el acceso al objeto está sincronizado (es seguro para subprocesos); en caso contrario, es false.De manera predeterminada, es false.
+
+
+ Obtiene un objeto que puede utilizarse para sincronizar el acceso al objeto .
+ Objeto que puede utilizarse para sincronizar el acceso al objeto .
+
+
+ Representa una colección de las claves de una colección.
+
+
+ Obtiene el número de claves de .
+ Número de claves en .
+
+
+ Obtiene la clave que se encuentra en el índice especificado de la colección.
+
+ que contiene la clave que se encuentra en el índice especificado de la colección.
+ Índice de base cero de la clave que se va a obtener de la colección.
+
+ se encuentra fuera del intervalo de índices válido de la colección.
+
+
+ Devuelve un enumerador que recorre en iteración la colección .
+ Estructura para la colección .
+
+
+ Obtiene la entrada que se encuentra en el índice especificado de la colección.
+ Clave de la entrada que se encuentra en el índice especificado de la colección.
+ Índice de base cero de la entrada que se va a localizar en la colección.
+
+ se encuentra fuera del intervalo de índices válido de la colección.
+
+
+ Copia la totalidad de en una matriz unidimensional compatible, comenzando en el índice especificado de la matriz de destino.
+
+ unidimensional que constituye el destino de los elementos copiados de . debe tener una indización de base cero.
+ Índice de base cero de en el que empieza la operación de copia.
+
+ es null.
+
+ es menor que cero.
+
+ es multidimensional.O bien El número de elementos de la interfaz de origen es mayor que el espacio disponible desde hasta el final del parámetro de destino.
+ El tipo de la interfaz de origen no se puede convertir automáticamente al tipo de la matriz de destino.
+
+
+ Obtiene un valor que indica si el acceso a la interfaz está sincronizado (es seguro para subprocesos).
+ Es true si el acceso a está sincronizado (es seguro para subprocesos); de lo contrario, es false.El valor predeterminado es false.
+
+
+ Obtiene un objeto que se puede utilizar para sincronizar el acceso a .
+ Objeto que se puede utilizar para sincronizar el acceso a .
+
+
+ Representa una colección de claves de y valores asociados a los que se puede obtener acceso con la clave o con el índice.
+
+
+ Inicializa una nueva instancia de la clase que está vacía, tiene la capacidad inicial predeterminada y usa el proveedor de código hash y el comparador predeterminados que no distinguen mayúsculas de minúsculas.
+
+
+ Inicializa una nueva instancia de la clase que está vacía, tiene la capacidad inicial predeterminada y usa el objeto especificado.
+ Objeto que se usa para determinar si dos claves son iguales y generar los códigos hash para las claves de la colección.
+
+
+ Copia las entradas de la clase especificada en una nueva clase que tiene la misma capacidad inicial que el número de entradas copiadas, usando el mismo proveedor de códigos hash y el mismo comparador que la colección de origen.
+
+ que se va a copiar en la nueva instancia .
+ El valor de es null.
+
+
+ Inicializa una nueva instancia de la clase que está vacía, tiene la capacidad inicial especificada y usa el proveedor de códigos hash y el comparador predeterminados que no distinguen mayúsculas de minúsculas.
+ Número inicial de entradas que puede contener.
+
+ es menor que cero.
+
+
+ Inicializa una nueva instancia de la clase que está vacía, tiene la capacidad inicial especificada y usa el objeto especificado.
+ Número inicial de entradas que el objeto puede contener.
+ Objeto que se usa para determinar si dos claves son iguales y generar los códigos hash para las claves de la colección.
+
+ es menor que cero.
+
+
+ Copia las entradas de la clase especificada en una nueva clase con la capacidad inicial especificada o con la misma capacidad inicial que el número de entradas copiadas, la que sea mayor, y con el proveedor de códigos hash y el comparador predeterminados que no distinguen mayúsculas de minúsculas.
+ Número inicial de entradas que puede contener.
+
+ que se va a copiar en la nueva instancia .
+
+ es menor que cero.
+ El valor de es null.
+
+
+ Copia las entradas del elemento especificado en el elemento actual.
+
+ que se va a copiar en el elemento actual.
+ La colección es de sólo lectura.
+ El valor de es null.
+
+
+ Agrega una entrada con el nombre y el valor especificados a .
+ Clave de de la entrada que se va a agregar.La clave puede ser null.
+ Valor de la entrada que se va a agregar.El valor puede ser null.
+ La colección es de sólo lectura.
+
+
+ Obtiene todas las claves de .
+ Matriz que contiene todas las claves de .
+
+
+ Invalida las matrices almacenadas en caché y quita todas las entradas de .
+ La colección es de sólo lectura.
+
+
+
+
+
+ Copia la totalidad de en una matriz unidimensional compatible, comenzando en el índice especificado de la matriz de destino.
+
+ unidimensional que constituye el destino de los elementos copiados de .La matriz debe tener una indización de base cero.
+ Índice de base cero en la donde comienza la copia.
+ El valor de es null.
+
+ es menor que cero.
+
+ es multidimensional.o bien El número de elementos en el origen de es mayor que el espacio disponible desde hasta el final del destino de .
+ El tipo de origen no puede convertirse automáticamente al tipo del destino de .
+
+
+ Obtiene los valores en el índice especificado de combinados en una lista y separados por comas.
+
+ que contiene una lista de valores separados por comas en el índice especificado de la , si se encuentra; en caso contrario, es null.
+ Índice de base cero de la entrada que contiene los valores que se van a obtener de la colección.
+
+ está fuera del intervalo válido de índices de la colección.
+
+
+ Obtiene los valores asociados a la clave especificada del elemento combinados en una lista y separados por comas.
+
+ que contiene una lista de valores separados por comas asociados a la clave especificada del elemento , si se encuentra; en caso contrario, es null.
+ Clave de de la entrada que contiene los valores que se van a obtener.La clave puede ser null.
+
+
+ Obtiene la clave en el índice especificado del elemento .
+
+ que contiene la clave en el índice especificado del elemento , si se encuentra; en caso contrario, es null.
+ Índice de base cero de la clave que se va a obtener de la colección.
+
+ está fuera del intervalo válido de índices de la colección.
+
+
+ Obtiene los valores que se encuentran en el índice especificado de .
+ Matriz que contiene los valores en el índice especificado de , si se encuentra; en caso contrario, es null.
+ Índice de base cero de la entrada que contiene los valores que se van a obtener de la colección.
+
+ está fuera del intervalo válido de índices de la colección.
+
+
+ Obtiene los valores asociados a la clave especificada de .
+ Matriz que contiene los valores asociados a la clave especificada de , si se encuentra; en caso contrario, es null.
+ Clave de de la entrada que contiene los valores que se van a obtener.La clave puede ser null.
+
+
+ Obtiene un valor que indica si contiene claves que no son null.
+ true si contiene claves que no son null; en caso contrario, es false.
+
+
+ Restablece las matrices almacenadas en caché de la colección a null.
+
+
+ Obtiene la entrada que se encuentra en el índice especificado de .
+
+ que contiene la lista de valores separados por comas en el índice especificado de la colección.
+ Índice de base cero de la entrada que se va a localizar en la colección.
+
+ está fuera del intervalo válido de índices de la colección.
+
+
+ Obtiene o establece la entrada con la clave especificada en .
+
+ que contiene la lista de valores, separados por comas, asociados a la clave especificada, si se encuentra; en caso contrario, es null.
+ Clave de la entrada que se va a localizar.La clave puede ser null.
+ La colección es de sólo lectura y la operación ha intentado modificarla.
+
+
+ Quita las entradas con la clave especificada de la instancia de .
+ Clave de la entrada que se va a quitar.La clave puede ser null.
+ La colección es de sólo lectura.
+
+
+ Establece el valor de una entrada de .
+ Clave de la entrada a la que se va a agregar el nuevo valor.La clave puede ser null.
+
+ que representa el nuevo valor que se va a agregar a la entrada especificada.El valor puede ser null.
+ La colección es de sólo lectura.
+
+
+ Representa una colección de pares de clave y valor a los que se puede tener acceso por clave o por índice.
+
+
+ Inicializa una nueva instancia de la clase .
+
+
+ Inicializa una nueva instancia de la clase con el comparador especificado.
+
+ que se va a utilizar para determinar si dos claves son iguales.o bien null para utilizar el comparador predeterminado, que es la implementación de cada clave de .
+
+
+ Inicializa una nueva instancia de la clase con la capacidad inicial especificada.
+ Número inicial de elementos que puede contener la colección .
+
+
+ Inicializa una nueva instancia de la clase con la capacidad inicial y el comparador especificados.
+ Número inicial de elementos que puede contener la colección .
+
+ que se va a utilizar para determinar si dos claves son iguales.o bien null para utilizar el comparador predeterminado, que es la implementación de cada clave de .
+
+
+ Agrega una entrada con la clave y el valor especificados a la colección , en el índice más bajo que esté disponible.
+ Clave de la entrada que se va a agregar.
+ Valor de la entrada que se va a agregar.Este valor puede ser null.
+ La colección es de sólo lectura.
+
+
+ Devuelve una copia de solo lectura de la colección actual.
+ Copia de solo lectura de la colección actual.
+
+
+ Quita todos los elementos de la colección .
+ La colección es de sólo lectura.
+
+
+ Determina si la colección contiene una clave específica.
+ true si la colección contiene un elemento con la clave especificada; en caso contrario, false.
+ Clave que se va a buscar en la colección .
+
+
+ Copia los elementos de la colección a un objeto unidimensional en el índice especificado.
+ Objeto unidimensional que constituye el destino de los objetos copiados de la colección . debe tener una indización de base cero.
+ Índice de base cero en la donde comienza la copia.
+
+
+ Obtiene el número de pares clave-valor incluidos en la colección .
+ Número de pares clave-valor incluidos en la colección .
+
+
+ Devuelve un objeto que recorre en iteración la colección.
+ Objeto para la colección .
+
+
+ Inserta una nueva entrada en el colección con la clave especificada y el valor en el índice especificado.
+ Índice de base cero en el que se debe insertar el elemento.
+ Clave de la entrada que se va a agregar.
+ Valor de la entrada que se va a agregar.El valor puede ser null.
+
+ está fuera del intervalo.
+ Esta colección es de solo lectura.
+
+
+ Obtiene un valor que indica si la colección es de solo lectura.
+ true si la colección es de sólo lectura; en caso contrario, false.De manera predeterminada, es false.
+
+
+ Obtiene o establece el valor en el índice especificado.
+ Valor del elemento en el índice especificado.
+ El índice de base cero del valor que se va a obtener o establecer.
+ Se está estableciendo la propiedad y la colección es de sólo lectura.
+
+ es menor que cero.o bien es mayor o igual que .
+
+
+ Obtiene o establece el valor con la clave especificada.
+ Valor asociado a la clave especificada.Si no se encuentra la clave especificada, al intentar obtenerla se devuelve null y al intentar establecerla se crea una nueva entrada con la clave especificada.
+ Clave del valor que se va a obtener o establecer.
+ Se está estableciendo la propiedad y la colección es de sólo lectura.
+
+
+ Obtiene un objeto que contiene las claves de la colección .
+ Objeto que contiene las claves de la colección .
+
+
+ Quita la entrada con la clave especificada de la colección .
+ Clave de la entrada que se va a quitar.
+ La colección es de sólo lectura.
+
+ is null.
+
+
+ Quita la entrada del índice especificado de la colección .
+ Índice de base cero de la entrada que se va a quitar.
+ La colección es de sólo lectura.
+
+ es menor que cero.o bien es mayor o igual que .
+
+
+ Obtiene un valor que indica si el acceso al objeto está sincronizado (es seguro para subprocesos).
+ Este método devuelve siempre false.
+
+
+ Obtiene un objeto que puede utilizarse para sincronizar el acceso al objeto .
+ Objeto que puede utilizarse para sincronizar el acceso al objeto .
+
+
+ Obtiene un valor que indica si la interfaz tiene un tamaño fijo.
+ trueSi el tiene un tamaño fijo; de lo contrario, false.De manera predeterminada, es false.
+
+
+ Devuelve un objeto que recorre en iteración la colección.
+ Objeto para la colección .
+
+
+ Obtiene un objeto que contiene los valores de la colección .
+ Objeto que contiene los valores de la colección .
+
+
+ Representa una colección de cadenas.
+
+
+ Inicializa una nueva instancia de la clase .
+
+
+ Agrega una cadena al final de .
+ Índice de base cero donde se insertó el nuevo elemento.
+ Cadena que se va a agregar al final de .El valor puede ser null.
+
+
+ Copia los elementos de una matriz de cadenas al final del objeto .
+ Matriz de cadenas que se agregan al final de .La propia matriz no puede ser null pero puede contener elementos que sean null.
+
+ es null.
+
+
+ Quita todas las cadenas de .
+
+
+ Determina si la cadena especificada se incluye en .
+ true si se encuentra en la matriz ; en caso contrario, false.
+ Valor que se buscará en .El valor puede ser null.
+
+
+ Copia todos los valores en una matriz de cadenas unidimensional, comenzando por el índice especificado de la matriz de destino.
+ Matriz de cadenas unidimensional que constituye el destino de los elementos copiados de . debe tener una indización de base cero.
+ Índice de base cero de en el que empieza la operación de copia.
+
+ es null.
+
+ es menor que cero.
+
+ es multidimensional.O bien El número de elementos de la interfaz de origen es mayor que el espacio disponible desde hasta el final del parámetro de destino.
+ El tipo de la interfaz de origen no se puede convertir automáticamente al tipo de la matriz de destino.
+
+
+ Obtiene el número de cadenas incluidas en .
+ Número de cadenas incluidas en .
+
+
+ Devuelve una clase que recorre en iteración la clase .
+
+ para .
+
+
+ Busca la cadena especificada y devuelve el índice de base cero de la primera aparición de .
+ Índice de base cero de la primera aparición de en , si se encuentra; en caso contrario, -1.
+ Cadena que se va a localizar.El valor puede ser null.
+
+
+ Inserta una cadena en en el índice especificado.
+ Índice de base cero en el que se inserta .
+ Cadena que se va a insertar.El valor puede ser null.
+
+ es menor que cero.O bien es mayor que .
+
+
+ Obtiene un valor que indica si es de sólo lectura.
+ Esta propiedad devuelve siempre false.
+
+
+ Obtiene un valor que indica si el acceso a la interfaz está sincronizado (es seguro para subprocesos).
+ Esta propiedad devuelve siempre false.
+
+
+ Obtiene o establece el elemento que se encuentra en el índice especificado.
+ El elemento en el índice especificado.
+ Índice de base cero de la entrada que se va a obtener o establecer.
+
+ es menor que cero.O bien es mayor o igual que .
+
+
+ Quita la primera aparición de una cadena especifica de .
+ Cadena que se va a quitar de .El valor puede ser null.
+
+
+ Quita la cadena del índice especificado de .
+ Índice de base cero de la cadena que se va a quitar.
+
+ es menor que cero.O bien es mayor o igual que .
+
+
+ Obtiene un objeto que se puede utilizar para sincronizar el acceso a .
+ Objeto que se puede utilizar para sincronizar el acceso a .
+
+
+ Copia la totalidad de en una matriz unidimensional compatible, comenzando en el índice especificado de la matriz de destino.
+
+ unidimensional que constituye el destino de los elementos copiados de . debe tener una indización de base cero.
+ Índice de base cero de en el que empieza la operación de copia.
+
+ es null.
+
+ es menor que cero.
+
+ es multidimensional.O bien El número de elementos de la interfaz de origen es mayor que el espacio disponible desde hasta el final del parámetro de destino.
+ El tipo de la interfaz de origen no se puede convertir automáticamente al tipo de la matriz de destino.
+
+
+ Devuelve una interfaz que recorre en iteración la clase .
+
+ para .
+
+
+ Agrega un objeto al final de .
+ El índice de en el que se ha agregado .
+ El objeto que se va a agregar al final de .El valor puede ser null.
+
+ es de solo lectura.O bien tiene un tamaño fijo.
+
+
+ Determina si un elemento se encuentra en .
+ true si se encuentra en la matriz ; en caso contrario, false.
+ Objeto que se va a buscar en la interfaz .El valor puede ser null.
+
+
+ Busca el objeto especificado y devuelve el índice de base cero de la primera aparición en toda la colección .
+ Índice de base cero de la primera aparición de en la totalidad de , si se encuentra; en caso contrario, -1.
+ Objeto que se va a buscar en la interfaz .El valor puede ser null.
+
+
+ Inserta un elemento en , en el índice especificado.
+ Índice basado en cero en el que debe insertarse .
+
+ que se va a insertar.El valor puede ser null.
+
+ es menor que cero.O bien es mayor que .
+
+ es de solo lectura.O bien tiene un tamaño fijo.
+
+
+ Obtiene un valor que indica si el objeto tiene un tamaño fijo.
+ true si el objeto tiene un tamaño fijo; en caso contrario, false.El valor predeterminado es false.
+
+
+ Obtiene un valor que indica si el objeto es de solo lectura.
+ true si el objeto es de solo lectura; en caso contrario, false.El valor predeterminado es false.
+
+
+ Obtiene o establece el elemento que se encuentra en el índice especificado.
+ El elemento en el índice especificado.
+ Índice de base cero del elemento que se va a obtener o establecer.
+
+ es menor que cero.O bien es mayor o igual que .
+
+
+ Quita la primera aparición de un objeto específico de la interfaz .
+
+ que se va a quitar de .El valor puede ser null.
+
+ es de solo lectura.O bien tiene un tamaño fijo.
+
+
+ Implementa una tabla hash con la clave y el valor fuertemente tipado de forma que sean cadenas en lugar de objetos.
+
+
+ Inicializa una nueva instancia de la clase .
+
+
+ Agrega una entrada con la clave y el valor especificados a la clase .
+ Clave de la entrada que se va a agregar.
+ Valor de la entrada que se va a agregar.El valor puede ser null.
+
+ is null.
+ An entry with the same key already exists in the .
+ The is read-only.
+
+
+ Quita todas las entradas de .
+ The is read-only.
+
+
+ Determina si contiene una clave específica.
+ true si contiene una entrada con la clave especificada; de lo contrario, false.
+ Clave que se buscará en la interfaz .
+ The key is null.
+
+
+ Determina si contiene un valor específico.
+ true si contiene un elemento con el valor especificado; en caso contrario, false.
+ Valor que se va a buscar en la colección .El valor puede ser null.
+
+
+ Copia los valores del diccionario de cadenas en una instancia de unidimensional en el índice especificado.
+
+ unidimensional que constituye el destino de los valores copiados desde .
+ Índice de la matriz en que se inicia la copia.
+
+ is multidimensional.-or- The number of elements in the is greater than the available space from to the end of .
+
+ is null.
+
+ is less than the lower bound of .
+
+
+ Obtiene el número de pares de clave y valor incluidos en .
+ Número de pares de clave y valor incluidos en .La recuperación del valor de esta propiedad es una operación O(1).
+
+
+ Devuelve un enumerador que recorre en iteración el diccionario de cadenas.
+ Interfaz que recorre en iteración el diccionario de cadenas.
+
+
+ Obtiene un valor que indica si el acceso a la interfaz está sincronizado (es seguro para subprocesos).
+ Es true si el acceso a está sincronizado (es seguro para subprocesos); de lo contrario, es false.
+
+
+ Obtiene o establece el valor asociado a la clave especificada.
+ Valor asociado a la clave especificada.Si no se encuentra la clave especificada, Get devuelve null y Set crea una nueva entrada con la clave especificada.
+ Clave cuyo valor se va a obtener o a establecer.
+
+ is null.
+
+
+ Obtiene una colección de claves incluidas en .
+ Interfaz que proporciona las claves de .
+
+
+ Quita la entrada con la clave especificada del diccionario de cadenas.
+ Clave de la entrada que se va a quitar.
+ The key is null.
+ The is read-only.
+
+
+ Obtiene un objeto que se puede usar para sincronizar el acceso a .
+ Objeto que se puede utilizar para sincronizar el acceso a la colección .
+
+
+ Obtiene una colección de valores incluidos en .
+ Interfaz que proporciona los valores de .
+
+
+ Admite una iteración simple a través de un .
+
+
+ Obtiene el elemento actual de la colección.
+ Elemento actual de la colección.
+ El enumerador se sitúa antes del primer elemento de la colección o después del último.
+
+
+ Desplaza el enumerador al siguiente elemento de la colección.
+ true si el enumerador avanzó con éxito hasta el siguiente elemento; false si el enumerador alcanzó el final de la colección.
+ La colección se modificó después de crear el enumerador.
+
+
+ Establece el enumerador en su posición inicial (antes del primer elemento de la colección).
+ La colección se modificó después de crear el enumerador.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/fr/System.Collections.Specialized.xml b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/fr/System.Collections.Specialized.xml
new file mode 100644
index 0000000..c84df21
--- /dev/null
+++ b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/fr/System.Collections.Specialized.xml
@@ -0,0 +1,1078 @@
+
+
+
+ System.Collections.Specialized
+
+
+
+ Fournit une structure simple qui stocke des valeurs booléennes et des petits entiers dans 32 bits de mémoire.
+
+
+ Initialise une nouvelle instance de la structure contenant les données représentées dans une structure existante.
+ Structure qui contient les données à copier.
+
+
+ Initialise une nouvelle instance de la structure contenant les données représentées dans un entier.
+ Entier représentant les données de la nouvelle structure .
+
+
+ Crée le premier masque d'une série de masques qui peuvent être utilisés pour récupérer des bits dans un configuré en tant qu'indicateurs binaires.
+ Masque qui isole le premier indicateur binaire dans .
+
+
+
+
+
+ Crée un masque supplémentaire à la suite du masque spécifié d'une série de masques qui peuvent être utilisés pour récupérer des bits dans un configuré en tant qu'indicateurs binaires.
+ Masque qui isole l'indicateur binaire suivant celui désigné par dans .
+ Masque qui spécifie l'indicateur binaire précédent.
+
+ indicates the last bit flag in the .
+
+
+ Crée le premier d'une série de sections qui contiennent de petits entiers.
+
+ qui peut contenir un nombre compris entre zéro et .
+ Entier signé 16 bits qui spécifie la valeur maximale du nouveau .
+
+ is less than 1.
+
+
+ Crée un nouveau à la suite du spécifié dans une série de sections qui contiennent de petits entiers.
+
+ qui peut contenir un nombre compris entre zéro et .
+ Entier signé 16 bits qui spécifie la valeur maximale du nouveau .
+
+ précédent dans .
+
+ is less than 1.
+
+ includes the final bit in the .-or- is greater than the highest value that can be represented by the number of bits after .
+
+
+ Obtient la valeur de sous la forme d'un entier.
+ Valeur de sous la forme d'un entier.
+
+
+ Détermine si l'objet spécifié est égal à .
+ true si l'objet spécifié est égal à ; sinon, false.
+ Objet à comparer au actuel.
+
+
+ Sert de fonction de hachage pour .
+ Code de hachage pour .
+
+
+ Obtient ou définit la valeur stockée dans le spécifié.
+ Valeur stockée dans le spécifié.
+
+ qui contient la valeur à obtenir ou à définir.
+
+
+ Obtient ou définit l'état de l'indicateur binaire déterminé par le masque spécifié.
+ true si l'indicateur binaire spécifié est activé (1) ; sinon, false.
+ Masque qui indique le bit à obtenir ou à définir.
+
+
+ Retourne une chaîne qui représente le actuel.
+ Chaîne qui représente le actuel.
+
+
+ Retourne une chaîne qui représente le spécifié.
+ Chaîne qui représente le spécifié.
+
+ à représenter.
+
+
+ Représente une section du vecteur qui peut contenir un nombre entier.
+
+
+ Détermine si l'objet spécifié correspond à l'objet en cours.
+ true si le paramètre correspond à l'objet en cours ; sinon, false.
+ Objet à comparer avec l'objet en cours.
+
+
+ Détermine si l'objet spécifié correspond à l'objet en cours.
+ true si l'objet spécifié correspond à l'objet en cours ; sinon, false.
+ Objet à comparer au en cours.
+
+
+ Est utilisé comme fonction de hachage pour le en cours et convient aux algorithmes de hachage et aux structures de données, par exemple une table de hachage.
+ Code de hachage du en cours.
+
+
+ Obtient un masque qui isole cette section dans .
+ Masque qui isole cette section dans .
+
+
+ Obtient l'offset de cette section à partir du début du .
+ Offset de cette section à partir du début du .
+
+
+ Détermine si deux objets spécifiés sont identiques.
+ true si les paramètres et représentent le même objet ; sinon, false.
+ Objet .
+ Objet .
+
+
+ Détermine si deux objets ont des valeurs différentes.
+ true si les paramètres et représentent des objets différents ; sinon, false.
+ Objet .
+ Objet .
+
+
+ Retourne une chaîne qui représente le en cours.
+ Chaîne qui représente le en cours.
+
+
+ Retourne une chaîne qui représente le spécifié.
+ Chaîne qui représente le spécifié.
+
+ à représenter.
+
+
+ Implémente IDictionary à l'aide d'un lorsque la collection est petite, puis passe à un lorsque la collection s'agrandit.
+
+
+ Crée un vide qui respecte la casse.
+
+
+ Crée un vide avec le respect de la casse spécifié.
+ Valeur Boolean qui indique si ne respecte pas la casse.
+
+
+ Crée qui respecte la casse avec la taille initiale spécifiée.
+ Nombre approximatif d'entrées que peut contenir initialement.
+
+
+ Crée avec la taille initiale et le respect de la casse spécifiés.
+ Nombre approximatif d'entrées que peut contenir initialement.
+ Valeur Boolean qui indique si ne respecte pas la casse.
+
+
+ Ajoute une entrée avec la clé et la valeur spécifiées dans .
+ Clé de l'entrée à ajouter.
+ Valeur de l'entrée à ajouter.La valeur peut être null.
+
+ a la valeur null.
+ Une entrée avec la même clé existe déjà dans .
+
+
+ Supprime toutes les entrées de .
+
+
+ Détermine si contient une clé spécifique.
+ true si contient une entrée avec la clé spécifiée ; sinon, false.
+ Clé à rechercher dans .
+
+ a la valeur null.
+
+
+ Copie les entrées de vers une instance de unidimensionnel, à l'index spécifié.
+
+ unidimensionnel qui constitue la destination des objets copiés à partir de . doit avoir une indexation de base zéro.
+ Index de base zéro dans le à partir duquel la copie commence.
+
+ a la valeur null.
+
+ est inférieur à zéro.
+
+ est multidimensionnel.ou Le nombre d'éléments dans le source est supérieur à la quantité d'espace disponible entre et la fin du de destination.
+ Le cast automatique du type du source en type du de destination est impossible.
+
+
+ Obtient le nombre de paires clé/valeur contenues dans .
+ Nombre de paires clé/valeur contenues dans .La récupération de la valeur de cette propriété est une opération O(1).
+
+
+ Retourne un qui itère au sein de .
+
+ pour .
+
+
+ Obtient une valeur indiquant si est de taille fixe.
+ Cette propriété retourne toujours false.
+
+
+ Obtient une valeur indiquant si est en lecture seule.
+ Cette propriété retourne toujours false.
+
+
+ Obtient une valeur indiquant si le est synchronisé (thread-safe).
+ Cette propriété retourne toujours false.
+
+
+ Obtient ou définit la valeur associée à la clé spécifiée.
+ Valeur associée à la clé spécifiée.Si la clé spécifiée est introuvable, la tentative de son obtention retourne null et la tentative de sa définition crée une nouvelle entrée avec la clé spécifiée.
+ Clé dont la valeur doit être obtenue ou définie.
+
+ a la valeur null.
+
+
+ Obtient contenant les clés de .
+
+ contenant les clés de .
+
+
+ Supprime de l'entrée avec la clé spécifiée.
+ Clé de l'entrée à supprimer.
+
+ a la valeur null.
+
+
+ Obtient un objet qui peut être utilisé pour synchroniser l'accès à .
+ Objet qui peut être utilisé pour synchroniser l'accès à .
+
+
+ Retourne un qui itère au sein de .
+
+ pour .
+
+
+ Obtient contenant les valeurs de .
+
+ contenant les valeurs de .
+
+
+ Représente une collection indexée de paires clé/valeur.
+
+
+ Retourne un énumérateur qui itère au sein de la collection .
+
+ pour l'intégralité de la collection .
+
+
+ Insère une paire clé/valeur dans la collection à l'index spécifié.
+ Index de base zéro auquel la paire clé/valeur doit être insérée.
+ Objet à utiliser comme clé de l'élément à ajouter.
+ Objet à utiliser comme valeur de l'élément à ajouter.La valeur peut être null.
+
+ est inférieur à 0.ou est supérieur à .
+
+ a la valeur null.
+ Un élément possédant la même clé existe déjà dans la collection .
+ La collection est en lecture seule.ouLa taille de la collection est fixe.
+
+
+ Obtient ou définit l'élément au niveau de l'index spécifié.
+ Élément à l'index spécifié.
+ Index de base zéro de l'élément à obtenir ou à définir.
+
+ est inférieur à 0.ou est supérieur ou égal à .
+
+
+ Supprime l'élément au niveau de l'index spécifié.
+ Index de base zéro de l'élément à supprimer.
+
+ est inférieur à 0.ou est supérieur ou égal à .
+ La collection est en lecture seule.ou La taille de la collection est fixe.
+
+
+ Implémente IDictionary à l'aide d'une liste liée unique.Recommandée pour les collections qui contiennent généralement moins de 10 éléments.
+
+
+ Crée un vide à l'aide du comparateur par défaut.
+
+
+ Crée un vide à l'aide du comparateur spécifié.
+
+ à utiliser pour déterminer si deux clés sont égales.ou null pour utiliser le comparateur par défaut, qui est l'implémentation de chaque clé de .
+
+
+ Ajoute une entrée avec la clé et la valeur spécifiées dans .
+ Clé de l'entrée à ajouter.
+ Valeur de l'entrée à ajouter.La valeur peut être null.
+
+ a la valeur null.
+ Une entrée avec la même clé existe déjà dans .
+
+
+ Supprime toutes les entrées de .
+
+
+ Détermine si contient une clé spécifique.
+ true si contient une entrée avec la clé spécifiée ; sinon, false.
+ Clé à rechercher dans .
+
+ a la valeur null.
+
+
+ Copie les entrées de vers une instance de unidimensionnel, à l'index spécifié.
+
+ unidimensionnel qui constitue la destination des objets copiés à partir de . doit avoir une indexation de base zéro.
+ Index de base zéro dans le à partir duquel la copie commence.
+
+ a la valeur null.
+
+ est inférieur à zéro.
+
+ est multidimensionnel.ou Le nombre d'éléments dans le source est supérieur à la quantité d'espace disponible entre et la fin du de destination.
+ Le cast automatique du type du source en type du de destination est impossible.
+
+
+ Obtient le nombre de paires clé/valeur contenues dans .
+ Nombre de paires clé/valeur contenues dans .
+
+
+ Retourne un qui itère au sein de .
+
+ pour .
+
+
+ Obtient une valeur indiquant si est de taille fixe.
+ Cette propriété retourne toujours false.
+
+
+ Obtient une valeur indiquant si est en lecture seule.
+ Cette propriété retourne toujours false.
+
+
+ Obtient une valeur indiquant si le est synchronisé (thread-safe).
+ Cette propriété retourne toujours false.
+
+
+ Obtient ou définit la valeur associée à la clé spécifiée.
+ Valeur associée à la clé spécifiée.Si la clé spécifiée est introuvable, la tentative de son obtention retourne null et la tentative de sa définition crée une nouvelle entrée avec la clé spécifiée.
+ Clé dont la valeur doit être obtenue ou définie.
+
+ a la valeur null.
+
+
+ Obtient contenant les clés de .
+
+ contenant les clés de .
+
+
+ Supprime de l'entrée avec la clé spécifiée.
+ Clé de l'entrée à supprimer.
+
+ a la valeur null.
+
+
+ Obtient un objet qui peut être utilisé pour synchroniser l'accès à .
+ Objet qui peut être utilisé pour synchroniser l'accès à .
+
+
+ Retourne un qui itère au sein de .
+
+ pour .
+
+
+ Obtient contenant les valeurs de .
+
+ contenant les valeurs de .
+
+
+ Fournit la classe de base abstract pour une collection de clés de type et de valeurs associées accessibles soit via la clé, soit via l'index.
+
+
+ Initialise une nouvelle instance de la classe qui est vide.
+
+
+ Initialise une nouvelle instance de la classe qui est vide, possède la capacité initiale par défaut et utilise l'objet spécifié.
+ Objet à utiliser pour déterminer si deux clés sont égales et pour générer des codes de hachage pour les clés de la collection.
+
+
+ Initialise une nouvelle instance de la classe qui est vide, possède la capacité initiale spécifiée et utilise le fournisseur de code de hachage et le comparateur par défaut.
+ Nombre approximatif d'entrées pouvant être contenues initialement dans l'instance du .
+
+ est inférieur à zéro.
+
+
+ Initialise une nouvelle instance de la classe qui est vide, possède la capacité initiale spécifiée et utilise l'objet spécifié.
+ Nombre approximatif d'entrées que l'objet peut contenir initialement.
+ Objet à utiliser pour déterminer si deux clés sont égales et pour générer des codes de hachage pour les clés de la collection.
+
+ est inférieur à zéro.
+
+
+ Ajoute une entrée contenant la clé et la valeur spécifiées dans l'instance du .
+ Clé de type de l'entrée à ajouter.La clé peut être null.
+ Valeur d'élément de l'entrée à ajouter.La valeur peut être null.
+ La collection est en lecture seule.
+
+
+ Supprime toutes les entrées de l'instance du .
+ La collection est en lecture seule.
+
+
+ Obtient la valeur de l'entrée à l'index spécifié de l'instance du .
+
+ qui représente la valeur de l'entrée à l'index spécifié.
+ Index de base zéro de la valeur à obtenir.
+
+ est en dehors de la plage valide d'index pour cette collection.
+
+
+ Obtient la valeur de la première entrée ayant la clé spécifiée dans l'instance du .
+
+ qui représente la valeur de la première entrée ayant la clé spécifiée, si elle existe ; sinon, null.
+ Clé de type de l'entrée à obtenir.La clé peut être null.
+
+
+ Retourne un tableau de type qui contient toutes les clés dans l'instance du .
+ Tableau de type qui contient toutes les clés dans l'instance du .
+
+
+ Retourne un tableau d'éléments qui contient toutes les valeurs présentes dans l'instance du .
+ Tableau d'éléments qui contient toutes les valeurs présentes dans l'instance du .
+
+
+ Retourne un tableau du type spécifié qui contient toutes les valeurs présentes dans l'instance du .
+ Tableau du type spécifié qui contient toutes les valeurs présentes dans l'instance du .
+
+ qui représente le type de tableau à retourner.
+
+ a la valeur null.
+
+ n'est pas un valide.
+
+
+ Obtient la clé de l'entrée à l'index spécifié de l'instance du .
+
+ qui représente la clé de l'entrée à l'index spécifié.
+ Index de base zéro de la clé à obtenir.
+
+ est en dehors de la plage valide d'index pour cette collection.
+
+
+ Obtient une valeur indiquant si l'instance du contient des entrées dont les clés ne sont pas null.
+ true si l'instance du contient des entrées dont les clés ne sont pas null ; sinon, false.
+
+
+ Supprime les entrées contenant la clé spécifiée dans l'instance du .
+ Clé de type des entrées à supprimer.La clé peut être null.
+ La collection est en lecture seule.
+
+
+ Supprime les entrées à l'index spécifié de l'instance du .
+ Index de base zéro de l'entrée à supprimer.
+
+ est en dehors de la plage valide d'index pour cette collection.
+ La collection est en lecture seule.
+
+
+ Définit la valeur de l'entrée à l'index spécifié de l'instance du .
+ Index de base zéro de l'entrée à définir.
+
+ qui représente la nouvelle valeur de l'entrée à définir.La valeur peut être null.
+ La collection est en lecture seule.
+
+ est en dehors de la plage valide d'index pour cette collection.
+
+
+ Définit la valeur de la première entrée contenant la clé spécifiée dans l'instance du , si elle existe ; sinon, ajoute une entrée contenant la clé et la valeur spécifiées dans l'instance du .
+ Clé de l'entrée à définir.La clé peut être null.
+
+ qui représente la nouvelle valeur de l'entrée à définir.La valeur peut être null.
+ La collection est en lecture seule.
+
+
+ Obtient le nombre de paires clé/valeur contenues dans l'instance du .
+ Nombre de paires clé/valeur contenues dans l'instance du .
+
+
+ Retourne un énumérateur qui itère au sein de .
+
+ pour l'instance du .
+
+
+ Obtient ou définit une valeur indiquant si l'instance du est en lecture seule.
+ true si l'instance du est en lecture seule ; sinon, false.
+
+
+ Obtient une instance du qui contient toutes les clés dans l'instance du .
+ Instance du qui contient toutes les clés dans l'instance du .
+
+
+ Copie l'ensemble de l'objet vers un objet unidimensionnel compatible, en commençant à l'index spécifié du tableau cible.
+
+ unidimensionnel qui constitue la destination des éléments copiés à partir de .Le doit avoir une indexation de base zéro.
+ Index de base zéro dans l' à partir duquel la copie commence.
+
+ a la valeur null.
+
+ est inférieur à zéro.
+
+ est multidimensionnel.ouLe nombre d'éléments dans le source est supérieur à la quantité d'espace disponible entre et la fin du de destination.
+ Le cast automatique du type du source en type du de destination est impossible.
+
+
+ Obtient une valeur indiquant si l'accès à l'objet est synchronisé (thread-safe).
+ true si l'accès à l'objet est synchronisé (thread-safe) ; sinon, false.La valeur par défaut est false.
+
+
+ Obtient un objet qui peut être utilisé pour synchroniser l'accès à l'objet .
+ Objet pouvant être utilisé pour synchroniser l'accès à l'objet .
+
+
+ Représente une collection des clés d'une collection.
+
+
+ Obtient le nombre de clés dans .
+ Nombre de clés dans .
+
+
+ Obtient la clé à l'index spécifié de la collection.
+
+ qui contient la clé à l'index spécifié de la collection.
+ Index de base zéro de la clé à obtenir de la collection.
+
+ est en dehors de la plage valide d'index pour cette collection.
+
+
+ Retourne un énumérateur qui itère au sein de .
+
+ pour .
+
+
+ Obtient l'entrée à l'index spécifié de la collection.
+ Clé de l'entrée à l'index spécifié de la collection.
+ Index de base zéro de l'entrée à rechercher dans la collection.
+
+ est en dehors de la plage valide d'index pour cette collection.
+
+
+ Copie l'ensemble de l'objet vers un objet unidimensionnel compatible, en commençant à l'index spécifié du tableau cible.
+
+ unidimensionnel qui constitue la destination des éléments copiés à partir d'. doit avoir une indexation de base zéro.
+ Index de base zéro dans à partir duquel la copie commence.
+
+ a la valeur null.
+
+ est inférieur à zéro.
+
+ est multidimensionnel.ou Le nombre d'éléments dans le source est supérieur à la quantité d'espace disponible entre et la fin du de destination.
+ Le cast automatique du type du source en type du de destination est impossible.
+
+
+ Obtient une valeur indiquant si l'accès à est synchronisé (thread-safe).
+ true si l'accès à est synchronisé (thread-safe) ; sinon false.La valeur par défaut est false.
+
+
+ Obtient un objet qui peut être utilisé pour synchroniser l'accès à .
+ Objet qui peut être utilisé pour synchroniser l'accès à .
+
+
+ Représente une collection de clés de type et de valeurs associées accessibles soit via la clé, soit via l'index.
+
+
+ Initialise une nouvelle instance de la classe qui est vide, possède la capacité initiale par défaut et utilise le fournisseur de code de hachage ne respectant pas la casse par défaut, ainsi que le comparateur ne respectant pas la casse par défaut.
+
+
+ Initialise une nouvelle instance de la classe qui est vide, possède la capacité initiale par défaut et utilise l'objet spécifié.
+ Objet à utiliser pour déterminer si deux clés sont égales et pour générer des codes de hachage pour les clés de la collection.
+
+
+ Copie les entrées du spécifié vers un nouveau possédant la même capacité initiale que le nombre d'entrées copiées et utilisant le même fournisseur de code de hachage, ainsi que le même comparateur que celui de la collection source.
+
+ à copier vers la nouvelle instance de .
+
+ a la valeur null.
+
+
+ Initialise une nouvelle instance de la classe qui est vide, possède la capacité initiale spécifiée et utilise le fournisseur de code de hachage ne respectant pas la casse par défaut, ainsi que le comparateur ne respectant pas la casse par défaut.
+ Nombre initial d'entrées que le peut contenir.
+
+ est inférieur à zéro.
+
+
+ Initialise une nouvelle instance de la classe qui est vide, possède la capacité initiale spécifiée et utilise l'objet spécifié.
+ Nombre initial d'entrées que l'objet peut contenir.
+ Objet à utiliser pour déterminer si deux clés sont égales et pour générer des codes de hachage pour les clés de la collection.
+
+ est inférieur à zéro.
+
+
+ Copie les entrées du spécifié vers un nouveau possédant la capacité initiale spécifiée ou la même capacité initiale que le nombre d'entrées copiées (selon la valeur la plus élevée) et utilisant le fournisseur de code de hachage ne respectant pas la casse par défaut, ainsi que le comparateur ne respectant pas la casse par défaut.
+ Nombre initial d'entrées que le peut contenir.
+
+ à copier vers la nouvelle instance de .
+
+ est inférieur à zéro.
+
+ a la valeur null.
+
+
+ Copie les entrées dans le spécifié pour le actuel.
+
+ à copier vers le actuel.
+ La collection est en lecture seule.
+
+ a la valeur null.
+
+
+ Ajoute une entrée possédant le nom et la valeur spécifiés au .
+ Clé de type de l'entrée à ajouter.La clé peut être null.
+ Valeur d'élément de l'entrée à ajouter.La valeur peut être null.
+ La collection est en lecture seule.
+
+
+ Obtient toutes les clés contenues dans le .
+ Tableau d'éléments qui contient toutes les clés du .
+
+
+ Invalide les tableaux mis en cache et supprime toutes les entrées du .
+ La collection est en lecture seule.
+
+
+
+
+
+ Copie l'ensemble de l'objet vers un objet unidimensionnel compatible, en commençant à l'index spécifié du tableau cible.
+
+ unidimensionnel qui constitue la destination des éléments copiés à partir de .Le doit avoir une indexation de base zéro.
+ Index de base zéro dans l' à partir duquel la copie commence.
+
+ a la valeur null.
+
+ est inférieur à zéro.
+
+ est multidimensionnel.ou Le nombre d'éléments dans le source est supérieur à la quantité d'espace disponible entre et la fin du de destination.
+ Le cast automatique du type du source en type du de destination est impossible.
+
+
+ Obtient les valeurs à l'index spécifié du , combinées dans une liste avec la virgule comme séparateur.
+
+ qui contient la liste avec la virgule comme séparateur des valeurs à l'index spécifié du , si elle existe ; sinon, null.
+ Index de base zéro de l'entrée qui contient les valeurs à obtenir de la collection.
+
+ est en dehors de la plage valide d'index pour cette collection.
+
+
+ Obtient les valeurs associées à la clé spécifiée du , combinées dans une liste avec la virgule comme séparateur.
+
+ qui contient une liste avec la virgule comme séparateur des valeurs associées à la clé spécifiée du , si elle existe ; sinon, null.
+ Clé de type de l'entrée qui contient les valeurs à obtenir.La clé peut être null.
+
+
+ Obtient la clé à l'index spécifié du .
+
+ qui contient la clé à l'index spécifié du , si elle existe ; sinon, null.
+ Index de base zéro de la clé à obtenir de la collection.
+
+ est en dehors de la plage valide d'index pour cette collection.
+
+
+ Obtient les valeurs à l'index spécifié du .
+ Tableau d'éléments qui contient les valeurs à l'index spécifié du , si elles existent ; sinon, null.
+ Index de base zéro de l'entrée qui contient les valeurs à obtenir de la collection.
+
+ est en dehors de la plage valide d'index pour cette collection.
+
+
+ Obtient les valeurs associées à la clé spécifiée à partir du .
+ Tableau d'éléments qui contient les valeurs associées à la clé spécifiée du , si elles existent ; sinon, null.
+ Clé de type de l'entrée qui contient les valeurs à obtenir.La clé peut être null.
+
+
+ Obtient une valeur qui indique si le contient des clés qui ne sont pas null.
+ true si le contient des clés qui ne sont pas null ; sinon, false.
+
+
+ Réaffecte la valeur null aux tableaux mis en cache de la collection.
+
+
+ Obtient l'entrée à l'index spécifié du .
+
+ qui contient la liste avec la virgule comme séparateur des valeurs à l'index spécifié de la collection.
+ Index de base zéro de l'entrée à rechercher dans la collection.
+
+ est en dehors de la plage valide d'index pour cette collection.
+
+
+ Obtient ou définit l'entrée dans le avec la clé spécifiée.
+
+ qui contient la liste avec la virgule comme séparateur des valeurs associées à la clé spécifiée, si elle existe ; sinon, null.
+ Clé de l'entrée à rechercher.La clé peut être null.
+ La collection est en lecture seule et l'opération tente de modifier la collection.
+
+
+ Supprime les entrées contenant la clé spécifiée dans l'instance du .
+ Clé de type de l'entrée à supprimer.La clé peut être null.
+ La collection est en lecture seule.
+
+
+ Définit la valeur d'une entrée dans le .
+ Clé de type de l'entrée à laquelle ajouter la nouvelle valeur.La clé peut être null.
+
+ qui représente la nouvelle valeur à ajouter à l'entrée spécifiée.La valeur peut être null.
+ La collection est en lecture seule.
+
+
+ Représente une collection de paires clé/valeur qui sont accessibles par la clé ou l'index.
+
+
+ Initialise une nouvelle instance de la classe .
+
+
+ Initialise une nouvelle instance de la classe à l'aide du comparateur spécifié.
+
+ à utiliser pour déterminer si deux clés sont égales.ou null pour utiliser le comparateur par défaut, qui est l'implémentation de chaque clé de .
+
+
+ Initialise une nouvelle instance de la classe à l'aide de la capacité initiale spécifiée.
+ Nombre initial d'éléments que la collection peut contenir.
+
+
+ Initialise une nouvelle instance de la classe à l'aide de la capacité initiale et du comparateur spécifiés.
+ Nombre initial d'éléments que la collection peut contenir.
+
+ à utiliser pour déterminer si deux clés sont égales.ou null pour utiliser le comparateur par défaut, qui est l'implémentation de chaque clé de .
+
+
+ Ajoute une entrée avec la clé et la valeur spécifiées dans la collection avec l'index disponible le plus bas.
+ Clé de l'entrée à ajouter.
+ Valeur de l'entrée à ajouter.Cette valeur peut être null.
+ La collection est en lecture seule.
+
+
+ Retourne une copie en lecture seule de la collection en cours.
+ Copie en lecture seule de la collection en cours.
+
+
+ Supprime tous les éléments de la collection .
+ La collection est en lecture seule.
+
+
+ Détermine si la collection contient une clé spécifique.
+ true si la collection contient un élément avec la clé spécifiée ; sinon, false.
+ Clé à rechercher dans la collection .
+
+
+ Copie les éléments dans un objet à une dimension à l'index spécifié.
+ Objet unidimensionnel qui constitue la destination des objets copiés à partir de la collection . doit avoir une indexation de base zéro.
+ Index de base zéro dans le à partir duquel la copie commence.
+
+
+ Obtient le nombre de paires clé/valeur contenues dans la collection .
+ Nombre de paires clé/valeur contenues dans la collection .
+
+
+ Retourne un objet qui itère au sein de la collection .
+ Objet pour la collection .
+
+
+ Insère une nouvelle entrée dans la collection avec la clé et la valeur spécifiées à l'index spécifié.
+ Index de base zéro auquel l'élément doit être inséré.
+ Clé de l'entrée à ajouter.
+ Valeur de l'entrée à ajouter.La valeur peut être null.
+
+ est hors limites.
+ Cette collection est en lecture seule.
+
+
+ Obtient une valeur indiquant si la collection est en lecture seule.
+ true si la collection est en lecture seule ; sinon, false.La valeur par défaut est false.
+
+
+ Obtient ou définit la valeur à l'index spécifié.
+ Valeur de l'élément à l'index spécifié.
+ Index de base zéro de la valeur à obtenir ou définir.
+ La propriété est en cours de définition et la collection est en lecture seule.
+
+ est inférieur à zéro.ou est supérieur ou égal à .
+
+
+ Obtient ou définit la valeur avec la clé spécifiée.
+ Valeur associée à la clé spécifiée.Si la clé spécifiée est introuvable, la tentative d'obtention retourne null et la tentative de définition crée un nouvel élément avec la clé spécifiée.
+ Clé de la valeur à obtenir ou à définir.
+ La propriété est en cours de définition et la collection est en lecture seule.
+
+
+ Obtient un objet contenant les clés de la collection .
+ Objet contenant les clés de la collection .
+
+
+ Supprime l'entrée par la clé spécifiée provenant de la collection .
+ Clé de l'entrée à supprimer.
+ La collection est en lecture seule.
+
+ a la valeur null.
+
+
+ Supprime de la collection l'entrée à l'index spécifié.
+ Index de base zéro de l'entrée à supprimer.
+ La collection est en lecture seule.
+
+ est inférieur à zéro.ou est supérieur ou égal à .
+
+
+ Obtient une valeur indiquant si l'accès à l'objet est synchronisé (thread-safe).
+ Cette méthode retourne toujours false.
+
+
+ Obtient un objet qui peut être utilisé pour synchroniser l'accès à l'objet .
+ Objet pouvant être utilisé pour synchroniser l'accès à l'objet .
+
+
+ Obtient une valeur indiquant si est de taille fixe.
+ true si est de taille fixe ; sinon, false.La valeur par défaut est false.
+
+
+ Retourne un objet qui itère au sein de la collection .
+ Objet pour la collection .
+
+
+ Obtient un objet contenant les valeurs de la collection .
+ Objet contenant les valeurs de la collection .
+
+
+ Représente une collection de chaînes.
+
+
+ Initialise une nouvelle instance de la classe .
+
+
+ Ajoute une chaîne à la fin de .
+ Index de base zéro au niveau duquel le nouvel élément est inséré.
+ Chaîne à ajouter à la fin de .La valeur peut être null.
+
+
+ Copie les éléments d'un tableau de chaînes à la fin de .
+ Tableau de chaînes à ajouter à la fin de .Le tableau lui-même ne peut pas être null, mais il peut contenir des éléments qui sont null.
+
+ a la valeur null.
+
+
+ Supprime toutes les chaînes de .
+
+
+ Détermine si la chaîne spécifiée est dans le .
+ true si existe dans ; sinon, false.
+ Chaîne à trouver dans .La valeur peut être null.
+
+
+ Copie les valeurs de dans son intégralité dans un tableau unidimensionnel de chaînes, en commençant à l'index spécifié du tableau cible.
+ Tableau unidimensionnel de chaînes qui constitue la destination des éléments copiés à partir de . doit avoir une indexation de base zéro.
+ Index de base zéro dans à partir duquel la copie commence.
+
+ a la valeur null.
+
+ est inférieur à zéro.
+
+ est multidimensionnel.ou Le nombre d'éléments dans le source est supérieur à la quantité d'espace disponible entre et la fin du de destination.
+ Le cast automatique du type du source en type du de destination est impossible.
+
+
+ Obtient le nombre de chaînes contenues dans .
+ Nombre de chaînes contenues dans .
+
+
+ Retourne un qui itère au sein de .
+
+ pour .
+
+
+ Recherche la chaîne spécifiée et retourne l'index de base zéro de la première occurrence dans .
+ Index de base zéro de la première occurrence de dans , s'il existe ; sinon, -1.
+ Chaîne à localiser.La valeur peut être null.
+
+
+ Insère une chaîne dans à l'index spécifié.
+ Index de base zéro au niveau duquel est inséré.
+ Chaîne à insérer.La valeur peut être null.
+
+ est inférieur à zéro.ou est supérieur à .
+
+
+ Obtient une valeur indiquant si est en lecture seule.
+ Cette propriété retourne toujours false.
+
+
+ Obtient une valeur indiquant si l'accès à est synchronisé (thread-safe).
+ Cette propriété retourne toujours false.
+
+
+ Obtient ou définit l'élément situé à l'index spécifié.
+ Élément situé à l'index spécifié.
+ Index de base zéro de l'entrée à obtenir ou définir.
+
+ est inférieur à zéro.ou est supérieur ou égal à .
+
+
+ Supprime la première occurrence d'une chaîne spécifique du .
+ Chaîne à supprimer du .La valeur peut être null.
+
+
+ Supprime la chaîne à l'index spécifié dans .
+ Index de base zéro de la chaîne à supprimer.
+
+ est inférieur à zéro.ou est supérieur ou égal à .
+
+
+ Obtient un objet qui peut être utilisé pour synchroniser l'accès à .
+ Objet qui peut être utilisé pour synchroniser l'accès à .
+
+
+ Copie l'ensemble de l'objet vers un objet unidimensionnel compatible, en commençant à l'index spécifié du tableau cible.
+
+ unidimensionnel qui constitue la destination des éléments copiés à partir d'. doit avoir une indexation de base zéro.
+ Index de base zéro dans à partir duquel la copie commence.
+
+ a la valeur null.
+
+ est inférieur à zéro.
+
+ est multidimensionnel.ou Le nombre d'éléments dans le source est supérieur à la quantité d'espace disponible entre et la fin du de destination.
+ Le cast automatique du type du source en type du de destination est impossible.
+
+
+ Retourne un qui itère au sein de .
+
+ pour .
+
+
+ Ajoute un objet à la fin de .
+ Index auquel a été ajouté.
+
+ à ajouter à la fin de .La valeur peut être null.
+
+ est en lecture seule.ou est de taille fixe.
+
+
+ Détermine si un élément est dans .
+ true si existe dans ; sinon, false.
+
+ à rechercher dans .La valeur peut être null.
+
+
+ Recherche le spécifié et retourne l'index de base zéro de la première occurrence dans l'ensemble du .
+ Index de base zéro de la première occurrence de dans l'ensemble du , s'il existe ; sinon, -1.
+
+ à rechercher dans .La valeur peut être null.
+
+
+ Insère un élément dans à l'index spécifié.
+ Index de base zéro auquel doit être inséré.
+
+ à insérer.La valeur peut être null.
+
+ est inférieur à zéro.ou est supérieur à .
+
+ est en lecture seule.ou est de taille fixe.
+
+
+ Obtient une valeur indiquant si l'objet est de taille fixe.
+ true si l'objet est de taille fixe ; sinon, false.La valeur par défaut est false.
+
+
+ Obtient une valeur indiquant si l'objet est en lecture seule.
+ true si l'objet est en lecture seule ; sinon, false.La valeur par défaut est false.
+
+
+ Obtient ou définit l'élément situé à l'index spécifié.
+ Élément situé à l'index spécifié.
+ Index de base zéro de l'élément à obtenir ou définir.
+
+ est inférieur à zéro.ou est supérieur ou égal à .
+
+
+ Supprime la première occurrence d'un objet spécifique de .
+
+ à supprimer de .La valeur peut être null.
+
+ est en lecture seule.ou est de taille fixe.
+
+
+ Implémente un tableau de hachage avec la clé et la valeur fortement typées qui seront des chaînes plutôt que des objets.
+
+
+ Initialise une nouvelle instance de la classe .
+
+
+ Ajoute une entrée avec la clé et la valeur spécifiées dans .
+ Clé de l'entrée à ajouter.
+ Valeur de l'entrée à ajouter.La valeur peut être null.
+
+ is null.
+ An entry with the same key already exists in the .
+ The is read-only.
+
+
+ Supprime toutes les entrées de .
+ The is read-only.
+
+
+ Détermine si contient une clé spécifique.
+ true si contient une entrée avec la clé spécifiée ; sinon, false.
+ Clé à rechercher dans .
+ The key is null.
+
+
+ Détermine si contient une valeur spécifique.
+ true si contient un élément correspondant à la valeur spécifiée ; sinon, false.
+ Valeur à trouver dans .La valeur peut être null.
+
+
+ Copie les valeurs du dictionnaire de chaînes vers une instance de unidimensionnelle, à l'index spécifié.
+
+ unidimensionnel qui est la destination des valeurs copiées à partir de .
+ Index dans le tableau à partir duquel la copie commence.
+
+ is multidimensional.-or- The number of elements in the is greater than the available space from to the end of .
+
+ is null.
+
+ is less than the lower bound of .
+
+
+ Obtient le nombre de paires clé/valeur dans .
+ Nombre de paires clé/valeur dans .La récupération de la valeur de cette propriété est une opération O(1).
+
+
+ Retourne un énumérateur qui itère au sein du dictionnaire de chaînes.
+
+ qui peut itérer au sein du dictionnaire de chaînes.
+
+
+ Obtient une valeur indiquant si l'accès à est synchronisé (thread-safe).
+ true si l'accès à est synchronisé (thread-safe) ; sinon false.
+
+
+ Obtient ou définit la valeur associée à la clé spécifiée.
+ Valeur associée à la clé spécifiée.Si la clé spécifiée est introuvable, Get retourne null et Set crée une nouvelle entrée avec la clé spécifiée.
+ Clé dont la valeur doit être obtenue ou définie.
+
+ is null.
+
+
+ Obtient une collection de clés dans .
+
+ qui fournit les clés dans .
+
+
+ Supprime du dictionnaire de chaînes l'entrée avec la clé spécifiée.
+ Clé de l'entrée à supprimer.
+ The key is null.
+ The is read-only.
+
+
+ Obtient un objet qui peut être utilisé pour synchroniser l'accès à .
+
+ pouvant être utilisé pour synchroniser l'accès à .
+
+
+ Obtient une collection de valeurs dans .
+
+ qui fournit les valeurs dans .
+
+
+ Prend en charge une itération simple sur .
+
+
+ Obtient l'élément actuel dans la collection.
+ Élément actuel dans la collection.
+ L'énumérateur précède le premier élément ou suit le dernier élément de la collection.
+
+
+ Avance l'énumérateur à l'élément suivant de la collection.
+ true si l'énumérateur a pu avancer jusqu'à l'élément suivant ; false si l'énumérateur a dépassé la fin de la collection.
+ La collection a été modifiée après la création de l'énumérateur.
+
+
+ Rétablit l'énumérateur à sa position initiale, qui précède le premier élément de la collection.
+ La collection a été modifiée après la création de l'énumérateur.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/it/System.Collections.Specialized.xml b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/it/System.Collections.Specialized.xml
new file mode 100644
index 0000000..64a544f
--- /dev/null
+++ b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/it/System.Collections.Specialized.xml
@@ -0,0 +1,1028 @@
+
+
+
+ System.Collections.Specialized
+
+
+
+ Fornisce una struttura semplice che memorizza valori Boolean e Small Integer in 32 bit di memoria.
+
+
+ Inizializza una nuova istanza della struttura che contiene i dati rappresentati in una struttura esistente.
+ Struttura che contiene i dati da copiare.
+
+
+ Inizializza una nuova istanza della struttura che contiene i dati rappresentati in un intero.
+ Intero che rappresenta i dati della nuova struttura .
+
+
+ Crea la prima di una serie di maschere che possono essere usate per recuperare i singoli bit di una struttura configurata come flag di bit.
+ Maschera che isola il primo flag di bit della struttura .
+
+
+
+
+
+ Crea una maschera aggiuntiva, successiva alla maschera specificata all'interno di una serie, che è possibile usare per recuperare i singoli bit di una struttura impostata come flag di bit.
+ Maschera che isola il flag di bit successivo a quello cui punta nella struttura .
+ Maschera che indica il flag di bit precedente.
+
+ indicates the last bit flag in the .
+
+
+ Crea la prima sezione di una serie di sezioni che contengono Small Integer.
+
+ che può contenere un numero compreso tra zero e .
+ Intero con segno a 16 bit che specifica il valore massimo del nuovo .
+
+ is less than 1.
+
+
+ Crea una nuova sezione , successiva a quella specificata in una serie di sezioni che contengono Small Integer.
+
+ che può contenere un numero compreso tra zero e .
+ Intero con segno a 16 bit che specifica il valore massimo del nuovo .
+ Sezione precedente nella struttura .
+
+ is less than 1.
+
+ includes the final bit in the .-or- is greater than the highest value that can be represented by the number of bits after .
+
+
+ Ottiene il valore della struttura sotto forma di intero.
+ Valore della struttura sotto forma di intero.
+
+
+ Determina se l'oggetto specificato è uguale alla struttura .
+ true se l'oggetto specificato è uguale a ; in caso contrario, false.
+ Oggetto da confrontare con l'oggetto corrente.
+
+
+ Viene usato come funzione hash per la struttura .
+ Codice hash per la classe .
+
+
+ Ottiene o imposta il valore memorizzato nella struttura specificata.
+ Valore memorizzato nella struttura specificata.
+ Oggetto che contiene il valore da ottenere o impostare.
+
+
+ Ottiene o imposta lo stato del flag di bit indicato dalla maschera specificata.
+ true se il flag di bit specificato è attivato (1); in caso contrario, false.
+ Maschera che indica il bit da ottenere o impostare.
+
+
+ Restituisce una stringa che rappresenta l'oggetto corrente.
+ Stringa che rappresenta l'oggetto corrente.
+
+
+ Restituisce una stringa che rappresenta l'oggetto specificato.
+ Stringa che rappresenta l'oggetto specificato.
+ Oggetto da rappresentare.
+
+
+ Rappresenta una sezione del vettore che può contenere un numero intero.
+
+
+ Determina se l'oggetto specificato corrisponde all'oggetto corrente.
+ true se il parametro corrisponde all'oggetto corrente; in caso contrario false.
+ Oggetto da confrontare con l'oggetto corrente.
+
+
+ Determina se l'oggetto specificato corrisponde all'oggetto corrente.
+ true se l'oggetto specificato corrisponde all'oggetto corrente; in caso contrario false.
+ Oggetto da confrontare con l'oggetto corrente.
+
+
+ Viene utilizzato come funzione hash per l'oggetto corrente, adatto per algoritmi hash e strutture di dati, ad esempio una tabella hash.
+ Codice hash per la classe corrente.
+
+
+ Ottiene una maschera che isola la sezione all'interno della struttura .
+ Maschera che isola la sezione all'interno della struttura .
+
+
+ Ottiene l'offset della sezione a partire dall'inizio della struttura .
+ Offset della sezione a partire dall'inizio della struttura .
+
+
+ Determina se due oggetti specificati sono uguali.
+ true se i parametri e rappresentano lo stesso oggetto , altrimenti false.
+ Oggetto .
+ Oggetto .
+
+
+ Determina se due oggetti hanno valori diversi.
+ true se i parametri e rappresentano oggetti diversi, altrimenti false.
+ Oggetto .
+ Oggetto .
+
+
+ Restituisce una stringa che rappresenta l'oggetto corrente.
+ Stringa che rappresenta l'oggetto corrente.
+
+
+ Restituisce una stringa che rappresenta l'oggetto specificato.
+ Stringa che rappresenta l'oggetto specificato.
+ Oggetto da rappresentare.
+
+
+ Implementa IDictionary usando un oggetto quando la raccolta è di piccole dimensioni e passa a un oggetto quando le dimensioni della raccolta aumentano.
+
+
+ Crea un oggetto vuoto con distinzione tra maiuscole e minuscole.
+
+
+ Crea un oggetto vuoto con il comportamento relativo a maiuscole e minuscole specificato.
+ Valore booleano che indica se non prevede la distinzione tra maiuscole e minuscole.
+
+
+ Crea un oggetto con la distinzione tra maiuscole e minuscole e con le dimensioni iniziali specificate.
+ Numero approssimativo di voci che l'oggetto può contenere inizialmente.
+
+
+ Crea un oggetto con comportamento relativo a maiuscole e minuscole e dimensione iniziale specificati.
+ Numero approssimativo di voci che l'oggetto può contenere inizialmente.
+ Valore booleano che indica se non prevede la distinzione tra maiuscole e minuscole.
+
+
+ Aggiunge una voce con la chiave e il valore specificati nell'oggetto .
+ Chiave della voce da aggiungere.
+ Valore della voce da aggiungere.Il valore può essere null.
+
+ è null.
+ In è già presente una voce con la stessa chiave.
+
+
+ Rimuove tutte le voci da .
+
+
+ Determina se l'oggetto contiene una chiave specifica.
+ true se la classe contiene una voce con la chiave specificata; in caso contrario, false.
+ Chiave da individuare in .
+
+ è null.
+
+
+ Copia le voci dell'oggetto in un'istanza di unidimensionale in corrispondenza dell'indice specificato.
+ Oggetto unidimensionale che corrisponde alla destinazione degli oggetti copiati da .L'indicizzazione di deve essere in base zero.
+ Indice in base zero in in corrispondenza del quale viene avviata la copia.
+
+ è null.
+
+ è minore di zero.
+
+ è multidimensionale.-oppure- Il numero degli elementi nell'oggetto di origine è maggiore dello spazio disponibile tra e la fine dell'oggetto di destinazione.
+ Non è possibile eseguire automaticamente il cast del tipo dell'oggetto di origine al tipo del parametro di destinazione.
+
+
+ Ottiene il numero di coppie chiave/valore contenute in .
+ Numero di coppie chiave/valore contenute in .Il recupero del valore di questa proprietà è un'operazione O(1).
+
+
+ Restituisce un oggetto che esegue l'iterazione di .
+
+ per l'oggetto .
+
+
+ Ottiene un valore che indica se ha dimensioni fisse.
+ Questa proprietà restituisce sempre false.
+
+
+ Ottiene un valore che indica se è di sola lettura.
+ Questa proprietà restituisce sempre false.
+
+
+ Ottiene un valore che indica se la classe è sincronizzata (thread-safe).
+ Questa proprietà restituisce sempre false.
+
+
+ Ottiene o imposta il valore associato alla chiave specificata.
+ Valore associato alla chiave specificata.Se si prova a ottenere una chiave non rilevata, verrà restituito null, mentre se si prova a impostarla verrà creata una nuova voce con la quale verrà usata la chiave specificata.
+ Chiave di cui si deve ottenere o impostare il valore.
+
+ è null.
+
+
+ Ottiene un oggetto contenente le chiavi presenti nell'oggetto .
+ Oggetto contenente le chiavi presenti in .
+
+
+ Rimuove la voce con la chiave specificata da .
+ Chiave della voce da rimuovere.
+
+ è null.
+
+
+ Ottiene un oggetto che può essere usato per sincronizzare l'accesso a .
+ Oggetto che può essere usato per sincronizzare l'accesso a .
+
+
+ Restituisce un oggetto che esegue l'iterazione di .
+
+ per l'oggetto .
+
+
+ Ottiene contenente i valori in .
+ Interfaccia contenente i valori dell'interfaccia .
+
+
+ Rappresenta una raccolta indicizzata di coppie chiave/valore.
+
+
+ Restituisce un enumeratore che consente di scorrere la raccolta .
+ Interfaccia per l'intera raccolta .
+
+
+ Inserisce una coppia chiave/valore nella raccolta in corrispondenza dell'indice specificato.
+ Indice in base zero in corrispondenza del quale inserire la coppia chiave/valore.
+ Oggetto da usare come chiave dell'elemento da aggiungere.
+ Oggetto da usare come valore dell'elemento da aggiungere.Il valore può essere null.
+
+ è minore di 0.-oppure- è maggiore di .
+
+ è null.
+ Un elemento con la stessa chiave esiste già nell'insieme .
+ L'insieme è in sola lettura.-oppure-L'insieme ha una dimensione fissa.
+
+
+ Ottiene o imposta l'elemento in corrispondenza dell'indice specificato.
+ Elemento in corrispondenza dell'indice specificato.
+ Indice in base zero dell'elemento da ottenere o impostare.
+
+ è minore di 0.-oppure- è maggiore di o uguale a .
+
+
+ Rimuove l'elemento in corrispondenza dell'indice specificato.
+ Indice in base zero dell'elemento da rimuovere.
+
+ è minore di 0.-oppure- è maggiore di o uguale a .
+ L'insieme è in sola lettura.-oppure- L'insieme ha una dimensione fissa.
+
+
+ Implementa l'oggetto IDictionary usando un elenco di oggetti collegato singolarmente.Consigliato per le raccolte che includono meno di 10 voci.
+
+
+ Crea un oggetto vuoto mediante l'operatore di confronto predefinito.
+
+
+ Crea un oggetto vuoto mediante l'operatore di confronto specificato.
+ Oggetto da usare per determinare se due chiavi sono uguali.-oppure- null per usare l'operatore di confronto predefinito, che rappresenta l'implementazione del metodo di ogni chiave.
+
+
+ Aggiunge una voce con la chiave e il valore specificati nell'oggetto .
+ Chiave della voce da aggiungere.
+ Valore della voce da aggiungere.Il valore può essere null.
+
+ è null.
+ In è già presente una voce con la stessa chiave.
+
+
+ Rimuove tutte le voci da .
+
+
+ Determina se l'oggetto contiene una chiave specifica.
+ true se la classe contiene una voce con la chiave specificata; in caso contrario, false.
+ Chiave da individuare in .
+
+ è null.
+
+
+ Copia le voci dell'oggetto in un'istanza di unidimensionale in corrispondenza dell'indice specificato.
+ Oggetto unidimensionale che corrisponde alla destinazione degli oggetti copiati da .L'indicizzazione di deve essere in base zero.
+ Indice in base zero in in corrispondenza del quale viene avviata la copia.
+
+ è null.
+
+ è minore di zero.
+
+ è multidimensionale.-oppure- Il numero degli elementi nell'oggetto di origine è maggiore dello spazio disponibile tra e la fine dell'oggetto di destinazione.
+ Non è possibile eseguire automaticamente il cast del tipo dell'oggetto di origine al tipo del parametro di destinazione.
+
+
+ Ottiene il numero di coppie chiave/valore contenute in .
+ Numero di coppie chiave/valore contenute in .
+
+
+ Restituisce un oggetto che esegue l'iterazione di .
+
+ per l'oggetto .
+
+
+ Ottiene un valore che indica se ha dimensioni fisse.
+ Questa proprietà restituisce sempre false.
+
+
+ Ottiene un valore che indica se è di sola lettura.
+ Questa proprietà restituisce sempre false.
+
+
+ Ottiene un valore che indica se la classe è sincronizzata (thread-safe).
+ Questa proprietà restituisce sempre false.
+
+
+ Ottiene o imposta il valore associato alla chiave specificata.
+ Valore associato alla chiave specificata.Se si prova a ottenere una chiave non rilevata, verrà restituito null, mentre se si prova a impostarla verrà creata una nuova voce con la quale verrà usata la chiave specificata.
+ Chiave di cui si deve ottenere o impostare il valore.
+
+ è null.
+
+
+ Ottiene un oggetto contenente le chiavi presenti nell'oggetto .
+ Oggetto contenente le chiavi presenti in .
+
+
+ Rimuove la voce con la chiave specificata da .
+ Chiave della voce da rimuovere.
+
+ è null.
+
+
+ Ottiene un oggetto che può essere usato per sincronizzare l'accesso a .
+ Oggetto che può essere usato per sincronizzare l'accesso a .
+
+
+ Restituisce un oggetto che esegue l'iterazione di .
+
+ per l'oggetto .
+
+
+ Ottiene contenente i valori in .
+ Interfaccia contenente i valori dell'interfaccia .
+
+
+ Fornisce la classe di base abstract per un insieme di chiavi e valori associati, a cui è possibile accedere con la chiave o con l'indice.
+
+
+ Inizializza una nuova istanza vuota della classe .
+
+
+ Inizializza una nuova istanza vuota della classe , con la capacità iniziale predefinita e che usa l'oggetto specificato.
+ Oggetto da usare per determinare se due chiavi sono uguali e per generare codice hash per le chiavi contenute nella raccolta.
+
+
+ Inizializza una nuova istanza vuota della classe , con la capacità iniziale specificata e che usa il provider di codice hash e l'operatore di confronto predefiniti.
+ Numero approssimativo di voci che l'istanza di può contenere inizialmente.
+
+ è minore di zero.
+
+
+ Inizializza una nuova istanza vuota della classe , con la capacità iniziale specificata e che usa l'oggetto specificato.
+ Numero approssimativo di voci che l'oggetto può contenere inizialmente.
+ Oggetto da usare per determinare se due chiavi sono uguali e per generare codice hash per le chiavi contenute nella raccolta.
+
+ è minore di zero.
+
+
+ Aggiunge una voce con la chiave e il valore specificati nell'istanza di .
+ Chiave della voce da aggiungere.La chiave può essere null.
+ Valore della voce da aggiungere.Il valore può essere null.
+ Raccolta di sola lettura.
+
+
+ Rimuove tutte le voci dall'istanza di .
+ Raccolta di sola lettura.
+
+
+ Ottiene il valore della voce in corrispondenza dell'indice specificato dell'istanza di .
+ Oggetto che rappresenta il valore della voce in corrispondenza dell'indice specificato.
+ Indice in base zero del valore da ottenere.
+
+ non è compreso nell'intervallo valido di indici per l'insieme.
+
+
+ Ottiene il valore della prima voce con la chiave specificata dall'istanza di .
+ Oggetto che rappresenta il valore della prima voce con la chiave specificata, se presente; in caso contrario, null.
+ Chiave della voce da ottenere.La chiave può essere null.
+
+
+ Restituisce una matrice che contiene tutte le chiavi incluse nell'istanza di .
+ Matrice che contiene tutte le chiavi incluse nell'istanza di .
+
+
+ Restituisce una matrice che contiene tutti i valori inclusi nell'istanza di .
+ Matrice che contiene tutti i valori inclusi nell'istanza di .
+
+
+ Restituisce una matrice del tipo specificato che contiene tutti i valori inclusi nell'istanza di .
+ Matrice del tipo specificato che contiene tutti i valori inclusi nell'istanza di .
+ Oggetto che rappresenta il tipo di matrice che deve essere restituito.
+
+ è null.
+
+ non è un oggetto valido.
+
+
+ Ottiene la chiave della voce in corrispondenza dell'indice specificato dell'istanza di .
+ Oggetto che rappresenta la chiave della voce in corrispondenza dell'indice specificato.
+ Indice in base zero della chiave da ottenere.
+
+ non è compreso nell'intervallo valido di indici per l'insieme.
+
+
+ Ottiene un valore che indica se l'istanza di contiene voci le cui chiavi non sono null.
+ true se l'istanza di contiene voci le cui chiavi non sono null, in caso contrario false.
+
+
+ Rimuove le voci con la chiave specificata dall'istanza di .
+ Chiave delle voci da rimuovere.La chiave può essere null.
+ Raccolta di sola lettura.
+
+
+ Rimuove la voce in corrispondenza dell'indice specificato dell'istanza di .
+ Indice in base zero della voce da rimuovere.
+
+ non è compreso nell'intervallo valido di indici per l'insieme.
+ Raccolta di sola lettura.
+
+
+ Imposta il valore della voce in corrispondenza dell'indice specificato dell'istanza di .
+ Indice in base zero della voce da impostare.
+ Oggetto che rappresenta il nuovo valore della voce da impostare.Il valore può essere null.
+ Raccolta di sola lettura.
+
+ non è compreso nell'intervallo valido di indici per l'insieme.
+
+
+ Imposta il valore della prima voce con la chiave specificata contenuta nell'istanza di , se presente; in caso contrario aggiunge una voce con la chiave e il valore specificati nell'istanza di .
+ Chiave della voce da impostare.La chiave può essere null.
+ Oggetto che rappresenta il nuovo valore della voce da impostare.Il valore può essere null.
+ Raccolta di sola lettura.
+
+
+ Ottiene il numero di coppie chiave/valore contenute nell'istanza della classe .
+ Numero di coppie chiave/valore contenute nell'istanza della classe .
+
+
+ Restituisce un enumeratore che esegue l'iterazione di .
+ Oggetto per l'istanza di .
+
+
+ Ottiene o imposta un valore che indica se l'istanza di è di sola lettura.
+ true se l'istanza di è di sola lettura, in caso contrario false.
+
+
+ Ottiene un'istanza di che contiene tutte le chiavi incluse nell'istanza di .
+ Istanza di che contiene tutte le chiavi incluse nell'istanza di .
+
+
+ Copia l'intero oggetto in un oggetto compatibile unidimensionale, a partire dall'indice specificato della matrice di destinazione.
+ Oggetto unidimensionale che rappresenta la destinazione degli elementi copiati dall'oggetto .L'indicizzazione di deve essere in base zero.
+ Indice in base zero in in corrispondenza del quale viene avviata la copia.
+
+ è null.
+
+ è minore di zero.
+
+ è multidimensionale.-oppure-Il numero degli elementi nell'oggetto di origine è maggiore dello spazio disponibile tra e la fine dell'oggetto di destinazione.
+ Non è possibile eseguire automaticamente il cast del tipo dell'oggetto di origine al tipo del parametro di destinazione.
+
+
+ Ottiene un valore che indica se l'accesso all'oggetto è sincronizzato (thread-safe).
+ true se l'accesso all'oggetto è sincronizzato (thread-safe); in caso contrario, false.Il valore predefinito è false.
+
+
+ Ottiene un oggetto che può essere usato per sincronizzare l'accesso all'oggetto .
+ Oggetto che può essere usato per sincronizzare l'accesso all'oggetto .
+
+
+ Rappresenta un insieme delle chiavi di un insieme.
+
+
+ Ottiene il numero di chiavi presenti in .
+ Numero di chiavi presenti in .
+
+
+ Ottiene la chiave in corrispondenza dell'indice specificato dell'insieme.
+ Oggetto che contiene la chiave in corrispondenza dell'indice specificato dell'insieme.
+ Indice in base zero della chiave da ottenere dall'insieme.
+
+ non è compreso nell'intervallo valido di indici per l'insieme.
+
+
+ Restituisce un enumeratore che scorre la classe .
+
+ per la .
+
+
+ Ottiene la voce in corrispondenza dell'indice specificato dell'insieme.
+ Chiave della voce in corrispondenza dell'indice specificato dell'insieme.
+ L'indice in base zero della voce da individuare all'interno dell'insieme.
+
+ non è compreso nell'intervallo valido di indici per l'insieme.
+
+
+ Copia l'intero oggetto in un oggetto compatibile unidimensionale, a partire dall'indice specificato della matrice di destinazione.
+ Oggetto unidimensionale che rappresenta la destinazione degli elementi copiati dall'oggetto .L'indicizzazione di deve essere in base zero.
+ Indice in base zero della matrice specificata nel parametro in corrispondenza del quale ha inizio la copia.
+
+ è null.
+
+ è minore di zero.
+
+ è multidimensionale.- oppure - Il numero degli elementi nell'oggetto di origine è maggiore dello spazio disponibile tra e la fine dell'oggetto di destinazione.
+ Non è possibile eseguire automaticamente il cast del tipo dell'oggetto di origine al tipo del parametro di destinazione.
+
+
+ Ottiene un valore che indica se l'accesso a è sincronizzato (thread-safe).
+ true se l'accesso all'oggetto è sincronizzato (thread-safe); in caso contrario, false.Il valore predefinito è false.
+
+
+ Ottiene un oggetto che può essere utilizzato per sincronizzare l'accesso a .
+ Oggetto che può essere utilizzato per sincronizzare l'accesso a .
+
+
+ Rappresenta un insieme di chiavi e valori associati cui è possibile accedere tramite la chiave o mediante l'indice.
+
+
+ Inizializza una nuova istanza vuota della classe , con la capacità iniziale predefinita e che usa il provider di codice hash e l'operatore di confronto senza distinzione tra maiuscole e minuscole predefiniti.
+
+
+ Inizializza una nuova istanza vuota della classe , con la capacità iniziale predefinita e che usa l'oggetto specificato.
+ Oggetto da usare per determinare se due chiavi sono uguali e per generare codice hash per le chiavi contenute nella raccolta.
+
+
+ Copia le voci dall'oggetto specificato a un nuovo oggetto con la stessa capacità iniziale del numero di voci copiate e usando lo stesso provider di codice hash e lo stesso operatore di confronto della raccolta di origine.
+ Oggetto da copiare in una nuova istanza di .
+
+ è null.
+
+
+ Inizializza una nuova istanza vuota della classe con la capacità iniziale specificata, che usa il provider di codice hash e l'operatore di confronto senza distinzione tra maiuscole e minuscole predefiniti.
+ Numero iniziale di voci che l'oggetto può contenere.
+
+ è minore di zero.
+
+
+ Inizializza una nuova istanza vuota della classe , con la capacità iniziale specificata e che usa l'oggetto specificato.
+ Numero iniziale di voci che l'oggetto può contenere.
+ Oggetto da usare per determinare se due chiavi sono uguali e per generare codice hash per le chiavi contenute nella raccolta.
+
+ è minore di zero.
+
+
+ Copia le voci dall'oggetto specificato in un nuovo oggetto con la capacità iniziale specificata o uguale a quella del numero di voci copiate, in base a quale delle due ha il valore maggiore, e usando il provider di codice hash e l'operatore di confronto senza distinzione tra maiuscole e minuscole predefiniti.
+ Numero iniziale di voci che l'oggetto può contenere.
+ Oggetto da copiare in una nuova istanza di .
+
+ è minore di zero.
+
+ è null.
+
+
+ Copia le voci dell'oggetto specificato nell'oggetto corrente.
+ Oggetto da copiare nell'oggetto corrente.
+ Raccolta di sola lettura.
+
+ è null.
+
+
+ Aggiunge a una voce con il nome e il valore specificati.
+ Chiave della voce da aggiungere.La chiave può essere null.
+ Valore della voce da aggiungere.Il valore può essere null.
+ Raccolta di sola lettura.
+
+
+ Ottiene tutte le chiavi contenute in .
+ Matrice che contiene tutte le chiavi di .
+
+
+ Invalida le matrici presenti nella cache e rimuove tutte le voci da .
+ Raccolta di sola lettura.
+
+
+
+
+
+ Copia l'intero oggetto in un oggetto compatibile unidimensionale, a partire dall'indice specificato della matrice di destinazione.
+ Oggetto unidimensionale che rappresenta la destinazione degli elementi copiati dall'oggetto .L'indicizzazione di deve essere in base zero.
+ Indice in base zero in in corrispondenza del quale viene avviata la copia.
+
+ è null.
+
+ è minore di zero.
+
+ è multidimensionale.-oppure- Il numero degli elementi nell'oggetto di origine è maggiore dello spazio disponibile tra e la fine dell'oggetto di destinazione.
+ Non è possibile eseguire automaticamente il cast del tipo dell'oggetto di origine al tipo del parametro di destinazione.
+
+
+ Ottiene i valori in corrispondenza dell'indice specificato dell'oggetto combinato in un elenco separato da virgole.
+ Oggetto che contiene un elenco separato da virgole dei valori in corrispondenza dell'indice specificato di , se presente; in caso contrario, null.
+ Indice in base zero della voce che contiene i valori da ottenere dalla raccolta.
+
+ non è compreso nell'intervallo valido di indici per l'insieme.
+
+
+ Ottiene i valori associati alla chiave specificata dall'oggetto combinati in un elenco separato da virgole.
+ Oggetto che contiene un elenco separato da virgole dei valori associati alla chiave specificata da , se presente; in caso contrario, null.
+ Chiave della voce che contiene i valori da ottenere.La chiave può essere null.
+
+
+ Ottiene la chiave in corrispondenza dell'indice specificato di .
+ Oggetto che contiene la chiave in corrispondenza dell'indice specificato di , se presente; in caso contrario null.
+ Indice in base zero della chiave da ottenere dalla raccolta.
+
+ non è compreso nell'intervallo valido di indici per l'insieme.
+
+
+ Ottiene i valori in corrispondenza dell'indice specificato dell'oggetto .
+ Matrice che contiene i valori in corrispondenza dell'indice specificato di , se presente; in caso contrario null.
+ Indice in base zero della voce che contiene i valori da ottenere dalla raccolta.
+
+ non è compreso nell'intervallo valido di indici per l'insieme.
+
+
+ Ottiene i valori associati alla chiave specificata dall'oggetto .
+ Matrice che contiene i valori associati alla chiave specificata dall'oggetto , se presente; in caso contrario, null.
+ Chiave della voce che contiene i valori da ottenere.La chiave può essere null.
+
+
+ Ottiene un valore che indica se l'oggetto contiene chiavi che non sono null.
+ true se l'oggetto contiene chiavi che non sono null, in caso contrario false.
+
+
+ Ripristina su null le matrici dell'insieme inserite nella cache.
+
+
+ Ottiene la voce in corrispondenza dell'indice specificato della classe .
+ Oggetto che contiene l'elenco separato da virgole dei valori in corrispondenza dell'indice specificato della raccolta.
+ L'indice in base zero della voce da individuare all'interno della raccolta.
+
+ non è compreso nell'intervallo valido di indici per l'insieme.
+
+
+ Ottiene o imposta la voce con la chiave specificata in .
+ Oggetto che contiene l'elenco separato da virgole dei valori associati alla chiave specificata, se presente; in caso contrario, null.
+ Chiave della voce da individuare.La chiave può essere null.
+ Si è tentato di modificare un insieme in sola lettura.
+
+
+ Rimuove le voci con la chiave specificata dall'istanza di .
+ Chiave della voce da rimuovere.La chiave può essere null.
+ Raccolta di sola lettura.
+
+
+ Imposta il valore di una voce contenuta nell'oggetto .
+ Chiave della voce a cui aggiungere il nuovo valore.La chiave può essere null.
+ Oggetto che rappresenta il nuovo valore da aggiungere alla voce specificata.Il valore può essere null.
+ Raccolta di sola lettura.
+
+
+ Rappresenta una raccolta di coppie chiave/valore accessibili in base alla chiave o all'indice.
+
+
+ Inizializza una nuova istanza della classe .
+
+
+ Inizializza una nuova istanza della classe mediante l'operatore di confronto specificato.
+ Oggetto da usare per determinare se due chiavi sono uguali.-oppure- null per usare l'operatore di confronto predefinito, che rappresenta l'implementazione del metodo di ogni chiave.
+
+
+ Inizializza una nuova istanza della classe usando la capacità iniziale specificata.
+ Numero iniziale di elementi che la raccolta può contenere.
+
+
+ Inizializza una nuova istanza della classe usando la capacità iniziale e l'operatore di confronto specificati.
+ Numero iniziale di elementi che la raccolta può contenere.
+ Oggetto da usare per determinare se due chiavi sono uguali.-oppure- null per usare l'operatore di confronto predefinito, che rappresenta l'implementazione del metodo di ogni chiave.
+
+
+ Aggiunge alla raccolta una voce contenente la chiave e il valore specificati in corrispondenza dell'indice più basso disponibile.
+ Chiave della voce da aggiungere.
+ Valore della voce da aggiungere.Il valore può essere null.
+ L'insieme è in sola lettura.
+
+
+ Restituisce una copia di sola lettura della raccolta corrente.
+ Copia di sola lettura della raccolta corrente.
+
+
+ Rimuove tutti gli elementi dalla raccolta .
+ L'insieme è in sola lettura.
+
+
+ Stabilisce se la raccolta contiene una chiave specifica.
+ true se l'insieme contiene un elemento con la chiave specificata; in caso contrario, false.
+ Chiave da individuare nella raccolta .
+
+
+ Copia gli elementi della raccolta in un oggetto unidimensionale in corrispondenza dell'indice specificato.
+ Oggetto unidimensionale che corrisponde alla destinazione degli oggetti copiati dalla raccolta .L'indicizzazione di deve essere in base zero.
+ Indice in base zero in in corrispondenza del quale viene avviata la copia.
+
+
+ Ottiene il numero di coppie chiave/valore contenute nella raccolta .
+ Numero di coppie chiave/valore contenute nella raccolta .
+
+
+ Restituisce un oggetto che consente di scorrere la raccolta .
+ Oggetto della raccolta .
+
+
+ Inserisce nella raccolta una nuova voce contenente la chiave e il valore indicati in corrispondenza dell'indice specificato.
+ Indice in base zero in corrispondenza del quale deve essere inserito l'elemento.
+ Chiave della voce da aggiungere.
+ Valore della voce da aggiungere.Il valore può essere null.
+
+ non è compreso nell'intervallo.
+ Raccolta di sola lettura.
+
+
+ Ottiene un valore che indica se la raccolta è di sola lettura.
+ true se l'insieme è in sola lettura; in caso contrario, false.Il valore predefinito è false.
+
+
+ Ottiene o imposta il valore in corrispondenza dell'indice specificato.
+ Valore dell'elemento in corrispondenza dell'indice specificato.
+ Indice in base zero del valore da ottenere o impostare.
+ La proprietà viene impostata e l'insieme è in sola lettura.
+
+ è minore di zero.-oppure- è maggiore di o uguale a .
+
+
+ Ottiene o imposta il valore con la chiave specificata.
+ Valore associato alla chiave specificata.Se la chiave specificata non viene trovata, tentando di ottenerla viene restituito null mentre tentando di impostarla viene creato un nuovo elemento con la chiave specificata.
+ Chiave del valore da ottenere o impostare.
+ La proprietà viene impostata e l'insieme è in sola lettura.
+
+
+ Ottiene un oggetto contenente le chiavi della raccolta .
+ Oggetto contenente le chiavi della raccolta .
+
+
+ Rimuove dalla raccolta la voce con la chiave specificata.
+ Chiave della voce da rimuovere.
+ L'insieme è in sola lettura.
+
+ è null.
+
+
+ Rimuove dalla raccolta la voce in corrispondenza dell'indice specificato.
+ Indice in base zero della voce da rimuovere.
+ L'insieme è in sola lettura.
+
+ è minore di zero.-oppure- è maggiore di o uguale a .
+
+
+ Ottiene un valore che indica se l'accesso all'oggetto è sincronizzato (thread-safe).
+ Questo metodo restituisce sempre false.
+
+
+ Ottiene un oggetto che può essere usato per sincronizzare l'accesso all'oggetto .
+ Oggetto che può essere usato per sincronizzare l'accesso all'oggetto .
+
+
+ Ottiene un valore che indica se ha dimensioni fisse.
+ true se ha dimensioni fisse; in caso contrario, false.Il valore predefinito è false.
+
+
+ Restituisce un oggetto che consente di scorrere la raccolta .
+ Oggetto della raccolta .
+
+
+ Ottiene un oggetto contenente i valori della raccolta .
+ Oggetto contenente i valori della raccolta .
+
+
+ Rappresenta una raccolta di stringhe.
+
+
+ Inizializza una nuova istanza della classe .
+
+
+ Aggiunge una stringa alla fine di .
+ Indice in base zero in corrispondenza del quale viene inserito il nuovo elemento.
+ Stringa da aggiungere alla fine di .Il valore può essere null.
+
+
+ Copia gli elementi di una matrice di stringhe alla fine di .
+ Matrice di stringhe da aggiungere alla fine di .La matrice non può avere valore null, ma può contenere elementi null.
+
+ è null.
+
+
+ Rimuove tutte le stringhe da .
+
+
+ Determina se la stringa specificata è inclusa in .
+ true se il valore indicato nel parametro è presente nell'oggetto , in caso contrario false.
+ Stringa da individuare in .Il valore può essere null.
+
+
+ Copia tutti i valori di in una matrice unidimensionale di stringhe, a partire dall'indice specificato della matrice di destinazione.
+ Matrice di stringhe unidimensionale che rappresenta la destinazione degli elementi copiati dall'oggetto .L'indicizzazione di deve essere in base zero.
+ Indice in base zero della matrice specificata nel parametro in corrispondenza del quale ha inizio la copia.
+
+ è null.
+
+ è minore di zero.
+
+ è multidimensionale.- oppure - Il numero degli elementi nell'oggetto di origine è maggiore dello spazio disponibile tra e la fine dell'oggetto di destinazione.
+ Non è possibile eseguire automaticamente il cast del tipo dell'oggetto di origine al tipo del parametro di destinazione.
+
+
+ Ottiene il numero di stringhe contenute in .
+ Numero di stringhe contenute in .
+
+
+ Restituisce un oggetto che consente di scorrere l'insieme .
+ Oggetto per l'insieme .
+
+
+ Cerca la stringa specificata e restituisce l'indice in base zero della prima occorrenza all'interno di .
+ Indice in base zero della prima occorrenza di in , se presente; in caso contrario è -1.
+ Stringa da individuare.Il valore può essere null.
+
+
+ Inserisce una stringa in , in corrispondenza dell'indice specificato.
+ Indice in base zero in corrispondenza del quale viene inserito .
+ Stringa da inserire.Il valore può essere null.
+
+ è minore di zero.- oppure - è maggiore di .
+
+
+ Ottiene un valore che indica se è di sola lettura.
+ Questa proprietà restituisce sempre false.
+
+
+ Ottiene un valore che indica se l'accesso a è sincronizzato (thread-safe).
+ Questa proprietà restituisce sempre false.
+
+
+ Ottiene o imposta l'elemento in corrispondenza dell'indice specificato.
+ Elemento in corrispondenza dell'indice specificato.
+ Indice in base zero della voce da ottenere o impostare.
+
+ è minore di zero.- oppure - è maggiore di o uguale a .
+
+
+ Rimuove la prima occorrenza di una stringa specifica da .
+ Stringa da rimuovere da .Il valore può essere null.
+
+
+ Rimuove la stringa in corrispondenza dell'indice specificato di .
+ Indice in base zero della stringa da rimuovere.
+
+ è minore di zero.- oppure - è maggiore di o uguale a .
+
+
+ Ottiene un oggetto che può essere utilizzato per sincronizzare l'accesso a .
+ Oggetto che può essere utilizzato per sincronizzare l'accesso a .
+
+
+ Copia l'intero oggetto in un oggetto compatibile unidimensionale, a partire dall'indice specificato della matrice di destinazione.
+ Oggetto unidimensionale che rappresenta la destinazione degli elementi copiati dall'oggetto .L'indicizzazione di deve essere in base zero.
+ Indice in base zero della matrice specificata nel parametro in corrispondenza del quale ha inizio la copia.
+
+ è null.
+
+ è minore di zero.
+
+ è multidimensionale.- oppure - Il numero degli elementi nell'oggetto di origine è maggiore dello spazio disponibile tra e la fine dell'oggetto di destinazione.
+ Non è possibile eseguire automaticamente il cast del tipo dell'oggetto di origine al tipo del parametro di destinazione.
+
+
+ Restituisce un oggetto che consente di scorrere l'insieme .
+ Oggetto per l'insieme .
+
+
+ Aggiunge un oggetto alla fine di .
+ Indice in corrispondenza del quale è stato aggiunto .
+ Oggetto da aggiungere alla fine di .Il valore può essere null.
+ L' è in sola lettura.- oppure - L'oggetto è di dimensioni fisse.
+
+
+ Determina se un elemento è incluso in .
+ true se il valore indicato nel parametro è presente nell'oggetto , in caso contrario false.
+ Oggetto da individuare in .Il valore può essere null.
+
+
+ Cerca l'oggetto specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intero insieme .
+ Indice in base zero della prima occorrenza di all'interno dell'intero insieme , se presente; in caso contrario -1.
+ Oggetto da individuare in .Il valore può essere null.
+
+
+ Consente di inserire un elemento in in corrispondenza dell'indice specificato.
+ Indice in base zero nel quale deve essere inserito.
+ Oggetto da inserire.Il valore può essere null.
+
+ è minore di zero.- oppure - è maggiore di .
+ L' è in sola lettura.- oppure - L'oggetto è di dimensioni fisse.
+
+
+ Ottiene un valore che indica se le dimensioni dell'oggetto sono fisse.
+ true se le dimensioni dell'oggetto sono fisse; in caso contrario, false.Il valore predefinito è false.
+
+
+ Ottiene un valore che indica se l'oggetto è in sola lettura.
+ true se l'oggetto è in sola lettura; in caso contrario, false.Il valore predefinito è false.
+
+
+ Ottiene o imposta l'elemento in corrispondenza dell'indice specificato.
+ Elemento in corrispondenza dell'indice specificato.
+ Indice a base zero dell'elemento da ottenere o impostare.
+
+ è minore di zero.- oppure - è maggiore di o uguale a .
+
+
+ Rimuove la prima occorrenza di un oggetto specifico dall'interfaccia .
+ Oggetto da rimuovere da .Il valore può essere null.
+ L' è in sola lettura.- oppure - L'oggetto è di dimensioni fisse.
+
+
+ Implementa una tabella hash con la chiave e il valore fortemente tipizzati per essere stringhe anziché oggetti.
+
+
+ Inizializza una nuova istanza della classe .
+
+
+ Aggiunge una voce con la chiave e il valore specificati nell'oggetto .
+ Chiave della voce da aggiungere.
+ Valore della voce da aggiungere.Il valore può essere null.
+
+ is null.
+ An entry with the same key already exists in the .
+ The is read-only.
+
+
+ Rimuove tutte le voci da .
+ The is read-only.
+
+
+ Determina se contiene una chiave specifica.
+ true se la classe contiene una voce con la chiave specificata; in caso contrario, false.
+ Chiave da individuare in .
+ The key is null.
+
+
+ Determina se contiene un valore specifico.
+ true se contiene un elemento con il valore specificato; in caso contrario, false.
+ Valore da individuare in .Il valore può essere null.
+
+
+ Copia i valori del dizionario delle stringhe in un'istanza unidimensionale di in corrispondenza dell'indice specificato.
+ Oggetto unidimensionale che rappresenta la destinazione dei valori copiati dalla classe .
+ Indice della matrice da cui ha inizio la copia.
+
+ is multidimensional.-or- The number of elements in the is greater than the available space from to the end of .
+
+ is null.
+
+ is less than the lower bound of .
+
+
+ Ottiene il numero di coppie chiave/valore presenti nella classe .
+ Numero di coppie chiave/valore presenti nella classe .Il recupero del valore di questa proprietà è un'operazione O(1).
+
+
+ Restituisce un enumeratore che esegue l'iterazione di tutto il dizionario delle stringhe.
+ Oggetto esegue l'iterazione di tutto il dizionario delle stringhe.
+
+
+ Ottiene un valore che indica se l'accesso a è sincronizzato (thread-safe).
+ true se l'accesso a è sincronizzato (thread-safe); in caso contrario, false.
+
+
+ Ottiene o imposta il valore associato alla chiave specificata.
+ Valore associato alla chiave specificata.Se la chiave specificata non viene rilevata, Get restituirà null, mentre Set creerà una nuova voce con la chiave specificata.
+ Chiave di cui si deve ottenere o impostare il valore.
+
+ is null.
+
+
+ Ottiene una raccolta delle chiavi presenti nella classe .
+ Interfaccia che fornisce le chiavi presenti nella classe .
+
+
+ Rimuove la voce con la chiave specificata dal dizionario delle stringhe.
+ Chiave della voce da rimuovere.
+ The key is null.
+ The is read-only.
+
+
+ Ottiene un oggetto che può essere usato per sincronizzare l'accesso a .
+ Oggetto che può essere usato per sincronizzare l'accesso a .
+
+
+ Ottiene una raccolta dei valori presenti nella classe .
+ Interfaccia che fornisce i valori presenti nella classe .
+
+
+ Supporta una semplice iterazione su un insieme .>
+
+
+ Ottiene l'elemento corrente della raccolta.
+ Elemento corrente nella raccolta.
+ L'enumeratore è posizionato prima del primo elemento o dopo l'ultimo elemento della raccolta.
+
+
+ Consente di spostare l'enumeratore all'elemento successivo della raccolta.
+ true se l'enumeratore ha completato il passaggio all'elemento successivo; false se l'enumeratore ha raggiunto la fine della raccolta.
+ La raccolta è stata modificata dopo la creazione dell'enumeratore.
+
+
+ Imposta l'enumeratore sulla propria posizione iniziale, ovvero prima del primo elemento nella raccolta.
+ La raccolta è stata modificata dopo la creazione dell'enumeratore.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/ja/System.Collections.Specialized.xml b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/ja/System.Collections.Specialized.xml
new file mode 100644
index 0000000..b52bc46
--- /dev/null
+++ b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/ja/System.Collections.Specialized.xml
@@ -0,0 +1,1224 @@
+
+
+
+ System.Collections.Specialized
+
+
+
+ ブール値と小さい整数をメモリに 32 ビットで格納する単純な構造体を提供します。
+
+
+ 既存の 構造体で表されたデータが格納されている 構造体の新しいインスタンスを初期化します。
+ コピーするデータが格納されている 構造体。
+
+
+ 整数で表されるデータが格納されている 構造体の新しいインスタンスを初期化します。
+ 新しい のデータを表す整数。
+
+
+ ビット フラグとして設定された の個別のビットを取得するために使用できる一連のマスクのうちの、最初のマスクを作成します。
+
+ の最初のビット フラグを分離するマスク。
+
+
+
+
+
+ ビット フラグとして設定された の個別のビットを取得するために使用できる一連のマスクのうちの、指定したマスクの次に追加マスクを作成します。
+
+ 内で が指すビット フラグの次のビット フラグを分離するマスク。
+ 1 つ前のビット フラグを示すマスク。
+
+ indicates the last bit flag in the .
+
+
+ 小さい整数が格納された一連のセクションのうちの、最初の を作成します。
+ 0 から までの範囲の数値を格納できる 。
+ 新しい の最大値を指定する 16 ビット符号付き整数。
+
+ is less than 1.
+
+
+ 小さい整数が格納された一連のセクションのうちの指定した の次に、新しい を作成します。
+ 0 から までの範囲の数値を格納できる 。
+ 新しい の最大値を指定する 16 ビット符号付き整数。
+
+ 内の 1 つ前の 。
+
+ is less than 1.
+
+ includes the final bit in the .-or- is greater than the highest value that can be represented by the number of bits after .
+
+
+
+ の値を整数として取得します。
+ 整数として取得された の値。
+
+
+ 指定したオブジェクトが と等しいかどうかを判断します。
+ 指定したオブジェクトが に等しい場合は true。それ以外の場合は false。
+ 現在の と比較するオブジェクト。
+
+
+
+ のハッシュ関数として機能します。
+
+ のハッシュ コード。
+
+
+ 指定した に格納された値を取得または設定します。
+ 指定した に格納された値。
+ 取得または設定する値が格納されている 。
+
+
+ 指定したマスクが指すビット フラグの状態を取得または設定します。
+ 指定したビット フラグがオン (1) の場合は true。それ以外の場合は false。
+ 取得または設定するビットを示すマスク。
+
+
+ 現在の を表す文字列を返します。
+ 現在の を表す文字列。
+
+
+ 指定した を表す文字列を返します。
+ 指定した を表す文字列。
+ 表現する 。
+
+
+ 整数を格納できるベクターのセクションを表します。
+
+
+ 指定した オブジェクトが現在の オブジェクトと同じかどうかを判断します。
+
+ パラメーターが現在の オブジェクトと同じ場合は、true。それ以外の場合は false。
+ 現在の オブジェクトと比較する オブジェクト。
+
+
+ 指定したオブジェクトが現在の オブジェクトと同じかどうかを判断します。
+ 指定したオブジェクトが現在の オブジェクトと同じ場合は、true。それ以外の場合は false。
+ 現在の と比較するオブジェクト。
+
+
+ 現在の のハッシュ関数として機能します。ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。
+ 現在の のハッシュ コード。
+
+
+
+ 内でこのセクションを分離するマスクを取得します。
+
+ 内でこのセクションを分離するマスク。
+
+
+
+ の先頭からの、このセクションのオフセットを取得します。
+
+ の先頭からの、このセクションのオフセット。
+
+
+ 指定した 2 つの オブジェクトが等しいかどうかを判断します。
+
+ パラメーターおよび パラメーターが同じ オブジェクトを表している場合は true。それ以外の場合は false。
+
+ オブジェクト。
+
+ オブジェクト。
+
+
+ 2 つの オブジェクトの値が異なるかどうかを判断します。
+
+ パラメーターおよび パラメーターが異なる オブジェクトを表している場合は true。それ以外の場合は false。
+
+ オブジェクト。
+
+ オブジェクト。
+
+
+ 現在の を表す文字列を返します。
+ 現在の を表す文字列。
+
+
+ 指定した を表す文字列を返します。
+ 指定した を表す文字列。
+ 表現する 。
+
+
+ コレクションが小さいうちは を使用し、コレクションが大きくなってきたら に切り替える IDictionary を実装します。
+
+
+ 大文字と小文字を区別する空の を作成します。
+
+
+ 大文字と小文字の区別を指定して、空の を作成します。
+
+ で大文字小文字が区別されるかどうかを指定するブール値。
+
+
+ 指定した初期サイズで、大文字と小文字を区別する を作成します。
+
+ が初期状態で格納できるエントリの概数。
+
+
+ 初期サイズおよび大文字と小文字の区別を指定して、 を作成します。
+
+ が初期状態で格納できるエントリの概数。
+
+ で大文字小文字が区別されるかどうかを指定するブール値。
+
+
+ 指定したキーおよび値を持つエントリを に追加します。
+ 追加するエントリのキー。
+ 追加するエントリの値。値は null に設定できます。
+
+ は null です。
+ 同じキーを持つエントリが、 に既に存在します。
+
+
+
+ からすべてのエントリを削除します。
+
+
+
+ に特定のキーが格納されているかどうかを判断します。
+ true if the contains an entry with the specified key; otherwise, false.
+
+ 内で検索されるキー。
+
+ は null です。
+
+
+ 1 次元の インスタンスの指定したインデックスに のエントリをコピーします。
+ The one-dimensional that is the destination of the objects copied from . には、0 から始まるインデックス番号が必要です。
+ コピーの開始位置となる、 内の 0 から始まるインデックス。
+
+ は null です。
+
+ が 0 未満です。
+
+ が多次元です。またはコピー元の の要素数が、 からコピー先の の末尾までに格納できる数を超えています。
+ コピー元の の型が、コピー先の の型に自動的にキャストできません。
+
+
+
+ に格納されているキー/値ペアの数を取得します。
+
+ に格納されているキー/値ペアの数。このプロパティ値を取得することは、O(1) 操作になります。
+
+
+ Returns an that iterates through the .
+
+ の 。
+
+
+
+ が固定サイズかどうかを示す値を取得します。
+ このプロパティは常に false を返します。
+
+
+
+ が読み取り専用かどうかを示す値を取得します。
+ このプロパティは常に false を返します。
+
+
+
+ が同期されている (スレッド セーフである) かどうかを示す値を取得します。
+ このプロパティは常に false を返します。
+
+
+ 指定されたキーに関連付けられている値を取得または設定します。
+ 指定されたキーに関連付けられている値。指定したキーが見つからない場合、そのキーを取得しようとした場合は null が返され、そのキーを設定しようとした場合は、指定したキーを使用して新しいエントリが作成されます。
+ 値を取得または設定する対象のキー。
+
+ は null です。
+
+
+ Gets an containing the keys in the .
+ An containing the keys in the .
+
+
+ 指定したキーを持つエントリを から削除します。
+ 削除するエントリのキー。
+
+ は null です。
+
+
+
+ へのアクセスを同期するために使用できるオブジェクトを取得します。
+
+ へのアクセスを同期するために使用できるオブジェクト。
+
+
+
+ を反復処理する を返します。
+
+ の 。
+
+
+
+ 内の値を格納している を取得します。
+ An containing the values in the .
+
+
+ キーと値のペアのインデックス付きコレクションを表します。
+
+
+
+ コレクションを反復処理する列挙子を返します。
+
+ コレクション全体の 。
+
+
+ コレクション内の指定したインデックス位置に、キーと値のペアを挿入します。
+ キーと値のペアを挿入する位置の、0 から始まるインデックス。
+ 追加する要素のキーとして使用するオブジェクト。
+ 追加する要素の値として使用するオブジェクト。値は null に設定できます。
+
+ が 0 未満です。または が より大きくなっています。
+
+ は null です。
+ 同じキーを持つ要素が、 コレクションに既に存在します。
+
+ コレクションが読み取り専用です。または コレクションが固定サイズです。
+
+
+ 指定したインデックスにある要素を取得または設定します。
+ 指定したインデックス位置にある要素。
+ 取得または設定する要素の、0 から始まるインデックス番号。
+
+ が 0 未満です。または が 以上です。
+
+
+ 指定したインデックス位置にある要素を削除します。
+ 削除する要素の 0 から始まるインデックス。
+
+ が 0 未満です。または が 以上です。
+
+ コレクションが読み取り専用です。または コレクションが固定サイズです。
+
+
+ シングルリンク リストを使用して IDictionary を実装します。おおむね 10 個未満の項目を格納するコレクションでの使用をお勧めします。
+
+
+ 既定の比較子を使用して空の を作成します。
+
+
+ 指定した比較子を使用して空の を作成します。
+ 2 つのキーが等しいかどうかを判断するために使用する 。または 各キーの の実装である既定の比較子を使用する場合は null。
+
+
+ 指定したキーおよび値を持つエントリを に追加します。
+ 追加するエントリのキー。
+ 追加するエントリの値。値は null に設定できます。
+
+ は null です。
+ 同じキーを持つエントリが、 に既に存在します。
+
+
+
+ からすべてのエントリを削除します。
+
+
+
+ に特定のキーが格納されているかどうかを判断します。
+ true if the contains an entry with the specified key; otherwise, false.
+
+ 内で検索されるキー。
+
+ は null です。
+
+
+ 1 次元の インスタンスの指定したインデックスに のエントリをコピーします。
+
+ から オブジェクトがコピーされる 1 次元の 。 には、0 から始まるインデックス番号が必要です。
+ コピーの開始位置となる、 内の 0 から始まるインデックス。
+
+ は null です。
+
+ が 0 未満です。
+
+ が多次元です。またはコピー元の の要素数が、 からコピー先の の末尾までに格納できる数を超えています。
+ コピー元の の型が、コピー先の の型に自動的にキャストできません。
+
+
+
+ に格納されているキー/値ペアの数を取得します。
+
+ に格納されているキー/値ペアの数。
+
+
+
+ を反復処理する を返します。
+
+ の 。
+
+
+
+ が固定サイズかどうかを示す値を取得します。
+ このプロパティは常に false を返します。
+
+
+
+ が読み取り専用かどうかを示す値を取得します。
+ このプロパティは常に false を返します。
+
+
+
+ が同期されている (スレッド セーフである) かどうかを示す値を取得します。
+ このプロパティは常に false を返します。
+
+
+ 指定されたキーに関連付けられている値を取得または設定します。
+ 指定されたキーに関連付けられている値。指定したキーが見つからない場合、そのキーを取得しようとした場合は null が返され、そのキーを設定しようとした場合は、指定したキーを使用して新しいエントリが作成されます。
+ 値を取得または設定する対象のキー。
+
+ は null です。
+
+
+
+ 内のキーを格納している を取得します。
+
+ 内のキーを格納している 。
+
+
+ 指定したキーを持つエントリを から削除します。
+ 削除するエントリのキー。
+
+ は null です。
+
+
+
+ へのアクセスを同期するために使用できるオブジェクトを取得します。
+
+ へのアクセスを同期するために使用できるオブジェクト。
+
+
+
+ を反復処理する を返します。
+
+ の 。
+
+
+
+ 内の値を格納している を取得します。
+ An containing the values in the .
+
+
+
+ キーと、キーまたはインデックスを使用してアクセスできる 値が関連付けられたコレクションの abstract 基本クラスを指定します。
+
+
+
+ クラスの新しい空のインスタンスを初期化します。
+
+
+ 空で、既定の初期量を備え、指定した オブジェクトを使用する、 クラスの新しいインスタンスを初期化します。
+ 2 つのキーが等しいかどうかを判断し、コレクション内のキーのハッシュ コードを生成するために使用する オブジェクト。
+
+
+ 空で、指定した初期量を備え、既定のハッシュ コード プロバイダーと既定の比較子を使用する、 クラスの新しいインスタンスを初期化します。
+
+ インスタンスが初期状態で格納できるエントリの概数。
+
+ が 0 未満です。
+
+
+ 空で、指定した初期量を備え、指定した オブジェクトを使用する、 クラスの新しいインスタンスを初期化します。
+
+ オブジェクトが初期状態で格納できるエントリの概数。
+ 2 つのキーが等しいかどうかを判断し、コレクション内のキーのハッシュ コードを生成するために使用する オブジェクト。
+
+ が 0 未満です。
+
+
+ 指定したキーと値を持つエントリを インスタンスに追加します。
+ 追加するエントリの キー。キーとして null を指定できます。
+ 追加するエントリの 値。値として null を指定できます。
+ コレクションは読み取り専用です。
+
+
+
+ インスタンスからすべてのエントリを削除します。
+ コレクションは読み取り専用です。
+
+
+
+ インスタンスの指定したインデックスにあるエントリの値を取得します。
+ 指定したインデックスにあるエントリの値を表す 。
+ 取得する値の 0 から始まるインデックス。
+
+ が、コレクションのインデックスの有効範囲外です。
+
+
+
+ インスタンスから、指定したキーを持つ最初のエントリの値を取得します。
+ 指定したキーを持つエントリが存在する場合は、その最初のエントリの値を表す 。それ以外の場合は null。
+ 取得するエントリの キー。キーとして null を指定できます。
+
+
+
+ インスタンス内のすべてのキーを格納する 配列を返します。
+
+ インスタンス内のすべてのキーを格納する 配列。
+
+
+
+ インスタンス内のすべての値を格納する 配列を返します。
+
+ インスタンス内のすべての値を格納する 配列。
+
+
+
+ インスタンス内のすべての値を格納する、指定した型の配列を返します。
+
+ インスタンス内のすべての値を格納する、指定した型の配列。
+ 返される配列の型を表す 。
+
+ は null です。
+
+ が有効な ではありません。
+
+
+
+ インスタンスの指定したインデックスにあるエントリのキーを取得します。
+ 指定したインデックスにあるエントリのキーを表す 。
+ 取得するキーの 0 から始まるインデックス。
+
+ が、コレクションのインデックスの有効範囲外です。
+
+
+
+ インスタンスが、キーが null ではないエントリを格納しているかどうかを示す値を取得します。
+
+ インスタンスが、キーが null ではないエントリを格納している場合は true。それ以外の場合は false。
+
+
+ 指定したキーを持つエントリを インスタンスから削除します。
+ 削除するエントリの キー。キーとして null を指定できます。
+ コレクションは読み取り専用です。
+
+
+
+ インスタンスの指定したインデックスにあるエントリを削除します。
+ 削除するエントリの 0 から始まるインデックス。
+
+ が、コレクションのインデックスの有効範囲外です。
+ コレクションは読み取り専用です。
+
+
+
+ インスタンスの指定したインデックスにあるエントリの値を設定します。
+ 設定するエントリの 0 から始まるインデックス。
+ 設定するエントリの新しい値を表す 。値として null を指定できます。
+ コレクションは読み取り専用です。
+
+ が、コレクションのインデックスの有効範囲外です。
+
+
+
+ インスタンス内に指定したキーを持つエントリが存在する場合は、その最初のエントリの値を設定します。存在しない場合は、指定したキーと値を持つエントリを インスタンスに追加します。
+ 設定するエントリの キー。キーとして null を指定できます。
+ 設定するエントリの新しい値を表す 。値として null を指定できます。
+ コレクションは読み取り専用です。
+
+
+
+ インスタンスに格納されているキーと値のペアの数を取得します。
+
+ インスタンスに格納されているキーと値のペアの数。
+
+
+
+ を反復処理する列挙子を返します。
+
+ インスタンスの 。
+
+
+
+ インスタンスが読み取り専用かどうかを示す値を取得または設定します。
+
+ インスタンスが読み取り専用の場合は true。それ以外の場合は false。
+
+
+
+ インスタンス内のすべてのキーを格納する インスタンスを取得します。
+
+ インスタンス内のすべてのキーを格納する インスタンス。
+
+
+
+ 全体を、互換性のある 1 次元の にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まる部分に行います。
+
+ から要素がコピーされる 1 次元の 。 には、0 から始まるインデックス番号が必要です。
+ コピーの開始位置とする のインデックス (0 から始まる)。
+
+ は null です。
+
+ が 0 未満です。
+
+ が多次元です。またはコピー元の の要素数が、 からコピー先の の末尾までに格納できる数を超えています。
+ コピー元の の型が、コピー先の の型に自動的にキャストできません。
+
+
+
+ オブジェクトへのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。
+ true オブジェクトへのアクセスが同期されている (スレッド セーフである) 場合は 。それ以外の場合は false。既定値は、false です。
+
+
+
+ オブジェクトへのアクセスを同期するために使用できるオブジェクトを取得します。
+
+ オブジェクトへのアクセスを同期するために使用できるオブジェクト。
+
+
+ コレクションの キーのコレクションを表します。
+
+
+
+ 内のキーの数を取得します。
+
+ 内のキーの数。
+
+
+ コレクションの指定したインデックスにあるキーを取得します。
+ コレクションの指定したインデックスにあるキーを格納している 。
+ コレクションから取得するキーの 0 から始まるインデックス。
+
+ が、コレクションのインデックスの有効範囲外です。
+
+
+
+ を反復処理する列挙子を返します。
+
+ の 。
+
+
+ コレクションの指定したインデックスにあるエントリを取得します。
+ コレクションの指定したインデックスにあるエントリの キー。
+ コレクションから取得するエントリの 0 から始まるインデックス番号。
+
+ が、コレクションのインデックスの有効範囲外です。
+
+
+
+ 全体を互換性のある 1 次元の にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まります。
+
+ から要素がコピーされる 1 次元の 。 には、0 から始まるインデックス番号が必要です。
+ コピーの開始位置となる、 内の 0 から始まるインデックス。
+
+ は null なので、
+
+ が 0 未満です。
+
+ が多次元です。またはコピー元の の要素数が、 からコピー先の の末尾までに格納できる数を超えています。
+ コピー元の の型が、コピー先の の型に自動的にキャストできません。
+
+
+
+ へのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。
+
+ へのアクセスが同期されている (スレッド セーフである) 場合は true。それ以外の場合は false。既定値は、false です。
+
+
+
+ へのアクセスを同期するために使用できるオブジェクトを取得します。
+
+ へのアクセスを同期するために使用できるオブジェクト。
+
+
+
+ キーと、このキーまたはインデックスを使用してアクセスできる 値が関連付けられたコレクションを表します。
+
+
+ 空で、既定の初期量を備え、大文字と小文字を区別しない既定のハッシュ コード プロバイダーと大文字と小文字を区別しない既定の比較子を使用する、 クラスの新しいインスタンスを初期化します。
+
+
+ 空で、既定の初期量を備え、指定した オブジェクトを使用する、 クラスの新しいインスタンスを初期化します。
+ 2 つのキーが等しいかどうかを判断し、コレクション内のキーのハッシュ コードを生成するために使用する オブジェクト。
+
+
+ コピーされるエントリの数と同じ初期量を備え、ソース コレクションと同じハッシュ コード プロバイダーおよび比較子を使用する新しい に、指定した からエントリをコピーします。
+ 新しい インスタンスにコピーする 。
+
+ は null です。
+
+
+ 空で、指定した初期量を備え、大文字と小文字を区別しない既定のハッシュ コード プロバイダーと大文字と小文字を区別しない既定の比較子を使用する、 クラスの新しいインスタンスを初期化します。
+
+ に格納できるエントリ数の初期値。
+
+ が 0 未満です。
+
+
+ 空で、指定した初期量を備え、指定した オブジェクトを使用する、 クラスの新しいインスタンスを初期化します。
+
+ オブジェクトに格納できるエントリ数の初期値。
+ 2 つのキーが等しいかどうかを判断し、コレクション内のキーのハッシュ コードを生成するために使用する オブジェクト。
+
+ が 0 未満です。
+
+
+ 指定した初期量またはコピーされるエントリの数と同じ初期量のうち値が大きい方の初期量を備え、大文字と小文字を区別しない既定のハッシュ コード プロバイダーおよび大文字と小文字を区別しない既定の比較子を使用する新しい に、指定した からエントリをコピーします。
+
+ に格納できるエントリ数の初期値。
+ 新しい インスタンスにコピーする 。
+
+ が 0 未満です。
+
+ は null です。
+
+
+ 現在の に、指定した 内のエントリをコピーします。
+ 現在の にコピーする 。
+ コレクションは読み取り専用です。
+
+ は null です。
+
+
+ 指定した名前および値を持つエントリを に追加します。
+ 追加するエントリの キー。キーとして null を指定できます。
+ 追加するエントリの 値。値として null を指定できます。
+ コレクションは読み取り専用です。
+
+
+
+ 内のすべてのキーを取得します。
+
+ 内のすべてのキーを格納する 配列。
+
+
+ キャッシュに保存された配列を無効化し、 からすべてのエントリを削除します。
+ コレクションは読み取り専用です。
+
+
+
+
+
+
+ 全体を、互換性のある 1 次元の にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まる部分に行います。
+
+ から要素がコピーされる 1 次元の 。 には、0 から始まるインデックス番号が必要です。
+ コピーの開始位置とする のインデックス (0 から始まる)。
+
+ は null です。
+
+ が 0 未満です。
+
+ が多次元です。または コピー元の の要素数が、 からコピー先の の末尾までに格納できる数を超えています。
+ コピー元の の型が、コピー先の の型に自動的にキャストできません。
+
+
+
+ の指定したインデックスの値をいくつか取得し、1 つのコンマ区切りリストに組み合わせます。
+ 見つかった場合は、 の指定したインデックスの値で構成されるコンマ区切りのリストを格納する 。それ以外の場合は null。
+ コレクションから取得する値を格納するエントリの 0 から始まるインデックス。
+
+ が、コレクションのインデックスの有効範囲外です。
+
+
+
+ から指定したキーに関連付けられた値を取得し、1 つのコンマ区切りのリストに組み合わせます。
+ 見つかった場合は、 から取得した、指定したキーに関連付けられた値のコンマ区切りのリストを格納する 。それ以外の場合は null。
+ 取得する値を格納するエントリの キー。キーとして null を指定できます。
+
+
+
+ の指定したインデックスにあるキーを取得します。
+ 見つかった場合は、 の指定したインデックスにあるキーを格納する 。それ以外の場合は null。
+ コレクションから取得するキーの 0 から始まるインデックス。
+
+ が、コレクションのインデックスの有効範囲外です。
+
+
+
+ の指定したインデックスにある値を取得します。
+ 見つかった場合は、 の指定したインデックスにある値を格納する 配列。それ以外の場合は null。
+ コレクションから取得する値を格納するエントリの 0 から始まるインデックス。
+
+ が、コレクションのインデックスの有効範囲外です。
+
+
+ 指定したキーに関連付けられている値を から取得します。
+ 見つかった場合は、 から取得した、指定したキーに関連付けられた値を格納する 配列。それ以外の場合は null。
+ 取得する値を格納するエントリの キー。キーとして null を指定できます。
+
+
+
+ が null 以外のキーを格納しているかどうかを示す値を取得します。
+
+ が null 以外のキーを格納している場合は true。それ以外の場合は false。
+
+
+ コレクション内でキャッシュに保存された配列を null にリセットします。
+
+
+
+ の指定したインデックスにあるエントリを取得します。
+ コレクションの指定したインデックスにあるコンマ区切りの値のリストを格納する 。
+ コレクションでエントリの位置を示す 0 から始まるインデックス番号。
+
+ が、コレクションのインデックスの有効範囲外です。
+
+
+
+ 内の指定したキーを持つエントリを取得または設定します。
+ 見つかった場合は、指定したキーに関連付けられたコンマ区切りの値のリストを格納する 。それ以外の場合は null。
+ 検索するエントリの キー。キーとして null を指定できます。
+ コレクションの変更操作を実行しようとしましたが、このコレクションは読み取り専用です。
+
+
+ 指定したキーを持つエントリを インスタンスから削除します。
+ 削除するエントリの キー。キーとして null を指定できます。
+ コレクションは読み取り専用です。
+
+
+
+ 内のエントリの値を設定します。
+ 新しい値を追加するエントリの キー。キーとして null を指定できます。
+ 指定したエントリに追加する新しい値を表す 。値として null を指定できます。
+ コレクションは読み取り専用です。
+
+
+ キーまたはインデックスからアクセスできるキーと値のペアのコレクションを表します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+
+
+ 比較子を指定して、 クラスの新しいインスタンスを初期化します。
+ 2 つのキーが等しいかどうかを判断するために使用する 。または 各キーの の実装である既定の比較子を使用する場合は null。
+
+
+ 指定した初期容量を使用して、 クラスの新しいインスタンスを初期化します。
+
+ コレクションが格納できる要素数の初期値。
+
+
+ 指定した初期容量および比較子を使用して、 クラスの新しいインスタンスを初期化します。
+
+ コレクションが格納できる要素数の初期値。
+ 2 つのキーが等しいかどうかを判断するために使用する 。または 各キーの の実装である既定の比較子を使用する場合は null。
+
+
+ 指定したキーおよび値を持つエントリを、使用できる最小のインデックスを持つ コレクションに追加します。
+ 追加するエントリのキー。
+ 追加するエントリの値。この値は、null の場合もあります。
+
+ コレクションが読み取り専用です。
+
+
+ 現在の コレクションの読み取り専用のコピーを返します。
+ 現在の コレクションの読み取り専用のコピー。
+
+
+
+ コレクションからすべての要素を削除します。
+
+ コレクションが読み取り専用です。
+
+
+
+ コレクションに特定のキーが格納されているかどうかを判断します。
+ 指定したキーを持つ要素が コレクションに格納されている場合は true。それ以外の場合は false。
+
+ コレクション内で検索されるキー。
+
+
+ 1 次元の オブジェクトの指定したインデックスに の要素をコピーします。
+
+ コレクションから オブジェクトがコピーされる 1 次元の オブジェクト。 には、0 から始まるインデックス番号が必要です。
+ コピーの開始位置となる、 内の 0 から始まるインデックス。
+
+
+
+ コレクションに格納されているキー/値ペアの数を取得します。
+
+ コレクションに格納されているキー/値ペアの数。
+
+
+
+ コレクションを反復処理する オブジェクトを返します。
+
+ コレクションの オブジェクト。
+
+
+
+ コレクションの指定したインデックス位置に、指定したキーと値を持つ新しいエントリを挿入します。
+ 要素 を挿入する位置の、0 から始まるインデックス番号。
+ 追加するエントリのキー。
+ 追加するエントリの値。値は null に設定できます。
+ 該当する がありません。
+ このコレクションは読み取り専用です。
+
+
+
+ コレクションが読み取り専用かどうかを示す値を取得します。
+
+ コレクションが読み取り専用の場合は true。それ以外の場合は false。既定値は、false です。
+
+
+ 指定したインデックス位置にある値を取得または設定します。
+ 指定したインデックス位置にある項目の値。
+ 取得または設定する値の、0 から始まるインデックス番号。
+ プロパティが設定されていますが、 コレクションが読み取り専用です。
+
+ が 0 未満です。または が 以上です。
+
+
+ 指定したキーの値を取得または設定します。
+ 指定されたキーに関連付けられている値。指定したキーが見つからない場合、そのキーを取得しようとした場合は null が返され、そのキーを設定しようとした場合は、指定したキーを使用して新しい要素が作成されます。
+ 取得または設定する値のキー。
+ プロパティが設定されていますが、 コレクションが読み取り専用です。
+
+
+
+ コレクションのキーを保持している オブジェクトを取得します。
+
+ コレクションのキーを保持している オブジェクト。
+
+
+ 指定したキーを持つエントリを コレクションから削除します。
+ 削除するエントリのキー。
+
+ コレクションが読み取り専用です。
+
+ は null です。
+
+
+ 指定したインデックス位置にあるエントリを コレクションから削除します。
+ 削除するエントリの 0 から始まるインデックス。
+
+ コレクションが読み取り専用です。
+
+ が 0 未満です。または が 以上です。
+
+
+
+ オブジェクトへのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。
+ このメソッドは、常に false を返します。
+
+
+
+ オブジェクトへのアクセスを同期するために使用できるオブジェクトを取得します。
+
+ オブジェクトへのアクセスを同期するために使用できるオブジェクト。
+
+
+
+ が固定サイズかどうかを示す値を取得します。
+ true if the has a fixed size; otherwise, false.既定値は、false です。
+
+
+
+ コレクションを反復処理する オブジェクトを返します。
+
+ コレクションの オブジェクト。
+
+
+
+ コレクションの値を保持している オブジェクトを取得します。
+
+ コレクションの値を保持している オブジェクト。
+
+
+ 文字列のコレクションを表します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+
+
+ 文字列を の末尾に追加します。
+ 新しい要素が挿入される位置の 0 から始まるインデックス。
+
+ の末尾に追加する文字列。値は null に設定できます。
+
+
+ 文字列配列の要素を の末尾にコピーします。
+
+ の末尾に追加する文字列配列。配列自体を null にすることはできませんが、配列に格納する要素は null であってもかまいません。
+
+ は null なので、
+
+
+ すべての文字列を から削除します。
+
+
+ 指定した文字列が 内にあるかどうかを確認します。
+
+ が に存在する場合は true。それ以外の場合は false。
+
+ 内で検索する文字列。値は null に設定できます。
+
+
+ 1 次元の文字列配列に、その配列内の指定したインデックスを開始位置として 値全体をコピーします。
+
+ から要素がコピーされる 1 次元の文字列配列。 には、0 から始まるインデックス番号が必要です。
+ コピーの開始位置となる、 内の 0 から始まるインデックス。
+
+ は null なので、
+
+ が 0 未満です。
+
+ が多次元です。またはコピー元の の要素数が、 からコピー先の の末尾までに格納できる数を超えています。
+ コピー元の の型が、コピー先の の型に自動的にキャストできません。
+
+
+
+ に格納されている文字列の数を取得します。
+
+ に格納されている文字列の数。
+
+
+
+ を反復処理する を返します。
+
+ の 。
+
+
+ 指定した文字列を検索し、 内でその文字列が最初に見つかった位置の 0 から始まるインデックスを返します。
+
+ 内で が見つかった場合は、最初に見つかった位置の 0 から始まるインデックス。それ以外の場合は -1。
+ 検索される文字列。値は null に設定できます。
+
+
+
+ 内の指定したインデックス位置に、文字列を挿入します。
+
+ が挿入される位置の 0 から始まるインデックス。
+ 挿入する文字列。値は null に設定できます。
+
+ が 0 未満です。または は より大きい。
+
+
+
+ が読み取り専用かどうかを示す値を取得します。
+ このプロパティは常に false を返します。
+
+
+
+ へのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。
+ このプロパティは常に false を返します。
+
+
+ 指定したインデックスにある要素を取得または設定します。
+ 指定したインデックスにある要素。
+ 取得または設定するエントリの 0 から始まるインデックス。
+
+ が 0 未満です。または が 以上です。
+
+
+
+ 内で最初に見つかった指定文字列を削除します。
+
+ から削除する文字列。値は null に設定できます。
+
+
+
+ 内の指定したインデックスにある文字列を削除します。
+ 削除する文字列の 0 から始まるインデックス。
+
+ が 0 未満です。または が 以上です。
+
+
+
+ へのアクセスを同期するために使用できるオブジェクトを取得します。
+
+ へのアクセスを同期するために使用できるオブジェクト。
+
+
+
+ 全体を互換性のある 1 次元の にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まります。
+
+ から要素がコピーされる 1 次元の 。 には、0 から始まるインデックス番号が必要です。
+ コピーの開始位置となる、 内の 0 から始まるインデックス。
+
+ は null なので、
+
+ が 0 未満です。
+
+ が多次元です。またはコピー元の の要素数が、 からコピー先の の末尾までに格納できる数を超えています。
+ コピー元の の型が、コピー先の の型に自動的にキャストできません。
+
+
+
+ を反復処理する を返します。
+
+ の 。
+
+
+
+ の末尾にオブジェクトを追加します。
+
+ が追加された位置の インデックス。
+
+ の末尾に追加する 。値は null に設定できます。
+
+ は読み取り専用です。または が固定サイズです。
+
+
+ ある要素が 内に存在するかどうかを判断します。
+
+ が に存在する場合は true。それ以外の場合は false。
+
+ 内で検索される 。値は null に設定できます。
+
+
+ 指定した を検索し、 全体内で最初に見つかった位置の 0 から始まるインデックスを返します。
+
+ 全体内で が見つかった場合は、最初に見つかった位置の 0 から始まるインデックス。それ以外の場合は -1。
+
+ 内で検索される 。値は null に設定できます。
+
+
+
+ 内の指定したインデックスの位置に要素を挿入します。
+
+ を挿入する位置の、0 から始まるインデックス番号。
+ 挿入する 。値は null に設定できます。
+
+ が 0 未満です。または が より大きくなっています。
+
+ は読み取り専用です。または が固定サイズです。
+
+
+
+ オブジェクトが固定サイズかどうかを示す値を取得します。
+
+ オブジェクトが固定サイズの場合は true。それ以外の場合は false。既定値は、false です。
+
+
+
+ オブジェクトが読み取り専用かどうかを示す値を取得します。
+
+ オブジェクトが読み取り専用の場合は true。それ以外の場合は false。既定値は、false です。
+
+
+ 指定したインデックスにある要素を取得または設定します。
+ 指定したインデックスにある要素。
+ 取得または設定する要素の、0 から始まるインデックス番号。
+
+ が 0 未満です。または が 以上です。
+
+
+
+ 内で最初に見つかった特定のオブジェクトを削除します。
+
+ から削除する 。値は null に設定できます。
+
+ は読み取り専用です。または が固定サイズです。
+
+
+ キーと、オブジェクトではなく文字列として厳密に型指定された値とのハッシュ テーブルを実装します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+
+
+ 指定したキーおよび値を持つエントリを に追加します。
+ 追加するエントリのキー。
+ 追加するエントリの値。値は null に設定できます。
+
+ is null.
+ An entry with the same key already exists in the .
+ The is read-only.
+
+
+
+ からすべてのエントリを削除します。
+ The is read-only.
+
+
+
+ に特定のキーが格納されているかどうかを確認します。
+ 指定したキーを持つエントリが に格納されている場合は true。それ以外の場合は false。
+
+ 内で検索されるキー。
+ The key is null.
+
+
+
+ に特定の値が格納されているかどうかを確認します。
+ 指定した値を持つ要素が に格納されている場合は true。それ以外の場合は false。
+
+ 内で検索される値。値は null に設定できます。
+
+
+ 1 次元の インスタンスの指定したインデックス位置に、文字列ディクショナリの値をコピーします。
+
+ からコピーされる値のコピー先となる 1 次元 。
+ 配列内のコピー開始位置を示すインデックス。
+
+ is multidimensional.-or- The number of elements in the is greater than the available space from to the end of .
+
+ is null.
+
+ is less than the lower bound of .
+
+
+
+ に格納されているキー/値ペアの数を取得します。
+
+ に格納されているキー/値ペアの数。このプロパティ値を取得することは、O(1) 操作になります。
+
+
+ 文字列ディクショナリを反復処理する列挙子を返します。
+ 文字列ディクショナリを反復処理する 。
+
+
+
+ へのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。
+
+ へのアクセスが同期されている (スレッド セーフである) 場合は true。それ以外の場合は false。
+
+
+ 指定されたキーに関連付けられている値を取得または設定します。
+ 指定されたキーに関連付けられている値。指定したキーが見つからなかった場合は、Get は null を返し、Set は指定したキーを持つ新しいエントリを作成します。
+ 値を取得または設定する対象のキー。
+
+ is null.
+
+
+
+ 内のキーのコレクションを取得します。
+
+ 内のキーを格納している 。
+
+
+ 指定したキーを持つエントリを文字列ディクショナリから削除します。
+ 削除するエントリのキー。
+ The key is null.
+ The is read-only.
+
+
+
+ へのアクセスを同期するために使用できるオブジェクトを取得します。
+
+ へのアクセスを同期するために使用できる 。
+
+
+
+ 内の値のコレクションを取得します。
+
+ 内の値を格納している 。
+
+
+
+ に対する単純な反復処理をサポートします。
+
+
+ コレクション内の現在の要素を取得します。
+ コレクション内の現在の要素。
+ 列挙子が、コレクションの最初の要素の前、または最後の要素の後に位置しています。
+
+
+ 列挙子をコレクションの次の要素に進めます。
+ 列挙子が次の要素に正常に進んだ場合は true。列挙子がコレクションの末尾を越えた場合は false。
+ 列挙子が作成された後に、コレクションが変更されました。
+
+
+ 列挙子を初期位置、つまりコレクションの最初の要素の前に設定します。
+ 列挙子が作成された後に、コレクションが変更されました。
+
+
+
\ No newline at end of file
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/ko/System.Collections.Specialized.xml b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/ko/System.Collections.Specialized.xml
new file mode 100644
index 0000000..5739e2b
--- /dev/null
+++ b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/ko/System.Collections.Specialized.xml
@@ -0,0 +1,1235 @@
+
+
+
+ System.Collections.Specialized
+
+
+
+ 32비트 메모리에 부울 값과 small 정수를 저장하는 간단한 구조를 제공합니다.
+
+
+ 기존의 구조로 표현되는 데이터가 포함되어 있는 구조체의 새 인스턴스를 초기화합니다.
+ 복사할 데이터가 포함되어 있는 구조입니다.
+
+
+ 정수로 표현되는 데이터가 포함되어 있는 구조체의 새 인스턴스를 초기화합니다.
+ 새 의 데이터를 나타내는 정수입니다.
+
+
+ 비트 플래그로 설정된 에서 개별 비트를 검색하는 데 사용할 수 있는 일련의 마스크 중의 첫 번째 마스크를 만듭니다.
+
+ 에서 첫 번째 비트 플래그를 격리하는 마스크입니다.
+
+
+
+
+
+ 비트 플래그로 설정된 에서 개별 비트를 검색하는 데 사용할 수 있는 일련의 마스크 중에서 지정된 마스크 다음에 마스크를 추가로 만듭니다.
+
+ 에서 가 가리키는 마스크 다음의 비트 플래그를 격리하는 마스크입니다.
+ 이전 비트 플래그를 나타내는 마스크입니다.
+
+ indicates the last bit flag in the .
+
+
+ small 정수가 포함되어 있는 일련의 섹션에 첫 번째 을 만듭니다.
+ 0부터 범위의 숫자를 보유할 수 있는 입니다.
+ 새 의 최대값을 지정하는 16비트의 부호 있는 정수입니다.
+
+ is less than 1.
+
+
+ small 정수가 포함되어 있는 일련의 섹션에서 지정된 다음에 새 을 만듭니다.
+ 0부터 범위의 숫자를 보유할 수 있는 입니다.
+ 새 의 최대값을 지정하는 16비트의 부호 있는 정수입니다.
+
+ 에서 이전의 입니다.
+
+ is less than 1.
+
+ includes the final bit in the .-or- is greater than the highest value that can be represented by the number of bits after .
+
+
+
+ 의 값을 정수로 가져옵니다.
+ 정수인 의 값입니다.
+
+
+ 지정된 개체가 와 같은지를 확인합니다.
+ 지정된 개체가 와 같으면 true이고, 그렇지 않으면 false입니다.
+ 현재 와 비교할 개체입니다.
+
+
+
+ 에 대한 해시 함수로 작용합니다.
+
+ 의 해시 코드입니다.
+
+
+ 지정된 에 저장된 값을 가져오거나 설정합니다.
+ 지정된 에 저장된 값입니다.
+ 가져오거나 설정할 값이 포함되어 있는 입니다.
+
+
+ 지정된 마스크가 나타내는 비트 플래그의 상태를 가져오거나 설정합니다.
+ 지정된 비트 플래그가 (1)에 있으면 true이고, 그렇지 않으면 false입니다.
+ 가져오거나 설정할 비트를 나타내는 마스크입니다.
+
+
+ 현재 를 나타내는 문자열을 반환합니다.
+ 현재 를 나타내는 문자열입니다.
+
+
+ 지정된 를 나타내는 문자열을 반환합니다.
+ 지정된 를 나타내는 문자열입니다.
+ 나타낼 입니다.
+
+
+ 정수를 포함할 수 있는 벡터의 섹션을 나타냅니다.
+
+
+ 지정된 개체가 현재 개체와 같은지 여부를 확인합니다.
+
+ 매개 변수가 현재 개체와 같으면 true이고, 그렇지 않으면 false입니다.
+ 현재 개체와 비교할 개체입니다.
+
+
+ 지정된 개체가 현재 개체와 같은지 여부를 확인합니다.
+ 지정된 개체가 현재 개체와 같으면 true이고, 그렇지 않으면 false입니다.
+ 현재 와 비교할 개체입니다.
+
+
+ 해시 알고리즘과 해시 테이블 같은 데이터 구조에 적합한 현재 에 대한 해시 함수의 역할을 합니다.
+ 현재 의 해시 코드입니다.
+
+
+
+ 에서 이 섹션을 분리하는 마스크를 가져옵니다.
+
+ 에서 이 섹션을 분리하는 마스크입니다.
+
+
+
+ 의 시작 부분을 기준으로 하는 이 섹션의 오프셋을 가져옵니다.
+
+ 의 시작 부분을 기준으로 하는 이 섹션의 오프셋입니다.
+
+
+ 지정된 두 가지 개체가 같은지 여부를 확인합니다.
+
+ 및 매개 변수가 같은 개체를 나타내면 true이고, 그렇지 않으면 false입니다.
+
+ 개체
+
+ 개체
+
+
+ 두 가지 개체의 값이 다른지 여부를 확인합니다.
+
+ 및 매개 변수가 다른 개체를 나타내면 true이고, 그렇지 않으면 false입니다.
+
+ 개체
+
+ 개체
+
+
+ 현재 를 나타내는 문자열을 반환합니다.
+ 현재 를 나타내는 문자열입니다.
+
+
+ 지정된 을 나타내는 문자열을 반환합니다.
+ 지정된 을 나타내는 문자열입니다.
+ 나타낼 입니다.
+
+
+ 컬렉션이 작을 때는 를 사용하여 IDictionary를 구현한 다음 컬렉션이 커지면 로 전환합니다.
+
+
+ 대/소문자를 구분하는 빈 를 만듭니다.
+
+
+ 대/소문자 구분이 지정된 빈 를 만듭니다.
+
+ 가 대/소문자를 구분하는지 여부를 나타내는 부울입니다.
+
+
+ 처음 크기가 지정된 대/소문자를 구분하는 를 만듭니다.
+
+ 가 처음에 포함할 수 있는 대략적인 엔트리 수입니다.
+
+
+ 처음 크기와 대/소문자 구분 여부가 지정된 를 만듭니다.
+
+ 가 처음에 포함할 수 있는 대략적인 엔트리 수입니다.
+
+ 가 대/소문자를 구분하는지 여부를 나타내는 부울입니다.
+
+
+ 지정한 키와 값을 가지는 엔트리를 에 추가합니다.
+ 추가할 엔트리의 키입니다.
+ 추가할 엔트리의 값입니다.값은 null이 될 수 있습니다.
+
+ 가 null인 경우
+ 같은 키를 가지는 엔트리가 이미 에 있는 경우
+
+
+
+ 에서 모든 엔트리를 제거합니다.
+
+
+
+ 에 특정 키가 들어 있는지 여부를 확인합니다.
+ true if the contains an entry with the specified key; otherwise, false.
+
+ 에서 찾을 수 있는 키입니다.
+
+ 가 null인 경우
+
+
+ 지정한 인덱스에서 엔트리를 1차원 인스턴스에 복사합니다.
+ The one-dimensional that is the destination of the objects copied from .에는 0부터 시작하는 인덱스가 있어야 합니다.
+
+ 에서 복사가 시작되는 인덱스(0부터 시작)입니다.
+
+ 가 null인 경우
+
+ 가 0보다 작은 경우
+
+ 가 다차원 배열인 경우또는 소스 의 요소 수가 에서 대상 끝까지 사용 가능한 공간보다 큰 경우
+ 소스 형식을 대상 형식으로 자동 캐스팅할 수 없는 경우
+
+
+
+ 에 포함된 키/값 쌍의 수를 가져옵니다.
+
+ 에 포함된 키/값 쌍의 수입니다.이 속성 값을 검색하는 것은 O(1) 연산입니다.
+
+
+ Returns an that iterates through the .
+
+ 에 대한 입니다.
+
+
+
+ 의 크기가 고정되어 있는지 여부를 나타내는 값을 가져옵니다.
+ 이 속성은 항상 false를 반환합니다.
+
+
+
+ 가 읽기 전용인지 여부를 나타내는 값을 가져옵니다.
+ 이 속성은 항상 false를 반환합니다.
+
+
+
+ 가 동기화되어 스레드로부터 안전하게 보호되는지 여부를 나타내는 값을 가져옵니다.
+ 이 속성은 항상 false를 반환합니다.
+
+
+ 지정된 키에 연결된 값을 가져오거나 설정합니다.
+ 지정한 키와 연결된 값입니다.지정한 키가 없는 경우 해당 키를 가져오려고 시도하면 null이 반환되고 해당 키를 설정하려고 시도하면 지정한 키를 사용하여 새 엔트리가 만들어집니다.
+ 가져오거나 설정할 값이 있는 키입니다.
+
+ 가 null인 경우
+
+
+ Gets an containing the keys in the .
+ An containing the keys in the .
+
+
+
+ 에서 지정한 키를 가지는 엔트리를 제거합니다.
+ 제거할 엔트리의 키입니다.
+
+ 가 null인 경우
+
+
+
+ 에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.
+
+ 에 대한 액세스를 동기화하는 데 사용할 수 있는 개체입니다.
+
+
+
+ 를 반복하는 를 반환합니다.
+
+ 에 대한 입니다.
+
+
+
+ 의 값을 포함하는 을 가져옵니다.
+ An containing the values in the .
+
+
+ 키/값 쌍의 인덱싱된 컬렉션을 나타냅니다.
+
+
+
+ 컬렉션을 반복하는 열거자를 반환합니다.
+ 전체 컬렉션의 입니다.
+
+
+ 컬렉션의 지정된 인덱스에 키/값 쌍을 삽입합니다.
+ 키/값 쌍이 삽입될 0부터 시작하는 인덱스입니다.
+ 추가할 요소의 키로 사용할 개체입니다.
+ 추가할 요소의 값으로 사용할 개체입니다.값은 null이 될 수 있습니다.
+
+ 가 0보다 작습니다.또는가 보다 큰 경우
+
+ 가 null인 경우
+ 키가 같은 요소가 컬렉션에 이미 있는 경우
+
+ 컬렉션이 읽기 전용인 경우또는 컬렉션의 크기가 고정되어 있는 경우
+
+
+ 지정한 인덱스에 있는 요소를 가져오거나 설정합니다.
+ 지정한 인덱스의 요소입니다.
+ 가져오거나 설정할 요소의 인덱스(0부터 시작)입니다.
+
+ 가 0보다 작습니다.또는 가 보다 크거나 같은 경우
+
+
+ 지정된 인덱스에 있는 요소를 제거합니다.
+ 제거할 요소의 인덱스(0부터 시작)입니다.
+
+ 가 0보다 작습니다.또는 가 보다 크거나 같은 경우
+
+ 컬렉션이 읽기 전용인 경우또는 컬렉션의 크기가 고정되어 있는 경우
+
+
+ 단일 연결 목록을 사용하여 IDictionary를 구현합니다.일반적으로 10개 미만의 항목이 포함된 컬렉션에 사용하는 것이 좋습니다.
+
+
+ 기본 비교자를 사용하여 빈 를 만듭니다.
+
+
+ 지정된 비교자를 사용하여 빈 를 만듭니다.
+ 두 키가 같은지 여부를 확인하는 데 사용하는 입니다.또는 각 키로 를 구현한 기본 비교자를 사용하면 null입니다.
+
+
+ 지정한 키와 값을 가지는 엔트리를 에 추가합니다.
+ 추가할 엔트리의 키입니다.
+ 추가할 엔트리의 값입니다.값은 null이 될 수 있습니다.
+
+ 가 null인 경우
+ 같은 키를 가지는 엔트리가 이미 에 있는 경우
+
+
+
+ 에서 모든 엔트리를 제거합니다.
+
+
+
+ 에 특정 키가 들어 있는지 여부를 확인합니다.
+ true if the contains an entry with the specified key; otherwise, false.
+
+ 에서 찾을 수 있는 키입니다.
+
+ 가 null인 경우
+
+
+ 지정한 인덱스에서 엔트리를 1차원 인스턴스에 복사합니다.
+
+ 에서 복사한 개체의 대상인 1차원 배열입니다.에는 0부터 시작하는 인덱스가 있어야 합니다.
+
+ 에서 복사가 시작되는 인덱스(0부터 시작)입니다.
+
+ 가 null인 경우
+
+ 가 0보다 작은 경우
+
+ 가 다차원 배열인 경우또는 소스 의 요소 수가 에서 대상 끝까지 사용 가능한 공간보다 큰 경우
+ 소스 형식을 대상 형식으로 자동 캐스팅할 수 없는 경우
+
+
+
+ 에 포함된 키/값 쌍의 수를 가져옵니다.
+
+ 에 포함된 키/값 쌍의 수입니다.
+
+
+
+ 를 반복하는 를 반환합니다.
+
+ 에 대한 입니다.
+
+
+
+ 의 크기가 고정되어 있는지 여부를 나타내는 값을 가져옵니다.
+ 이 속성은 항상 false를 반환합니다.
+
+
+
+ 가 읽기 전용인지 여부를 나타내는 값을 가져옵니다.
+ 이 속성은 항상 false를 반환합니다.
+
+
+
+ 가 동기화되어 스레드로부터 안전하게 보호되는지 여부를 나타내는 값을 가져옵니다.
+ 이 속성은 항상 false를 반환합니다.
+
+
+ 지정된 키에 연결된 값을 가져오거나 설정합니다.
+ 지정한 키와 연결된 값입니다.지정한 키가 없는 경우 해당 키를 가져오려고 시도하면 null이 반환되고 해당 키를 설정하려고 시도하면 지정한 키를 사용하여 새 엔트리가 만들어집니다.
+ 가져오거나 설정할 값이 있는 키입니다.
+
+ 가 null인 경우
+
+
+
+ 의 키를 포함하는 을 가져옵니다.
+
+ 의 키를 포함하는 입니다.
+
+
+
+ 에서 지정한 키를 가지는 엔트리를 제거합니다.
+ 제거할 엔트리의 키입니다.
+
+ 가 null인 경우
+
+
+
+ 에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.
+
+ 에 대한 액세스를 동기화하는 데 사용할 수 있는 개체입니다.
+
+
+
+ 를 반복하는 를 반환합니다.
+
+ 에 대한 입니다.
+
+
+
+ 의 값을 포함하는 을 가져옵니다.
+ An containing the values in the .
+
+
+ 키나 인덱스를 사용하여 액세스할 수 있는 연결된 키와 값의 컬렉션에 대한 abstract 기본 클래스를 제공합니다.
+
+
+ 비어 있는 클래스의 새 인스턴스를 초기화합니다.
+
+
+ 기본 초기 용량을 갖고 있고 지정된 개체를 사용하는 비어 있는 클래스의 새 인스턴스를 초기화합니다.
+ 두 키가 같은지 여부를 확인하고 컬렉션의 키에 대한 해시 코드를 생성하는 데 사용할 개체입니다.
+
+
+ 지정된 초기 용량을 갖고 있고 기본 해시 코드 공급자와 기본 비교자를 사용하는 비어 있는 클래스의 새 인스턴스를 초기화합니다.
+
+ 인스턴스가 처음에 포함할 수 있는 대략적인 엔트리 수입니다.
+
+ 가 0보다 작은 경우
+
+
+ 지정된 초기 용량을 갖고 있고 지정된 개체를 사용하는 비어 있는 클래스의 새 인스턴스를 초기화합니다.
+
+ 개체가 처음에 포함할 수 있는 대략적인 엔트리 수입니다.
+ 두 키가 같은지 여부를 확인하고 컬렉션의 키에 대한 해시 코드를 생성하는 데 사용할 개체입니다.
+
+ 가 0보다 작은 경우
+
+
+ 지정한 키와 값을 가지는 엔트리를 인스턴스에 추가합니다.
+ 추가할 엔트리의 키입니다.키는 null이 될 수 있습니다.
+ 추가할 엔트리의 값입니다.값은 null이 될 수 있습니다.
+ 컬렉션이 읽기 전용입니다.
+
+
+
+ 인스턴스에서 모든 엔트리를 제거합니다.
+ 컬렉션이 읽기 전용입니다.
+
+
+
+ 인스턴스의 지정한 인덱스에서 엔트리의 값을 가져옵니다.
+ 지정한 인덱스에 있는 엔트리 값을 나타내는 입니다.
+ 가져올 값의 0부터 시작하는 인덱스입니다.
+
+ 가 컬렉션의 유효한 인덱스 범위 밖에 있는 경우
+
+
+
+ 인스턴스에서 지정한 키를 갖는 첫 번째 엔트리 값을 가져옵니다.
+ 있는 경우 지정한 키가 있는 첫 번째 엔트리 값을 나타내는 이고, 그러지 않으면 null입니다.
+ 가져올 엔트리의 키입니다.키는 null이 될 수 있습니다.
+
+
+
+ 인스턴스의 모든 키를 포함하는 배열을 반환합니다.
+
+ 인스턴스의 모든 키를 포함하는 배열입니다.
+
+
+
+ 인스턴스의 모든 값을 포함하는 배열을 반환합니다.
+
+ 인스턴스의 모든 값을 포함하는 배열입니다.
+
+
+
+ 인스턴스의 모든 값을 포함하는 지정한 형식의 배열을 반환합니다.
+
+ 인스턴스의 모든 값을 포함하는 지정한 형식의 배열입니다.
+ 반환할 배열의 형식을 나타내는 입니다.
+
+ 가 null인 경우
+
+ 이 잘못된 인 경우
+
+
+
+ 인스턴스의 지정한 인덱스에서 엔트리의 키를 가져옵니다.
+ 지정한 인덱스에 있는 엔트리의 키를 나타내는 입니다.
+ 가져올 키의 0부터 시작하는 인덱스입니다.
+
+ 가 컬렉션의 유효한 인덱스 범위 밖에 있는 경우
+
+
+
+ 인스턴스에 null이 아닌 키를 갖는 엔트리가 있는지 여부를 나타내는 값을 가져옵니다.
+
+ 인스턴스에 null이 아닌 키가 있는 엔트리가 포함되어 있으면 true이고, 그러지 않으면 false입니다.
+
+
+
+ 인스턴스에서 지정한 키를 가지는 엔트리를 제거합니다.
+ 제거할 엔트리의 키입니다.키는 null이 될 수 있습니다.
+ 컬렉션이 읽기 전용입니다.
+
+
+
+ 인스턴스의 지정한 인덱스에서 엔트리를 제거합니다.
+ 제거할 엔트리의 0부터 시작하는 인덱스입니다.
+
+ 가 컬렉션의 유효한 인덱스 범위 밖에 있는 경우
+ 컬렉션이 읽기 전용입니다.
+
+
+
+ 인스턴스의 지정한 인덱스에서 엔트리의 값을 설정합니다.
+ 설정할 엔트리의 0부터 시작하는 인덱스입니다.
+ 설정할 엔트리의 새 값을 나타내는 입니다.값은 null이 될 수 있습니다.
+ 컬렉션이 읽기 전용입니다.
+
+ 가 컬렉션의 유효한 인덱스 범위 밖에 있는 경우
+
+
+ 지정한 키를 갖는 엔트리가 인스턴스에 있으면 첫 번째 엔트리의 값을 설정하고, 그러지 않으면 지정한 키와 값을 갖는 엔트리를 인스턴스에 추가합니다.
+ 설정할 엔트리의 키입니다.키는 null이 될 수 있습니다.
+ 설정할 엔트리의 새 값을 나타내는 입니다.값은 null이 될 수 있습니다.
+ 컬렉션이 읽기 전용입니다.
+
+
+
+ 인스턴스에 포함된 키/값 쌍의 수를 가져옵니다.
+
+ 인스턴스에 포함된 키/값 쌍의 수입니다.
+
+
+
+ 를 반복하는 열거자를 반환합니다.
+
+ 인스턴스에 대한 입니다.
+
+
+
+ 인스턴스가 읽기 전용인지 여부를 나타내는 값을 가져오거나 설정합니다.
+
+ 인스턴스가 읽기 전용이면 true이고, 그러지 않으면 false입니다.
+
+
+
+ 인스턴스의 키를 모두 포함하는 인스턴스를 가져옵니다.
+
+ 인스턴스의 키를 모두 포함하는 인스턴스입니다.
+
+
+ 대상 배열의 지정된 인덱스에서 시작하여 전체 을 호환되는 1차원 에 복사합니다.
+
+ 에서 복사한 요소의 대상인 일차원 입니다.에는 0부터 시작하는 인덱스가 있어야 합니다.
+
+ 에서 복사가 시작되는 인덱스(0부터 시작)입니다.
+
+ 가 null인 경우
+
+ 가 0보다 작은 경우
+
+ 가 다차원 배열인 경우또는소스 의 요소 수가 에서 대상 끝까지 사용 가능한 공간보다 큰 경우
+ 소스 형식을 대상 형식으로 자동 캐스팅할 수 없는 경우
+
+
+
+ 개체에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되는지 여부를 나타내는 값을 가져옵니다.
+
+ 개체에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되면 true이고, 그러지 않으면 false입니다.기본값은 false입니다.
+
+
+
+ 개체에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.
+
+ 개체에 대한 액세스를 동기화하는 데 사용할 수 있는 개체입니다.
+
+
+ 컬렉션의 키의 컬렉션을 나타냅니다.
+
+
+
+ 의 키 수를 가져옵니다.
+
+ 에 있는 키의 수입니다.
+
+
+ 컬렉션의 지정한 인덱스에서 키를 가져옵니다.
+ 컬렉션의 지정된 인덱스에 있는 키가 들어 있는 입니다.
+ 컬렉션에서 가져올 키의 0부터 시작하는 인덱스입니다.
+
+ 가 컬렉션의 유효한 인덱스 범위 밖에 있는 경우
+
+
+
+ 을 반복하는 열거자를 반환합니다.
+
+ 에 대한 입니다.
+
+
+ 컬렉션의 지정된 인덱스에 있는 엔트리를 가져옵니다.
+ 컬렉션의 지정한 인덱스에 있는 엔트리의 키입니다.
+ 컬렉션에 있는 엔트리의 인덱스(0부터 시작)입니다.
+
+ 가 컬렉션의 유효한 인덱스 범위 밖에 있는 경우
+
+
+ 대상 배열의 지정된 인덱스에서 시작하여 전체 을 호환되는 1차원 에 복사합니다.
+
+ 에서 복사한 요소의 대상인 일차원 입니다.에는 0부터 시작하는 인덱스가 있어야 합니다.
+
+ 에서 복사가 시작되는 인덱스(0부터 시작)입니다.
+
+ 가 null입니다.
+
+ 가 0보다 작은 경우
+
+ 가 다차원 배열인 경우또는 소스 의 요소 수가 에서 대상 끝까지 사용 가능한 공간보다 큰 경우
+ 소스 형식을 대상 형식으로 자동 캐스팅할 수 없는 경우
+
+
+
+ 에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되는지 여부를 나타내는 값을 가져옵니다.
+
+ 에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되면 true이고, 그렇지 않으면 false입니다.기본값은 false입니다.
+
+
+
+ 에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.
+
+ 에 대한 액세스를 동기화하는 데 사용할 수 있는 개체입니다.
+
+
+ 키나 인덱스를 사용하여 액세스할 수 있는 연결된 키와 값의 컬렉션을 나타냅니다.
+
+
+ 비어 있는 상태이고 기본 초기 용량을 가지며 대/소문자를 구분하지 않는 기본 해시 코드 공급자와 대/소문자를 구분하지 않는 기본 비교자를 사용하는 클래스의 새 인스턴스를 초기화합니다.
+
+
+ 기본 초기 용량을 갖고 있고 지정된 개체를 사용하는 비어 있는 클래스의 새 인스턴스를 초기화합니다.
+ 두 키가 같은지 여부를 확인하고 컬렉션의 키에 대한 해시 코드를 생성하는 데 사용할 개체입니다.
+
+
+ 지정된 의 엔트리를 초기 용량이 복사되는 엔트리의 수와 같고 소스 컬렉션과 같은 해시 코드 공급자 및 같은 비교자를 사용하는 새 에 복사합니다.
+ 새 으로 복사할 입니다.
+
+ 가 null인 경우
+
+
+ 비어 있는 상태이고 지정한 초기 용량을 가지며 대/소문자를 구분하지 않는 기본 해시 코드 공급자와 대/소문자를 구분하지 않는 기본 비교자를 사용하는 클래스의 새 인스턴스를 초기화합니다.
+
+ 에 포함될 수 있는 초기 엔트리 수입니다.
+
+ 가 0보다 작은 경우
+
+
+ 지정된 초기 용량을 갖고 있고 지정된 개체를 사용하는 비어 있는 클래스의 새 인스턴스를 초기화합니다.
+
+ 개체에 포함될 수 있는 초기 엔트리 수입니다.
+ 두 키가 같은지 여부를 확인하고 컬렉션의 키에 대한 해시 코드를 생성하는 데 사용할 개체입니다.
+
+ 가 0보다 작은 경우
+
+
+ 지정된 의 엔트리를 새 에 복사합니다. 이 컬렉션은 지정된 초기 용량을 가지거나 복사되는 엔트리의 수와 같은 초기 용량을 가지며 대/소문자를 구분하지 않는 기본 해시 코드 공급자와 대/소문자를 구분하지 않는 기본 비교자를 사용합니다.
+
+ 에 포함될 수 있는 초기 엔트리 수입니다.
+ 새 으로 복사할 입니다.
+
+ 가 0보다 작은 경우
+
+ 가 null인 경우
+
+
+ 지정된 의 엔트리를 현재 으로 복사합니다.
+ 현재 으로 복사할 입니다.
+ 컬렉션이 읽기 전용입니다.
+
+ 가 null인 경우
+
+
+ 지정된 이름과 값을 가지는 엔트리를 에 추가합니다.
+ 추가할 엔트리의 키입니다.키는 null이 될 수 있습니다.
+ 추가할 엔트리의 값입니다.값은 null이 될 수 있습니다.
+ 컬렉션이 읽기 전용입니다.
+
+
+
+ 의 모든 키를 가져옵니다.
+
+ 의 모든 키를 포함하는 배열입니다.
+
+
+ 캐시된 배열을 무효로 만들고 에서 모든 엔트리를 제거합니다.
+ 컬렉션이 읽기 전용입니다.
+
+
+
+
+
+ 대상 배열의 지정된 인덱스에서 시작하여 전체 을 호환되는 1차원 에 복사합니다.
+
+ 에서 복사한 요소의 대상인 일차원 입니다.에는 0부터 시작하는 인덱스가 있어야 합니다.
+
+ 에서 복사가 시작되는 인덱스(0부터 시작)입니다.
+
+ 가 null인 경우
+
+ 가 0보다 작은 경우
+
+ 가 다차원 배열인 경우또는 소스 의 요소 수가 에서 대상 끝까지 사용 가능한 공간보다 큰 경우
+ 소스 형식을 대상 형식으로 자동 캐스팅할 수 없는 경우
+
+
+ 하나의 쉼표로 구분된 목록에 결합된 의 지정된 인덱스에서 값을 가져옵니다.
+
+ 의 지정된 인덱스에 있는 값의 쉼표로 구분된 목록이 들어 있는 이거나, 없는 경우 null입니다.
+ 컬렉션에서 가져올 값이 들어 있는 엔트리의 0부터 시작하는 인덱스입니다.
+
+ 가 컬렉션의 유효한 인덱스 범위 밖에 있는 경우
+
+
+ 하나의 쉼표로 구분된 목록에 결합된 에서 지정된 키와 관련된 값을 가져옵니다.
+
+ 에서 지정된 키와 관련된 값의 쉼표로 구분된 목록이 들어 있는 이거나, 없는 경우 null입니다.
+ 가져올 값이 들어 있는 엔트리의 키입니다.키는 null이 될 수 있습니다.
+
+
+
+ 의 지정한 인덱스에서 키를 가져옵니다.
+
+ 의 지정된 인덱스에 있는 키가 들어 있는 이거나, 없는 경우 null입니다.
+ 컬렉션에서 가져올 키의 0부터 시작하는 인덱스입니다.
+
+ 가 컬렉션의 유효한 인덱스 범위 밖에 있는 경우
+
+
+
+ 의 지정된 인덱스에서 값을 가져옵니다.
+
+ 의 지정된 인덱스에 있는 값이 들어 있는 배열이거나, 해당 배열이 없는 경우 null입니다.
+ 컬렉션에서 가져올 값이 들어 있는 엔트리의 0부터 시작하는 인덱스입니다.
+
+ 가 컬렉션의 유효한 인덱스 범위 밖에 있는 경우
+
+
+
+ 에서 지정된 키와 관련된 값을 가져옵니다.
+
+ 의 지정된 키와 관련된 값이 들어 있는 배열이거나, 없는 경우 null입니다.
+ 가져올 값이 들어 있는 엔트리의 키입니다.키는 null이 될 수 있습니다.
+
+
+
+ 에 null이 아닌 키가 들어 있는지 여부를 나타내는 값을 가져옵니다.
+
+ 에 null이 아닌 키가 들어 있으면 true이고, 그러지 않으면 false입니다.
+
+
+ 컬렉션의 캐시된 배열을 null로 다시 설정합니다.
+
+
+
+ 의 지정된 인덱스에 있는 엔트리를 가져옵니다.
+ 컬렉션의 지정된 인덱스에 있는 값의 쉼표로 구분된 목록이 들어 있는 입니다.
+ 컬렉션에 있는 엔트리의 인덱스(0부터 시작)입니다.
+
+ 가 컬렉션의 유효한 인덱스 범위 밖에 있는 경우
+
+
+
+ 에서 지정된 키를 가지는 엔트리를 가져오거나 설정합니다.
+ 지정된 키와 연결된 값이 있으면 쉼표로 구분된 해당 값의 목록이 포함된 이고, 그러지 않으면 null입니다.
+ 찾을 항목의 키입니다.키는 null이 될 수 있습니다.
+ 읽기 전용 컬렉션을 수정하려고 시도한 경우
+
+
+
+ 인스턴스에서 지정한 키를 가지는 엔트리를 제거합니다.
+ 제거할 엔트리의 키입니다.키는 null이 될 수 있습니다.
+ 컬렉션이 읽기 전용입니다.
+
+
+
+ 에 엔트리의 값을 설정합니다.
+ 새 값을 추가할 엔트리의 키입니다.키는 null이 될 수 있습니다.
+ 지정된 엔트리에 추가할 새 값을 나타내는 입니다.값은 null이 될 수 있습니다.
+ 컬렉션이 읽기 전용입니다.
+
+
+ 키나 인덱스에서 액세스할 수 있는 키/값 쌍의 컬렉션을 나타냅니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+
+
+ 지정한 비교자를 사용하여 클래스의 새 인스턴스를 초기화합니다.
+ 두 키가 같은지 여부를 확인하는 데 사용하는 입니다.또는 각 키로 를 구현한 기본 비교자를 사용하면 null입니다.
+
+
+ 지정한 초기 용량을 사용하여 클래스의 새 인스턴스를 초기화합니다.
+
+ 컬렉션에 포함될 수 있는 초기 요소 수입니다.
+
+
+ 지정한 초기 용량과 비교자를 사용하여 클래스의 새 인스턴스를 초기화합니다.
+
+ 컬렉션에 포함될 수 있는 초기 요소 수입니다.
+ 두 키가 같은지 여부를 확인하는 데 사용하는 입니다.또는 각 키로 를 구현한 기본 비교자를 사용하면 null입니다.
+
+
+ 지정한 키와 값이 있는 엔트리를 사용할 수 있는 가장 낮은 인덱스를 사용하여 컬렉션에 추가합니다.
+ 추가할 엔트리의 키입니다.
+ 추가할 엔트리의 값입니다.이 값은 null일 수 있습니다.
+
+ 컬렉션이 읽기 전용인 경우
+
+
+ 현재 컬렉션의 읽기 전용 복사본을 반환합니다.
+ 현재 컬렉션의 읽기 전용 복사본입니다.
+
+
+
+ 컬렉션에서 모든 요소를 제거합니다.
+
+ 컬렉션이 읽기 전용인 경우
+
+
+
+ 컬렉션에 특정 키가 들어 있는지 여부를 확인합니다.
+
+ 컬렉션에 지정한 키가 있는 요소가 포함된 경우 true이고, 그렇지 않으면 false입니다.
+
+ 컬렉션에서 찾을 키입니다.
+
+
+ 지정한 인덱스에 있는 1차원 개체에 요소를 복사합니다.
+
+ 컬렉션에서 복사한 개체의 대상인 1차원 개체입니다.에는 0부터 시작하는 인덱스가 있어야 합니다.
+
+ 에서 복사가 시작되는 인덱스(0부터 시작)입니다.
+
+
+
+ 컬렉션에 포함된 키/값 쌍의 수를 가져옵니다.
+
+ 컬렉션에 포함된 키/값 쌍의 수입니다.
+
+
+
+ 컬렉션을 반복하는 개체를 반환합니다.
+
+ 컬렉션에 대한 개체입니다.
+
+
+ 지정한 인덱스에 있는 지정한 키와 값을 사용하여 컬렉션에 새 엔트리를 삽입합니다.
+ 요소를 삽입해야 하는 0부터 시작하는 인덱스입니다.
+ 추가할 엔트리의 키입니다.
+ 추가할 엔트리의 값입니다.값은 null이 될 수 있습니다.
+
+ 이 범위에서 벗어난 경우.
+ 이 컬렉션은 읽기 전용입니다.
+
+
+
+ 컬렉션이 읽기 전용인지 여부를 나타내는 값을 가져옵니다.
+
+ 컬렉션이 읽기 전용이면 true이고, 그렇지 않으면 false입니다.기본값은 false입니다.
+
+
+ 지정한 인덱스에 있는 값을 가져오거나 설정합니다.
+ 지정한 인덱스에 있는 항목의 값입니다.
+ 가져오거나 설정할 값의 0부터 시작하는 인덱스입니다.
+ 속성이 설정되어 있으며 컬렉션이 읽기 전용인 경우
+
+ 가 0보다 작은 경우또는가 보다 크거나 같은 경우
+
+
+ 지정한 키가 있는 값을 가져오거나 설정합니다.
+ 지정한 키와 연결된 값입니다.지정한 키가 없는 경우 해당 키를 가져오려고 시도하면 null이 반환되고 해당 키를 설정하려고 시도하면 지정한 키를 사용하여 새 요소가 만들어집니다.
+ 가져오거나 설정할 값의 키입니다.
+ 속성이 설정되어 있으며 컬렉션이 읽기 전용인 경우
+
+
+
+ 컬렉션의 키가 포함된 개체를 가져옵니다.
+
+ 컬렉션의 키가 포함된 개체입니다.
+
+
+
+ 컬렉션에서 지정한 키가 있는 엔트리를 제거합니다.
+ 제거할 엔트리의 키입니다.
+
+ 컬렉션이 읽기 전용인 경우
+
+ 가 null인 경우
+
+
+
+ 컬렉션에서 지정한 인덱스에 있는 엔트리를 제거합니다.
+ 제거할 엔트리의 0부터 시작하는 인덱스입니다.
+
+ 컬렉션이 읽기 전용인 경우
+
+ 가 0보다 작은 경우또는가 보다 크거나 같은 경우
+
+
+
+ 개체에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되는지 여부를 나타내는 값을 가져옵니다.
+ 이 메서드는 항상 false를 반환합니다.
+
+
+
+ 개체에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.
+
+ 개체에 대한 액세스를 동기화하는 데 사용할 수 있는 개체입니다.
+
+
+
+ 의 크기가 고정되어 있는지 여부를 나타내는 값을 가져옵니다.
+ true if the has a fixed size; otherwise, false.기본값은 false입니다.
+
+
+
+ 컬렉션을 반복하는 개체를 반환합니다.
+
+ 컬렉션에 대한 개체입니다.
+
+
+
+ 컬렉션의 값이 포함된 개체를 가져옵니다.
+
+ 컬렉션의 값이 포함된 개체입니다.
+
+
+ 문자열 컬렉션을 나타냅니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+
+
+ 문자열을 의 끝에 추가합니다.
+ 새 요소가 삽입된 인덱스이며 0부터 시작합니다.
+
+ 의 끝에 추가할 문자열입니다.값은 null이 될 수 있습니다.
+
+
+ 문자열 배열의 요소를 의 끝에 복사합니다.
+
+ 의 끝에 추가할 문자열의 배열입니다.배열 자체는 null일 수가 없지만 null인 요소를 포함할 수 있습니다.
+
+ 가 null입니다.
+
+
+
+ 에서 문자열을 모두 제거합니다.
+
+
+ 지정한 문자열이 에 있는지 여부를 확인합니다.
+
+ 가 에 있으면 true이고, 그렇지 않으면 false입니다.
+
+ 에서 찾을 문자열입니다.값은 null이 될 수 있습니다.
+
+
+ 대상 배열의 지정한 인덱스에서 시작하여 전체 값을 1차원 문자열 배열에 복사합니다.
+
+ 에서 복사된 요소의 대상인 1차원 문자열 배열입니다.에는 0부터 시작하는 인덱스가 있어야 합니다.
+
+ 에서 복사가 시작되는 인덱스(0부터 시작)입니다.
+
+ 가 null입니다.
+
+ 가 0보다 작은 경우
+
+ 가 다차원 배열인 경우또는 소스 의 요소 수가 에서 대상 끝까지 사용 가능한 공간보다 큰 경우
+ 소스 형식을 대상 형식으로 자동 캐스팅할 수 없는 경우
+
+
+
+ 에 포함된 문자열 수를 가져옵니다.
+
+ 에 포함된 문자열 수입니다.
+
+
+
+ 을 반복하는 를 반환합니다.
+
+ 에 대한 입니다.
+
+
+ 지정한 문자열을 검색하고 내에서 처음 나오는 0부터 시작하는 인덱스를 반환합니다.
+
+ 에서 맨 처음 나오는 가 있으면 해당 인덱스(0부터 시작)이고, 그렇지 않으면 -1입니다.
+ 찾을 문자열입니다.값은 null이 될 수 있습니다.
+
+
+ 지정한 인덱스에 있는 에 문자열을 삽입합니다.
+
+ 가 삽입된 인덱스이며 0부터 시작합니다.
+ 삽입할 문자열입니다.값은 null이 될 수 있습니다.
+
+ 가 0보다 작은 경우또는 는 보다 큰 경우
+
+
+
+ 이 읽기 전용인지 여부를 나타내는 값을 가져옵니다.
+ 이 속성은 항상 false를 반환합니다.
+
+
+
+ 에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되는지 여부를 나타내는 값을 가져옵니다.
+ 이 속성은 항상 false를 반환합니다.
+
+
+ 지정된 인덱스에 있는 요소를 가져오거나 설정합니다.
+ 지정된 인덱스의 요소입니다.
+ 가져오거나 설정할 엔트리 인덱스이며 0부터 시작합니다.
+
+ 가 0보다 작은 경우또는 가 보다 크거나 같은 경우
+
+
+
+ 에서 맨 처음 발견되는 특정 문자열을 제거합니다.
+
+ 에서 제거할 문자열입니다.값은 null이 될 수 있습니다.
+
+
+
+ 의 지정한 인덱스에 있는 문자열을 제거합니다.
+ 제거할 문자열의 인덱스이며 0부터 시작합니다.
+
+ 가 0보다 작은 경우또는 가 보다 크거나 같은 경우
+
+
+
+ 에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.
+
+ 에 대한 액세스를 동기화하는 데 사용할 수 있는 개체입니다.
+
+
+ 대상 배열의 지정된 인덱스에서 시작하여 전체 을 호환되는 1차원 에 복사합니다.
+
+ 에서 복사한 요소의 대상인 일차원 입니다.에는 0부터 시작하는 인덱스가 있어야 합니다.
+
+ 에서 복사가 시작되는 인덱스(0부터 시작)입니다.
+
+ 가 null입니다.
+
+ 가 0보다 작은 경우
+
+ 가 다차원 배열인 경우또는 소스 의 요소 수가 에서 대상 끝까지 사용 가능한 공간보다 큰 경우
+ 소스 형식을 대상 형식으로 자동 캐스팅할 수 없는 경우
+
+
+
+ 을 반복하는 를 반환합니다.
+
+ 에 대한 입니다.
+
+
+ 개체를 의 끝 부분에 추가합니다.
+
+ 가 추가된 인덱스입니다.
+
+ 의 끝에 추가할 입니다.값은 null이 될 수 있습니다.
+
+ 가 읽기 전용인 경우또는 의 크기가 고정되어 있는 경우
+
+
+ 요소가 에 있는지 여부를 확인합니다.
+
+ 가 에 있으면 true이고, 그렇지 않으면 false입니다.
+
+ 에서 찾을 입니다.값은 null이 될 수 있습니다.
+
+
+ 지정한 를 검색하고, 전체 내에서 처음 나오는 인덱스(0부터 시작)를 반환합니다.
+ 전체 에서 맨 처음 나오는 가 있으면 해당 인덱스(0부터 시작)이고, 그렇지 않으면 -1입니다.
+
+ 에서 찾을 입니다.값은 null이 될 수 있습니다.
+
+
+
+ 의 지정된 인덱스에 요소를 삽입합니다.
+
+ 를 삽입해야 하는 인덱스(0부터 시작)입니다.
+ 삽입할 입니다.값은 null이 될 수 있습니다.
+
+ 가 0보다 작은 경우또는 가 보다 큰 경우
+
+ 가 읽기 전용인 경우또는 의 크기가 고정되어 있는 경우
+
+
+
+ 개체의 크기가 고정되어 있는지 여부를 나타내는 값을 가져옵니다.
+
+ 개체의 크기가 고정되어 있으면 true이고, 그렇지 않으면 false입니다.기본값은 false입니다.
+
+
+
+ 개체가 읽기 전용인지 여부를 나타내는 값을 가져옵니다.
+
+ 개체가 읽기 전용이면 true이고, 그렇지 않으면 false입니다.기본값은 false입니다.
+
+
+ 지정된 인덱스에 있는 요소를 가져오거나 설정합니다.
+ 지정된 인덱스의 요소입니다.
+ 가져오거나 설정할 요소의 인덱스(0부터 시작)입니다.
+
+ 가 0보다 작은 경우또는 가 보다 크거나 같은 경우
+
+
+
+ 에서 맨 처음 발견되는 특정 개체를 제거합니다.
+
+ 에서 제거할 입니다.값은 null이 될 수 있습니다.
+
+ 가 읽기 전용인 경우또는 의 크기가 고정되어 있는 경우
+
+
+ 개체가 아니라 문자열로 강력하게 형식화된 키와 값을 사용하여 해시 테이블을 구현합니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+
+
+ 지정한 키와 값을 가지는 엔트리를 에 추가합니다.
+ 추가할 엔트리의 키입니다.
+ 추가할 엔트리의 값입니다.값은 null이 될 수 있습니다.
+
+ is null.
+ An entry with the same key already exists in the .
+ The is read-only.
+
+
+
+ 에서 모든 엔트리를 제거합니다.
+ The is read-only.
+
+
+
+ 에 특정 키가 포함되어 있는지를 확인합니다.
+
+ 에 지정된 키가 있는 엔트리가 포함되어 있으면 true이고, 그렇지 않으면 false입니다.
+
+ 에서 찾을 수 있는 키입니다.
+ The key is null.
+
+
+
+ 에 특정 값이 포함되어 있는지를 확인합니다.
+
+ 에 지정한 값이 있는 요소가 포함되어 있으면 true이고, 그렇지 않으면 false입니다.
+
+ 에서 찾을 수 있는 값입니다.값은 null이 될 수 있습니다.
+
+
+ 문자열 사전 값을 1차원 인스턴스의 지정한 인덱스에 복사합니다.
+
+ 에서 복사된 값의 대상인 1차원 입니다.
+ 복사를 시작할 배열의 인덱스입니다.
+
+ is multidimensional.-or- The number of elements in the is greater than the available space from to the end of .
+
+ is null.
+
+ is less than the lower bound of .
+
+
+
+ 에 있는 키/값 쌍의 수를 가져옵니다.
+
+ 에 있는 키/값 쌍의 수입니다.이 속성 값을 검색하는 것은 O(1) 연산입니다.
+
+
+ 문자열 사전을 반복하는 열거자를 반환합니다.
+ 문자열 사전을 반복하는 입니다.
+
+
+
+ 에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되는지를 나타내는 값을 가져옵니다.
+
+ 에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되면 true이고, 그렇지 않으면 false입니다.
+
+
+ 지정된 키에 연결된 값을 가져오거나 설정합니다.
+ 지정한 키와 연결된 값입니다.지정한 키가 없을 때 Get을 사용하면 null이 반환되고 Set을 사용하면 지정한 키의 새 엔트리가 만들어집니다.
+ 가져오거나 설정할 값이 있는 키입니다.
+
+ is null.
+
+
+
+ 에 있는 키의 컬렉션을 가져옵니다.
+
+ 의 키를 제공하는 입니다.
+
+
+ 문자열 사전에서 지정한 키를 가지는 엔트리를 제거합니다.
+ 제거할 엔트리의 키입니다.
+ The key is null.
+ The is read-only.
+
+
+
+ 에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.
+
+ 에 대한 액세스를 동기화하는 데 사용할 수 있는 입니다.
+
+
+
+ 에 있는 값의 컬렉션을 가져옵니다.
+
+ 의 값을 제공하는 입니다.
+
+
+
+ 에서 단순하게 반복할 수 있도록 지원합니다.
+
+
+ 컬렉션의 현재 요소를 가져옵니다.
+ 컬렉션의 현재 요소입니다.
+ 열거자가 컬렉션의 첫 번째 요소 앞 또는 마지막 요소 뒤에 배치되는 경우
+
+
+ 열거자를 컬렉션의 다음 요소로 이동합니다.
+ 열거자가 다음 요소로 이동한 경우 true가 반환되고, 컬렉션의 끝을 지난 경우 false가 반환됩니다.
+ 열거자가 만들어진 후 컬렉션이 수정된 경우
+
+
+ 컬렉션의 첫 번째 요소 앞의 초기 위치에 열거자를 설정합니다.
+ 열거자가 만들어진 후 컬렉션이 수정된 경우
+
+
+
\ No newline at end of file
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/ru/System.Collections.Specialized.xml b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/ru/System.Collections.Specialized.xml
new file mode 100644
index 0000000..896d685
--- /dev/null
+++ b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/ru/System.Collections.Specialized.xml
@@ -0,0 +1,978 @@
+
+
+
+ System.Collections.Specialized
+
+
+
+ Представляет простую структуру с объемом памяти 32 бита, в которой хранятся логические значения и двухбайтовые целые числа.
+
+
+ Инициализирует новый экземпляр структуры , содержащий данные, представленные в существующей структуре .
+ Структура , содержащая данные, которые требуется скопировать.
+
+
+ Инициализирует новый экземпляр структуры , содержащий данные, представленные в целом числе.
+ Целое число, представляющее данные новой структуры .
+
+
+ Создает первую маску в наборе масок, которую можно использовать для получения отдельных разрядов в структуре , которая построена в виде одноразрядных флагов.
+ Маска, которая изолирует первый одноразрядный флаг в структуре .
+
+
+
+
+
+ Создает дополнительную маску, следующую за указанной маской в наборе масок, которую можно использовать для получения отдельных разрядов в структуре , построенной в виде одноразрядных флагов.
+ Маска, которая изолирует одноразрядный флаг, следующий за тем, на который указывает параметр в структуре .
+ Маска, которая указывает на предыдущий одноразрядный флаг.
+
+ indicates the last bit flag in the .
+
+
+ Создает первую структуру в наборе разделов, который содержит двухбайтовые целые числа.
+ Структура , которая может содержать числа от нуля до значения параметра .
+ 16-битное целое число со знаком, которое определяет максимальное значение для новой структуры .
+
+ is less than 1.
+
+
+ Создает структуру , следующую за указанной структурой в наборе разделов, который содержит двухбайтовые целые числа.
+ Структура , которая может содержать числа от нуля до значения параметра .
+ 16-битное целое число со знаком, которое определяет максимальное значение для новой структуры .
+ Предыдущая структура в структуре .
+
+ is less than 1.
+
+ includes the final bit in the .-or- is greater than the highest value that can be represented by the number of bits after .
+
+
+ Возвращает значение структуры в виде целого числа.
+ Значение структуры в виде целого числа.
+
+
+ Определяет, равен ли указанный объект структуре .
+ Значение true, если указанный объект равен объекту ; в противном случае — значение false.
+ Объект для сравнения с текущим объектом .
+
+
+ Играет роль хэш-функции для структуры .
+ Хэш-код для .
+
+
+ Получает или задает значение, хранящееся в указанной структуре .
+ Значение, хранящееся в указанной структуре .
+ Структура , содержащая значение, которое требуется получить или задать.
+
+
+ Получает или задает состояние одноразрядного флага, указанного определенной маской.
+ Значение true, если указанный одноразрядный флаг установлен в (1); в противном случае — значение false.
+ Маска, которая указывает разряд, который требуется получить или задать.
+
+
+ Возвращает строку, представляющую текущий объект .
+ Строка, представляющая текущий .
+
+
+ Возвращает строку, представляющую указанный объект .
+ Строка, представляющая указанную структуру .
+ Представляемый объект .
+
+
+ Представляет раздел вектора, который может содержать целое число.
+
+
+ Определяет, является ли указанный объект тем же самым, что и текущий объект .
+ Значение true, если параметр совпадает с текущим объектом ; в противном случае — значение false.
+ Объект , сравниваемый с текущим объектом .
+
+
+ Определяет, является ли указанный объект тем же самым, что и текущий объект .
+ Значение true, если указанный объект является тем же, что и текущий объект ; в противном случае — значение false.
+ Объект для сравнения с текущим объектом .
+
+
+ Служит хэш-функцией текущего класса для использования в алгоритмах и структурах данных хеширования, например в хэш-таблице.
+ Хэш-код для текущего объекта .
+
+
+ Получает маску, которая изолирует этот раздел в структуре .
+ Маска, которая изолирует этот раздел в структуре .
+
+
+ Получает смещение этого раздела от начала структуры .
+ Смещение этого раздела от начала структуры .
+
+
+ Определяет, равны ли между собой два указанных объекта .
+ Значение true, если параметры и представляют один и тот же объект , в противном случае — false.
+ Объект .
+ Объект .
+
+
+ Определяет, имеют ли два объекта различные значения.
+ Значение true, если параметры и представляют различные объекты , в противном случае — значение false.
+ Объект .
+ Объект .
+
+
+ Возвращает строку, представляющую текущий объект .
+ Строка, представляющая текущий .
+
+
+ Возвращает строку, представляющую указанный объект .
+ Строка, представляющая указанный объект .
+ Представляемая структура .
+
+
+ Реализует интерфейс IDictionary с помощью класса , когда коллекция небольшая, и переключается на класс , когда коллекция увеличивается.
+
+
+ Создает пустой объект , в котором регистр не учитывается.
+
+
+ Создает пустой объект с заданным требованием к учету регистра.
+ Логическое выражение, которое определяет, учитывается ли регистр в объекте .
+
+
+ Создает объект , в котором учитывается регистр, с указанным исходным размером.
+ Приблизительное количество элементов, которое может содержать класс .
+
+
+ Создает объект указанного исходного размера с заданным требованием к учету регистра.
+ Приблизительное количество элементов, которое может содержать класс .
+ Логическое выражение, которое определяет, учитывается ли регистр в объекте .
+
+
+ Добавляет запись с указанным ключом и значением в объект .
+ Ключ записи, которую требуется добавить.
+ Добавляемое значение записи.Допускается значение null.
+
+ is null.
+ Запись с таким же ключом уже существует в .
+
+
+ Удаляет все записи из .
+
+
+ Определяет, содержит ли объект указанный ключ.
+ Значение true, если содержит запись с указанным ключом; в противном случае — значение false.
+ Ключ, который требуется найти в .
+
+ is null.
+
+
+ Копирует записи в одномерный экземпляр массива по указанному индексу.
+ Одномерный массив , который является назначением для объектов , копируемых из коллекции .Массив должен иметь индексацию, начинающуюся с нуля.
+ Отсчитываемый от нуля индекс в массиве , указывающий начало копирования.
+
+ is null.
+ Значение параметра меньше нуля.
+ Массив является многомерным.-или- Количество элементов в исходной коллекции превышает доступное место, начиная с индекса до конца массива назначения .
+ Тип исходной коллекции нельзя автоматически привести к типу массива назначения .
+
+
+ Возвращает число пар "ключ-значение", содержащихся в словаре .
+ Число пар "ключ-значение", содержащихся в словаре .Получение значения данного свойства является операцией порядка сложности O(1).
+
+
+ Возвращает объект , осуществляющий перебор .
+
+ для .
+
+
+ Получает значение, указывающее, имеет ли список фиксированный размер.
+ Данное свойство всегда возвращает значение false.
+
+
+ Получает значение, указывающее, является ли объект доступным только для чтения.
+ Данное свойство всегда возвращает значение false.
+
+
+ Получает значение, показывающее, является ли доступ к синхронизированным (потокобезопасным).
+ Данное свойство всегда возвращает значение false.
+
+
+ Возвращает или задает значение, связанное с указанным ключом.
+ Значение, связанное с указанным ключом.Если указанный ключ не найден, при попытке его получения возвращается значение null, а при попытке задания ключа создается новая запись с использованием указанного ключа.
+ Задаваемое или получаемое значение ключа.
+
+ is null.
+
+
+ Получает коллекцию , содержащую ключи из коллекции .
+ Коллекция , содержащая ключи из коллекции .
+
+
+ Удаляет запись с указанным ключом из коллекции .
+ Ключ записи, которую требуется удалить.
+
+ is null.
+
+
+ Получает объект, с помощью которого можно синхронизировать доступ к коллекции .
+ Объект, который может использоваться для синхронизации доступа к .
+
+
+ Возвращает объект , осуществляющий перебор .
+
+ для .
+
+
+ Получает интерфейс , содержащий значения из .
+ Коллекция , содержащая значения из словаря .
+
+
+ Представляет индексированную коллекцию пар "ключ-значение".
+
+
+ Возвращает перечислитель, выполняющий перебор коллекции .
+ Объект для всей коллекции .
+
+
+ Вставляет пару "ключ-значение" в коллекцию по указанному индексу.
+ Отсчитываемый от нуля индекс, по которому требуется вставить пару "ключ-значение".
+ Объект, используемый в качестве ключа добавляемого элемента.
+ Объект, используемый в качестве значения добавляемого элемента.Допускается значение null.
+ Значение параметра меньше 0.-или-Значение больше значения .
+
+ is null.
+ Элемент с таким ключом уже существует в коллекции .
+ Коллекция доступна только для чтения.-или-Коллекция имеет фиксированный размер.
+
+
+ Возвращает или задает элемент по указанному индексу.
+ Элемент, расположенный по указанному индексу.
+ Отсчитываемый от нуля индекс элемента, который требуется возвратить или задать.
+ Значение параметра меньше 0.-или- Значение параметра больше или равно значению свойства .
+
+
+ Удаляет элемент по указанному индексу.
+ Индекс (с нуля) элемента, который требуется удалить.
+ Значение параметра меньше 0.-или- Значение параметра больше или равно значению свойства .
+ Коллекция доступна только для чтения.-или- Коллекция имеет фиксированный размер.
+
+
+ Реализует интерфейс IDictionary с помощью однонаправленного списка.Рекомендуется для коллекций, которые обычно содержат менее 10 элементов.
+
+
+ Создает пустую коллекцию , используя компаратор по умолчанию.
+
+
+ Создает пустую коллекцию , используя компаратор по умолчанию.
+ Интерфейс , который используется для определения равенства двух ключей.-или- Значение null для использования блока сравнения по умолчанию, который является реализацией метода для каждого ключа.
+
+
+ Добавляет запись с указанным ключом и значением в объект .
+ Ключ записи, которую требуется добавить.
+ Добавляемое значение записи.Допускается значение null.
+
+ is null.
+ Запись с таким же ключом уже существует в .
+
+
+ Удаляет все записи из .
+
+
+ Определяет, содержит ли объект указанный ключ.
+ Значение true, если содержит запись с указанным ключом; в противном случае — значение false.
+ Ключ, который требуется найти в .
+
+ is null.
+
+
+ Копирует записи в одномерный экземпляр массива по указанному индексу.
+ Одномерный массив , который является назначением для объектов , копируемых из коллекции .Массив должен иметь индексацию, начинающуюся с нуля.
+ Отсчитываемый от нуля индекс в массиве , указывающий начало копирования.
+
+ is null.
+ Значение параметра меньше нуля.
+ Массив является многомерным.-или- Количество элементов в исходной коллекции превышает доступное место, начиная с индекса до конца массива назначения .
+ Тип исходной коллекции нельзя автоматически привести к типу массива назначения .
+
+
+ Возвращает число пар "ключ-значение", содержащихся в словаре .
+ Число пар "ключ-значение", содержащихся в словаре .
+
+
+ Возвращает объект , осуществляющий перебор .
+
+ для .
+
+
+ Получает значение, указывающее, имеет ли список фиксированный размер.
+ Данное свойство всегда возвращает значение false.
+
+
+ Получает значение, указывающее, является ли объект доступным только для чтения.
+ Данное свойство всегда возвращает значение false.
+
+
+ Получает значение, показывающее, является ли доступ к синхронизированным (потокобезопасным).
+ Данное свойство всегда возвращает значение false.
+
+
+ Возвращает или задает значение, связанное с указанным ключом.
+ Значение, связанное с указанным ключом.Если указанный ключ не найден, при попытке его получения возвращается значение null, а при попытке задания ключа создается новая запись с использованием указанного ключа.
+ Задаваемое или получаемое значение ключа.
+
+ is null.
+
+
+ Получает коллекцию , содержащую ключи из коллекции .
+ Коллекция , содержащая ключи из коллекции .
+
+
+ Удаляет запись с указанным ключом из коллекции .
+ Ключ записи, которую требуется удалить.
+
+ is null.
+
+
+ Получает объект, с помощью которого можно синхронизировать доступ к коллекции .
+ Объект, который может использоваться для синхронизации доступа к .
+
+
+ Возвращает объект , осуществляющий перебор .
+
+ для .
+
+
+ Получает интерфейс , содержащий значения из .
+ Коллекция , содержащая значения из словаря .
+
+
+ Предоставляет abstract базовый класс для коллекции связанных ключей и значений , доступ к которым можно получить с помощью ключа или индекса.
+
+
+ Инициализирует новый экземпляр пустого класса .
+
+
+ Инициализирует новый экземпляр пустого класса , который обладает начальной емкостью по умолчанию и использует указанный объект .
+ Объект , который используется для определения равенства двух ключей и создания хэш-кодов для ключей в коллекции.
+
+
+ Инициализирует новый экземпляр пустого класса , который обладает указанной начальной емкостью и использует поставщика хэш-кода по умолчанию и функцию сравнения по умолчанию.
+ Приблизительное количество записей, которое может первоначально содержать экземпляр класса .
+ Значение параметра меньше нуля.
+
+
+ Инициализирует новый экземпляр класса , который является пустым, обладает указанной исходной емкостью и использует заданный объект .
+ Приблизительное количество записей, которое может первоначально содержать объект .
+ Объект , который используется для определения равенства двух ключей и создания хэш-кодов для ключей в коллекции.
+ Значение параметра меньше нуля.
+
+
+ Добавляет запись с указанным ключом и значением в экземпляр класса .
+ Добавляемый ключ записи .Значением ключа может быть null.
+ Добавляемое значение записи .Допускается значение null.
+ Семейство доступно только для чтения.
+
+
+ Удаляет все записи из экземпляра класса .
+ Семейство доступно только для чтения.
+
+
+ Возвращает значение записи по указанному индексу экземпляра класса .
+ Объект класса , который представляет значение записи по указанному индексу.
+ Отсчитываемый от нуля индекс значения, которое нужно получить.
+ Значение параметра находится вне диапазона допустимых индексов коллекции.
+
+
+ Возвращает значение первой записи с указанным ключом из экземпляра класса .
+ Объект , который представляет значение первой записи с указанным ключом, если он найден; в противном случае — значение null.
+ Возвращаемый ключ записи .Значением ключа может быть null.
+
+
+ Возвращает массив , который содержит все ключи экземпляра класса .
+ Массив , который содержит все ключи экземпляра класса .
+
+
+ Возвращает массив , который содержит все значения экземпляра класса .
+ Массив , который содержит все значения экземпляра класса .
+
+
+ Возвращает массив указанного типа, который содержит все значения экземпляра класса .
+ Массив указанного типа, который содержит все значения экземпляра класса .
+ Объект , который представляет тип возвращаемого массива.
+ Свойство имеет значение null.
+ Параметр не является допустимым типом .
+
+
+ Возвращает ключ записи по указанному индексу в экземпляре класса .
+ Объект , который представляет ключ записи по указанному индексу.
+ Отсчитываемый от нуля индекс получаемого ключа.
+ Значение параметра находится вне диапазона допустимых индексов коллекции.
+
+
+ Возвращает значение, показывающее, содержит ли экземпляр класса записи, в которых значение ключа отлично от null.
+ Значение true, если экземпляр класса содержит записи, для которых значение ключа отлично от null; в противном случае — значение false.
+
+
+ Удаляет записи с указанным ключом из экземпляра класса .
+ Удаляемый ключ записей .Значением ключа может быть null.
+ Семейство доступно только для чтения.
+
+
+ Удаляет запись по указанному индексу в экземпляре класса .
+ Отсчитываемый от нуля индекс записи, которую требуется удалить.
+ Значение параметра находится вне диапазона допустимых индексов коллекции.
+ Семейство доступно только для чтения.
+
+
+ Задает значение записи по указанному индексу экземпляра класса .
+ Отсчитываемый от нуля индекс записи, для которой требуется задать значение.
+ Объект , представляющий новое значение записи, которое требуется задать.Допускается значение null.
+ Семейство доступно только для чтения.
+ Значение параметра находится вне диапазона допустимых индексов коллекции.
+
+
+ Задает значение первой записи с указанным ключом в экземпляре класса , если ключ найден; в противном случае добавляет запись с указанным ключом и значением в экземпляр класса .
+ Задаваемый ключ записи .Значением ключа может быть null.
+ Объект , представляющий новое значение записи, которое требуется задать.Допускается значение null.
+ Семейство доступно только для чтения.
+
+
+ Возвращает число пар "ключ-значение", содержащихся в экземпляре класса .
+ Число пар "ключ-значение", содержащихся в экземпляре класса .
+
+
+ Возвращает перечислитель, осуществляющий перебор элементов списка .
+ Перечислитель для экземпляра класса .
+
+
+ Возвращает или задает значение, указывающее, является ли экземпляр класса доступным только для чтения.
+ Значение true, если экземпляр класса доступен только для чтения, в противном случае — значение false.
+
+
+ Возвращает экземпляр класса , который содержит все ключи экземпляра класса .
+ Экземпляр класса , который содержит все ключи экземпляра класса .
+
+
+ Копирует целый массив в совместимый одномерный массив , начиная с заданного индекса целевого массива.
+ Одномерный массив , в который копируются элементы из интерфейса .Массив должен иметь индексацию, начинающуюся с нуля.
+ Отсчитываемый от нуля индекс в массиве , указывающий начало копирования.
+ Свойство имеет значение null.
+ Значение параметра меньше нуля.
+ Массив является многомерным.-или-Количество элементов в исходной коллекции превышает доступное место, начиная с индекса до конца массива назначения .
+ Тип исходной коллекции нельзя автоматически привести к типу массива назначения .
+
+
+ Возвращает значение, указывающее на то, является ли доступ к объекту синхронизированным (потокобезопасным).
+ Значение true, если доступ к объекту является синхронизированным (потокобезопасным); в противном случае — значение false.Значение по умолчанию — false.
+
+
+ Возвращает объект, который позволяет синхронизировать доступ к объекту .
+ Объект, который позволяет синхронизировать доступ к объекту .
+
+
+ Представляет коллекцию ключей коллекции.
+
+
+ Получает число ключей в .
+ Число ключей в .
+
+
+ Получает ключ по указанному индексу коллекции.
+ Объект , который содержит ключ по указанному индексу коллекции.
+ Индекс (с нуля) ключа, который требуется получить из коллекции.
+ Значение параметра находится вне диапазона допустимых индексов коллекции.
+
+
+ Возвращает перечислитель, осуществляющий перебор элементов списка .
+
+ для .
+
+
+ Получает запись по указанному индексу коллекции.
+ Ключ для записи по указанному индексу коллекции.
+ Индекс (с нуля) записи, местоположение которой требуется определить в коллекции.
+ Значение параметра находится вне диапазона допустимых индексов коллекции.
+
+
+ Копирует целый массив в совместимый одномерный массив , начиная с заданного индекса целевого массива.
+ Одномерный массив , в который копируются элементы из интерфейса .Индексация в массиве должна начинаться с нуля.
+ Индекс (с нуля) в массиве , с которого начинается копирование.
+ Параметр имеет значение null.
+ Значение параметра меньше нуля.
+ Массив является многомерным.– или – Количество элементов в исходной коллекции превышает доступное место, начиная с индекса до конца массива назначения .
+ Тип исходной коллекции нельзя автоматически привести к типу массива назначения .
+
+
+ Получает значение, показывающее, является ли доступ к коллекции синхронизированным (потокобезопасным).
+ Значение true, если доступ к коллекции является синхронизированным (потокобезопасным); в противном случае — значение false.Значение по умолчанию — false.
+
+
+ Получает объект, с помощью которого можно синхронизировать доступ к коллекции .
+ Объект, который может использоваться для синхронизации доступа к коллекции .
+
+
+ Представляет коллекцию связанных ключей и значений , доступ к которым можно получить с помощью ключа или индекса.
+
+
+ Инициализирует новый экземпляр класса , который является пустым, обладает исходной емкостью по умолчанию, использует поставщика хэш-кода по умолчанию и функцию сравнения по умолчанию. Функция сравнения и поставщик хэш-кода работают без учета регистра.
+
+
+ Инициализирует новый экземпляр пустого класса , который обладает начальной емкостью по умолчанию и использует указанный объект .
+ Объект , который используется для определения равенства двух ключей и создания хэш-кодов для ключей в коллекции.
+
+
+ Копирует записи из указанной коллекции в новую коллекцию с начальной емкостью, равной количеству копируемых записей. При этом используется такой же поставщик хэш-кода и такая же функция сравнения, которые использовались в исходной коллекции.
+ Коллекция , копируемая в новый экземпляр класса .
+ Свойство имеет значение null.
+
+
+ Инициализирует новый экземпляр класса , который является пустым, обладает указанной исходной емкостью, использует поставщика хэш-кода по умолчанию и функцию сравнения по умолчанию. Функция сравнения и поставщик хэш-кода работают без учета регистра.
+ Начальное количество записей, которое может содержать .
+ Значение параметра меньше нуля.
+
+
+ Инициализирует новый экземпляр класса , который является пустым, обладает указанной исходной емкостью и использует заданный объект .
+ Начальное количество записей, которое может содержать объект .
+ Объект , который используется для определения равенства двух ключей и создания хэш-кодов для ключей в коллекции.
+ Значение параметра меньше нуля.
+
+
+ Копирует записи из указанной коллекции в новую коллекцию с указанной начальной емкостью или начальной емкостью, равной количеству копируемых записей, — в зависимости от того, какое значение больше. При этом используются поставщик хэш-кода по умолчанию и функция сравнения по умолчанию, работающие без учета регистра.
+ Начальное количество записей, которое может содержать .
+ Коллекция , копируемая в новый экземпляр класса .
+ Значение параметра меньше нуля.
+ Свойство имеет значение null.
+
+
+ Копирует записи из указанной коллекции в текущую коллекцию .
+ Коллекция , копируемая в текущую коллекцию .
+ Семейство доступно только для чтения.
+ Свойство имеет значение null.
+
+
+ Добавляет запись с указанным ключом и значением в коллекцию .
+ Добавляемый ключ записи .Значением ключа может быть null.
+ Добавляемое значение записи .Допускается значение null.
+ Семейство доступно только для чтения.
+
+
+ Получает все ключи в коллекции .
+ Массив , который содержит все ключи коллекции .
+
+
+ Делает недопустимыми кэшированные массивы и удаляет все записи из коллекции .
+ Семейство доступно только для чтения.
+
+
+
+
+
+ Копирует целый массив в совместимый одномерный массив , начиная с заданного индекса целевого массива.
+ Одномерный массив , в который копируются элементы из интерфейса .Массив должен иметь индексацию, начинающуюся с нуля.
+ Отсчитываемый от нуля индекс в массиве , указывающий начало копирования.
+ Свойство имеет значение null.
+ Значение параметра меньше нуля.
+ Массив является многомерным.-или- Количество элементов в исходной коллекции превышает доступное место, начиная с индекса до конца массива назначения .
+ Тип исходной коллекции нельзя автоматически привести к типу массива назначения .
+
+
+ Получает значения по указанному индексу в коллекции , объединенные в один список с разделителями-запятыми.
+ Объект , который содержит список значений с разделителями-запятыми, по указанному адресу в коллекции , если найден; в противном случае — значение null.
+ Индекс (с нуля) записи, содержащей значения, которые требуется получить из коллекции.
+ Значение параметра находится вне диапазона допустимых индексов коллекции.
+
+
+ Получает значения, связанные с указанным ключом, из коллекции , объединенные в один список, в котором используются разделители-запятые.
+ Объект , который содержит список значений с разделителями-запятыми, связанных с указанным ключом в классе , если найден; в противном случае — значение null.
+ Ключ для записи, содержащей значения, которые требуется получить.Значением ключа может быть null.
+
+
+ Получает ключ по указанному индексу в коллекции .
+ Объект , который содержит ключ по указанному индексу в коллекции , если найден; в противном случае — значение null.
+ Отсчитываемый от нуля индекс ключа, который требуется получить из коллекции.
+ Значение параметра находится вне диапазона допустимых индексов коллекции.
+
+
+ Получает значения по указанному индексу в коллекции .
+ Массив , который содержит значения по указанному индексу в коллекции , если найден; в противном случае — значение null.
+ Индекс (с нуля) записи, содержащей значения, которые требуется получить из коллекции.
+ Значение параметра находится вне диапазона допустимых индексов коллекции.
+
+
+ Получает значения, связанные с указанным ключом, из коллекции .
+ Массив , который содержит значения, связанные с указанным ключом, в коллекции , если найден; в противном случае — значение null.
+ Ключ для записи, содержащей значения, которые требуется получить.Значением ключа может быть null.
+
+
+ Получает значение, показывающее, содержит ли коллекция ключи, отличные от null.
+ Значение true, если коллекция содержит ключи, которые отличны от null; в противном случае — значение false.
+
+
+ Сбрасывает кэшированные массивы в коллекции до значения null.
+
+
+ Получает запись по указанному индексу в коллекции .
+ Объект , который содержит список значений с разделителями-запятыми по указанному индексу в коллекции.
+ Индекс (с нуля) записи, расположение которой требуется определить в коллекции.
+ Значение параметра находится вне диапазона допустимых индексов коллекции.
+
+
+ Получает или задает запись с указанным ключом в коллекции .
+ Объект , который содержит список значений с разделителями-запятыми, связанных с указанным ключом, если он найден; в противном случае — значение null.
+ Ключ для записи, которую требуется найти.Значением ключа может быть null.
+ Коллекция доступна только для чтения, а в операции предпринимается попытка изменить коллекцию.
+
+
+ Удаляет записи с указанным ключом из экземпляра класса .
+ Удаляемый ключ записи .Значением ключа может быть null.
+ Семейство доступно только для чтения.
+
+
+ Задает значение записи в коллекции .
+ Ключ для записи, в которую требуется добавить новое значение.Значением ключа может быть null.
+ Объект , представляющий новое значение, которое требуется добавить в указанную запись.Допускается значение null.
+ Семейство доступно только для чтения.
+
+
+ Представляет коллекцию пар "ключ-значение", доступ к которым можно получить по ключу и индексу.
+
+
+ Инициализирует новый экземпляр класса .
+
+
+ Инициализирует новый экземпляр класса с помощью указанного компаратора.
+ Интерфейс , который используется для определения равенства двух ключей.-или- Значение null для использования блока сравнения по умолчанию, который является реализацией метода для каждого ключа.
+
+
+ Инициализирует новый экземпляр класса , используя указанную исходную емкость.
+ Начальное количество элементов, которое может содержать коллекция .
+
+
+ Инициализирует новый экземпляр класса , используя указанную исходную емкость и компаратор.
+ Начальное количество элементов, которое может содержать коллекция .
+ Интерфейс , который используется для определения равенства двух ключей.-или- Значение null для использования блока сравнения по умолчанию, который является реализацией метода для каждого ключа.
+
+
+ Добавляет запись с указанным ключом и значением в коллекцию с наименьшим доступным индексом.
+ Ключ записи, которую требуется добавить.
+ Добавляемое значение записи.Данное значение может быть null.
+ Коллекция доступна только для чтения.
+
+
+ Возвращает доступную только для чтения копию текущей коллекции .
+ Доступная только для чтения копия текущей коллекции .
+
+
+ Удаляет все элементы из коллекции .
+ Коллекция доступна только для чтения.
+
+
+ Определяет, содержит ли коллекция указанный ключ.
+ Значение true, если коллекция содержит элемент с указанным ключом, в противном случае — значение false.
+ Ключ, который требуется отыскать в коллекции .
+
+
+ Копирует элементы коллекции в одномерный объект по указанному индексу.
+ Одномерный объект , который является конечным объектом для объектов , копируемых из коллекции .Массив должен иметь индексацию, начинающуюся с нуля.
+ Отсчитываемый от нуля индекс в массиве , указывающий начало копирования.
+
+
+ Получает число пар ключ/значение, содержащихся в коллекции .
+ Число пар ключ/значение, содержащихся в коллекции .
+
+
+ Возвращает объект , который выполняет перебор элементов коллекции .
+ Объект для коллекции .
+
+
+ Вставляет новую запись в коллекцию с указанным ключом и значением по указанному индексу.
+ Отсчитываемый от нуля индекс, по которому следует вставить элемент.
+ Ключ записи, которую требуется добавить.
+ Добавляемое значение записи.Допускается значение null.
+
+ выходит за пределы допустимого диапазона.
+ Эта коллекция доступна только для чтения.
+
+
+ Получает значение, определяющее, доступна ли коллекция только для чтения.
+ Значение true, если коллекция доступна только для чтения; в противном случае — значение false.Значение по умолчанию — false.
+
+
+ Возвращает или задает значение по указанному индексу.
+ Значение элемента с заданным индексом.
+ Отсчитываемый от нуля индекс возвращаемого или задаваемого значения.
+ Свойство задается, и коллекция доступна только для чтения.
+ Значение параметра меньше нуля.-или-Значение параметра больше или равно значению свойства .
+
+
+ Возвращает или задает значение с указанным ключом.
+ Значение, связанное с указанным ключом.Если указанный ключ не найден, при попытке его получения возвращается значение null, а при попытке задания ключа создается новый элемент с использованием указанного ключа.
+ Ключ, значение которого требуется получить или задать.
+ Свойство задается, и коллекция доступна только для чтения.
+
+
+ Получает объект , содержащий ключи из коллекции .
+ Объект , содержащий ключи из коллекции .
+
+
+ Удаляет запись с указанным ключом из коллекции .
+ Ключ записи, которую требуется удалить.
+ Коллекция доступна только для чтения.
+
+ is null.
+
+
+ Удаляет запись с указанным индексом из коллекции .
+ Отсчитываемый от нуля индекс записи, которую требуется удалить.
+ Коллекция доступна только для чтения.
+ Значение параметра меньше нуля.-или-Значение параметра больше или равно значению свойства .
+
+
+ Возвращает значение, указывающее на то, является ли доступ к объекту синхронизированным (потокобезопасным).
+ Этот метод всегда возвращает значение false.
+
+
+ Получает объект, который позволяет синхронизировать доступ к объекту .
+ Объект, который позволяет синхронизировать доступ к объекту .
+
+
+ Получает значение, указывающее, имеет ли список фиксированный размер.
+ Значение true, если список имеет фиксированный размер, в противном случае — значение false.Значение по умолчанию — false.
+
+
+ Возвращает объект , который выполняет перебор элементов коллекции .
+ Объект для коллекции .
+
+
+ Получает объект , содержащий значения из коллекции .
+ Получает объект , содержащий значения из коллекции .
+
+
+ Представляет коллекцию строк.
+
+
+ Инициализирует новый экземпляр класса .
+
+
+ Добавляет строку в конец .
+ Индекс (с нуля), указывающий, куда был вставлен новый элемент.
+ Строка, добавляемая в конец .Допускается значение null.
+
+
+ Копирует элементы массива строк в конец .
+ Массив строк, добавляемый в конец .Сам массив не может быть равен null, но может содержать элементы со значением null.
+ Параметр имеет значение null.
+
+
+ Удаляет все строки из .
+
+
+ Определяет, находится ли указанная строка в коллекции .
+ Значение true, если параметр найден в коллекции ; в противном случае — значение false.
+ Строка, которую требуется найти в коллекции .Допускается значение null.
+
+
+ Копирует значения всей коллекции в одномерный массив строк, начиная с указанного индекса целевого массива.
+ Одномерный массив строк, который является конечным массивом для элементов, копируемых из .Индексация в массиве должна начинаться с нуля.
+ Индекс (с нуля) в массиве , с которого начинается копирование.
+ Параметр имеет значение null.
+ Значение параметра меньше нуля.
+ Массив является многомерным.– или – Количество элементов в исходной коллекции превышает доступное место, начиная с индекса до конца массива назначения .
+ Тип исходной коллекции нельзя автоматически привести к типу массива назначения .
+
+
+ Получает число строк, содержащихся в коллекции .
+ Число строк, содержащихся в коллекции .
+
+
+ Возвращает объект , который осуществляющий перебор элементов .
+
+ для .
+
+
+ Осуществляет поиск указанной строки и возвращает индекс (с нуля) ее первого вхождения в коллекцию .
+ Индекс (с нуля) первого вхождения параметра в коллекцию , если он найден; в противном случае — значение -1.
+ Строка, которую требуется найти.Допускается значение null.
+
+
+ Вставляет строку в класс по указанному индексу.
+ Индекс (с нуля) места вставки параметра .
+ Строка, которую требуется вставить.Допускается значение null.
+ Значение параметра меньше нуля.– или – Параметр больше значения свойства .
+
+
+ Получает значение, указывающее, доступна ли только для чтения.
+ Данное свойство всегда возвращает значение false.
+
+
+ Получает значение, показывающее, является ли доступ к коллекции синхронизированным (потокобезопасным).
+ Данное свойство всегда возвращает значение false.
+
+
+ Получает или задает элемент с указанным индексом.
+ Элемент с заданным индексом.
+ Индекс (с нуля) записи, которую требуется получить или задать.
+ Значение параметра меньше нуля.– или – Значение параметра больше или равно значению свойства .
+
+
+ Удаляет первое вхождение указанной строки из коллекции .
+ Строка, которую требуется удалить из коллекции .Допускается значение null.
+
+
+ Удаляет строку по указанному индексу в коллекции .
+ Отсчитываемый от нуля индекс строки, которую требуется удалить.
+ Значение параметра меньше нуля.– или – Значение параметра больше или равно значению свойства .
+
+
+ Получает объект, с помощью которого можно синхронизировать доступ к коллекции .
+ Объект, который может использоваться для синхронизации доступа к коллекции .
+
+
+ Копирует целый массив в совместимый одномерный массив , начиная с заданного индекса целевого массива.
+ Одномерный массив , в который копируются элементы из интерфейса .Индексация в массиве должна начинаться с нуля.
+ Индекс (с нуля) в массиве , с которого начинается копирование.
+ Параметр имеет значение null.
+ Значение параметра меньше нуля.
+ Массив является многомерным.– или – Количество элементов в исходной коллекции превышает доступное место, начиная с индекса до конца массива назначения .
+ Тип исходной коллекции нельзя автоматически привести к типу массива назначения .
+
+
+ Возвращает объект , который осуществляющий перебор элементов .
+
+ для .
+
+
+ Добавляет объект в конец коллекции .
+ Индекс коллекции , по которому был добавлен параметр .
+ Объект , добавляемый в конец коллекции .Допускается значение null.
+ Список доступен только для чтения.– или – Коллекция имеет фиксированный размер.
+
+
+ Определяет, входит ли элемент в состав .
+ Значение true, если параметр найден в коллекции ; в противном случае — значение false.
+ Объект , который требуется найти в списке .Допускается значение null.
+
+
+ Осуществляет поиск указанного индекса и возвращает индекс (с нуля) первого вхождения в коллекцию .
+ Индекс (с нуля) первого вхождения параметра , если оно найдено в коллекции ; в противном случае -1.
+ Объект , который требуется найти в списке .Допускается значение null.
+
+
+ Добавляет элемент в список в позиции с указанным индексом.
+ Отсчитываемый от нуля индекс, по которому следует вставить параметр .
+ Вставляемый объект .Допускается значение null.
+ Значение параметра меньше нуля.– или – Значение больше значения .
+ Список доступен только для чтения.– или – Коллекция имеет фиксированный размер.
+
+
+ Получает значение, показывающее, имеет ли объект фиксированный размер.
+ true, если объект имеет фиксированный размер, в противном случае — false.Значение по умолчанию — false.
+
+
+ Получает значение, показывающее, является ли объект доступным только для чтения.
+ true, если объект доступен только для чтения, в противном случае — false.Значение по умолчанию — false.
+
+
+ Получает или задает элемент с указанным индексом.
+ Элемент с заданным индексом.
+ Отсчитываемый с нуля индекс получаемого или задаваемого элемента.
+ Значение параметра меньше нуля.– или – Значение параметра больше или равно значению свойства .
+
+
+ Удаляет первый экземпляр указанного объекта из коллекции .
+ Элемент , который требуется удалить из .Допускается значение null.
+ Список доступен только для чтения.– или – Коллекция имеет фиксированный размер.
+
+
+ Реализует хэш-таблицу с ключом и значением, строго типизированными как строки, а не объекты.
+
+
+ Инициализирует новый экземпляр класса .
+
+
+ Добавляет запись с указанными ключом и значением в словарь .
+ Ключ записи, которую требуется добавить.
+ Добавляемое значение записи.Допускается значение null.
+
+ is null.
+ An entry with the same key already exists in the .
+ The is read-only.
+
+
+ Удаляет все записи из .
+ The is read-only.
+
+
+ Определяет, содержит ли объект указанный ключ.
+ Значение true, если содержит запись с указанным ключом; в противном случае — значение false.
+ Ключ, который требуется найти в .
+ The key is null.
+
+
+ Определяет, содержит ли объект указанное значение.
+ Значение true, если содержит элемент с указанным значением, в противном случае — значение false.
+ Значение, которое требуется найти в словаре .Допускается значение null.
+
+
+ Копирует значения из словаря строк в одномерный экземпляр класса по указанному индексу.
+ Одномерный массив , который является назначением для значений, копируемых из .
+ Индекс массива, с которого начинается копирование.
+
+ is multidimensional.-or- The number of elements in the is greater than the available space from to the end of .
+
+ is null.
+
+ is less than the lower bound of .
+
+
+ Возвращает число пар ключ/значение, содержащихся в .
+ Число пар ключ/значение, содержащихся в .Получение значения данного свойства является операцией порядка сложности O(1).
+
+
+ Возвращает перечислитель, который осуществляет перебор элементов словаря строк.
+ Перечислитель , который осуществляет перебор элементов словаря строк.
+
+
+ Получает значение, показывающее, является ли доступ к коллекции синхронизированным (потокобезопасным).
+ true, если доступ к классу является синхронизированным (потокобезопасным); в противном случае — false.
+
+
+ Возвращает или задает значение, связанное с указанным ключом.
+ Значение, связанное с указанным ключом.Если указанный ключ не найден, оператор Get возвращает значение null, а оператор Set создает запись с указанным ключом.
+ Ключ, значение которого необходимо задать или получить.
+
+ is null.
+
+
+ Возвращает коллекцию ключей в .
+ Интерфейс , предоставляющий ключи в .
+
+
+ Удаляет запись с указанным ключом из словаря строк.
+ Ключ записи, которую требуется удалить.
+ The key is null.
+ The is read-only.
+
+
+ Получает объект, с помощью которого можно синхронизировать доступ к коллекции .
+ Объект , который можно использовать для синхронизации доступа к .
+
+
+ Возвращает коллекцию значений в .
+ Интерфейс , предоставляющий значения в .
+
+
+ Поддерживает простой перебор элементов коллекции .
+
+
+ Получает текущий элемент в коллекции.
+ Текущий элемент в коллекции.
+ Перечислитель помещается перед первым элементом коллекции или после последнего элемента.
+
+
+ Перемещает перечислитель к следующему элементу коллекции.
+ Значение true, если перечислитель был успешно перемещен к следующему элементу; значение false, если перечислитель достиг конца коллекции.
+ Коллекция была изменена после создания перечислителя.
+
+
+ Устанавливает перечислитель в его начальное положение, т. е. перед первым элементом коллекции.
+ Коллекция была изменена после создания перечислителя.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/zh-hans/System.Collections.Specialized.xml b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/zh-hans/System.Collections.Specialized.xml
new file mode 100644
index 0000000..7fe329a
--- /dev/null
+++ b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/zh-hans/System.Collections.Specialized.xml
@@ -0,0 +1,1070 @@
+
+
+
+ System.Collections.Specialized
+
+
+
+ 提供一个简单结构,该结构以 32 位内存存储布尔值和小整数。
+
+
+ 初始化 结构的新实例,其中包含现有 结构中表示的数据。
+ 一个 结构,它包含要复制的数据。
+
+
+ 初始化 结构的新实例,其中包含整数中表示的数据。
+ 一个整数,它表示新 的数据。
+
+
+ 创建一系列屏蔽中的第一个屏蔽,该系列屏蔽可用于检索作为位标志设置的 中的单个位。
+ 一个屏蔽,它隔离 中的第一个位标志。
+
+
+
+
+
+ 在一系列屏蔽中的指定屏蔽后面再创建一个屏蔽,该系列屏蔽可以用于检索作为位标志设置的 中的单个位。
+ 一个屏蔽,它隔离在 中 指向的位标志后面的位标志。
+ 指示前一个位标志的屏蔽。
+
+ indicates the last bit flag in the .
+
+
+ 在包含小整数的一系列节中创建第一个 。
+ 一个 ,它可以保存从零到 的数字。
+ 一个 16 位带符号整数,它为新 指定最大值。
+
+ is less than 1.
+
+
+ 在包含小整数的一系列节中创建指定 后面的新 。
+ 一个 ,它可以保存从零到 的数字。
+ 一个 16 位带符号整数,它为新 指定最大值。
+
+ 中的前一个 。
+
+ is less than 1.
+
+ includes the final bit in the .-or- is greater than the highest value that can be represented by the number of bits after .
+
+
+ 获取 的值作为一个整数。
+
+ 的值作为一个整数。
+
+
+ 确定指定对象与 是否相等。
+ 如果指定对象与 相等,则为 true;否则为 false。
+ 与当前 进行比较的对象。
+
+
+ 用作 的哈希函数。
+
+ 的一个哈希代码。
+
+
+ 获取或设置指定 中存储的值。
+ 在指定 中存储的值。
+ 一个 ,它包含要获取或设置的值。
+
+
+ 获取或设置由指定屏蔽指示的位标志的状态。
+ 如果指定位标志在 (1) 上,则为 true;否则为 false。
+ 一个屏蔽,它指示要获取或设置的位。
+
+
+ 返回表示当前 的字符串。
+ 表示当前 的字符串。
+
+
+ 返回一个字符串,它代表指定 。
+ 一个字符串,它代表指定 。
+ 要代表的 。
+
+
+ 表示可以包含整数的向量的节。
+
+
+ 确定指定 对象是否与当前 对象相同。
+ 如果 参数与当前 对象相同,则为 true;否则为 false。
+ 要与当前 对象进行比较的 对象。
+
+
+ 确定指定对象是否与当前 对象相同。
+ 如果指定的对象与当前 对象相同,则为 true;否则为 false。
+ 将与当前 进行比较的对象。
+
+
+ 用作当前 的哈希函数,适合用在哈希算法和数据结构(如哈希表)中。
+ 当前 的哈希代码。
+
+
+ 获取在 中隔离此节的掩码。
+ 在 中隔离此节的掩码。
+
+
+ 获取从 的起始处开始的此节的偏移量。
+ 从 的起始处开始的此节的偏移量。
+
+
+ 确定指定的两个 对象是否相等。
+ 如果 和 参数表示同一 对象,则为 true;否则为 false。
+ 一个 对象。
+ 一个 对象。
+
+
+ 确定两个 对象是否具有不同的值。
+ 如果 和 参数表示不同的 对象,则为 true;否则为 false。
+ 一个 对象。
+ 一个 对象。
+
+
+ 返回表示当前 的字符串。
+ 表示当前 的字符串。
+
+
+ 返回表示指定 的字符串。
+ 表示指定 的字符串。
+ 要表示的 。
+
+
+ 通过以下方法来实现 IDictionary:在集合较小时使用 ,然后在集合变大时切换到 。
+
+
+ 创建区分大小写的空白 。
+
+
+ 创建使用指定的大小写规则的空白 。
+ 一个布尔值,它表示 是否不区分大小写。
+
+
+ 创建具有指定的初始大小且区分大小写的 。
+
+ 最初可包含的大概项数。
+
+
+ 创建具有指定的初始大小和大小写规则的 。
+
+ 最初可包含的大概项数。
+ 一个布尔值,它表示 是否不区分大小写。
+
+
+ 将带有指定键和值的项添加到 中。
+ 要添加的条目的键。
+ 要添加的条目的值。该值可以为 null。
+
+ 为 null。
+ 带有相同键的项已经存在于 中。
+
+
+ 从 中移除所有项。
+
+
+ 确定 是否包含特定键。
+ true if the contains an entry with the specified key; otherwise, false.
+ 要在 中定位的键。
+
+ 为 null。
+
+
+ 将 项复制到位于指定索引处的一维 实例中。
+ The one-dimensional that is the destination of the objects copied from . 必须具有从零开始的索引。
+
+ 中从零开始的索引,从此索引处开始进行复制。
+
+ 为 null。
+
+ 小于零。
+
+ 是多维的。- 或 -源 中的元素数目大于从 到目标 末尾之间的可用空间。
+ 源 的类型无法自动转换为目标 的类型。
+
+
+ 获取包含在 中的键/值对的数目。
+ 包含在 中的键/值对的数目。检索此属性的值的运算复杂度为 O(1)。
+
+
+ Returns an that iterates through the .
+ 用于 的 。
+
+
+ 获取一个值,该值指示 是否具有固定大小。
+ 该属性始终返回 false。
+
+
+ 获取一个值,该值指示 是否为只读。
+ 该属性始终返回 false。
+
+
+ 获取一个值,该值指示 是否是同步的(线程安全)。
+ 该属性始终返回 false。
+
+
+ 获取或设置与指定的键关联的值。
+ 与指定的键相关联的值。如果未找到指定的键,尝试获取它将返回 null,尝试设置它将使用指定的键创建新项。
+ 要获取或设置其值的键。
+
+ 为 null。
+
+
+ Gets an containing the keys in the .
+ An containing the keys in the .
+
+
+ 从 中移除带有指定键的项。
+ 要移除的条目的键。
+
+ 为 null。
+
+
+ 获取可用于同步对 的访问的对象。
+ 可用于同步对 的访问的对象。
+
+
+ 返回循环访问 的 。
+ 用于 的 。
+
+
+ 获取包含 中的值的 。
+ 一个 ,它包含 中的值。
+
+
+ 表示键/值对的索引集合。
+
+
+ 返回一个循环访问 集合的枚举数。
+ 用于整个 集合的 。
+
+
+ 将键/值对插入到指定索引处的集合中。
+ 键/值对应在从零开始的索引处插入。
+ 用作要添加的元素的键的对象。
+ 用作要添加的元素的值的对象。该值可以为 null。
+
+ 小于 0。- 或 - 大于 。
+
+ 为 null。
+
+ 集合中已存在具有相同键的元素。
+
+ 集合为只读。- 或 - 集合的大小是固定的。
+
+
+ 获取或设置指定索引处的元素。
+ 指定索引处的元素。
+ 要获取或设置的元素的从零开始的索引。
+
+ 小于 0。- 或 - 等于或大于 。
+
+
+ 移除指定索引处的元素。
+ 要移除的元素的从零开始的索引。
+
+ 小于 0。- 或 - 等于或大于 。
+
+ 集合为只读。- 或 - 集合的大小是固定的。
+
+
+ 使用单向链接列表实现 IDictionary。对于通常包含少于 10 项的集合,建议使用该实现方法。
+
+
+ 使用默认比较器创建空白 。
+
+
+ 使用指定比较器创建空白 。
+
+ ,用于确定两个键是否相等。- 或 - null 使用默认比较器,该比较器是每一个键的 实现。
+
+
+ 将带有指定键和值的项添加到 中。
+ 要添加的条目的键。
+ 要添加的条目的值。该值可以为 null。
+
+ 为 null。
+ 带有相同键的项已经存在于 中。
+
+
+ 从 中移除所有项。
+
+
+ 确定 是否包含特定键。
+ true if the contains an entry with the specified key; otherwise, false.
+ 要在 中定位的键。
+
+ 为 null。
+
+
+ 将 项复制到位于指定索引处的一维 实例中。
+ 一维 ,它是从 复制的 对象的目标位置。 必须具有从零开始的索引。
+
+ 中从零开始的索引,从此索引处开始进行复制。
+
+ 为 null。
+
+ 小于零。
+
+ 是多维的。- 或 -源 中的元素数目大于从 到目标 末尾之间的可用空间。
+ 源 的类型无法自动转换为目标 的类型。
+
+
+ 获取包含在 中的键/值对的数目。
+ 包含在 中的键/值对的数目。
+
+
+ 返回循环访问 的 。
+ 用于 的 。
+
+
+ 获取一个值,该值指示 是否具有固定大小。
+ 该属性始终返回 false。
+
+
+ 获取一个值,该值指示 是否为只读。
+ 该属性始终返回 false。
+
+
+ 获取一个值,该值指示 是否是同步的(线程安全)。
+ 该属性始终返回 false。
+
+
+ 获取或设置与指定的键关联的值。
+ 与指定的键相关联的值。如果未找到指定的键,尝试获取它将返回 null,尝试设置它将使用指定的键创建新项。
+ 要获取或设置其值的键。
+
+ 为 null。
+
+
+ 获取包含 中的键的 。
+ 包含 中的键的 。
+
+
+ 从 中移除带有指定键的项。
+ 要移除的条目的键。
+
+ 为 null。
+
+
+ 获取可用于同步对 的访问的对象。
+ 可用于同步对 的访问的对象。
+
+
+ 返回循环访问 的 。
+ 用于 的 。
+
+
+ 获取包含 中的值的 。
+ 一个 ,它包含 中的值。
+
+
+ 为关联的 键和 值的集合(可通过键或索引来访问它)提供 abstract 基类。
+
+
+ 初始化为空的 类的新实例。
+
+
+ 初始化 类的新实例,该实例为空、具有默认的初始容量并使用指定的 对象。
+
+ 对象,用于确定两个键是否相等,并为集合中的键生成哈希代码。
+
+
+ 初始化 类的新实例,该实例为空、具有指定的初始容量,并使用默认哈希代码提供程序和默认比较器。
+
+ 实例最初可以包含的项的大概数目。
+
+ 小于零。
+
+
+ 初始化 类的新实例,该实例为空、具有指定的初始容量并使用指定的 对象。
+
+ 对象最初可包含的大概项数。
+
+ 对象,用于确定两个键是否相等,并为集合中的键生成哈希代码。
+
+ 小于零。
+
+
+ 将具有指定键和值的项添加到 实例中。
+ 要添加的项的 键。键可以是 null。
+ 要添加的项的 值。该值可以为 null。
+ 该集合为只读。
+
+
+ 移除 实例中的所有项。
+ 该集合为只读。
+
+
+ 获取 实例的指定索引处的项值。
+
+ ,它表示指定索引处的项值。
+ 要获取的值的从零开始索引。
+
+ 在集合的有效索引范围外。
+
+
+ 获取 实例中第一个具有指定键的项值。
+ 如果找到了表示第一个具有指定键的项值的 ,则为该对象;否则为 null。
+ 要获取的项的 键。键可以是 null。
+
+
+ 返回 数组,该数组包含 实例中的所有键。
+
+ 数组,该数组包含 实例中的所有键。
+
+
+ 返回 数组,该数组包含 实例中的所有值。
+
+ 数组,它包含 实例中的所有值。
+
+
+ 返回指定类型的数组,该数组包含 实例中的所有值。
+ 指定类型的数组,该数组包含 实例中的所有值。
+ 表示要返回的数组类型的 。
+
+ 为 null。
+
+ 不是有效的 。
+
+
+ 获取 实例的指定索引处的项键。
+ 表示指定索引处的项键的 。
+ 要获取的键的从零开始的索引。
+
+ 在集合的有效索引范围外。
+
+
+ 获取一个值,通过该值指示 实例是否包含键不为 null 的项。
+ 如果 实例包含键不为 null 的项,则为 true;否则为 false。
+
+
+ 移除 实例中具有指定键的项。
+ 要移除的项的 键。键可以是 null。
+ 该集合为只读。
+
+
+ 移除 实例的指定索引处的项。
+ 要移除的项的从零开始的索引。
+
+ 在集合的有效索引范围外。
+ 该集合为只读。
+
+
+ 设置 实例的指定索引处的项值。
+ 要设置的项的从零开始的索引。
+ 表示要设置的项的新值的 。该值可以为 null。
+ 该集合为只读。
+
+ 在集合的有效索引范围外。
+
+
+ 为 实例中第一个具有指定键的项设置值(如果有这样的项);否则将具有指定键和值的项添加到 实例中。
+ 要设置的项的 键。键可以是 null。
+ 表示要设置的项的新值的 。该值可以为 null。
+ 该集合为只读。
+
+
+ 获取包含在 实例中的键/值对的数目。
+ 包含在 实例中的键/值对的数目。
+
+
+ 返回循环访问 的枚举数。
+ 用于 实例的 。
+
+
+ 获取或设置一个值,通过该值指示 实例是否为只读的。
+ 如果 实例为只读,则为 true;否则为 false。
+
+
+ 获取 实例,该实例包含 实例中的所有键。
+
+ 实例,该实例包含 实例中的所有键。
+
+
+ 从目标数组的指定索引处开始将整个 复制到兼容的一维 。
+ 一维 ,它是从 复制的元素的目标。 必须具有从零开始的索引。
+
+ 中从零开始的索引,从此处开始复制。
+
+ 为 null。
+
+ 小于零。
+
+ 是多维的。- 或 -源 中的元素数目大于从 到目标 末尾之间的可用空间。
+ 源 的类型无法自动转换为目标 的类型。
+
+
+ 获取一个值,该值指示对 对象的访问是否同步(线程安全)。
+ 如果对 对象的访问是同步的(线程安全),则为 true;否则为 false。默认值为 false。
+
+
+ 获取一个对象,该对象可用于同步对 对象的访问。
+ 一个对象,该对象可用于同步对 对象的访问。
+
+
+ 表示集合的 键的集合。
+
+
+ 获取 中的键数。
+
+ 中键的数目。
+
+
+ 获取集合的指定索引处的键。
+ 一个 ,它包含集合的指定索引处的键。
+ 要从集合中获取的从零开始的键索引。
+
+ 在集合的有效索引范围外。
+
+
+ 返回循环访问 的枚举数。
+ 用于 的 。
+
+
+ 获取集合中指定索引处的项。
+ 集合中指定索引处的项的 键。
+ 要在集合中定位的项的从零开始的索引。
+
+ 在集合的有效索引范围外。
+
+
+ 从目标数组的指定索引处开始将整个 复制到兼容的一维 。
+ 作为从 复制的元素的目标的一维 。 必须具有从零开始的索引。
+
+ 中从零开始的索引,从此索引处开始进行复制。
+
+ 为 null。
+
+ 小于零。
+
+ 是多维的。- 或 -源 中的元素数目大于从 到目标 末尾之间的可用空间。
+ 源 的类型无法自动转换为目标 的类型。
+
+
+ 获取一个值,该值指示是否同步对 的访问(线程安全)。
+ 如果对 的访问是同步的(线程安全),则为 true;否则为 false。默认值为 false。
+
+
+ 获取可用于同步对 的访问的对象。
+ 可用于同步对 的访问的对象。
+
+
+ 表示可通过键或索引访问的关联 键和 值的集合。
+
+
+ 初始化 类的新实例,该实例为空且具有默认初始容量,并使用不区分大小写的默认哈希代码提供程序和不区分大小写的默认比较器。
+
+
+ 初始化 类的新实例,该实例为空、具有默认的初始容量并使用指定的 对象。
+
+ 对象,用于确定两个键是否相等,并为集合中的键生成哈希代码。
+
+
+ 将项从指定的 复制到一个新的 ,这个新集合的初始容量与复制的项数相等,并使用与源集合相同的哈希代码提供程序和比较器。
+ 要复制到新 实例的 。
+
+ 为 null。
+
+
+ 初始化 类的新实例,该实例为空且具有指定的初始容量,并使用不区分大小写的默认哈希代码提供程序和不区分大小写的默认比较器。
+
+ 可包含的初始项数。
+
+ 小于零。
+
+
+ 初始化 类的新实例,该实例为空、具有指定的初始容量并使用指定的 对象。
+
+ 对象可包含的初始项数。
+
+ 对象,用于确定两个键是否相等,并为集合中的键生成哈希代码。
+
+ 小于零。
+
+
+ 将项从指定的 复制到一个新的 ,这个新集合使用指定的初始容量或与具有与复制的项数相等的初始容量(两者中较大的一个),并使用不区分大小写的默认哈希代码提供程序和不区分大小写的默认比较器。
+
+ 可包含的初始项数。
+ 要复制到新 实例的 。
+
+ 小于零。
+
+ 为 null。
+
+
+ 将指定 中的项复制到当前 。
+ 要复制到当前 中的 。
+ 该集合为只读。
+
+ 为 null。
+
+
+ 将具有指定名称和值的项添加到 。
+ 要添加的项的 键。键可以是 null。
+ 要添加的项的 值。该值可以为 null。
+ 该集合为只读。
+
+
+ 获取 中的所有键。
+ 一个 数组,包含 中的所有键。
+
+
+ 使缓存数组无效,并将所有项从 中移除。
+ 该集合为只读。
+
+
+
+
+
+ 从目标数组的指定索引处开始将整个 复制到兼容的一维 。
+ 一维 ,它是从 复制的元素的目标。 必须具有从零开始的索引。
+
+ 中从零开始的索引,从此处开始复制。
+
+ 为 null。
+
+ 小于零。
+
+ 是多维的。- 或 - 源 中的元素数目大于从 到目标 末尾之间的可用空间。
+ 源 的类型无法自动转换为目标 的类型。
+
+
+ 获取 中指定索引处的值,这些值已合并为一个以逗号分隔的列表。
+ 如果找到,则为一个 ,包含 中指定索引处的值的列表(此列表以逗号分隔);否则为 null。
+ 项的从零开始的索引,该项包含要从集合中获取的值。
+
+ 在集合的有效索引范围外。
+
+
+ 获取与 中的指定键关联的值,这些值已合并为一个以逗号分隔的列表。
+ 如果找到,则为一个 ,包含与 中的指定键关联的值的列表(此列表以逗号分隔);否则为 null。
+ 项的 键,该项包含要获取的值。键可以是 null。
+
+
+ 获取 的指定索引处的键。
+ 如果找到,则为一个 ,包含 中指定索引处的键;否则为 null。
+ 要从集合中获取的从零开始的键索引。
+
+ 在集合的有效索引范围外。
+
+
+ 获取 中指定索引处的值。
+ 如果找到,则为一个 数组,包含 中指定索引处的值;否则为 null。
+ 项的从零开始的索引,该项包含要从集合中获取的值。
+
+ 在集合的有效索引范围外。
+
+
+ 获取与 中的指定键关联的值。
+ 如果找到,则为一个 数组,包含与 中的指定键关联的值;否则为 null。
+ 项的 键,该项包含要获取的值。键可以是 null。
+
+
+ 获取一个值,该值指示 是否包含非 null 的键。
+ 如果 包含非 null 的键,则为 true;否则为 false。
+
+
+ 将集合的缓存数组重置为 null。
+
+
+ 获取 中指定索引处的项。
+
+ 包含集合中指定索引处的值的列表(此列表以逗号分隔)。
+ 要在集合中定位的项的从零开始的索引。
+
+ 在集合的有效索引范围外。
+
+
+ 获取或设置 中具有指定键的项。
+ 如果找到了,则为一个 ,它包含与指定键关联的值的列表(用逗号分隔);否则为 null。
+ 要定位的项的 键。键可以是 null。
+ 该集合是只读的,但此操作尝试修改该集合。
+
+
+ 移除 实例中具有指定键的项。
+ 要移除的项的 键。键可以是 null。
+ 该集合为只读。
+
+
+ 设置 中某个项的值。
+ 要向其添加新值的项的 键。键可以是 null。
+
+ ,表示要添加到指定项的新值。该值可以为 null。
+ 该集合为只读。
+
+
+ 表示可通过键或索引访问的键/值对的集合。
+
+
+ 初始化 类的新实例。
+
+
+ 使用指定的比较器初始化 类的新实例。
+
+ ,用于确定两个键是否相等。- 或 - null 使用默认比较器,该比较器是每一个键的 实现。
+
+
+ 使用指定的初始容量初始化 类的新实例。
+
+ 集合可以包含的初始元素数。
+
+
+ 使用指定初始容量和比较器初始化 类的新实例。
+
+ 集合可以包含的初始元素数。
+
+ ,用于确定两个键是否相等。- 或 - null 使用默认比较器,该比较器是每一个键的 实现。
+
+
+ 使用最小的可用索引,将具有指定键和值的项添加到 集合中。
+ 要添加的条目的键。
+ 要添加的条目的值。此值可为 null。
+
+ 集合为只读。
+
+
+ 返回当前 集合的只读副本。
+ 当前 集合的只读副本。
+
+
+ 移除 集合中的所有元素。
+
+ 集合为只读。
+
+
+ 确定 集合是否包含特定的键。
+ 如果 集合包含具有指定键的元素,则为 true;否则为 false。
+ 要在 集合中定位的键。
+
+
+ 将 元素复制到位于指定索引处的一维 对象中。
+ 一维 对象,是从 集合复制的 对象的目标。 必须具有从零开始的索引。
+
+ 中从零开始的索引,从此索引处开始进行复制。
+
+
+ 获取包含在 集合中的键/值对的数目。
+ 包含在 集合中的键/值对的数目。
+
+
+ 返回一个循环访问 集合的 对象。
+
+ 集合的 对象。
+
+
+ 在指定索引处用指定键和值将新项插入到 集合中。
+ 应在从零开始的索引处插入元素。
+ 要添加的条目的键。
+ 要添加的条目的值。该值可以为 null。
+
+ 超出范围。
+ 此集合是只读的。
+
+
+ 获取一个值,该值指示 集合是否为只读的。
+ 如果 集合为只读,则为 true;否则为 false。默认值为 false。
+
+
+ 获取或设置指定索引处的值。
+ 在指定索引处的项的值。
+ 要获取或设置的值的从零开始索引。
+ 正在设置此属性,但 集合是只读的。
+
+ 小于零。- 或 - 等于或大于 。
+
+
+ 获取或设置具有指定键的值。
+ 与指定的键相关联的值。如果未找到指定的键,尝试获取它将返回 null,尝试设置它将使用指定的键创建新元素。
+ 要获取或设置的值的键。
+ 正在设置此属性,但 集合是只读的。
+
+
+ 获取 对象,该对象包含 集合中的键。
+ 一个 对象,它包含 集合中的键。
+
+
+ 从 集合中移除具有指定键的项。
+ 要移除的条目的键。
+
+ 集合为只读。
+
+ 为 null。
+
+
+ 从 集合中移除指定索引处的项。
+ 要移除的项的从零开始的索引。
+
+ 集合为只读。
+
+ 小于零。- 或 - 等于或大于 。
+
+
+ 获取一个值,该值指示对 对象的访问是否同步(线程安全)。
+ 此方法通常返回 false。
+
+
+ 获取一个对象,该对象可用于同步对 对象的访问。
+ 一个对象,该对象可用于同步对 对象的访问。
+
+
+ 获取一个值,该值指示 是否具有固定大小。
+ true if the has a fixed size; otherwise, false.默认值为 false。
+
+
+ 返回一个循环访问 集合的 对象。
+
+ 集合的 对象。
+
+
+ 获取 对象,该对象包含 集合中的值。
+ 一个 对象,它包含 集合中的值。
+
+
+ 表示字符串的集合。
+
+
+ 初始化 类的新实例。
+
+
+ 将字符串添加到 的末尾。
+ 从零开始的索引,在此处插入新元素。
+ 要添加到 的末尾的字符串。该值可以为 null。
+
+
+ 将字符串数组的元素复制到 的末尾。
+ 要添加到 的末尾的字符串数组。数组本身不能为 null,但可以包含为 null 的元素。
+
+ 为 null。
+
+
+ 移除 中的所有字符串。
+
+
+ 确定指定的字符串是否在 中。
+ 如果在 中找到 ,则为 true;否则为 false。
+ 要在 中定位的字符串。该值可以为 null。
+
+
+ 从目标数组的指定索引处开始,将全部 值复制到一维字符串数组中。
+ 一维字符串数组,用作从 复制元素的目标数组。 必须具有从零开始的索引。
+
+ 中从零开始的索引,从此索引处开始进行复制。
+
+ 为 null。
+
+ 小于零。
+
+ 是多维的。- 或 -源 中的元素数目大于从 到目标 末尾之间的可用空间。
+ 源 的类型无法自动转换为目标 的类型。
+
+
+ 获取 中包含的字符串的数目。
+
+ 中包含的字符串的数目。
+
+
+ 返回循环访问 的 。
+ 用于 的 。
+
+
+ 搜索指定的字符串并返回 内的第一个匹配项的从零开始的索引。
+ 如果找到,则为 中 的第一个匹配项的从零开始的索引;否则为 -1。
+ 要定位的字符串。该值可以为 null。
+
+
+ 将字符串插入 中的指定索引处。
+ 从零开始的索引,在此处插入 。
+ 要插入的字符串。该值可以为 null。
+
+ 小于零。- 或 - 大于 。
+
+
+ 获取一个值,该值指示 是否为只读。
+ 该属性始终返回 false。
+
+
+ 获取一个值,该值指示是否同步对 的访问(线程安全)。
+ 该属性始终返回 false。
+
+
+ 获取或设置位于指定索引处的元素。
+ 位于指定索引处的元素。
+ 要获取或设置的项的从零开始的索引。
+
+ 小于零。- 或 - 等于或大于 。
+
+
+ 从 中移除特定字符串的第一个匹配项。
+ 要从 中移除的字符串。该值可以为 null。
+
+
+ 移除 的指定索引处的字符串。
+ 要删除的字符串的从零开始的索引。
+
+ 小于零。- 或 - 等于或大于 。
+
+
+ 获取可用于同步对 的访问的对象。
+ 可用于同步对 的访问的对象。
+
+
+ 从目标数组的指定索引处开始将整个 复制到兼容的一维 。
+ 作为从 复制的元素的目标的一维 。 必须具有从零开始的索引。
+
+ 中从零开始的索引,从此索引处开始进行复制。
+
+ 为 null。
+
+ 小于零。
+
+ 是多维的。- 或 -源 中的元素数目大于从 到目标 末尾之间的可用空间。
+ 源 的类型无法自动转换为目标 的类型。
+
+
+ 返回循环访问 的 。
+ 用于 的 。
+
+
+ 将对象添加到 的结尾处。
+
+ 索引,已在此处添加了 。
+ 要添加到 的末尾处的 。该值可以为 null。
+
+ 为只读。- 或 - 具有固定大小。
+
+
+ 确定某元素是否在 中。
+ 如果在 中找到 ,则为 true;否则为 false。
+ 要在 中查找的 。该值可以为 null。
+
+
+ 搜索指定的 ,并返回整个 中第一个匹配项的从零开始的索引。
+ 如果在整个 中找到 的第一个匹配项,则为该项的从零开始的索引;否则为 -1。
+ 要在 中查找的 。该值可以为 null。
+
+
+ 将元素插入 的指定索引处。
+ 从零开始的索引,应在该位置插入 。
+ 要插入的 。该值可以为 null。
+
+ 小于零。- 或 - 大于 。
+
+ 为只读。- 或 - 具有固定大小。
+
+
+ 获取一个值,该值指示 对象是否具有固定大小。
+ 如果 对象具有固定大小,则为 true;否则为 false。默认值为 false。
+
+
+ 获取一个值,该值指示 对象是否为只读。
+ 如果 对象为只读,则为 true;否则为 false。默认值为 false。
+
+
+ 获取或设置位于指定索引处的元素。
+ 位于指定索引处的元素。
+ 要获得或设置的元素从零开始的索引。
+
+ 小于零。- 或 - 等于或大于 。
+
+
+ 从 中移除特定对象的第一个匹配项。
+ 要从 移除的 。该值可以为 null。
+
+ 为只读。- 或 - 具有固定大小。
+
+
+ 使用字符串(而不是对象)强类型的键和值来实现哈希表。
+
+
+ 初始化 类的新实例。
+
+
+ 将带有指定键和值的条目添加到 中。
+ 要添加的条目的键。
+ 要添加的条目的值。该值可以为 null。
+
+ is null.
+ An entry with the same key already exists in the .
+ The is read-only.
+
+
+ 从 移除所有条目。
+ The is read-only.
+
+
+ 确定是否 包含一个指定键。
+ 如果 包含带指定键的条目,则为 true;否则为 false。
+ 要在 中定位的键。
+ The key is null.
+
+
+ 确定是否 包含一个指定值。
+ 如果 包含具有指定值的元素,则为 true;否则为 false。
+ 要在 中定位的值。该值可以为 null。
+
+
+ 将字符串字典值复制到一维 实例的指定索引位置。
+ 一维 ,它是从 复制的值的目标。
+ 数组中的索引,复制即从该位置开始。
+
+ is multidimensional.-or- The number of elements in the is greater than the available space from to the end of .
+
+ is null.
+
+ is less than the lower bound of .
+
+
+ 获取 中的键/值对的数目。
+
+ 中的键/值对的数目。检索此属性的值的运算复杂度为 O(1)。
+
+
+ 返回循环访问字符串字典的枚举数。
+ 一个 ,它循环访问字符串字典。
+
+
+ 获取一个值,该值指示是否同步对 的访问(线程安全)。
+ 如果对 的访问是同步的(线程安全),则为 true;否则为 false。
+
+
+ 获取或设置与指定的键关联的值。
+ 与指定的键相关联的值。如果指定键未找到,则 Get 返回 null,Set 创建一个带指定键的新条目。
+ 要获取或设置其值的键。
+
+ is null.
+
+
+ 获取 中的键的集合。
+ 一个 ,它提供 中的键。
+
+
+ 从字符串字典中移除带有指定键的条目。
+ 要移除的条目的键。
+ The key is null.
+ The is read-only.
+
+
+ 获取可用于同步对 的访问的对象。
+ 一个 ,可用于同步对 的访问。
+
+
+ 获取 中的值的集合。
+ 一个 ,它提供 中的值。
+
+
+ 支持在 上进行简单迭代。
+
+
+ 获取集合中的当前元素。
+ 集合中的当前元素。
+ 枚举数定位在该集合的第一个元素之前或最后一个元素之后。
+
+
+ 将枚举数推进到集合的下一个元素。
+ 如果枚举数成功地推进到下一个元素,则为 true;如果枚举数越过集合的结尾,则为 false。
+ 在创建了枚举数后集合被修改了。
+
+
+ 将枚举数设置为其初始位置,该位置位于集合中第一个元素之前。
+ 在创建了枚举数后集合被修改了。
+
+
+
\ No newline at end of file
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/zh-hant/System.Collections.Specialized.xml b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/zh-hant/System.Collections.Specialized.xml
new file mode 100644
index 0000000..09e0867
--- /dev/null
+++ b/packages/System.Collections.Specialized.4.3.0/ref/netstandard1.3/zh-hant/System.Collections.Specialized.xml
@@ -0,0 +1,1102 @@
+
+
+
+ System.Collections.Specialized
+
+
+
+ 提供在 32 位元記憶體中儲存布林值 (Boolean) 和小整數的簡單結構。
+
+
+ 初始化 結構的新執行個體,該結構包含現有 結構中所表示的資料。
+
+ 結構,包含要複製的資料。
+
+
+ 初始化 結構的新執行個體,該結構包含整數所表示的資料。
+ 表示新 之資料的整數。
+
+
+ 建立一系列遮罩中的第一個遮罩,可以用於擷取設定為位元旗標之 中的個別位元。
+ 遮罩,隔離 中的第一個位元旗標。
+
+
+
+
+
+ 在一系列遮罩中的指定遮罩之後建立額外的遮罩,可以用於擷取設定為位元旗標之 中的個別位元。
+ 遮罩,隔離 中 所指向之位元旗標之後的位元旗標。
+ 遮罩,表示前一個的位元旗標。
+
+ indicates the last bit flag in the .
+
+
+ 建立包含小整數之一系列區段中的第一個 。
+
+ ,可以存放零到 的數字。
+ 16 位元帶正負號的整數,會指定新 的最大值。
+
+ is less than 1.
+
+
+ 在包含小整數的一系列區段中,建立新 於指定的 之後。
+
+ ,可以存放零到 的數字。
+ 16 位元帶正負號的整數,會指定新 的最大值。
+
+ 中的前一個 。
+
+ is less than 1.
+
+ includes the final bit in the .-or- is greater than the highest value that can be represented by the number of bits after .
+
+
+ 取得 的值做為整數。
+ 做為整數的 的值。
+
+
+ 判斷指定的物件和 是否相等。
+ 如果指定的物件和 相等,則為 true,否則為 false。
+ 要與目前 比較的物件。
+
+
+ 做為 的雜湊函式。
+
+ 的雜湊程式碼。
+
+
+ 取得或設定儲存於指定 中的值。
+ 儲存於指定 中的值。
+
+ ,包含要取得或設定的值。
+
+
+ 取得或設定由指定遮罩所指示的位元旗標狀態。
+ 如果指定的位元旗標為開啟 (1),則為 true,否則為 false。
+ 遮罩,表示要取得或設定的位元。
+
+
+ 傳回字串,表示目前的 。
+ 字串,表示目前 。
+
+
+ 傳回表示指定的 的字串。
+ 字串,表示指定的 。
+ 要表示的 。
+
+
+ 表示可以含有整數數字的向量區段。
+
+
+ 判斷指定 物件與目前 物件是否相同。
+ 如果 參數與目前 物件相同則為 true,否則為 false。
+ 要與目前 物件比較的 物件。
+
+
+ 判斷指定物件與目前 物件是否相同。
+ 如果指定物件與目前 物件相同則為 true,否則為 false。
+ 要與目前 比較的物件。
+
+
+ 做為目前 的雜湊函式,適合於雜湊演算法和資料結構 (如雜湊資料表)。
+ 目前 的雜湊程式碼。
+
+
+ 取得在 中隔離這個區段的遮罩。
+ 在 中隔離這個區段的遮罩。
+
+
+ 取得這個區段從 開頭的位移 (Offset)。
+ 這個區段從 開頭的位移。
+
+
+ 判斷兩個指定的 物件是否相等。
+ 如果 和 參數表示同一 物件,則為 true,否則為 false。
+
+ 物件。
+
+ 物件。
+
+
+ 判斷兩個 物件是否具有不同的值。
+ 如果 和 參數表示不同的 物件,則為 true,否則為 false。
+
+ 物件。
+
+ 物件。
+
+
+ 傳回字串,表示目前的 。
+ 字串,表示目前 。
+
+
+ 傳回字串,表示指定的 。
+ 表示指定之 的字串。
+ 要表示的 。
+
+
+ 若為小型集合,則使用 實作 IDictionary,在它成為大型集合時,切換為 。
+
+
+ 建立空的、區分大小寫的 。
+
+
+ 建立具有指定大小寫區分的空 。
+ 布林值,表示 是否不區分大小寫。
+
+
+ 建立具有指定初始大小的大小寫區分之 。
+
+ 可初始包含項目的大約數目。
+
+
+ 建立具有指定初始大小和大小寫區分的 。
+
+ 可初始包含項目的大約數目。
+ 布林值,表示 是否不區分大小寫。
+
+
+ 將有指定索引鍵和數值的項目加入 。
+ 要加入的項目索引鍵。
+ 要加入的項目值。此值可以是 null。
+
+ 為 null。
+ 具有相同索引鍵的項目已經存在 中。
+
+
+ 移除 的所有項目。
+
+
+ 判斷 是否包含特定索引鍵。
+ true if the contains an entry with the specified key; otherwise, false.
+ 要在 中尋找的索引鍵。
+
+ 為 null。
+
+
+ 將 項目複製到一維 執行個體的指定索引處。
+ The one-dimensional that is the destination of the objects copied from . 必須有以零起始的索引。
+
+ 中以零起始的索引,是複製開始的位置。
+
+ 為 null。
+
+ 小於零。
+
+ 為多維。-或-來源 項目的數量大於從 到目的 結尾的可用空間。
+ 來源 的型別無法自動轉換為目的 的型別。
+
+
+ 取得 中所包含的索引鍵/值組數目。
+
+ 中所包含的索引鍵/值組數目。擷取這個屬性的值是一種 O(1) 運算。
+
+
+ Returns an that iterates through the .
+
+ 的 。
+
+
+ 取得值,指出 是否有固定的大小。
+ 這個屬性永遠傳回 false。
+
+
+ 取得值,指出 是否唯讀。
+ 這個屬性永遠傳回 false。
+
+
+ 取得值,指出 是否為同步 (安全執行緒)。
+ 這個屬性永遠傳回 false。
+
+
+ 取得或設定與指定之索引鍵相關聯的值。
+ 與指定之索引鍵關聯的值。如果找不到指定的索引鍵,嘗試取得它將傳回 null,而嘗試設定它將以指定的索引鍵建立新的項目。
+ 索引鍵,要讀取或設定其值。
+
+ 為 null。
+
+
+ Gets an containing the keys in the .
+ An containing the keys in the .
+
+
+ 將有指定索引鍵的項目從 移除。
+ 要移除的項目的索引鍵。
+
+ 為 null。
+
+
+ 取得可用來同步存取 的物件。
+ 可用來同步存取 的物件。
+
+
+ 傳回透過 重複的 。
+
+ 的 。
+
+
+ 取得 ,包含 中的值。
+
+ ,包含 中的值。
+
+
+ 表示索引鍵/值組的索引集合。
+
+
+ 傳回逐一查看 集合的列舉程式。
+ 整個 集合的 。
+
+
+ 將索引鍵/值組插入集合的指定索引處。
+ 以零起始的索引,應該在該索引處插入索引鍵/值組。
+ 做為要加入項目之索引鍵的物件。
+ 做為要加入項目之值的物件。此值可以是 null。
+
+ 小於 0。-或- 大於 。
+
+ 為 null。
+
+ 集合中已存在具有相同索引鍵的項目。
+
+ 集合是唯讀的。-或- 集合具有固定大小。
+
+
+ 在指定的索引位置上取得或設定項目。
+ 在指定索引上的項目。
+ 要取得或設定之以零為起始的項目索引。
+
+ 小於 0。-或- 等於或大於 。
+
+
+ 移除指定索引中的項目。
+ 移除項目之以零為起始的索引。
+
+ 小於 0。-或- 等於或大於 。
+
+ 集合是唯讀的。-或- 集合具有固定大小。
+
+
+ 使用單向連結串列 (Singly-Linked List) 實作 IDictionary。建議用於通常少於 10 個項目的集合。
+
+
+ 使用預設比較子 (Comparer) 來建立空的 。
+
+
+ 使用指定的比較子來建立空的 。
+ 要用來決定兩個索引鍵是否相等的 。-或- null to use the default comparer, which is each key's implementation of .
+
+
+ 將有指定索引鍵和數值的項目加入 。
+ 要加入的項目索引鍵。
+ 要加入的項目值。此值可以是 null。
+
+ 為 null。
+ 具有相同索引鍵的項目已經存在 中。
+
+
+ 移除 的所有項目。
+
+
+ 判斷 是否包含特定索引鍵。
+ true if the contains an entry with the specified key; otherwise, false.
+ 要在 中尋找的索引鍵。
+
+ 為 null。
+
+
+ 將 項目複製到一維 執行個體的指定索引處。
+ 一維 ,是從 複製過來的 物件之目的端。 必須有以零起始的索引。
+
+ 中以零起始的索引,是複製開始的位置。
+
+ 為 null。
+
+ 小於零。
+
+ 為多維。-或-來源 項目的數量大於從 到目的 結尾的可用空間。
+ 來源 的型別無法自動轉換為目的 的型別。
+
+
+ 取得 中所包含的索引鍵/值組數目。
+
+ 中所包含的索引鍵/值組數目。
+
+
+ 傳回透過 重複的 。
+
+ 的 。
+
+
+ 取得值,指出 是否有固定的大小。
+ 這個屬性永遠傳回 false。
+
+
+ 取得值,指出 是否唯讀。
+ 這個屬性永遠傳回 false。
+
+
+ 取得值,指出 是否為同步 (安全執行緒)。
+ 這個屬性永遠傳回 false。
+
+
+ 取得或設定與指定之索引鍵相關聯的值。
+ 與指定之索引鍵關聯的值。如果找不到指定的索引鍵,嘗試取得它將傳回 null,而嘗試設定它將以指定的索引鍵建立新的項目。
+ 索引鍵,要讀取或設定其值。
+
+ 為 null。
+
+
+ 取得含有 中的索引鍵的 。
+
+ ,含有 中的索引鍵。
+
+
+ 將有指定索引鍵的項目從 移除。
+ 要移除的項目的索引鍵。
+
+ 為 null。
+
+
+ 取得可用來同步存取 的物件。
+ 可用來同步存取 的物件。
+
+
+ 傳回透過 重複的 。
+
+ 的 。
+
+
+ 取得 ,包含 中的值。
+
+ ,包含 中的值。
+
+
+ 提供 abstract 基底類別給可以用索引鍵或索引來存取之相關聯的 索引鍵和 值集合。
+
+
+ 初始化 類別的新執行個體,這個執行個體是空白的。
+
+
+ 初始化 類別的新執行個體,這個執行個體是空白的、具有預設的初始容量,並使用指定的 物件。
+
+ 物件,可用來判斷兩個索引鍵是否相等,以及為集合中的索引鍵產生雜湊碼。
+
+
+ 初始化 類別的新執行個體,這個執行個體是空白的、具有指定的初始容量,並使用預設雜湊碼提供者和預設比較子。
+
+ 執行個體一開始可包含的大約項目數。
+
+ 小於零。
+
+
+ 初始化 類別的新執行個體,這個執行個體是空白的、具有指定的初始容量,並使用指定的 物件。
+
+ 物件一開始可包含的大約項目數。
+
+ 物件,可用來判斷兩個索引鍵是否相等,以及為集合中的索引鍵產生雜湊碼。
+
+ 小於零。
+
+
+ 將具有指定索引鍵和值的項目加入 執行個體。
+ 要加入之項目的 索引鍵。這個索引鍵可以是 null。
+ 要加入之項目的 值。這個值可以是 null。
+ 集合是唯讀的。
+
+
+ 將所有項目從 執行個體中移除。
+ 集合是唯讀的。
+
+
+ 取得 執行個體指定索引處之項目的值。
+
+ ,代表指定索引處之項目的值。
+ 要取得的值的以零為起始的索引。
+
+ 是在集合的有效索引範圍之外。
+
+
+ 從 執行個體取得具有指定索引鍵之第一個項目的值。
+
+ ,代表具有指定索引鍵之第一個項目的值 (如果有找到),否則為 null。
+ 要取得之項目的 索引鍵。這個索引鍵可以是 null。
+
+
+ 傳回 陣列,其中包含 執行個體中的所有索引鍵。
+
+ 陣列,包含 執行個體中的所有索引鍵。
+
+
+ 傳回 陣列,其中包含 執行個體中的所有值。
+
+ 陣列,包含 執行個體中的所有值。
+
+
+ 傳回指定類型的陣列,其中包含 執行個體中的所有值。
+ 指定類型的陣列,包含 執行個體中的所有值。
+
+ ,代表要傳回的陣列類型。
+
+ 為 null。
+
+ 不是有效的 。
+
+
+ 取得 執行個體指定索引處之項目的索引鍵。
+
+ ,代表指定索引處之項目的索引鍵。
+ 要取得的索引鍵之以零為起始的索引。
+
+ 是在集合的有效索引範圍之外。
+
+
+ 取得值,表示 執行個體是否包含其索引鍵不是 null 的項目。
+ 如果 執行個體包含其索引鍵不是 null 的項目,則為 true,否則為 false。
+
+
+ 將具有指定索引鍵的項目從 執行個體中移除。
+ 要移除之項目的 索引鍵。這個索引鍵可以是 null。
+ 集合是唯讀的。
+
+
+ 移除 執行個體指定索引處的項目。
+ 要移除的項目之以零起始的索引。
+
+ 是在集合的有效索引範圍之外。
+ 集合是唯讀的。
+
+
+ 設定 執行個體指定索引處之項目的值。
+ 要設定的項目之以零為起始的索引。
+
+ ,代表要設定之項目的新值。這個值可以是 null。
+ 集合是唯讀的。
+
+ 是在集合的有效索引範圍之外。
+
+
+ 設定 執行個體中具有指定索引鍵之第一個項目的值 (如果有找到),否則將具有指定索引鍵和值的項目加入 執行個體。
+ 要設定之項目的 索引鍵。這個索引鍵可以是 null。
+
+ ,代表要設定之項目的新值。這個值可以是 null。
+ 集合是唯讀的。
+
+
+ 取得 執行個體中包含的索引鍵/值組數目。
+
+ 執行個體中包含的索引鍵/值組數目。
+
+
+ 傳回在 中逐一查看的列舉值。
+
+ 執行個體的 。
+
+
+ 取得或設定值,表示 執行個體是否為唯讀。
+ 如果 執行個體是唯讀,則為 true,否則為 false。
+
+
+ 取得 執行個體,其中包含 執行個體中的所有索引鍵。
+
+ 執行個體,包含 執行個體中的所有索引鍵。
+
+
+ 從目標陣列的指定索引開始,將整個 複製到相容的一維 。
+ 一維 ,是從 複製過來之項目的目的端。 必須有以零起始的索引。
+
+ 中以零起始的索引,即開始複製的位置。
+
+ 為 null。
+
+ 小於零。
+
+ 是多維的。-或-來源 項目的數量大於從 到目的 結尾的可用空間。
+ 來源 的型別無法自動轉換為目的 的型別。
+
+
+ 取得值,表示是否要同步處理 (執行緒安全) 對 物件的存取。
+ 如果要同步處理 (執行緒安全) 對 物件的存取,則為 true,否則為 false。預設為 false。
+
+
+ 取得可用來同步處理對 物件之存取的物件。
+ 可用來同步處理對 物件之存取的物件。
+
+
+ 表示集合索引鍵 的集合。
+
+
+ 取得 中的索引鍵數目。
+
+ 中的索引鍵數目。
+
+
+ 取得在集合的指定索引處的索引鍵。
+
+ ,含有在集合指定索引處的索引鍵。
+ 從集合取得的以零起始的索引鍵索引。
+
+ 是在集合的有效索引範圍之外。
+
+
+ 傳回在 中逐一查看的列舉值。
+
+ 的 。
+
+
+ 取得在集合的指定索引處的項目。
+ 在集合指定索引處的項目 索引鍵。
+ 集合中以零起始的項目索引。
+
+ 是在集合的有效索引範圍之外。
+
+
+ 從目標陣列的指定索引開始,複製整個 至相容的一維 。
+ 一維 ,是從 複製過來之項目的目的端。 必須有以零起始的索引。
+
+ 中以零起始的索引,是複製開始的位置。
+
+ 為 null。
+
+ 小於零。
+
+ 為多維。-或-來源 元素的數量大於從 到目的 結尾的可用空間。
+ 來源 的型別無法自動轉換為目的 的型別。
+
+
+ 取得值,這個值表示對 的存取是否同步 (安全執行緒)。
+ 如果對 的存取為同步 (安全執行緒),則為 true,否則為 false。預設為 false。
+
+
+ 取得可用來同步存取 的物件。
+ 可用來同步存取 的物件。
+
+
+ 代表相關聯之 索引鍵和 值的集合,可使用索引鍵或索引來存取。
+
+
+ 初始化 類別的新執行個體,這個執行個體是空白的、具有預設的初始容量,並使用預設不區分大小寫的雜湊碼提供者和預設不區分大小寫的比較子。
+
+
+ 初始化 類別的新執行個體,這個執行個體是空白的、具有預設的初始容量,並使用指定的 物件。
+
+ 物件,可用來判斷兩個索引鍵是否相等,以及為集合中的索引鍵產生雜湊碼。
+
+
+ 從指定的 複製項目至新的 ,使其具有與複製的項目數相同的初始容量,並使用與來源集合相同的雜湊碼提供者和相同的比較子。
+ 要複製到新的 執行個體的 。
+
+ 為 null。
+
+
+ 初始化 類別的新執行個體,這個執行個體是空白的、具有指定的初始容量,並使用預設不區分大小寫的雜湊碼提供者和預設不區分大小寫的比較子。
+
+ 可包含的初始項目數。
+
+ 小於零。
+
+
+ 初始化 類別的新執行個體,這個執行個體是空白的、具有指定的初始容量,並使用指定的 物件。
+
+ 物件可包含的初始項目數。
+
+ 物件,可用來判斷兩個索引鍵是否相等,以及為集合中的索引鍵產生雜湊碼。
+
+ 小於零。
+
+
+ 從指定的 複製項目至新的 ,使其具有指定的初始容量,或是與複製的項目數相同的初始容量 (取較大者),並使用預設不區分大小寫的雜湊碼提供者和預設不區分大小寫的比較子。
+
+ 可包含的初始項目數。
+ 要複製到新的 執行個體的 。
+
+ 小於零。
+
+ 為 null。
+
+
+ 將指定 中的項目複製到目前的 。
+ 要複製到目前 的 。
+ 集合是唯讀的。
+
+ 為 null。
+
+
+ 將具有指定名稱和數值的項目加入 。
+ 要加入之項目的 索引鍵。這個索引鍵可以是 null。
+ 要加入之項目的 值。這個值可以是 null。
+ 集合是唯讀的。
+
+
+ 取得 中的所有索引鍵。
+
+ 陣列,包含 中的所有索引鍵。
+
+
+ 使快取陣列失效,並移除 中的所有項目。
+ 集合是唯讀的。
+
+
+
+
+
+ 從目標陣列的指定索引開始,將整個 複製到相容的一維 。
+ 一維 ,是從 複製過來之項目的目的端。 必須有以零起始的索引。
+
+ 中以零起始的索引,即開始複製的位置。
+
+ 為 null。
+
+ 小於零。
+
+ 是多維的。-或- 來源 項目的數量大於從 到目的 結尾的可用空間。
+ 來源 的型別無法自動轉換為目的 的型別。
+
+
+ 取得 之指定索引處的值,這些值會結合成為一個逗號分隔清單。
+
+ ,包含 指定索引處之值的逗號分隔清單 (如果找到的話),否則為 null。
+ 以零為基底的項目索引,包含從集合取得的值。
+
+ 是在集合的有效索引範圍之外。
+
+
+ 取得與 中指定索引鍵相關聯的值,這些值會結合成為一個逗號分隔清單。
+
+ ,包含與 中指定索引鍵相關聯之值的逗號分隔清單 (如果找到的話),否則為 null。
+ 項目的 索引鍵,包含要取得的值。這個索引鍵可以是 null。
+
+
+ 取得 之指定索引處的索引鍵。
+
+ ,包含 之指定索引處的索引鍵 (如果找到的話),否則為 null。
+ 從集合取得的以零起始的索引鍵索引。
+
+ 是在集合的有效索引範圍之外。
+
+
+ 取得 之指定索引處的值。
+
+ 陣列,包含 之指定索引處的值 (如果找到的話),否則為 null。
+ 以零為基底的項目索引,包含從集合取得的值。
+
+ 是在集合的有效索引範圍之外。
+
+
+ 取得與 中指定索引鍵相關聯的值。
+
+ 陣列,包含與 中指定索引鍵相關聯的值 (如果找到的話),否則為 null。
+ 項目的 索引鍵,包含要取得的值。這個索引鍵可以是 null。
+
+
+ 取得值,表示 是否包含非 null 的索引鍵。
+ 如果 包含非 null 的索引鍵,則為 true,否則為 false。
+
+
+ 將集合的快取陣列重設為 null。
+
+
+ 取得 之指定索引處的項目。
+
+ ,包含集合指定索引處之值的逗號分隔清單。
+ 集合中以零為基底的項目索引。
+
+ 是在集合的有效索引範圍之外。
+
+
+ 取得或設定具有 中指定索引鍵的項目。
+
+ ,包含與指定索引鍵相關聯之值的逗號分隔清單 (如果找到的話),否則為 null。
+ 要找出的項目的 索引鍵。索引鍵可以是 null。
+ 該集合是唯讀的,並且作業會嘗試修改集合。
+
+
+ 將具有指定索引鍵的項目從 執行個體中移除。
+ 要移除之項目的 索引鍵。這個索引鍵可以是 null。
+ 集合是唯讀的。
+
+
+ 設定 中項目的值。
+ 要加入新值之項目的 索引鍵。這個索引鍵可以是 null。
+
+ ,代表要加入指定項目的新值。這個值可以是 null。
+ 集合是唯讀的。
+
+
+ 表示可依索引鍵或索引存取的索引鍵/值組集合。
+
+
+ 初始化 類別的新執行個體。
+
+
+ 使用指定之比較子來初始化 類別的新執行個體。
+ 要用來決定兩個索引鍵是否相等的 。-或- null to use the default comparer, which is each key's implementation of .
+
+
+ 使用指定之初始容量來初始化 類別的新執行個體。
+
+ 集合可以包含之元素的初始數目。
+
+
+ 使用指定的初始容量和比較子,初始化 類別的新執行個體。
+
+ 集合可以包含之元素的初始數目。
+ 要用來決定兩個索引鍵是否相等的 。-或- null to use the default comparer, which is each key's implementation of .
+
+
+ 將具有指定之索引鍵和值的元素加入至含有最低可用索引的 集合中。
+ 要加入的項目索引鍵。
+ 要加入的項目值。這個值可以是 null。
+
+ 集合是唯讀的。
+
+
+ 傳回目前 集合的唯讀複本。
+ 目前之 集合的唯讀複本。
+
+
+ 從 集合移除所有元素。
+
+ 集合是唯讀的。
+
+
+ 判斷 集合是否包含特定索引鍵。
+ 如果 集合包含具有指定之索引鍵的元素,則為 true,否則為 false。
+ 要在 集合中尋找的索引鍵。
+
+
+ 將 元素複製到指定之索引處的一維 物件。
+ 一維 物件,是從 集合複製過來之 物件的目的端。 必須有以零起始的索引。
+
+ 中以零起始的索引,是複製開始的位置。
+
+
+ 取得包含在 集合中的索引鍵/值組數目。
+ 包含在 集合中的索引鍵/值組數目。
+
+
+ 傳回在 集合中逐一查看的 物件。
+
+ 集合的 物件。
+
+
+ 使用指定的索引鍵和值,將新元素插入 集合中指定的索引處。
+ 應在該處插入元素之以零起始的索引。
+ 要加入的項目索引鍵。
+ 要加入的項目值。此值可以是 null。
+
+ 超出範圍。
+ 這是一個唯讀集合。
+
+
+ 取得值,指出 集合是否為唯讀。
+ 如果 集合是唯讀則為 true,否則為 false。預設值為 false。
+
+
+ 取得或設定指定之索引處的值。
+ 指定之索引處的項目值。
+ 要取得或設定的值之以零為起始的索引。
+ 正在設定屬性,且 集合是唯讀的。
+
+ 小於零。-或- 等於或大於 。
+
+
+ 取得或設定具有指定之索引鍵的值。
+ 與指定之索引鍵關聯的值。如果找不到指定的索引鍵,嘗試取得將傳回 null,並且嘗試設定會使用指定的索引鍵建立新的元素。
+ 要取得或設定之值的索引鍵。
+ 正在設定屬性,且 集合是唯讀的。
+
+
+ 取得 物件,其中包含 集合中的索引鍵。
+
+ 物件,其中包含 集合中的索引鍵。
+
+
+ 從 集合移除具有指定之索引鍵的元素。
+ 要移除的項目的索引鍵。
+
+ 集合是唯讀的。
+
+ 為 null。
+
+
+ 從 集合移除指定之索引處的元素。
+ 要移除的項目之以零起始的索引。
+
+ 集合是唯讀的。
+
+ 小於零。-或- 等於或大於 。
+
+
+ 取得值,指出對 物件的存取是否已同步處理 (安全執行緒)。
+ 這個方法永遠傳回 false。
+
+
+ 取得物件,可以用來同步處理對 物件的存取。
+ 可用來同步處理對 物件之存取的物件。
+
+
+ 取得值,指出 是否有固定的大小。
+ true if the has a fixed size; otherwise, false.預設值為 false。
+
+
+ 傳回在 集合中逐一查看的 物件。
+
+ 集合的 物件。
+
+
+ 取得 物件,其中包含 集合中的值。
+
+ 物件,其中包含 集合中的值。
+
+
+ 表示字串的集合。
+
+
+ 初始化 類別的新執行個體。
+
+
+ 將字串加入 的結尾。
+ 要插入新元素處的以零起始的索引。
+ 加入至 結尾的字串。此值可以是 null。
+
+
+ 將字串陣列的元素複製到 的結尾。
+ 要加入至 結尾的字串陣列。陣列本身不能是 null,但它可以包含為 null 的元素。
+
+ 為 null。
+
+
+ 將所有字串從 移除。
+
+
+ 判斷指定的字串是否在 中。
+ 如果在 中找到 ,則為 true,否則為 false。
+ 要在 中尋找的字串。此值可以是 null。
+
+
+ 複製整個 值至字串的一維陣列,由目標陣列的指定索引開始。
+ 字串的一維陣列,是從 複製的元素之目的端。 必須有以零起始的索引。
+
+ 中以零起始的索引,是複製開始的位置。
+
+ 為 null。
+
+ 小於零。
+
+ 為多維。-或-來源 元素的數量大於從 到目的 結尾的可用空間。
+ 來源 的型別無法自動轉換為目的 的型別。
+
+
+ 取得在 中所包含的字串數目。
+ 在 中所包含的字串數目。
+
+
+ 傳回逐一查看 的 。
+
+ 的 。
+
+
+ 搜尋指定的字串,並傳回在 中第一個符合項目之以零起始的索引。
+ 如果在 中找到的話,則為 的第一個符合項目之以零起始的索引,否則為 -1。
+ 要尋找的字串。此值可以是 null。
+
+
+ 將字串插入至指定索引位置的 。
+ 要插入 處之以零起始的索引。
+ 要插入的字串。此值可以是 null。
+
+ 小於零。-或- 大於 。
+
+
+ 取得值,指出 是否唯讀。
+ 這個屬性永遠傳回 false。
+
+
+ 取得值,這個值表示對 的存取是否同步 (安全執行緒)。
+ 這個屬性永遠傳回 false。
+
+
+ 取得或設定指定之索引處的項目。
+ 在指定之索引處的項目。
+ 要取得或設定的項目之以零起始的索引。
+
+ 小於零。-或- 等於或大於 。
+
+
+ 從 移除特定字串的第一個符合項目。
+ 要從 移除的字串。此值可以是 null。
+
+
+ 移除 的指定索引處的字串。
+ 要移除的字串之以零起始的索引。
+
+ 小於零。-或- 等於或大於 。
+
+
+ 取得可用來同步存取 的物件。
+ 可用來同步存取 的物件。
+
+
+ 從目標陣列的指定索引開始,複製整個 至相容的一維 。
+ 一維 ,是從 複製過來之項目的目的端。 必須有以零起始的索引。
+
+ 中以零起始的索引,是複製開始的位置。
+
+ 為 null。
+
+ 小於零。
+
+ 為多維。-或-來源 元素的數量大於從 到目的 結尾的可用空間。
+ 來源 的型別無法自動轉換為目的 的型別。
+
+
+ 傳回逐一查看 的 。
+
+ 的 。
+
+
+ 將物件加入至 的結尾。
+ 已加入 的 索引。
+ 加入至 結尾的 。此值可以是 null。
+
+ 是唯讀的。-或- 具有固定的大小。
+
+
+ 判斷某元素是否在 中。
+ 如果在 中找到 ,則為 true,否則為 false。
+ 要在 中尋找的 。此值可以是 null。
+
+
+ 搜尋指定的 ,並傳回在整個 中第一個符合元素之以零起始的索引。
+ 整個 中 第一次出現之以零起始的索引 (如果找得到的話),否則為 -1。
+ 要在 中尋找的 。此值可以是 null。
+
+
+ 將項目插入 中指定的索引處。
+ 應該插入 之以零起始的索引。
+ 要插入的 。此值可以是 null。
+
+ 小於零。-或- 大於 。
+
+ 是唯讀的。-或- 具有固定的大小。
+
+
+ 取得代表 物件是否具有固定大小的值。
+ 如果 物件有固定大小,則為 true,否則為 false。預設為 false。
+
+
+ 取得值,這個值表示 物件是否唯讀。
+ 如果 物件是唯讀,則為 true,否則為 false。預設為 false。
+
+
+ 取得或設定指定之索引處的項目。
+ 在指定之索引處的項目。
+ 要取得或設定之以零起始的項目索引。
+
+ 小於零。-或- 等於或大於 。
+
+
+ 從 移除特定物件的第一個相符項目。
+ 要從 移除的 。此值可以是 null。
+
+ 是唯讀的。-或- 具有固定的大小。
+
+
+ 使用強類型索引鍵和值,將雜湊資料表實作為字串,而非物件。
+
+
+ 初始化 類別的新執行個體。
+
+
+ 將有指定索引鍵和數值的項目加入 。
+ 要加入的項目索引鍵。
+ 要加入的項目值。此值可以是 null。
+
+ is null.
+ An entry with the same key already exists in the .
+ The is read-only.
+
+
+ 從 移除所有項目。
+ The is read-only.
+
+
+ 判斷 是否包含特定索引鍵。
+ 如果 包含的項目具有指定索引鍵,則為 true,否則為 false。
+ 要在 中尋找的索引鍵。
+ The key is null.
+
+
+ 判斷 是否包含特定值。
+ 如果 包含具有指定值的項目,則為 true,否則為 false。
+ 要在 中尋找的值。此值可以是 null。
+
+
+ 將字串字典值複製至在指定索引處的一維 執行個體。
+ 為值 (從 複製) 之目的端的一維 。
+ 在複製開始的所在陣列中的索引。
+
+ is multidimensional.-or- The number of elements in the is greater than the available space from to the end of .
+
+ is null.
+
+ is less than the lower bound of .
+
+
+ 取得 中的索引鍵/值組配對的數目。
+
+ 中的索引鍵/值組配對的數目。擷取這個屬性的值是一種 O(1) 運算。
+
+
+ 傳回可對字串字典內容逐一查看的列舉程式。
+ 可逐一查看字串字典內容的 。
+
+
+ 取得值,這個值表示對 的存取是否同步 (安全執行緒)。
+ 如果對 的存取已進行同步化 (安全執行緒),則為 true,否則為 false。
+
+
+ 取得或設定與指定之索引鍵相關聯的值。
+ 與指定之索引鍵關聯的值。如果找不到指定的索引鍵,則 Get 會傳回 null,而 Set 會使用指定的索引鍵建立新的項目。
+ 索引鍵,要讀取或設定其值。
+
+ is null.
+
+
+ 取得 中的索引鍵集合。
+ 在 中提供索引鍵的 。
+
+
+ 將具有指定索引鍵的項目從字串字典移除。
+ 要移除的項目的索引鍵。
+ The key is null.
+ The is read-only.
+
+
+ 取得可用以同步存取 的物件。
+
+ ,可用來對 進行同步存取。
+
+
+ 取得 中的值集合。
+ 在 中提供值的 。
+
+
+ 支援在 上的簡易反覆運算。
+
+
+ 取得集合中目前的項目。
+ 集合中目前的項目。
+ 列舉值位於集合的第一個項目之前,或最後一個項目之後。
+
+
+ 將列舉值往前推至下集合中的下一個項目。
+ 如果列舉值成功地前移至下一個項目,則為 true,如果列舉值已超過集合的結尾,則為 false。
+ 在建立列舉值之後,會修改集合。
+
+
+ 設定列舉值至它的初始位置,這是在集合中第一個元素之前。
+ 在建立列舉值之後,會修改集合。
+
+
+
\ No newline at end of file
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/xamarinios10/_._ b/packages/System.Collections.Specialized.4.3.0/ref/xamarinios10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/xamarinmac20/_._ b/packages/System.Collections.Specialized.4.3.0/ref/xamarinmac20/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/xamarintvos10/_._ b/packages/System.Collections.Specialized.4.3.0/ref/xamarintvos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Collections.Specialized.4.3.0/ref/xamarinwatchos10/_._ b/packages/System.Collections.Specialized.4.3.0/ref/xamarinwatchos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.NameResolution.4.3.0/.signature.p7s b/packages/System.Net.NameResolution.4.3.0/.signature.p7s
new file mode 100644
index 0000000..5d54305
Binary files /dev/null and b/packages/System.Net.NameResolution.4.3.0/.signature.p7s differ
diff --git a/packages/System.Net.NameResolution.4.3.0/System.Net.NameResolution.4.3.0.nupkg b/packages/System.Net.NameResolution.4.3.0/System.Net.NameResolution.4.3.0.nupkg
new file mode 100644
index 0000000..24592b1
Binary files /dev/null and b/packages/System.Net.NameResolution.4.3.0/System.Net.NameResolution.4.3.0.nupkg differ
diff --git a/packages/System.Net.NameResolution.4.3.0/ThirdPartyNotices.txt b/packages/System.Net.NameResolution.4.3.0/ThirdPartyNotices.txt
new file mode 100644
index 0000000..55cfb20
--- /dev/null
+++ b/packages/System.Net.NameResolution.4.3.0/ThirdPartyNotices.txt
@@ -0,0 +1,31 @@
+This Microsoft .NET Library may incorporate components from the projects listed
+below. Microsoft licenses these components under the Microsoft .NET Library
+software license terms. The original copyright notices and the licenses under
+which Microsoft received such components are set forth below for informational
+purposes only. Microsoft reserves all rights not expressly granted herein,
+whether by implication, estoppel or otherwise.
+
+1. .NET Core (https://github.com/dotnet/core/)
+
+.NET Core
+Copyright (c) .NET Foundation and Contributors
+
+The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/packages/System.Net.NameResolution.4.3.0/dotnet_library_license.txt b/packages/System.Net.NameResolution.4.3.0/dotnet_library_license.txt
new file mode 100644
index 0000000..92b6c44
--- /dev/null
+++ b/packages/System.Net.NameResolution.4.3.0/dotnet_library_license.txt
@@ -0,0 +1,128 @@
+
+MICROSOFT SOFTWARE LICENSE TERMS
+
+
+MICROSOFT .NET LIBRARY
+
+These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft
+
+· updates,
+
+· supplements,
+
+· Internet-based services, and
+
+· support services
+
+for this software, unless other terms accompany those items. If so, those terms apply.
+
+BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.
+
+
+IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW.
+
+1. INSTALLATION AND USE RIGHTS.
+
+a. Installation and Use. You may install and use any number of copies of the software to design, develop and test your programs.
+
+b. Third Party Programs. The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only.
+
+2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.
+
+a. DISTRIBUTABLE CODE. The software is comprised of Distributable Code. “Distributable Code” is code that you are permitted to distribute in programs you develop if you comply with the terms below.
+
+i. Right to Use and Distribute.
+
+· You may copy and distribute the object code form of the software.
+
+· Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs.
+
+ii. Distribution Requirements. For any Distributable Code you distribute, you must
+
+· add significant primary functionality to it in your programs;
+
+· require distributors and external end users to agree to terms that protect it at least as much as this agreement;
+
+· display your valid copyright notice on your programs; and
+
+· indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your programs.
+
+iii. Distribution Restrictions. You may not
+
+· alter any copyright, trademark or patent notice in the Distributable Code;
+
+· use Microsoft’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by Microsoft;
+
+· include Distributable Code in malicious, deceptive or unlawful programs; or
+
+· modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that
+
+· the code be disclosed or distributed in source code form; or
+
+· others have the right to modify it.
+
+3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not
+
+· work around any technical limitations in the software;
+
+· reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;
+
+· publish the software for others to copy;
+
+· rent, lease or lend the software;
+
+· transfer the software or this agreement to any third party; or
+
+· use the software for commercial software hosting services.
+
+4. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software.
+
+5. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes.
+
+6. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting.
+
+7. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it.
+
+8. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.
+
+9. APPLICABLE LAW.
+
+a. United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort.
+
+b. Outside the United States. If you acquired the software in any other country, the laws of that country apply.
+
+10. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.
+
+11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+FOR AUSTRALIA – YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS.
+
+12. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.
+
+This limitation applies to
+
+· anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and
+
+· claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.
+
+It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.
+
+Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French.
+
+Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français.
+
+EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont exclues.
+
+LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices.
+
+Cette limitation concerne :
+
+· tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et
+
+· les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur.
+
+Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel dommage. Si votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’appliquera pas à votre égard.
+
+EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas.
+
+
diff --git a/packages/System.Net.NameResolution.4.3.0/lib/MonoAndroid10/_._ b/packages/System.Net.NameResolution.4.3.0/lib/MonoAndroid10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.NameResolution.4.3.0/lib/MonoTouch10/_._ b/packages/System.Net.NameResolution.4.3.0/lib/MonoTouch10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.NameResolution.4.3.0/lib/net46/System.Net.NameResolution.dll b/packages/System.Net.NameResolution.4.3.0/lib/net46/System.Net.NameResolution.dll
new file mode 100644
index 0000000..485a45b
Binary files /dev/null and b/packages/System.Net.NameResolution.4.3.0/lib/net46/System.Net.NameResolution.dll differ
diff --git a/packages/System.Net.NameResolution.4.3.0/lib/xamarinios10/_._ b/packages/System.Net.NameResolution.4.3.0/lib/xamarinios10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.NameResolution.4.3.0/lib/xamarinmac20/_._ b/packages/System.Net.NameResolution.4.3.0/lib/xamarinmac20/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.NameResolution.4.3.0/lib/xamarintvos10/_._ b/packages/System.Net.NameResolution.4.3.0/lib/xamarintvos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.NameResolution.4.3.0/lib/xamarinwatchos10/_._ b/packages/System.Net.NameResolution.4.3.0/lib/xamarinwatchos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/MonoAndroid10/_._ b/packages/System.Net.NameResolution.4.3.0/ref/MonoAndroid10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/MonoTouch10/_._ b/packages/System.Net.NameResolution.4.3.0/ref/MonoTouch10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/net46/System.Net.NameResolution.dll b/packages/System.Net.NameResolution.4.3.0/ref/net46/System.Net.NameResolution.dll
new file mode 100644
index 0000000..485a45b
Binary files /dev/null and b/packages/System.Net.NameResolution.4.3.0/ref/net46/System.Net.NameResolution.dll differ
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/System.Net.NameResolution.dll b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/System.Net.NameResolution.dll
new file mode 100644
index 0000000..06110a9
Binary files /dev/null and b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/System.Net.NameResolution.dll differ
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/System.Net.NameResolution.xml b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/System.Net.NameResolution.xml
new file mode 100644
index 0000000..b16d9e7
--- /dev/null
+++ b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/System.Net.NameResolution.xml
@@ -0,0 +1,67 @@
+
+
+
+ System.Net.NameResolution
+
+
+
+ Provides simple domain name resolution functionality.
+
+
+ Returns the Internet Protocol (IP) addresses for the specified host as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation. The property on the task object returns an array of type that holds the IP addresses for the host that is specified by the parameter.
+ The host name or IP address to resolve.
+
+ is null.
+ The length of is greater than 255 characters.
+ An error is encountered when resolving .
+
+ is an invalid IP address.
+
+
+ Resolves an IP address to an instance as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation. The property on the task object returns an instance that contains address information about the host specified in .
+ An IP address.
+
+ is null.
+ An error is encountered when resolving .
+
+ is an invalid IP address.
+
+
+ Resolves a host name or IP address to an instance as an asynchronous operation.
+ Returns .The task object representing the asynchronous operation. The property on the task object returns an instance that contains address information about the host specified in .
+ The host name or IP address to resolve.
+ The parameter is null.
+ The length of parameter is greater than 255 characters.
+ An error was encountered when resolving the parameter.
+ The parameter is an invalid IP address.
+
+
+ Gets the host name of the local computer.
+ A string that contains the DNS host name of the local computer.
+ An error is encountered when resolving the local host name.
+
+
+
+
+
+ Provides a container class for Internet host address information.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a list of IP addresses that are associated with a host.
+ An array of type that contains IP addresses that resolve to the host names that are contained in the property.
+
+
+ Gets or sets a list of aliases that are associated with a host.
+ An array of strings that contain DNS names that resolve to the IP addresses in the property.
+
+
+ Gets or sets the DNS name of the host.
+ A string that contains the primary host name for the server.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/de/System.Net.NameResolution.xml b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/de/System.Net.NameResolution.xml
new file mode 100644
index 0000000..b9e841c
--- /dev/null
+++ b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/de/System.Net.NameResolution.xml
@@ -0,0 +1,68 @@
+
+
+
+ System.Net.NameResolution
+
+
+
+ Stellt einfache Funktionen für die Auflösung von Domänennamen bereit.
+
+
+ Gibt die IP-Adressen für den angegebenen Host als asynchronen Vorgang zurück.
+ Gibt zurück.Das Aufgabenobjekt, das den asynchronen Vorgang darstellt.Die -Eigenschaft im Task-Objekt gibt ein Array vom Typ zurück, das die IP-Adressen für den Host enthält, der vom -Parameter angegeben wird.
+ Der aufzulösende Hostname oder die aufzulösende IP-Adresse.
+
+ ist null.
+
+ ist länger als 255 Zeichen.
+ Beim Auflösen von ist ein Fehler aufgetreten.
+
+ ist keine gültige IP-Adresse.
+
+
+ Löst eine IP-Adresse in eine -Instanz als asynchronen Vorgang auf.
+ Gibt zurück.Das Aufgabenobjekt, das den asynchronen Vorgang darstellt.Die -Eigenschaft im Task-Objekt gibt eine -Instanz zurück, die Adressinformationen über den Host enthält, der in angegeben wird.
+ Eine IP-Adresse.
+
+ ist null.
+ Beim Auflösen von ist ein Fehler aufgetreten.
+
+ ist keine gültige IP-Adresse.
+
+
+ Löst einen Hostnamen oder eine IP-Adresse in eine -Instanz als asynchronen Vorgang auf.
+ Gibt zurück.Das Aufgabenobjekt, das den asynchronen Vorgang darstellt.Die -Eigenschaft im Task-Objekt gibt eine -Instanz zurück, die Adressinformationen über den Host enthält, der in angegeben wird.
+ Der aufzulösende Hostname oder die aufzulösende IP-Adresse.
+ Der -Parameter ist null.
+ Der -Parameter ist länger als 255 Zeichen.
+ Beim Auflösen des -Parameters ist ein Fehler aufgetreten.
+ Der -Parameter ist eine ungültige IP-Adresse.
+
+
+ Ruft den Hostnamen des lokalen Computers ab.
+ Eine Zeichenfolge mit dem DNS-Hostnamen des lokalen Computers.
+ Beim Auflösen des lokalen Hostnamens ist ein Fehler aufgetreten.
+
+
+
+
+
+ Stellt eine Containerklasse für Adressinformationen für Internethosts bereit.
+
+
+ Initialisiert eine neue Instanz der -Klasse.
+
+
+ Ruft eine Liste der einem Host zugeordneten IP-Adressen ab oder legt diese fest.
+ Ein Array vom Typ mit IP-Adressen, die in die Hostnamen aufgelöst werden können, die in der -Eigenschaft enthalten sind.
+
+
+ Ruft eine Liste von Aliasen ab, die einem Host zugeordnet sind, oder legt diese fest.
+ Ein Zeichenfolgenarray mit DNS-Namen, die in die IP-Adressen in der -Eigenschaft aufgelöst werden können.
+
+
+ Ruft den DNS-Namen des Hosts ab oder legt diesen fest.
+ Eine Zeichenfolge mit dem primären Hostnamen für den Server.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/es/System.Net.NameResolution.xml b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/es/System.Net.NameResolution.xml
new file mode 100644
index 0000000..06f9552
--- /dev/null
+++ b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/es/System.Net.NameResolution.xml
@@ -0,0 +1,67 @@
+
+
+
+ System.Net.NameResolution
+
+
+
+ Proporciona funcionalidad de resolución de nombres de dominio sencilla.
+
+
+ Devuelve las direcciones del protocolo Internet (IP) para el host especificado como una operación asincrónica.
+ Devuelve .Objeto de tarea que representa la operación asincrónica.La propiedad en el objeto de tarea devuelve una matriz de tipo que contiene las direcciones IP para el host que especifica el parámetro .
+ Nombre de host o dirección IP que se va a resolver.
+
+ es null.
+ La longitud de es mayor que 255 caracteres.
+ Se detectó un error al resolver .
+
+ no es una dirección IP válida.
+
+
+ Resuelve una dirección IP en una instancia de como una operación asincrónica.
+ Devuelve .Objeto de tarea que representa la operación asincrónica.La propiedad en el objeto de tarea devuelve una instancia que contiene información de dirección sobre el host especificado en .
+ Dirección IP.
+
+ es null.
+ Se detectó un error al resolver .
+
+ no es una dirección IP válida.
+
+
+ Resuelve un nombre de host o una dirección IP en una instancia de como una operación asincrónica.
+ Devuelve .Objeto de tarea que representa la operación asincrónica.La propiedad en el objeto de tarea devuelve una instancia que contiene información de dirección sobre el host especificado en .
+ Nombre de host o dirección IP que se va a resolver.
+ El valor del parámetro es null.
+ La longitud del parámetro es mayor que 255 caracteres.
+ Se produjo un error al resolver el parámetro .
+ El parámetro no tiene una dirección IP válida.
+
+
+ Obtiene el nombre de host del equipo local.
+ Cadena que contiene el nombre de host DNS del equipo local.
+ Se ha producido un error al resolver el nombre de host local.
+
+
+
+
+
+ Proporciona una clase contenedora para la información de dirección de host de Internet.
+
+
+ Inicializa una nueva instancia de la clase .
+
+
+ Obtiene o establece una lista de direcciones IP asociadas a un host.
+ Matriz de tipo que contiene direcciones IP que resuelven los nombres de host contenidos en la propiedad .
+
+
+ Obtiene o establece una lista de alias asociados a un host.
+ Matriz de cadenas que contienen nombres DNS que resuelven las direcciones IP de la propiedad .
+
+
+ Obtiene o establece el nombre DNS del host.
+ Cadena que contiene el nombre de host principal del servidor.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/fr/System.Net.NameResolution.xml b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/fr/System.Net.NameResolution.xml
new file mode 100644
index 0000000..725b045
--- /dev/null
+++ b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/fr/System.Net.NameResolution.xml
@@ -0,0 +1,67 @@
+
+
+
+ System.Net.NameResolution
+
+
+
+ Fournit des fonctionnalités de résolution de noms de domaines simples.
+
+
+ Retourne les adresses IP de l'hôte spécifié en tant qu'opération asynchrone.
+ retourne ;Objet de tâche représentant l'opération asynchrone.La propriété sur l'objet de tâche retourne un tableau de type qui contient les adresses IP de l'hôte spécifié par le paramètre .
+ Nom de l'hôte ou adresse IP à résoudre.
+
+ a la valeur null.
+ La longueur de est supérieure à 255 caractères.
+ Une erreur s'est produite lors de la résolution de .
+
+ est une adresse IP non valide.
+
+
+ Résout une adresse IP en instance de en tant qu'opération asynchrone.
+ retourne ;Objet de tâche représentant l'opération asynchrone.La propriété sur l'objet de tâche retourne une instance qui contient les informations d'adresse de l'hôte spécifié dans .
+ Adresse IP.
+
+ a la valeur null.
+ Une erreur s'est produite lors de la résolution de .
+
+ est une adresse IP non valide.
+
+
+ Résout un nom d'hôte ou une adresse IP en instance de en tant qu'opération asynchrone.
+ retourne ;Objet de tâche représentant l'opération asynchrone.La propriété sur l'objet de tâche retourne une instance qui contient les informations d'adresse de l'hôte spécifié dans .
+ Nom de l'hôte ou adresse IP à résoudre.
+ Le paramètre est null.
+ Le paramètre comporte plus de 255 caractères.
+ Une erreur s'est produite lors de la résolution du paramètre .
+ Le paramètre est une adresse IP non valide.
+
+
+ Obtient le nom d'hôte de l'ordinateur local.
+ Chaîne qui contient le nom d'hôte DNS de l'ordinateur local.
+ Une erreur s'est produite lors de la résolution du nom d'hôte local.
+
+
+
+
+
+ Fournit une classe conteneur pour les informations sur l'adresse de l'hôte Internet.
+
+
+ Initialise une nouvelle instance de la classe .
+
+
+ Obtient ou définit une liste d'adresses IP qui sont associées à un hôte.
+ Tableau de type qui contient des adresses IP qui se résolvent en noms d'hôtes contenus dans la propriété .
+
+
+ Obtient ou définit une liste d'alias qui sont associés à un hôte.
+ Tableau de chaînes qui contient les noms DNS qui se résolvent en adresses IP de la propriété .
+
+
+ Obtient ou définit le nom DNS de l'hôte.
+ Chaîne qui contient le nom d'hôte principal du serveur.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/it/System.Net.NameResolution.xml b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/it/System.Net.NameResolution.xml
new file mode 100644
index 0000000..a5c2c78
--- /dev/null
+++ b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/it/System.Net.NameResolution.xml
@@ -0,0 +1,67 @@
+
+
+
+ System.Net.NameResolution
+
+
+
+ Fornisce la funzionalità di risoluzione semplice dei nomi di dominio.
+
+
+ Restituisce gli indirizzi IP (Internet Protocol) per l'host specificato come operazione asincrona.
+ Restituisce .Oggetto dell'attività che rappresenta l'operazione asincrona.La proprietà nell'oggetto attività restituisce una matrice di tipo che contiene gli indirizzi IP per l'host che è specificato dal parametro .
+ Nome dell'host o indirizzo IP da risolvere.
+
+ è null.
+ La lunghezza del parametro è maggiore di 255 caratteri.
+ Si è verificato un errore durante la risoluzione del parametro .
+
+ è un indirizzo IP non valido.
+
+
+ Risolve un nome host o un indirizzo IP in un'istanza di come un'operazione asincrona.
+ Restituisce .Oggetto dell'attività che rappresenta l'operazione asincrona.La proprietà di nell'oggetto attività restituisce un'istanza di che contiene informazioni di indirizzo sull'host specificato in .
+ Indirizzo IP.
+
+ è null.
+ Si è verificato un errore durante la risoluzione del parametro .
+
+ è un indirizzo IP non valido.
+
+
+ Risolve un nome host o un indirizzo IP in un'istanza di come un'operazione asincrona.
+ Restituisce .Oggetto dell'attività che rappresenta l'operazione asincrona.La proprietà di nell'oggetto attività restituisce un'istanza di che contiene informazioni di indirizzo sull'host specificato in .
+ Nome dell'host o indirizzo IP da risolvere.
+ Il parametro è null.
+ La lunghezza del parametro supera i 255 caratteri.
+ Si è verificato un errore nella risoluzione del parametro .
+ Il parametro è un indirizzo IP non valido.
+
+
+ Ottiene il nome host del computer locale.
+ Stringa contenente il nome host DNS del computer locale.
+ Si è verificato un errore nella risoluzione del nome host locale.
+
+
+
+
+
+ Fornisce una classe contenitore per le informazioni sull'indirizzo dell'host Internet.
+
+
+ Inizializza una nuova istanza della classe .
+
+
+ Ottiene o imposta un elenco di indirizzi IP associati a un host.
+ Matrice di tipo in cui sono contenuti gli indirizzi IP risolti nei nomi host contenuti nella proprietà .
+
+
+ Ottiene o imposta un elenco di alias associati a un host.
+ Matrice di stringhe in cui sono contenuti nomi DNS che vengono risolti in indirizzi IP nella proprietà .
+
+
+ Recupera o imposta il nome DNS dell'host.
+ Stringa in cui è contenuto il nome host primario per il server.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/ja/System.Net.NameResolution.xml b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/ja/System.Net.NameResolution.xml
new file mode 100644
index 0000000..8f4861b
--- /dev/null
+++ b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/ja/System.Net.NameResolution.xml
@@ -0,0 +1,80 @@
+
+
+
+ System.Net.NameResolution
+
+
+
+ 単純なドメイン名解決機能を提供します。
+
+
+ 指定したホストのインターネット プロトコル (IP) アドレスを非同期操作として返します。
+
+ を返します。非同期操作を表すタスク オブジェクト。タスク オブジェクトの プロパティは、 パラメーターで指定されたホストの IP アドレスを保持する 型の配列を返します。
+ 解決するホスト名または IP アドレス。
+
+ は null なので、
+
+ の長さが 255 文字を超えています。
+
+ を解決するときにエラーが発生しました。
+
+ は無効な IP アドレスです。
+
+
+ 非同期操作として IP アドレスを インスタンスに解決します。
+
+ を返します。非同期操作を表すタスク オブジェクト。タスク オブジェクトの プロパティは、で指定されているホストに関するアドレス情報を含む インスタンスを返します。
+ IP アドレス。
+
+ は null なので、
+
+ を解決するときにエラーが発生しました。
+
+ は無効な IP アドレスです。
+
+
+ 非同期操作としてホスト名または IP アドレスを インスタンスに解決します。
+
+ を返します。非同期操作を表すタスク オブジェクト。タスク オブジェクトの プロパティは、 に指定されたホストに関するアドレス情報を含む インスタンスを返します。
+ 解決するホスト名または IP アドレス。
+
+ パラメーターが null です。
+
+ パラメーターの長さが 255 文字を超えています。
+
+ パラメーターを解決するときにエラーが発生しました。
+
+ パラメーターの IP アドレスが無効です。
+
+
+ ローカル コンピューターのホスト名を取得します。
+ ローカル コンピューターの DNS ホスト名を格納する文字列。
+ ローカル ホスト名を解決するときにエラーが発生しました。
+
+
+
+
+
+ インターネット ホスト アドレス情報のコンテナー クラスを提供します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+
+
+ ホストと関連付けられた IP アドレスのリストを取得または設定します。
+
+ プロパティに格納されたホスト名に解決される IP アドレスを格納した 型の配列。
+
+
+ ホストと関連付けられたエイリアスのリストを取得または設定します。
+
+ プロパティの IP アドレスに解決される DNS 名を格納した文字列の配列。
+
+
+ ホストの DNS 名を取得または設定します。
+ サーバーのプライマリ ホスト名を格納する文字列。
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/ko/System.Net.NameResolution.xml b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/ko/System.Net.NameResolution.xml
new file mode 100644
index 0000000..44c0627
--- /dev/null
+++ b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/ko/System.Net.NameResolution.xml
@@ -0,0 +1,80 @@
+
+
+
+ System.Net.NameResolution
+
+
+
+ 단순 도메인 이름 확인 기능이 제공됩니다.
+
+
+ 지정된 호스트의 IP(인터넷 프로토콜) 주소를 비동기 작업으로 반환합니다.
+
+ 를 반환합니다.비동기 작업(operation)을 나타내는 작업(task) 개체입니다.작업 개체의 속성은 매개 변수로 지정된 호스트의 IP 주소가 포함된 형식의 배열을 반환합니다.
+ 확인할 호스트 이름 또는 IP 주소입니다.
+
+ 가 null입니다.
+
+ 의 길이가 126자를 넘는 경우
+
+ 을 확인할 때 오류가 발생한 경우
+
+ 가 잘못된 IP 주소인 경우
+
+
+ IP 주소를 인스턴스로 비동기적 작업으로 확인합니다.
+
+ 를 반환합니다.비동기 작업(operation)을 나타내는 작업(task) 개체입니다.작업 개체의 속성은 에 지정된 호스트에 대한 주소 정보를 포함하는 인스턴스를 반환합니다.
+ IP 주소입니다.
+
+ 가 null입니다.
+
+ 을 확인할 때 오류가 발생한 경우
+
+ 가 잘못된 IP 주소인 경우
+
+
+ 호스트 이름 또는 IP 주소를 인스턴스로 비동기적 작업으로 확인합니다.
+
+ 를 반환합니다.비동기 작업(operation)을 나타내는 작업(task) 개체입니다.작업 개체의 속성은 에 지정된 호스트에 대한 주소 정보를 포함하는 인스턴스를 반환합니다.
+ 확인할 호스트 이름 또는 IP 주소입니다.
+
+ 매개 변수가 null입니다.
+
+ 매개 변수의 길이가 255자를 초과하는 경우
+
+ 매개 변수를 확인할 때 오류가 발생한 경우
+
+ 매개 변수가 잘못된 IP 주소인 경우
+
+
+ 로컬 컴퓨터의 호스트 이름을 가져옵니다.
+ 로컬 컴퓨터의 DNS 호스트 이름이 포함된 문자열입니다.
+ 로컬 호스트 이름을 확인할 때 오류가 발생한 경우
+
+
+
+
+
+ 인터넷 호스트 주소 정보에 컨테이너 클래스를 제공합니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+
+
+ 호스트와 연결된 IP 주소 목록을 가져오거나 설정합니다.
+
+ 속성에 포함된 호스트 이름을 확인하는 IP 주소가 포함된 형식의 배열입니다.
+
+
+ 호스트와 연결된 별칭 목록을 가져오거나 설정합니다.
+
+ 속성의 IP 주소를 확인하는 DNS 이름이 포함된 문자열의 배열입니다.
+
+
+ 호스트의 DNS 이름을 가져오거나 설정합니다.
+ 서버의 기본 호스트 이름이 포함된 문자열입니다.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/ru/System.Net.NameResolution.xml b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/ru/System.Net.NameResolution.xml
new file mode 100644
index 0000000..ebae7e7
--- /dev/null
+++ b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/ru/System.Net.NameResolution.xml
@@ -0,0 +1,65 @@
+
+
+
+ System.Net.NameResolution
+
+
+
+ Предоставляет простые функциональные возможности разрешения доменных имен.
+
+
+ Возвращает IP-адреса для указанного узла как асинхронная операция.
+ Возвращает .Объект задачи, представляющий асинхронную операцию.Свойство объекта задачи возвращает Массив типа , в котором содержатся IP-адреса для узла, указанного в параметре .
+ Разрешаемое имя узла или IP-адрес.
+ Параметр имеет значение null.
+ Длина параметра превышает 255 символов.
+ При разрешении возникает ошибка.
+
+ является недопустимым IP-адресом.
+
+
+ Разрешает IP-адрес экземпляра как асинхронная операция.
+ Возвращает .Объект задачи, представляющий асинхронную операцию.Свойство в объекте задачи возвращает экземпляр , содержащий информацию адреса об узле, указанного в .
+ IP-адрес.
+ Параметр имеет значение null.
+ При разрешении возникает ошибка.
+
+ является недопустимым IP-адресом.
+
+
+ Разрешает имя узла или IP-адрес экземпляра как асинхронная операция.
+ Возвращает .Объект задачи, представляющий асинхронную операцию.Свойство в объекте задачи возвращает экземпляр , содержащий информацию адреса об узле, указанного в .
+ Разрешаемое имя узла или IP-адрес.
+ Значение параметра — null.
+ Длина параметра превышает 255 символов.
+ При попытке разрешения параметра произошла ошибка.
+ Параметр является недопустимым IP-адресом.
+
+
+ Возвращает имя узла локального компьютера.
+ Строка, содержащая DNS-имя узла локального компьютера.
+ При преобразовании имени локального узла возникает ошибка.
+
+
+
+
+
+ Предоставляет класс контейнеров для сведений об адресе веб-узла.
+
+
+ Инициализирует новый экземпляр класса .
+
+
+ Возвращает или задает список IP-адресов, связанных с узелом.
+ Массив свойств типа , содержащий IP-адреса, которые разрешаются в имена узелов, содержащихся в свойстве .
+
+
+ Возвращает или задает список псевдонимов, связанных с узелом.
+ Массив строк, содержащих DNS-имена, которые разрешаются в IP-адреса, содержащиеся в свойства распределяются по IP-адресам в свойстве .
+
+
+ Возвращает или задает DNS-имя узла.
+ Строка, содержащая главное имя узла сервера.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/zh-hans/System.Net.NameResolution.xml b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/zh-hans/System.Net.NameResolution.xml
new file mode 100644
index 0000000..f48918c
--- /dev/null
+++ b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/zh-hans/System.Net.NameResolution.xml
@@ -0,0 +1,71 @@
+
+
+
+ System.Net.NameResolution
+
+
+
+ 提供简单的域名解析功能。
+
+
+ 返回指定主机的 Internet 协议 (IP) 地址以作为异步操作。
+ 返回 。表示异步操作的任务对象。任务对象上的 属性将返回包含 参数指定的主机的 IP 地址的类型 的数组。
+ 要解析的主机名或 IP 地址。
+
+ 为 null。
+
+ 的长度超过 255 个字符。
+ 解析 时遇到错误。
+
+ 是无效的 IP 地址。
+
+
+ 将 IP 地址解析为 实例以作为异步操作。
+ 返回 。表示异步操作的任务对象。任务对象上的 属性返回了 实例,该示例包含有关 中指定的主机的地址信息。
+ IP 地址。
+
+ 为 null。
+ 解析 时遇到错误。
+
+ 是无效的 IP 地址。
+
+
+ 将主机名或 IP 地址解析为 实例以作为异步操作。
+ 返回 。表示异步操作的任务对象。任务对象上的 属性返回了 实例,该示例包含有关 中指定的主机的地址信息。
+ 要解析的主机名或 IP 地址。
+
+ 参数为 null。
+
+ 参数的长度大于 255 个字符。
+ 解析 参数时遇到错误。
+
+ 参数是无效的 IP 地址。
+
+
+ 获取本地计算机的主机名。
+ 包含本地计算机的 DNS 主机名的字符串。
+ 解析本地主机名时遇到错误。
+
+
+
+
+
+ 为 Internet 主机地址信息提供容器类。
+
+
+ 初始化 类的新实例。
+
+
+ 获取或设置与主机关联的 IP 地址列表。
+ 一个 类型的数组,包含解析为 属性中包含的主机名的 IP 地址。
+
+
+ 获取或设置与主机关联的别名列表。
+ 一组字符串,包含解析为 属性中的 IP 地址的 DNS 名称。
+
+
+ 获取或设置主机的 DNS 名称。
+ 包含服务器的主要主机名的字符串。
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/zh-hant/System.Net.NameResolution.xml b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/zh-hant/System.Net.NameResolution.xml
new file mode 100644
index 0000000..1adbf19
--- /dev/null
+++ b/packages/System.Net.NameResolution.4.3.0/ref/netstandard1.3/zh-hant/System.Net.NameResolution.xml
@@ -0,0 +1,72 @@
+
+
+
+ System.Net.NameResolution
+
+
+
+ 提供簡單的網域名稱解析功能。
+
+
+ 以非同步作業的方式,傳回指定之主機的網際網路通訊協定 (IP) 位址。
+ 傳回 。工作物件,表示非同步作業。工作物件上的 屬性會傳回類型為 的陣列,這個陣列會保存 參數所指定之主機的 IP 位址。
+ 要解析的主機名稱或 IP 位址。
+
+ 為 null。
+
+ 的長度大於 255 個字元。
+ 當解析 時,發生錯誤。
+
+ 為無效的 IP 位址。
+
+
+ 以非同步作業的方式,將 IP 位址解析至 執行個體。
+ 傳回 。工作物件,表示非同步作業。工作物件上的 屬性會傳回包含 中所指定主機之位址資訊的 執行個體。
+ IP 位址。
+
+ 為 null。
+ 當解析 時,發生錯誤。
+
+ 為無效的 IP 位址。
+
+
+ 以非同步作業的方式,將主機名稱或 IP 位址解析至 執行個體。
+ 傳回 。工作物件,表示非同步作業。工作物件上的 屬性會傳回包含 中所指定主機之位址資訊的 執行個體。
+ 要解析的主機名稱或 IP 位址。
+
+ 參數為 null。
+
+ 參數的長度大於 255 個字元。
+ 解析 參數時發生錯誤。
+
+ 參數是無效的 IP 位址。
+
+
+ 取得本機電腦的主機名稱。
+ 字串,含有本機電腦的 DNS 主機名稱。
+ 當解析本機主機名稱時,發生錯誤。
+
+
+
+
+
+ 提供網際網路主機位址資訊的容器 (Container) 類別。
+
+
+ 初始化 類別的新執行個體。
+
+
+ 取得或設定與主機關聯的 IP 位址清單。
+
+ 型別的陣列,含有 IP 位址,解析在 屬性中所含有的主機名稱。
+
+
+ 取得或設定與主機關聯的別名清單。
+ 含有 DNS 名稱的字串陣列,其解析在 屬性中所包含的 IP 位址。
+
+
+ 取得或設定主機的 DNS 名稱。
+ 字串,包含伺服器的主要主機名稱。
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/xamarinios10/_._ b/packages/System.Net.NameResolution.4.3.0/ref/xamarinios10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/xamarinmac20/_._ b/packages/System.Net.NameResolution.4.3.0/ref/xamarinmac20/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/xamarintvos10/_._ b/packages/System.Net.NameResolution.4.3.0/ref/xamarintvos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.NameResolution.4.3.0/ref/xamarinwatchos10/_._ b/packages/System.Net.NameResolution.4.3.0/ref/xamarinwatchos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.NameResolution.4.3.0/runtimes/unix/lib/netstandard1.3/System.Net.NameResolution.dll b/packages/System.Net.NameResolution.4.3.0/runtimes/unix/lib/netstandard1.3/System.Net.NameResolution.dll
new file mode 100644
index 0000000..c3cb261
Binary files /dev/null and b/packages/System.Net.NameResolution.4.3.0/runtimes/unix/lib/netstandard1.3/System.Net.NameResolution.dll differ
diff --git a/packages/System.Net.NameResolution.4.3.0/runtimes/win/lib/net46/System.Net.NameResolution.dll b/packages/System.Net.NameResolution.4.3.0/runtimes/win/lib/net46/System.Net.NameResolution.dll
new file mode 100644
index 0000000..485a45b
Binary files /dev/null and b/packages/System.Net.NameResolution.4.3.0/runtimes/win/lib/net46/System.Net.NameResolution.dll differ
diff --git a/packages/System.Net.NameResolution.4.3.0/runtimes/win/lib/netcore50/System.Net.NameResolution.dll b/packages/System.Net.NameResolution.4.3.0/runtimes/win/lib/netcore50/System.Net.NameResolution.dll
new file mode 100644
index 0000000..eb46719
Binary files /dev/null and b/packages/System.Net.NameResolution.4.3.0/runtimes/win/lib/netcore50/System.Net.NameResolution.dll differ
diff --git a/packages/System.Net.NameResolution.4.3.0/runtimes/win/lib/netstandard1.3/System.Net.NameResolution.dll b/packages/System.Net.NameResolution.4.3.0/runtimes/win/lib/netstandard1.3/System.Net.NameResolution.dll
new file mode 100644
index 0000000..0bded96
Binary files /dev/null and b/packages/System.Net.NameResolution.4.3.0/runtimes/win/lib/netstandard1.3/System.Net.NameResolution.dll differ
diff --git a/packages/System.Net.Sockets.4.3.0/.signature.p7s b/packages/System.Net.Sockets.4.3.0/.signature.p7s
new file mode 100644
index 0000000..dd3b761
Binary files /dev/null and b/packages/System.Net.Sockets.4.3.0/.signature.p7s differ
diff --git a/packages/System.Net.Sockets.4.3.0/System.Net.Sockets.4.3.0.nupkg b/packages/System.Net.Sockets.4.3.0/System.Net.Sockets.4.3.0.nupkg
new file mode 100644
index 0000000..5a095d7
Binary files /dev/null and b/packages/System.Net.Sockets.4.3.0/System.Net.Sockets.4.3.0.nupkg differ
diff --git a/packages/System.Net.Sockets.4.3.0/ThirdPartyNotices.txt b/packages/System.Net.Sockets.4.3.0/ThirdPartyNotices.txt
new file mode 100644
index 0000000..55cfb20
--- /dev/null
+++ b/packages/System.Net.Sockets.4.3.0/ThirdPartyNotices.txt
@@ -0,0 +1,31 @@
+This Microsoft .NET Library may incorporate components from the projects listed
+below. Microsoft licenses these components under the Microsoft .NET Library
+software license terms. The original copyright notices and the licenses under
+which Microsoft received such components are set forth below for informational
+purposes only. Microsoft reserves all rights not expressly granted herein,
+whether by implication, estoppel or otherwise.
+
+1. .NET Core (https://github.com/dotnet/core/)
+
+.NET Core
+Copyright (c) .NET Foundation and Contributors
+
+The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/packages/System.Net.Sockets.4.3.0/dotnet_library_license.txt b/packages/System.Net.Sockets.4.3.0/dotnet_library_license.txt
new file mode 100644
index 0000000..92b6c44
--- /dev/null
+++ b/packages/System.Net.Sockets.4.3.0/dotnet_library_license.txt
@@ -0,0 +1,128 @@
+
+MICROSOFT SOFTWARE LICENSE TERMS
+
+
+MICROSOFT .NET LIBRARY
+
+These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft
+
+· updates,
+
+· supplements,
+
+· Internet-based services, and
+
+· support services
+
+for this software, unless other terms accompany those items. If so, those terms apply.
+
+BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.
+
+
+IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW.
+
+1. INSTALLATION AND USE RIGHTS.
+
+a. Installation and Use. You may install and use any number of copies of the software to design, develop and test your programs.
+
+b. Third Party Programs. The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only.
+
+2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.
+
+a. DISTRIBUTABLE CODE. The software is comprised of Distributable Code. “Distributable Code” is code that you are permitted to distribute in programs you develop if you comply with the terms below.
+
+i. Right to Use and Distribute.
+
+· You may copy and distribute the object code form of the software.
+
+· Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs.
+
+ii. Distribution Requirements. For any Distributable Code you distribute, you must
+
+· add significant primary functionality to it in your programs;
+
+· require distributors and external end users to agree to terms that protect it at least as much as this agreement;
+
+· display your valid copyright notice on your programs; and
+
+· indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your programs.
+
+iii. Distribution Restrictions. You may not
+
+· alter any copyright, trademark or patent notice in the Distributable Code;
+
+· use Microsoft’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by Microsoft;
+
+· include Distributable Code in malicious, deceptive or unlawful programs; or
+
+· modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that
+
+· the code be disclosed or distributed in source code form; or
+
+· others have the right to modify it.
+
+3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not
+
+· work around any technical limitations in the software;
+
+· reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;
+
+· publish the software for others to copy;
+
+· rent, lease or lend the software;
+
+· transfer the software or this agreement to any third party; or
+
+· use the software for commercial software hosting services.
+
+4. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software.
+
+5. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes.
+
+6. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting.
+
+7. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it.
+
+8. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.
+
+9. APPLICABLE LAW.
+
+a. United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort.
+
+b. Outside the United States. If you acquired the software in any other country, the laws of that country apply.
+
+10. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.
+
+11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+FOR AUSTRALIA – YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS.
+
+12. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.
+
+This limitation applies to
+
+· anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and
+
+· claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.
+
+It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.
+
+Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French.
+
+Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français.
+
+EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont exclues.
+
+LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices.
+
+Cette limitation concerne :
+
+· tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et
+
+· les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur.
+
+Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel dommage. Si votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’appliquera pas à votre égard.
+
+EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas.
+
+
diff --git a/packages/System.Net.Sockets.4.3.0/lib/MonoAndroid10/_._ b/packages/System.Net.Sockets.4.3.0/lib/MonoAndroid10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.Sockets.4.3.0/lib/MonoTouch10/_._ b/packages/System.Net.Sockets.4.3.0/lib/MonoTouch10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.Sockets.4.3.0/lib/net46/System.Net.Sockets.dll b/packages/System.Net.Sockets.4.3.0/lib/net46/System.Net.Sockets.dll
new file mode 100644
index 0000000..4d01203
Binary files /dev/null and b/packages/System.Net.Sockets.4.3.0/lib/net46/System.Net.Sockets.dll differ
diff --git a/packages/System.Net.Sockets.4.3.0/lib/xamarinios10/_._ b/packages/System.Net.Sockets.4.3.0/lib/xamarinios10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.Sockets.4.3.0/lib/xamarinmac20/_._ b/packages/System.Net.Sockets.4.3.0/lib/xamarinmac20/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.Sockets.4.3.0/lib/xamarintvos10/_._ b/packages/System.Net.Sockets.4.3.0/lib/xamarintvos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.Sockets.4.3.0/lib/xamarinwatchos10/_._ b/packages/System.Net.Sockets.4.3.0/lib/xamarinwatchos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.Sockets.4.3.0/ref/MonoAndroid10/_._ b/packages/System.Net.Sockets.4.3.0/ref/MonoAndroid10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.Sockets.4.3.0/ref/MonoTouch10/_._ b/packages/System.Net.Sockets.4.3.0/ref/MonoTouch10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.Sockets.4.3.0/ref/net46/System.Net.Sockets.dll b/packages/System.Net.Sockets.4.3.0/ref/net46/System.Net.Sockets.dll
new file mode 100644
index 0000000..4d01203
Binary files /dev/null and b/packages/System.Net.Sockets.4.3.0/ref/net46/System.Net.Sockets.dll differ
diff --git a/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/System.Net.Sockets.dll b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/System.Net.Sockets.dll
new file mode 100644
index 0000000..7a4a7fe
Binary files /dev/null and b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/System.Net.Sockets.dll differ
diff --git a/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/System.Net.Sockets.xml b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/System.Net.Sockets.xml
new file mode 100644
index 0000000..9917526
--- /dev/null
+++ b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/System.Net.Sockets.xml
@@ -0,0 +1,392 @@
+
+
+
+ System.Net.Sockets
+
+
+
+ Specifies the protocols that the class supports.
+
+
+ Transmission Control Protocol.
+
+
+ User Datagram Protocol.
+
+
+ Unknown protocol.
+
+
+ Unspecified protocol.
+
+
+ Implements the Berkeley sockets interface.
+
+
+ Initializes a new instance of the class using the specified address family, socket type and protocol.
+ One of the values.
+ One of the values.
+ One of the values.
+ The combination of , , and results in an invalid socket.
+
+
+ Initializes a new instance of the class using the specified socket type and protocol.
+ One of the values.
+ One of the values.
+ The combination of and results in an invalid socket.
+
+
+ Begins an asynchronous operation to accept an incoming connection attempt.
+ Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation.Returns false if the I/O operation completed synchronously. The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.
+ The object to use for this asynchronous socket operation.
+ An argument is not valid. This exception occurs if the buffer provided is not large enough. The buffer must be at least 2 * (sizeof(SOCKADDR_STORAGE + 16) bytes. This exception also occurs if multiple buffers are specified, the property is not null.
+ An argument is out of range. The exception occurs if the is less than 0.
+ An invalid operation was requested. This exception occurs if the accepting is not listening for connections or the accepted socket is bound. You must call the and method before calling the method.This exception also occurs if the socket is already connected or a socket operation was already in progress using the specified parameter.
+ An error occurred when attempting to access the socket. See the Remarks section for more information.
+ Windows XP or later is required for this method.
+ The has been closed.
+
+
+ Gets the address family of the .
+ One of the values.
+
+
+ Associates a with a local endpoint.
+ The local to associate with the .
+
+ is null.
+ An error occurred when attempting to access the socket. See the Remarks section for more information.
+ The has been closed.
+ A caller higher in the call stack does not have permission for the requested operation.
+
+
+
+
+
+
+
+
+ Cancels an asynchronous request for a remote host connection.
+ The object used to request the connection to the remote host by calling one of the methods.
+ The parameter cannot be null and the cannot be null.
+ An error occurred when attempting to access the socket.
+ The has been closed.
+ A caller higher in the call stack does not have permission for the requested operation.
+
+
+ Begins an asynchronous request for a connection to a remote host.
+ Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation. Returns false if the I/O operation completed synchronously. In this case, The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.
+ The object to use for this asynchronous socket operation.
+ An argument is not valid. This exception occurs if multiple buffers are specified, the property is not null.
+ The parameter cannot be null and the cannot be null.
+ The is listening or a socket operation was already in progress using the object specified in the parameter.
+ An error occurred when attempting to access the socket. See the Remarks section for more information.
+ Windows XP or later is required for this method. This exception also occurs if the local endpoint and the are not the same address family.
+ The has been closed.
+ A caller higher in the call stack does not have permission for the requested operation.
+
+
+ Begins an asynchronous request for a connection to a remote host.
+ Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation. Returns false if the I/O operation completed synchronously. In this case, The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.
+ One of the values.
+ One of the values.
+ The object to use for this asynchronous socket operation.
+ An argument is not valid. This exception occurs if multiple buffers are specified, the property is not null.
+ The parameter cannot be null and the cannot be null.
+ The is listening or a socket operation was already in progress using the object specified in the parameter.
+ An error occurred when attempting to access the socket. See the Remarks section for more information.
+ Windows XP or later is required for this method. This exception also occurs if the local endpoint and the are not the same address family.
+ The has been closed.
+ A caller higher in the call stack does not have permission for the requested operation.
+
+
+ Gets a value that indicates whether a is connected to a remote host as of the last or operation.
+ true if the was connected to a remote resource as of the most recent operation; otherwise, false.
+
+
+ Releases all resources used by the current instance of the class.
+
+
+ Releases the unmanaged resources used by the , and optionally disposes of the managed resources.
+ true to release both managed and unmanaged resources; false to releases only unmanaged resources.
+
+
+ Frees resources used by the class.
+
+
+ Places a in a listening state.
+ The maximum length of the pending connections queue.
+ An error occurred when attempting to access the socket. See the Remarks section for more information.
+ The has been closed.
+
+
+
+
+
+
+
+ Gets the local endpoint.
+ The that the is using for communications.
+ An error occurred when attempting to access the socket. See the Remarks section for more information.
+ The has been closed.
+
+
+
+
+
+
+
+ Gets or sets a value that specifies whether the stream is using the Nagle algorithm.
+ false if the uses the Nagle algorithm; otherwise, true. The default is false.
+ An error occurred when attempting to access the . See the Remarks section for more information.
+ The has been closed.
+
+
+
+
+
+
+
+ Indicates whether the underlying operating system and network adaptors support Internet Protocol version 4 (IPv4).
+ true if the operating system and network adaptors support the IPv4 protocol; otherwise, false.
+
+
+ Indicates whether the underlying operating system and network adaptors support Internet Protocol version 6 (IPv6).
+ true if the operating system and network adaptors support the IPv6 protocol; otherwise, false.
+
+
+ Gets the protocol type of the .
+ One of the values.
+
+
+ Begins an asynchronous request to receive data from a connected object.
+ Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation. Returns false if the I/O operation completed synchronously. In this case, The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.
+ The object to use for this asynchronous socket operation.
+ An argument was invalid. The or properties on the parameter must reference valid buffers. One or the other of these properties may be set, but not both at the same time.
+ A socket operation was already in progress using the object specified in the parameter.
+ Windows XP or later is required for this method.
+ The has been closed.
+ An error occurred when attempting to access the socket. See the Remarks section for more information.
+
+
+ Gets or sets a value that specifies the size of the receive buffer of the .
+ An that contains the size, in bytes, of the receive buffer. The default is 8192.
+ An error occurred when attempting to access the socket.
+ The has been closed.
+ The value specified for a set operation is less than 0.
+
+
+
+
+
+
+
+ Begins to asynchronously receive data from a specified network device.
+ Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation. Returns false if the I/O operation completed synchronously. In this case, The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.
+ The object to use for this asynchronous socket operation.
+ The cannot be null.
+ A socket operation was already in progress using the object specified in the parameter.
+ Windows XP or later is required for this method.
+ The has been closed.
+ An error occurred when attempting to access the socket.
+
+
+ Gets the remote endpoint.
+ The with which the is communicating.
+ An error occurred when attempting to access the socket. See the Remarks section for more information.
+ The has been closed.
+
+
+
+
+
+
+
+ Sends data asynchronously to a connected object.
+ Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation. Returns false if the I/O operation completed synchronously. In this case, The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.
+ The object to use for this asynchronous socket operation.
+ The or properties on the parameter must reference valid buffers. One or the other of these properties may be set, but not both at the same time.
+ A socket operation was already in progress using the object specified in the parameter.
+ Windows XP or later is required for this method.
+ The has been closed.
+ The is not yet connected or was not obtained via an , ,or , method.
+
+
+ Gets or sets a value that specifies the size of the send buffer of the .
+ An that contains the size, in bytes, of the send buffer. The default is 8192.
+ An error occurred when attempting to access the socket.
+ The has been closed.
+ The value specified for a set operation is less than 0.
+
+
+
+
+
+
+
+ Sends data asynchronously to a specific remote host.
+ Returns true if the I/O operation is pending. The event on the parameter will be raised upon completion of the operation. Returns false if the I/O operation completed synchronously. In this case, The event on the parameter will not be raised and the object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.
+ The object to use for this asynchronous socket operation.
+ The cannot be null.
+ A socket operation was already in progress using the object specified in the parameter.
+ Windows XP or later is required for this method.
+ The has been closed.
+ The protocol specified is connection-oriented, but the is not yet connected.
+
+
+ Disables sends and receives on a .
+ One of the values that specifies the operation that will no longer be allowed.
+ An error occurred when attempting to access the socket. See the Remarks section for more information.
+ The has been closed.
+
+
+
+
+
+
+
+ Gets or sets a value that specifies the Time To Live (TTL) value of Internet Protocol (IP) packets sent by the .
+ The TTL value.
+ The TTL value can't be set to a negative number.
+ This property can be set only for sockets in the or families.
+ An error occurred when attempting to access the socket. This error is also returned when an attempt was made to set TTL to a value higher than 255.
+ The has been closed.
+
+
+
+
+
+
+
+ Represents an asynchronous socket operation.
+
+
+ Creates an empty instance.
+ The platform is not supported.
+
+
+ Gets or sets the socket to use or the socket created for accepting a connection with an asynchronous socket method.
+ The to use or the socket created for accepting a connection with an asynchronous socket method.
+
+
+ Gets the data buffer to use with an asynchronous socket method.
+ A array that represents the data buffer to use with an asynchronous socket method.
+
+
+ Gets or sets an array of data buffers to use with an asynchronous socket method.
+ An that represents an array of data buffers to use with an asynchronous socket method.
+ There are ambiguous buffers specified on a set operation. This exception occurs if the property has been set to a non-null value and an attempt was made to set the property to a non-null value.
+
+
+ Gets the number of bytes transferred in the socket operation.
+ An that contains the number of bytes transferred in the socket operation.
+
+
+ The event used to complete an asynchronous operation.
+
+
+ Gets the exception in the case of a connection failure when a was used.
+ An that indicates the cause of the connection error when a was specified for the property.
+
+
+ The created and connected object after successful completion of the method.
+ The connected object.
+
+
+ Gets the maximum amount of data, in bytes, to send or receive in an asynchronous operation.
+ An that contains the maximum amount of data, in bytes, to send or receive.
+
+
+ Releases the unmanaged resources used by the instance and optionally disposes of the managed resources.
+
+
+ Frees resources used by the class.
+
+
+ Gets the type of socket operation most recently performed with this context object.
+ A instance that indicates the type of socket operation most recently performed with this context object.
+
+
+ Gets the offset, in bytes, into the data buffer referenced by the property.
+ An that contains the offset, in bytes, into the data buffer referenced by the property.
+
+
+ Represents a method that is called when an asynchronous operation completes.
+ The event that is signaled.
+
+
+ Gets or sets the remote IP endpoint for an asynchronous operation.
+ An that represents the remote IP endpoint for an asynchronous operation.
+
+
+ Sets the data buffer to use with an asynchronous socket method.
+ The data buffer to use with an asynchronous socket method.
+ The offset, in bytes, in the data buffer where the operation starts.
+ The maximum amount of data, in bytes, to send or receive in the buffer.
+ There are ambiguous buffers specified. This exception occurs if the property is also not null and the property is also not null.
+ An argument was out of range. This exception occurs if the parameter is less than zero or greater than the length of the array in the property. This exception also occurs if the parameter is less than zero or greater than the length of the array in the property minus the parameter.
+
+
+ Sets the data buffer to use with an asynchronous socket method.
+ The offset, in bytes, in the data buffer where the operation starts.
+ The maximum amount of data, in bytes, to send or receive in the buffer.
+ An argument was out of range. This exception occurs if the parameter is less than zero or greater than the length of the array in the property. This exception also occurs if the parameter is less than zero or greater than the length of the array in the property minus the parameter.
+
+
+ Gets or sets the result of the asynchronous socket operation.
+ A that represents the result of the asynchronous socket operation.
+
+
+ Gets or sets a user or application object associated with this asynchronous socket operation.
+ An object that represents the user or application object associated with this asynchronous socket operation.
+
+
+ The type of asynchronous socket operation most recently performed with this context object.
+
+
+ A socket Accept operation.
+
+
+ A socket Connect operation.
+
+
+ None of the socket operations.
+
+
+ A socket Receive operation.
+
+
+ A socket ReceiveFrom operation.
+
+
+ A socket Send operation.
+
+
+ A socket SendTo operation.
+
+
+ Defines constants that are used by the method.
+
+
+ Disables a for both sending and receiving. This field is constant.
+
+
+ Disables a for receiving. This field is constant.
+
+
+ Disables a for sending. This field is constant.
+
+
+ Specifies the type of socket that an instance of the class represents.
+
+
+ Supports datagrams, which are connectionless, unreliable messages of a fixed (typically small) maximum length. Messages might be lost or duplicated and might arrive out of order. A of type requires no connection prior to sending and receiving data, and can communicate with multiple peers. uses the Datagram Protocol () and the .
+
+
+ Supports reliable, two-way, connection-based byte streams without the duplication of data and without preservation of boundaries. A Socket of this type communicates with a single peer and requires a remote host connection before communication can begin. uses the Transmission Control Protocol () and the InterNetwork.
+
+
+ Specifies an unknown Socket type.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/de/System.Net.Sockets.xml b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/de/System.Net.Sockets.xml
new file mode 100644
index 0000000..7dd775a
--- /dev/null
+++ b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/de/System.Net.Sockets.xml
@@ -0,0 +1,394 @@
+
+
+
+ System.Net.Sockets
+
+
+
+ Gibt die Protokolle an, die von der -Klasse unterstützt werden.
+
+
+ Transmission Control Protocol.
+
+
+ User Datagram-Protokoll.
+
+
+ Unbekanntes Protokoll.
+
+
+ Nicht definiertes Protokoll.
+
+
+ Implementiert die Berkeley-Sockets-Schnittstelle.
+
+
+ Initialisiert eine neue Instanz der -Klasse unter Verwendung der angegebenen Adressfamilie sowie des angegebenen Sockettyps und Protokolls.
+ Einer der -Werte.
+ Einer der -Werte.
+ Einer der -Werte.
+ Die Kombination von , und führt zu einem ungültigen Socket.
+
+
+ Initialisiert eine neue Instanz der -Klasse unter Verwendung der angegebenen Sockettyps und Protokolls.
+ Einer der -Werte.
+ Einer der -Werte.
+ Die Kombination von und führt zu einem ungültigen Socket.
+
+
+ Beginnt einen asynchronen Vorgang, um eine eingehende Verbindung anzunehmen.
+ Gibt true zurück, wenn der E/A-Vorgang aussteht.Das -Ereignis für den -Parameter wird nach dem Abschluss des Vorgangs ausgelöst.Gibt false zurück, wenn der E/A-Vorgang synchron abgeschlossen wurde.Das -Ereignis für den -Parameter wird nicht ausgelöst, und das als Parameter übergebene -Objekt kann direkt nach der Rückgabe des Methodenaufrufs untersucht werden, um die Ergebnisse des Vorgangs abzurufen.
+ Das -Objekt, das für diesen asynchronen Socketvorgang verwendet werden soll.
+ Ein Argument ist ungültig.Diese Ausnahme tritt auf, wenn der bereitgestellte Puffer nicht groß genug ist.Der Puffer muss wenigstens 2 * (sizeof(SOCKADDR_STORAGE + 16) Bytes betragen.Diese Ausnahme tritt auch auf, wenn mehrere Puffer angegeben werden und die -Eigenschaft nicht NULL ist.
+ Ein Argument liegt außerhalb des gültigen Bereichs.Die Ausnahme tritt auf, wenn kleiner als 0 ist.
+ Es wurde eine ungültige Operation angefordert.Diese Ausnahme tritt auf, wenn der annehmende keine Verbindungen überwacht oder der angenommene Socket gebunden ist.Sie müssen die -Methode und die -Methode aufrufen, bevor Sie die -Methode aufrufen.Diese Ausnahme tritt auch auf, wenn der Socket bereits verbunden ist oder bereits ein Socketvorgang mit dem angegebenen -Parameter ausgeführt wird.
+ Fehler beim Zugriff auf den Socket.Weitere Informationen finden Sie im Abschnitt Hinweise.
+ Für diese Methode ist Windows XP oder höher erforderlich.
+ Der wurde geschlossen.
+
+
+ Ruft die Adressfamilie des ab.
+ Einer der -Werte.
+
+
+ Ordnet einem einen lokalen Endpunkt zu.
+ Der lokale , der dem zugeordnet werden soll.
+
+ ist null.
+ Fehler beim Zugriff auf den Socket.Weitere Informationen finden Sie im Abschnitt Hinweise.
+ Der wurde geschlossen.
+ Ein in der Aufrufliste übergeordneter Aufrufer hat keine Berechtigung für den angeforderten Vorgang.
+
+
+
+
+
+
+
+
+ Bricht eine asynchrone Anforderung einer Remotehostverbindung ab.
+ Das -Objekt, das verwendet wurde, um die Verbindung mit dem Remotehost durch Aufrufen einer der -Methoden anzufordern.
+ Der -Parameter kann nicht NULL und der kann nicht NULL sein.
+ Fehler beim Zugriff auf den Socket.
+ Der wurde geschlossen.
+ Ein in der Aufrufliste übergeordneter Aufrufer hat keine Berechtigung für den angeforderten Vorgang.
+
+
+ Beginnt eine asynchrone Anforderung einer Verbindung mit einem Remotehost.
+ Gibt true zurück, wenn der E/A-Vorgang aussteht.Das -Ereignis für den -Parameter wird nach dem Abschluss des Vorgangs ausgelöst.Gibt false zurück, wenn der E/A-Vorgang synchron abgeschlossen wurde.In diesem Fall wird das -Ereignis für den -Parameter nicht ausgelöst, und das als Parameter übergebene -Objekt kann direkt nach der Rückgabe des Methodenaufrufs untersucht werden, um die Ergebnisse des Vorgangs abzurufen.
+ Das -Objekt, das für diesen asynchronen Socketvorgang verwendet werden soll.
+ Ein Argument ist ungültig.Diese Ausnahme tritt auf, wenn mehrere Puffer angegeben werden und die -Eigenschaft nicht NULL ist.
+ Der -Parameter kann nicht NULL und der kann nicht NULL sein.
+ Der führt eine Überwachung durch, oder ein Socketvorgang wird bereits mit dem im -Parameter angegebenen -Objekt ausgeführt.
+ Fehler beim Zugriff auf den Socket.Weitere Informationen finden Sie im Abschnitt Hinweise.
+ Für diese Methode ist Windows XP oder höher erforderlich.Diese Ausnahme tritt auch auf, wenn der lokale Endpunkt und der nicht die gleiche Adressfamilie aufweisen.
+ Der wurde geschlossen.
+ Ein in der Aufrufliste übergeordneter Aufrufer hat keine Berechtigung für den angeforderten Vorgang.
+
+
+ Beginnt eine asynchrone Anforderung einer Verbindung mit einem Remotehost.
+ Gibt true zurück, wenn der E/A-Vorgang aussteht.Das -Ereignis für den -Parameter wird nach dem Abschluss des Vorgangs ausgelöst.Gibt false zurück, wenn der E/A-Vorgang synchron abgeschlossen wurde.In diesem Fall wird das -Ereignis für den -Parameter nicht ausgelöst, und das als Parameter übergebene -Objekt kann direkt nach der Rückgabe des Methodenaufrufs untersucht werden, um die Ergebnisse des Vorgangs abzurufen.
+ Einer der -Werte.
+ Einer der -Werte.
+ Das -Objekt, das für diesen asynchronen Socketvorgang verwendet werden soll.
+ Ein Argument ist ungültig.Diese Ausnahme tritt auf, wenn mehrere Puffer angegeben werden und die -Eigenschaft nicht NULL ist.
+ Der -Parameter kann nicht NULL und der kann nicht NULL sein.
+ Der führt eine Überwachung durch, oder ein Socketvorgang wird bereits mit dem im -Parameter angegebenen -Objekt ausgeführt.
+ Fehler beim Zugriff auf den Socket.Weitere Informationen finden Sie im Abschnitt Hinweise.
+ Für diese Methode ist Windows XP oder höher erforderlich.Diese Ausnahme tritt auch auf, wenn der lokale Endpunkt und der nicht die gleiche Adressfamilie aufweisen.
+ Der wurde geschlossen.
+ Ein in der Aufrufliste übergeordneter Aufrufer hat keine Berechtigung für den angeforderten Vorgang.
+
+
+ Ruft einen Wert ab, der angibt, ob ein mit dem Remotehost des letzten -Vorgangs oder -Vorgangs verbunden ist.
+ true, wenn beim letzten Vorgang mit einer Remoteressource verbunden war, andernfalls false.
+
+
+ Gibt alle von der aktuellen Instanz der -Klasse verwendeten Ressourcen frei.
+
+
+ Gibt die vom verwendeten, nicht verwalteten Ressourcen frei und verwirft optional auch die verwalteten Ressourcen.
+ true, um sowohl verwaltete als auch nicht verwaltete Ressourcen freizugeben. false, wenn ausschließlich nicht verwaltete Ressourcen freigegeben werden sollen.
+
+
+ Gibt von der -Klasse verwendete Ressourcen frei.
+
+
+ Versetzt einen in den Überwachungszustand.
+ Die maximale Länge der Warteschlange für ausstehende Verbindungen.
+ Fehler beim Zugriff auf den Socket.Weitere Informationen finden Sie im Abschnitt Hinweise.
+ Der wurde geschlossen.
+
+
+
+
+
+
+
+ Ruft den lokalen Endpunkt ab.
+ Der , den der für die Kommunikation verwendet.
+ Fehler beim Zugriff auf den Socket.Weitere Informationen finden Sie im Abschnitt Hinweise.
+ Der wurde geschlossen.
+
+
+
+
+
+
+
+ Ruft einen -Wert ab, der angibt, ob der Stream- den Nagle-Algorithmus verwendet, oder legt diesen fest.
+ false, wenn der den Nagle-Algorithmus verwendet, andernfalls true.Die Standardeinstellung ist false.
+ Fehler beim Zugriff auf den .Weitere Informationen finden Sie im Abschnitt Hinweise.
+ Der wurde geschlossen.
+
+
+
+
+
+
+
+ Gibt an, ob das zugrunde liegende Betriebssystem und die Netzwerkkarten IPv4 (Internet Protocol, Version 4) unterstützen.
+ true, wenn das Betriebssystem und die Netzwerkkarten das IPv4-Protokoll unterstützen, andernfalls false.
+
+
+ Gibt an, ob das zugrunde liegende Betriebssystem und die Netzwerkkarten IPv6 (Internet Protocol, Version 6) unterstützen.
+ true, wenn das Betriebssystem und die Netzwerkkarten das Protokoll IPv6 unterstützen, andernfalls false.
+
+
+ Ruft den Protokolltyp des ab.
+ Einer der -Werte.
+
+
+ Startet eine asynchrone Anforderung, um Daten von einem verbundenen -Objekt zu empfangen.
+ Gibt true zurück, wenn der E/A-Vorgang aussteht.Das -Ereignis für den -Parameter wird nach dem Abschluss des Vorgangs ausgelöst.Gibt false zurück, wenn der E/A-Vorgang synchron abgeschlossen wurde.In diesem Fall wird das -Ereignis für den -Parameter nicht ausgelöst, und das als Parameter übergebene -Objekt kann direkt nach der Rückgabe des Methodenaufrufs untersucht werden, um die Ergebnisse des Vorgangs abzurufen.
+ Das -Objekt, das für diesen asynchronen Socketvorgang verwendet werden soll.
+ Ein Argument war ungültig.Die -Eigenschaft oder -Eigenschaft des -Parameters muss auf gültige Puffer verweisen.Eine dieser Eigenschaften kann festgelegt werden, nicht jedoch beide gleichzeitig.
+ Es wird bereits ein Socketvorgang mit dem im -Parameter angegebenen -Objekt ausgeführt.
+ Für diese Methode ist Windows XP oder höher erforderlich.
+ Der wurde geschlossen.
+ Fehler beim Zugriff auf den Socket.Weitere Informationen finden Sie im Abschnitt Hinweise.
+
+
+ Ruft einen Wert ab, der die Größe des Empfangspuffers des angibt, oder legt diesen fest.
+ Ein , das die Größe des Empfangspuffer in Bytes enthält.Der Standard ist 8192.
+ Fehler beim Zugriff auf den Socket.
+ Der wurde geschlossen.
+ Der für einen set-Vorgang angegebene Wert ist kleiner als 0.
+
+
+
+
+
+
+
+ Beginnt den asynchronen Datenempfang aus dem angegebenen Netzwerkgerät.
+ Gibt true zurück, wenn der E/A-Vorgang aussteht.Das -Ereignis für den -Parameter wird nach dem Abschluss des Vorgangs ausgelöst.Gibt false zurück, wenn der E/A-Vorgang synchron abgeschlossen wurde.In diesem Fall wird das -Ereignis für den -Parameter nicht ausgelöst, und das als Parameter übergebene -Objekt kann direkt nach der Rückgabe des Methodenaufrufs untersucht werden, um die Ergebnisse des Vorgangs abzurufen.
+ Das -Objekt, das für diesen asynchronen Socketvorgang verwendet werden soll.
+
+ darf nicht NULL sein.
+ Es wird bereits ein Socketvorgang mit dem im -Parameter angegebenen -Objekt ausgeführt.
+ Für diese Methode ist Windows XP oder höher erforderlich.
+ Der wurde geschlossen.
+ Fehler beim Zugriff auf den Socket.
+
+
+ Ruft den Remoteendpunkt ab.
+ Der , mit dem der kommuniziert.
+ Fehler beim Zugriff auf den Socket.Weitere Informationen finden Sie im Abschnitt Hinweise.
+ Der wurde geschlossen.
+
+
+
+
+
+
+
+ Sendet Daten asynchron an ein verbundenes -Objekt.
+ Gibt true zurück, wenn der E/A-Vorgang aussteht.Das -Ereignis für den -Parameter wird nach dem Abschluss des Vorgangs ausgelöst.Gibt false zurück, wenn der E/A-Vorgang synchron abgeschlossen wurde.In diesem Fall wird das -Ereignis für den -Parameter nicht ausgelöst, und das als Parameter übergebene -Objekt kann direkt nach der Rückgabe des Methodenaufrufs untersucht werden, um die Ergebnisse des Vorgangs abzurufen.
+ Das -Objekt, das für diesen asynchronen Socketvorgang verwendet werden soll.
+ Die -Eigenschaft oder -Eigenschaft des -Parameters muss auf gültige Puffer verweisen.Eine dieser Eigenschaften kann festgelegt werden, nicht jedoch beide gleichzeitig.
+ Es wird bereits ein Socketvorgang mit dem im -Parameter angegebenen -Objekt ausgeführt.
+ Für diese Methode ist Windows XP oder höher erforderlich.
+ Der wurde geschlossen.
+ Der ist noch nicht verbunden oder wurde nicht über eine -- oder -Methode abgerufen.
+
+
+ Ruft einen Wert ab, der die Größe des Sendepuffers für den angibt, oder legt diesen fest.
+ Ein , das die Größe des Sendepuffer in Bytes enthält.Der Standard ist 8192.
+ Fehler beim Zugriff auf den Socket.
+ Der wurde geschlossen.
+ Der für einen set-Vorgang angegebene Wert ist kleiner als 0.
+
+
+
+
+
+
+
+ Sendet Daten asynchron an einen bestimmten Remotehost.
+ Gibt true zurück, wenn der E/A-Vorgang aussteht.Das -Ereignis für den -Parameter wird nach dem Abschluss des Vorgangs ausgelöst.Gibt false zurück, wenn der E/A-Vorgang synchron abgeschlossen wurde.In diesem Fall wird das -Ereignis für den -Parameter nicht ausgelöst, und das als Parameter übergebene -Objekt kann direkt nach der Rückgabe des Methodenaufrufs untersucht werden, um die Ergebnisse des Vorgangs abzurufen.
+ Das -Objekt, das für diesen asynchronen Socketvorgang verwendet werden soll.
+
+ darf nicht NULL sein.
+ Es wird bereits ein Socketvorgang mit dem im -Parameter angegebenen -Objekt ausgeführt.
+ Für diese Methode ist Windows XP oder höher erforderlich.
+ Der wurde geschlossen.
+ Das angegebene Protokoll ist verbindungsorientiert, aber der wurde noch nicht verbunden.
+
+
+ Deaktiviert Senden und Empfangen für einen .
+ Einer der -Werte, der den Vorgang angibt, der nicht mehr zulässig ist.
+ Fehler beim Zugriff auf den Socket.Weitere Informationen finden Sie im Abschnitt Hinweise.
+ Der wurde geschlossen.
+
+
+
+
+
+
+
+ Ruft einen Wert ab, der die Gültigkeitsdauer (TTL) von IP (Internet Protocol)-Paketen angibt, die vom gesendet werden.
+ Der TTL-Wert.
+ Für den TTL-Wert kann keine negative Zahl festgelegt werden.
+ Diese Eigenschaft kann nur für Sockets in der -Familie oder der -Familie festgelegt werden.
+ Fehler beim Zugriff auf den Socket.Dieser Fehler wird auch zurückgegeben, wenn versucht wird, TTL auf einen höheren Wert als 255 festzulegen.
+ Der wurde geschlossen.
+
+
+
+
+
+
+
+ Stellt einen asynchronen Socketvorgang dar.
+
+
+ Erstellt eine leere -Instanz.
+ Die Plattform wird nicht unterstützt.
+
+
+ Ruft den Socket ab, der zum Akzeptieren einer Verbindung mit einer asynchronen Socketmethode erstellt wird, oder legt ihn fest.
+ Der zu verwendende oder der Socket, der zum Akzeptieren einer Verbindung mit einer asynchronen Socketmethode erstellt wird.
+
+
+ Ruft den Datenpuffer ab, der mit einer asynchronen Socketmethode verwendet werden soll.
+ Ein -Array, das den Datenpuffer darstellt, der mit einer asynchronen Socketmethode verwendet werden soll.
+
+
+ Ruft ein Array von Datenpuffern ab, die mit einer asynchronen Socketmethode verwendet werden sollen, oder legt es fest.
+ Eine , die ein Array von Datenpuffern darstellt, die mit einer asynchronen Socketmethode verwendet werden sollen.
+ Für einen set-Vorgang wurden mehrdeutige Puffer angegeben.Diese Ausnahme tritt auf, wenn die -Eigenschaft auf einen Wert ungleich NULL festgelegt wurde und versucht wurde, die -Eigenschaft auf einen Wert ungleich NULL festzulegen.
+
+
+ Ruft die Anzahl der im Socketvorgang übertragenen Bytes ab.
+ Ein mit der Anzahl der im Socketvorgang übertragenen Bytes.
+
+
+ Das Ereignis, das zum Abschließen eines asynchronen Vorgangs verwendet wird.
+
+
+ Ruft die Ausnahme im Fall eines Verbindungsfehlers ab, wenn verwendet wurde.
+ Ein , das die Ursache des Verbindungsfehlers angibt, wenn ein für die -Eigenschaft angegeben wurde.
+
+
+ Das erstellte und verbundene -Objekt nach dem erfolgreichen Beenden der -Methode.
+ Das verbundene -Objekt.
+
+
+ Ruft die maximale Datenmenge in Bytes ab, die in einem asynchronen Vorgang gesendet oder empfangen wird.
+ Ein mit der maximalen Datenmenge in Bytes, die gesendet oder empfangen werden soll.
+
+
+ Gibt die von der -Instanz verwendeten nicht verwalteten Ressourcen zurück und verwirft optional die verwalteten Ressourcen.
+
+
+ Gibt von der -Klasse verwendete Ressourcen frei.
+
+
+ Ruft den Typ des Socketvorgangs ab, der zuletzt mit diesem Kontextobjekt ausgeführt wurde.
+ Eine -Instanz, die den Typ des Socketvorgangs angibt, der zuletzt mit diesem Kontextobjekt ausgeführt wurde.
+
+
+ Ruft den Offset in Bytes im Datenpuffer ab, auf den von der -Eigenschaft verwiesen wird.
+ Ein mit dem Offset in Bytes im Datenpuffer, auf den von der -Eigenschaft verwiesen wird.
+
+
+ Stellt eine Methode dar, die beim Abschluss eines asynchronen Vorgangs aufgerufen wird.
+ Das signalisierte Ereignis.
+
+
+ Ruft den Remote-IP-Endpunkt für einen asynchronen Vorgang ab oder legt ihn fest.
+ Ein , der den Remote-IP-Endpunkt für einen asynchronen Vorgang darstellt.
+
+
+ Legt den Datenpuffer fest, der mit einer asynchronen Socketmethode verwendet werden soll.
+ Der Datenpuffer, der mit einer asynchronen Socketmethode verwendet werden soll.
+ Der Offset (in Bytes) im Datenpuffer, in dem der Vorgang beginnt.
+ Die maximale Datenmenge in Bytes, die im Puffer gesendet oder empfangen werden soll.
+ Es wurden mehrdeutige Puffer angegeben.Diese Ausnahme tritt auf, wenn die -Eigenschaft nicht NULL ist und die -Eigenschaft ebenfalls nicht NULL ist.
+ Ein Argument lag außerhalb des gültigen Bereichs.Diese Ausnahme tritt auf, wenn der -Parameter kleiner als 0 (null) oder größer als die Länge des Arrays in der -Eigenschaft ist.Diese Ausnahme tritt außerdem auf, wenn der -Parameter kleiner als 0 (null) oder größer als die Länge des Arrays in der -Eigenschaft abzüglich des -Parameters ist.
+
+
+ Legt den Datenpuffer fest, der mit einer asynchronen Socketmethode verwendet werden soll.
+ Der Offset (in Bytes) im Datenpuffer, in dem der Vorgang beginnt.
+ Die maximale Datenmenge in Bytes, die im Puffer gesendet oder empfangen werden soll.
+ Ein Argument lag außerhalb des gültigen Bereichs.Diese Ausnahme tritt auf, wenn der -Parameter kleiner als 0 (null) oder größer als die Länge des Arrays in der -Eigenschaft ist.Diese Ausnahme tritt außerdem auf, wenn der -Parameter kleiner als 0 (null) oder größer als die Länge des Arrays in der -Eigenschaft abzüglich des -Parameters ist.
+
+
+ Ruft das Ergebnis des asynchronen Socketvorgangs ab oder legt dieses fest.
+ Ein , der das Ergebnis des asynchronen Socketvorgangs darstellt.
+
+
+ Ruft ein Benutzer- oder Anwendungsobjekt ab, das diesem asynchronen Socketvorgang zugeordnet ist, oder legt es fest.
+ Ein Objekt, das das Benutzer- oder Anwendungsobjekt darstellt, das diesem asynchronen Socketvorgang zugeordnet ist.
+
+
+ Der Typ des asynchronen Socketvorgangs, der zuletzt mit diesem Kontextobjekt ausgeführt wurde.
+
+
+ Ein Accept-Socketvorgang.
+
+
+ Ein Connect-Socketvorgang.
+
+
+ Keiner der Socketvorgänge.
+
+
+ Ein Receive-Socketvorgang.
+
+
+ Ein ReceiveFrom-Socketvorgang.
+
+
+ Ein Send-Socketvorgang.
+
+
+ Ein SendTo-Socketvorgang.
+
+
+ Definiert Konstanten, die von der -Methode verwendet werden.
+
+
+ Deaktiviert das Senden und Empfangen für einen .Dieses Feld ist konstant.
+
+
+ Deaktiviert das Empfangen für einen .Dieses Feld ist konstant.
+
+
+ Deaktiviert das Senden für einen .Dieses Feld ist konstant.
+
+
+ Gibt den Sockettyp an, der von einer Instanz der -Klasse dargestellt wird.
+
+
+ Unterstützt Datagramme, die verbindungslose, unzuverlässige Meldungen mit einer festen (i. d. R. kleinen) maximalen Länge sind.Meldungen können verloren gehen, doppelt oder in der falschen Reihenfolge empfangen werden.Ein vom Typ benötigt vor dem Senden und Empfangen von Daten keine Verbindung und kann mit mehreren Peers kommunizieren. verwendet das Datagram-Protokoll () und die .
+
+
+ Unterstützt zuverlässige, bidirektionale, verbindungsbasierte Bytestreams, bei denen keine Daten dupliziert und die Begrenzungen nicht beibehalten werden.Ein Socket dieses Typs kommuniziert mit einem einzigen Peer und benötigt vor dem Beginn der Kommunikation eine Verbindung mit einem Remotehost. verwendet das Transmission Control Protocol () und das InterNetwork.
+
+
+ Gibt einen unbekannten Socket-Typ an.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/es/System.Net.Sockets.xml b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/es/System.Net.Sockets.xml
new file mode 100644
index 0000000..00f90a3
--- /dev/null
+++ b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/es/System.Net.Sockets.xml
@@ -0,0 +1,406 @@
+
+
+
+ System.Net.Sockets
+
+
+
+ Especifica los protocolos que admite la clase .
+
+
+ Protocolo de control de transporte.
+
+
+ Protocolo de datagramas de usuarios.
+
+
+ Protocolo desconocido.
+
+
+ Protocolo no especificado.
+
+
+ Implementa la interfaz de sockets Berkeley.
+
+
+ Inicializa una instancia nueva de la clase con la familia de direcciones, el tipo de socket y el protocolo que se especifiquen.
+ Uno de los valores de .
+ Uno de los valores de .
+ Uno de los valores de .
+ La combinación de , y tiene como resultado un socket no válido.
+
+
+ Inicializa una instancia nueva de la clase usando el tipo de socket y el protocolo que se especifiquen.
+ Uno de los valores de .
+ Uno de los valores de .
+ La combinación de y da como resultado un socket no válido.
+
+
+ Comienza una operación asincrónica para aceptar un intento de conexión entrante.
+ Devuelve true si la operación de E/S está pendiente.Al completar la operación se provoca el evento del parámetro .Devuelve false si la operación de E/S se completó de forma sincrónica.El evento del parámetro no se provoca y el objeto que se pasa como parámetro puede examinarse inmediatamente después de que se devuelva la llamada al método para recuperar el resultado de la operación.
+ Objeto que se usa para esta operación de socket asincrónica.
+ Un argumento no es válido.Esta excepción produce si el búfer proporcionado no es suficientemente grande.El búfer debe ser de al menos 2 bytes * (sizeof(SOCKADDR_STORAGE + 16).Esta excepción también se produce si se especifican varios búferes; es decir, si la propiedad no es null.
+ Un argumento está fuera de intervalo.La excepción produce si es menor que 0.
+ Se ha solicitado una operación no válida.Esta excepción se produce si el de aceptación no realiza escuchas para las conexiones o el socket aceptado está enlazado.Debe llamar al método y antes de llamar al método .Esta excepción también se produce si el socket ya está conectado o si ya hay una operación de socket en curso con el parámetro especificado.
+ Se ha producido un error al intentar obtener acceso al socket.Vea la sección Comentarios para obtener más información.
+ Se requiere Windows XP o posteriores para este método.
+ Se ha cerrado el objeto .
+
+
+ Obtiene la familia de direcciones de .
+ Uno de los valores de .
+
+
+ Asocia un objeto a un extremo local.
+
+ local que se va a asociar a .
+
+ es null.
+ Se ha producido un error al intentar obtener acceso al socket.Vea la sección Comentarios para obtener más información.
+ Se ha cerrado el objeto .
+ Una llamada situada más arriba en la pila de llamadas no dispone de permiso para la operación solicitada.
+
+
+
+
+
+
+
+
+ Cancela una solicitud asincrónica de una conexión a un host remoto.
+ Objeto que se usa para solicitar la conexión al host remoto llamando a uno de los métodos .
+ El valor del parámetro y no puede ser null.
+ Se ha producido un error al intentar obtener acceso al socket.
+ Se ha cerrado el objeto .
+ Una llamada situada más arriba en la pila de llamadas no dispone de permiso para la operación solicitada.
+
+
+ Comienza una solicitud asincrónica para una conexión a host remoto.
+ Devuelve true si la operación de E/S está pendiente.Al completar la operación se provoca el evento del parámetro .Devuelve false si la operación de E/S se completó de forma sincrónica.En ese caso, el evento del parámetro no se provoca y el objeto que se pasa como parámetro puede examinarse inmediatamente después de que se devuelva la llamada al método para recuperar el resultado de la operación.
+ Objeto que se usa para esta operación de socket asincrónica.
+ Un argumento no es válido.Esta excepción también se produce si se especifican varios búferes; es decir, si la propiedad no es null.
+ El valor del parámetro y no puede ser null.
+ El objeto está escuchando o ya hay una operación de socket en curso que utiliza el objeto especificado en el parámetro .
+ Se ha producido un error al intentar obtener acceso al socket.Vea la sección Comentarios para obtener más información.
+ Se requiere Windows XP o posteriores para este método.Esta excepción también se produce si el extremo local y no son la misma familia de direcciones.
+ Se ha cerrado el objeto .
+ Una llamada situada más arriba en la pila de llamadas no dispone de permiso para la operación solicitada.
+
+
+ Comienza una solicitud asincrónica para una conexión a host remoto.
+ Devuelve true si la operación de E/S está pendiente.Al completar la operación se provoca el evento del parámetro .Devuelve false si la operación de E/S se completó de forma sincrónica.En ese caso, el evento del parámetro no se provoca y el objeto que se pasa como parámetro puede examinarse inmediatamente después de que se devuelva la llamada al método para recuperar el resultado de la operación.
+ Uno de los valores de .
+ Uno de los valores de .
+ Objeto que se usa para esta operación de socket asincrónica.
+ Un argumento no es válido.Esta excepción también se produce si se especifican varios búferes; es decir, si la propiedad no es null.
+ El valor del parámetro y no puede ser null.
+ El objeto está escuchando o ya hay una operación de socket en curso que utiliza el objeto especificado en el parámetro .
+ Se ha producido un error al intentar obtener acceso al socket.Vea la sección Comentarios para obtener más información.
+ Se requiere Windows XP o posteriores para este método.Esta excepción también se produce si el extremo local y no son la misma familia de direcciones.
+ Se ha cerrado el objeto .
+ Una llamada situada más arriba en la pila de llamadas no dispone de permiso para la operación solicitada.
+
+
+ Obtiene un valor que indica si se conecta con un host remoto a partir de la última operación u .
+ Es true si el objeto estaba conectado a un recurso remoto desde la operación más reciente; de lo contrario, es false.
+
+
+ Libera todos los recursos usados por la instancia actual de la clase .
+
+
+ Libera los recursos no administrados que utiliza el objeto y, de forma opcional, desecha los recursos administrados.
+ Es true para liberar los recursos administrados y no administrados; es false para liberar sólo los recursos no administrados.
+
+
+ Libera los recursos utilizados por la clase .
+
+
+ Coloca un objeto en un estado de escucha.
+ Longitud máxima de la cola de conexiones pendientes.
+ Se ha producido un error al intentar obtener acceso al socket.Vea la sección Comentarios para obtener más información.
+ Se ha cerrado el objeto .
+
+
+
+
+
+
+
+ Obtiene el extremo local.
+
+ que utiliza el para las comunicaciones.
+ Se ha producido un error al intentar obtener acceso al socket.Vea la sección Comentarios para obtener más información.
+ Se ha cerrado el objeto .
+
+
+
+
+
+
+
+ Obtiene o establece un valor de que especifica si la secuencia está utilizando el algoritmo de Nagle.
+ false si utiliza el algoritmo de Nagle; de lo contrario, true.El valor predeterminado es false.
+ Error al intentar obtener acceso a .Vea la sección Comentarios para obtener más información.
+ Se ha cerrado el objeto .
+
+
+
+
+
+
+
+ Indica si el sistema operativo subyacente y los adaptadores de red admiten la versión 4 del protocolo de Internet (IPv4).
+ Es true si el sistema operativo y los adaptadores de red admiten el protocolo IPv4; de lo contrario, es false.
+
+
+ Indica si el sistema operativo subyacente y los adaptadores de red admiten la versión 6 del protocolo Internet (IPv6).
+ true si el sistema operativo y los adaptadores de red admiten el protocolo IPv6; de lo contrario, false.
+
+
+ Obtiene el tipo de protocolo de .
+ Uno de los valores de .
+
+
+ Comienza una solicitud asincrónica para recibir los datos de un objeto conectado.
+ Devuelve true si la operación de E/S está pendiente.Al completar la operación se provoca el evento del parámetro .Devuelve false si la operación de E/S se completó de forma sincrónica.En ese caso, el evento del parámetro no se provoca y el objeto que se pasa como parámetro puede examinarse inmediatamente después de que se devuelva la llamada al método para recuperar el resultado de la operación.
+ Objeto que se usa para esta operación de socket asincrónica.
+ Un argumento no era válido.Las propiedades o del parámetro deben hacer referencia a los búferes válidos.Se puede establecer una de estas propiedades, pero no ambas al mismo tiempo.
+ Ya hay una operación de socket en curso que utiliza el objeto especificado en el parámetro .
+ Se requiere Windows XP o posteriores para este método.
+ Se ha cerrado el objeto .
+ Se ha producido un error al intentar obtener acceso al socket.Vea la sección Comentarios para obtener más información.
+
+
+ Obtiene o establece un valor que especifica el tamaño del búfer de recepción de .
+
+ que contiene el tamaño, en bytes, del búfer de recepción.El valor predeterminado es 8192
+ Se ha producido un error al intentar obtener acceso al socket.
+ Se ha cerrado el objeto .
+ El valor especificado para una operación de establecimiento es menor que 0.
+
+
+
+
+
+
+
+ Comienza a recibir asincrónicamente los datos de un dispositivo de red especificado.
+ Devuelve true si la operación de E/S está pendiente.Al completar la operación se provoca el evento del parámetro .Devuelve false si la operación de E/S se completó de forma sincrónica.En ese caso, el evento del parámetro no se provoca y el objeto que se pasa como parámetro puede examinarse inmediatamente después de que se devuelva la llamada al método para recuperar el resultado de la operación.
+ Objeto que se usa para esta operación de socket asincrónica.
+
+ no puede ser null.
+ Ya hay una operación de socket en curso que utiliza el objeto especificado en el parámetro .
+ Se requiere Windows XP o posteriores para este método.
+ Se ha cerrado el objeto .
+ Se ha producido un error al intentar obtener acceso al socket.
+
+
+ Obtiene el extremo remoto.
+
+ con el que está comunicando el .
+ Se ha producido un error al intentar obtener acceso al socket.Vea la sección Comentarios para obtener más información.
+ Se ha cerrado el objeto .
+
+
+
+
+
+
+
+ Envía datos de forma asincrónica a un objeto conectado.
+ Devuelve true si la operación de E/S está pendiente.Al completar la operación se provoca el evento del parámetro .Devuelve false si la operación de E/S se completó de forma sincrónica.En ese caso, el evento del parámetro no se provoca y el objeto que se pasa como parámetro puede examinarse inmediatamente después de que se devuelva la llamada al método para recuperar el resultado de la operación.
+ Objeto que se usa para esta operación de socket asincrónica.
+ Las propiedades o del parámetro deben hacer referencia a los búferes válidos.Se puede establecer una de estas propiedades, pero no ambas al mismo tiempo.
+ Ya hay una operación de socket en curso que utiliza el objeto especificado en el parámetro .
+ Se requiere Windows XP o posteriores para este método.
+ Se ha cerrado el objeto .
+ El no está conectado todavía o no se obtuvo a través de un método , o .
+
+
+ Obtiene o establece un valor que especifica el tamaño del búfer de envío de .
+
+ que contiene el tamaño, en bytes, del búfer de envío.El valor predeterminado es 8192
+ Se ha producido un error al intentar obtener acceso al socket.
+ Se ha cerrado el objeto .
+ El valor especificado para una operación de establecimiento es menor que 0.
+
+
+
+
+
+
+
+ Envía datos asincrónicamente a un determinado host remoto.
+ Devuelve true si la operación de E/S está pendiente.Al completar la operación se provoca el evento del parámetro .Devuelve false si la operación de E/S se completó de forma sincrónica.En ese caso, el evento del parámetro no se provoca y el objeto que se pasa como parámetro puede examinarse inmediatamente después de que se devuelva la llamada al método para recuperar el resultado de la operación.
+ Objeto que se usa para esta operación de socket asincrónica.
+
+ no puede ser null.
+ Ya hay una operación de socket en curso que utiliza el objeto especificado en el parámetro .
+ Se requiere Windows XP o posteriores para este método.
+ Se ha cerrado el objeto .
+ El protocolo especificado está orientado a la conexión, pero el no está conectado todavía.
+
+
+ Deshabilita los envíos y recepciones en un objeto .
+ Uno de los valores de que especifica la operación que ya no estará permitida.
+ Se ha producido un error al intentar obtener acceso al socket.Vea la sección Comentarios para obtener más información.
+ Se ha cerrado el objeto .
+
+
+
+
+
+
+
+ Obtiene o establece un valor que especifica el valor de período de vida (TTL) de los paquetes de protocolo Internet (IP) enviados por .
+ Valor TTL.
+ El valor TTL no se puede establecer en un número negativo.
+ Esta propiedad sólo se puede establecer para sockets de las familias de o .
+ Se ha producido un error al intentar obtener acceso al socket.También se devuelve este error cuando se ha intentado para establecer TTL en un valor superior a 255.
+ Se ha cerrado el objeto .
+
+
+
+
+
+
+
+ Representa una operación de socket asincrónico.
+
+
+ Crea una instancia de vacía.
+ No se admite la plataforma.
+
+
+ Obtiene o establece el socket que se va a usar o el socket creado para aceptar una conexión con un método de socket asincrónico.
+
+ que se va a usar o socket creado para aceptar una conexión con un método de socket asincrónico.
+
+
+ Obtiene el búfer de datos que se va a usar con un método de socket asincrónico.
+ Matriz que representa el búfer de datos que se va a usar con un método de socket asincrónico.
+
+
+ Obtiene o establece una matriz de búferes de datos que se va a usar con un método de socket asincrónico.
+
+ que representa una matriz de búferes de datos que se va a usar con un método de socket asincrónico.
+ Se han especificado búferes ambiguos en una operación de establecimiento.Esta excepción se produce si la propiedad se ha establecido en un valor no nulo y se intenta establecer la propiedad en un valor no nulo.
+
+
+ Obtiene el número de bytes transferidos en la operación de socket.
+
+ que contiene el número de bytes transferidos en la operación de socket.
+
+
+ Evento utilizado para completar una operación asincrónica.
+
+
+ Obtiene la excepción en el caso de un error de conexión cuando se usó .
+ Objeto que indica la causa del error de conexión que se produce cuando se especifica un objeto para la propiedad .
+
+
+ Objeto que se ha creado y conectado después de finalizar correctamente el método .
+ Objeto conectado.
+
+
+ Obtiene la cantidad máxima de datos, en bytes, que se van a enviar o recibir en una operación asincrónica.
+
+ que contiene la cantidad máxima de datos, en bytes, que se van a enviar o recibir.
+
+
+ Libera los recursos no administrados utilizados por la instancia de y, de forma opcional, elimina los recursos administrados.
+
+
+ Libera los recursos utilizados por la clase .
+
+
+ Obtiene el tipo de operación de socket más reciente realizada con este objeto de contexto.
+ Instancia de que indica el tipo de operación de socket más reciente realizada con este objeto de contexto.
+
+
+ Obtiene el desplazamiento, en bytes, en el búfer de datos al que hace referencia la propiedad .
+
+ que contiene el desplazamiento, en bytes, en el búfer de datos al que hace referencia la propiedad .
+
+
+ Representa un método al que se llama cuando se completa una operación asincrónica.
+ Evento que se señala.
+
+
+ Obtiene o establece el extremo IP remoto de una operación asincrónica.
+
+ que representa el extremo IP remoto para una operación asincrónica.
+
+
+ Establece el búfer de datos que se va a usar con un método de socket asincrónico.
+ Búfer de datos que se va a usar con un método de socket asincrónico.
+ Desplazamiento, en bytes, en el búfer de datos donde se inicia la operación.
+ Cantidad máxima de datos, en bytes, que se van a enviar o recibir en el búfer.
+ Se especificaron búferes ambiguos.Esta excepción se produce si las propiedades y tampoco son null.
+ Un argumento estaba fuera de intervalo.Esta excepción se produce si el parámetro es menor que cero o mayor que la longitud de la matriz en la propiedad .Esta excepción también se produce si el parámetro es menor que cero o mayor que la longitud de la matriz en la propiedad menos el parámetro .
+
+
+ Establece el búfer de datos que se va a usar con un método de socket asincrónico.
+ Desplazamiento, en bytes, en el búfer de datos donde se inicia la operación.
+ Cantidad máxima de datos, en bytes, que se van a enviar o recibir en el búfer.
+ Un argumento estaba fuera de intervalo.Esta excepción se produce si el parámetro es menor que cero o mayor que la longitud de la matriz en la propiedad .Esta excepción también se produce si el parámetro es menor que cero o mayor que la longitud de la matriz en la propiedad menos el parámetro .
+
+
+ Obtiene o establece el resultado de la operación de socket asincrónico.
+
+ que representa el resultado de la operación de socket asincrónico.
+
+
+ Obtiene o establece a un objeto de usuario o de aplicación asociado a esta operación de socket asincrónico.
+ Objeto que representa al objeto de usuario o de aplicación asociado a esta operación de socket asincrónico.
+
+
+ El tipo de operación del socket asincrónica más reciente realizada con este objeto de contexto.
+
+
+ Un operación Accept del socket.
+
+
+ Una operación Connect del socket.
+
+
+ Ninguna de las operaciones del socket.
+
+
+ Una operación Receive del socket.
+
+
+ Una operación ReceiveFrom del socket.
+
+
+ Una operación Send del socket.
+
+
+ Operación SendTo del socket.
+
+
+ Define las constantes utilizadas por el método .
+
+
+ Deshabilita un objeto tanto para el envío como para la recepción.Este campo es constante.
+
+
+ Deshabilita un objeto para la recepción.Este campo es constante.
+
+
+ Deshabilita un objeto para el envío.Este campo es constante.
+
+
+ Especifica el tipo de socket que representa una instancia de la clase .
+
+
+ Admite datagramas, que son mensajes no confiables sin conexión con una longitud máxima fija (normalmente corta).Los mensajes pueden perderse o duplicarse y llegar desordenados.Un objeto de tipo no necesita conexión antes de enviar y recibir datos, y puede comunicarse con varios elementos del mismo nivel. usa el protocolo de datagramas () y de .
+
+
+ Admite secuencias de bytes bidireccionales confiables, basadas en conexión, sin duplicidad de datos ni conservación de límites.Un objeto Socket de este tipo se comunica con un solo elemento del mismo nivel y requiere una conexión con el host remoto para poder iniciar la comunicación. usa el protocolo TCP (Protocolo de control de transporte, ) y la familia de direcciones InterNetwork.
+
+
+ Especifica un tipo de Socket desconocido.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/fr/System.Net.Sockets.xml b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/fr/System.Net.Sockets.xml
new file mode 100644
index 0000000..989053f
--- /dev/null
+++ b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/fr/System.Net.Sockets.xml
@@ -0,0 +1,426 @@
+
+
+
+ System.Net.Sockets
+
+
+
+ Spécifie les protocoles pris en charge par la classe .
+
+
+ Protocole TCP (Transmission Control Protocol).
+
+
+ Protocole UDP (User Datagram Protocol).
+
+
+ Protocole inconnu.
+
+
+ Protocole non spécifié.
+
+
+ Implémente l'interface de sockets Berkeley.
+
+
+ Initialise une nouvelle instance de la classe en utilisant la famille d'adresses, le type de socket et le protocole spécifiés.
+ Une des valeurs de .
+ Une des valeurs de .
+ Une des valeurs de .
+ La combinaison de , et crée un socket non valide.
+
+
+ Initialise une nouvelle instance de la classe à l'aide du type de socket et du protocole spécifiés.
+ Une des valeurs de .
+ Une des valeurs de .
+ La combinaison de et crée un socket non valide.
+
+
+ Démarre une opération asynchrone pour accepter une tentative de connexion entrante.
+ Retourne la valeur true si l'opération d'E/S est en attente.L'événement sur le paramètre sera déclenché une fois l'opération terminée.Retourne la valeur false si l'opération d'E/S a été terminée de manière synchrone.L'événement sur le paramètre ne sera pas déclenché et l'objet transmis en tant que paramètre peut être examiné immédiatement après que l'appel de méthode a été retourné pour extraire le résultat de l'opération.
+ Objet à utiliser pour cette opération de socket asynchrone.
+ Un argument n'est pas valide.Cette exception se produit si la mémoire tampon fournie n'est pas assez grande.La mémoire tampon doit être d'au moins 2 * (taille de (SOCKADDR_STORAGE + 16) octets.Cette exception se produit également si plusieurs mémoires tampons sont spécifiées, la propriété n'est pas null.
+ Un argument est hors limites.L'exception se produit si est inférieur à 0.
+ Une opération incorrecte a été demandée.Cette exception se produit si le acceptant n'écoute pas les connexions ou si le socket accepté est lié.Vous devez appeler les méthodes et avant d'appeler la méthode .Cette exception se produit également si le socket est déjà connecté ou si une opération de socket utilisait déjà le paramètre de spécifié.
+ Une erreur s'est produite lors de la tentative d'accès au socket.Pour plus d'informations, consultez la section Notes.
+ Windows XP ou version ultérieure est requis pour cette méthode.
+
+ a été fermé.
+
+
+ Obtient la famille d'adresses de .
+ Une des valeurs de .
+
+
+ Associe à un point de terminaison local.
+
+ local à associer à .
+
+ a la valeur null.
+ Une erreur s'est produite lors de la tentative d'accès au socket.Pour plus d'informations, consultez la section Notes.
+
+ a été fermé.
+ Un appelant situé plus haut dans la pile des appels n'a pas l'autorisation pour l'opération demandée.
+
+
+
+
+
+
+
+
+ Annule une requête asynchrone pour une connexion d'hôte distant.
+ Objet utilisé pour demander la connexion à l'hôte distant en appelant l'une des méthodes .
+ Le paramètre ne peut pas être null et ne peut pas être vide.
+ Une erreur s'est produite lors de la tentative d'accès au socket.
+
+ a été fermé.
+ Un appelant situé plus haut dans la pile des appels n'a pas l'autorisation pour l'opération demandée.
+
+
+ Démarre une demande asynchrone pour une connexion à un hôte distant.
+ Retourne la valeur true si l'opération d'E/S est en attente.L'événement sur le paramètre sera déclenché une fois l'opération terminée.Retourne la valeur false si l'opération d'E/S a été terminée de manière synchrone.Dans ce cas, l'événement sur le paramètre ne sera pas déclenché et l'objet transmis en tant que paramètre peut être examiné immédiatement après que l'appel de méthode a été retourné pour extraire le résultat de l'opération.
+ Objet à utiliser pour cette opération de socket asynchrone.
+ Un argument n'est pas valide.Cette exception se produit si plusieurs mémoires tampons sont spécifiées, la propriété n'est pas null.
+ Le paramètre ne peut pas être null et ne peut pas être vide.
+
+ est à l'écoute ou une opération de socket utilisant l'objet spécifié dans le paramètre spécifié était déjà en cours.
+ Une erreur s'est produite lors de la tentative d'accès au socket.Pour plus d'informations, consultez la section Notes.
+ Windows XP ou version ultérieure est requis pour cette méthode.Cette exception se produit également si le point de terminaison local et les ne sont pas la même famille d'adresses.
+
+ a été fermé.
+ Un appelant situé plus haut dans la pile des appels n'a pas l'autorisation pour l'opération demandée.
+
+
+ Démarre une demande asynchrone pour une connexion à un hôte distant.
+ Retourne la valeur true si l'opération d'E/S est en attente.L'événement sur le paramètre sera déclenché une fois l'opération terminée.Retourne la valeur false si l'opération d'E/S a été terminée de manière synchrone.Dans ce cas, l'événement sur le paramètre ne sera pas déclenché et l'objet transmis en tant que paramètre peut être examiné immédiatement après que l'appel de méthode a été retourné pour extraire le résultat de l'opération.
+ Une des valeurs de .
+ Une des valeurs de .
+ Objet à utiliser pour cette opération de socket asynchrone.
+ Un argument n'est pas valide.Cette exception se produit si plusieurs mémoires tampons sont spécifiées, la propriété n'est pas null.
+ Le paramètre ne peut pas être null et ne peut pas être vide.
+
+ est à l'écoute ou une opération de socket utilisant l'objet spécifié dans le paramètre spécifié était déjà en cours.
+ Une erreur s'est produite lors de la tentative d'accès au socket.Pour plus d'informations, consultez la section Notes.
+ Windows XP ou version ultérieure est requis pour cette méthode.Cette exception se produit également si le point de terminaison local et les ne sont pas la même famille d'adresses.
+
+ a été fermé.
+ Un appelant situé plus haut dans la pile des appels n'a pas l'autorisation pour l'opération demandée.
+
+
+ Obtient une valeur qui indique si est connecté à un hôte distant depuis la dernière opération ou .
+ true si était connecté à une ressource distante lors de l'opération la plus récente ; sinon, false.
+
+
+ Libère toutes les ressources utilisées par l'instance actuelle de la classe .
+
+
+ Libère les ressources non managées utilisées par et supprime éventuellement les ressources managées.
+ true pour libérer les ressources managées et non managées ; false pour libérer uniquement les ressources non managées.
+
+
+ Libère les ressources utilisées par la classe .
+
+
+ Met dans un état d'écoute.
+ Longueur maximale de la file d'attente des connexions en attente.
+ Une erreur s'est produite lors de la tentative d'accès au socket.Pour plus d'informations, consultez la section Notes.
+
+ a été fermé.
+
+
+
+
+
+
+
+ Obtient le point de terminaison local.
+
+ que utilise pour les communications.
+ Une erreur s'est produite lors de la tentative d'accès au socket.Pour plus d'informations, consultez la section Notes.
+
+ a été fermé.
+
+
+
+
+
+
+
+ Obtient ou définit une valeur spécifiant si le flux de données utilise l'algorithme Nagle.
+ false si utilise l'algorithme Nagle ; sinon, true.La valeur par défaut est false.
+ Une erreur s'est produite lors de la tentative d'accès à .Pour plus d'informations, consultez la section Notes.
+
+ a été fermé.
+
+
+
+
+
+
+
+ Indique si le système d'exploitation et les cartes réseau sous-jacents prennent en charge le protocole IPv4 (Internet Protocol version 4).
+ true si le système d'exploitation et les cartes réseau prennent en charge le protocole IPv4 ; sinon, false.
+
+
+ Indique si le système d'exploitation et les cartes réseau sous-jacents prennent en charge le protocole IPv6 (Internet Protocol version 6).
+ true si le système d'exploitation et les cartes réseau prennent en charge le protocole IPv6 ; sinon, false.
+
+
+ Obtient le type de protocole de .
+ Une des valeurs de .
+
+
+ Démarre une demande asynchrone pour recevoir les données d'un objet connecté.
+ Retourne la valeur true si l'opération d'E/S est en attente.L'événement sur le paramètre sera déclenché une fois l'opération terminée.Retourne la valeur false si l'opération d'E/S a été terminée de manière synchrone.Dans ce cas, l'événement sur le paramètre ne sera pas déclenché et l'objet transmis en tant que paramètre peut être examiné immédiatement après que l'appel de méthode a été retourné pour extraire le résultat de l'opération.
+ Objet à utiliser pour cette opération de socket asynchrone.
+ Un argument n'était pas valide.La propriété ou sur le paramètre de doit référencer des mémoires tampon valides.L'une ou l'autre de ces propriétés peut être définie, mais pas les deux à la fois.
+ Une opération de socket utilisant l'objet spécifié dans le paramètre spécifié était déjà en cours.
+ Windows XP ou version ultérieure est requis pour cette méthode.
+
+ a été fermé.
+ Une erreur s'est produite lors de la tentative d'accès au socket.Pour plus d'informations, consultez la section Notes.
+
+
+ Obtient ou définit une valeur spécifiant la taille de la mémoire tampon de réception de .
+
+ contenant la taille de la mémoire tampon de réception en octets.La valeur par défaut est 8192.
+ Une erreur s'est produite lors de la tentative d'accès au socket.
+
+ a été fermé.
+ La valeur spécifiée pour une opération ensembliste est inférieure à 0.
+
+
+
+
+
+
+
+ Démarre la réception asynchrone de données à partir d'un périphérique réseau spécifié.
+ Retourne la valeur true si l'opération d'E/S est en attente.L'événement sur le paramètre sera déclenché une fois l'opération terminée.Retourne la valeur false si l'opération d'E/S a été terminée de manière synchrone.Dans ce cas, l'événement sur le paramètre ne sera pas déclenché et l'objet transmis en tant que paramètre peut être examiné immédiatement après que l'appel de méthode a été retourné pour extraire le résultat de l'opération.
+ Objet à utiliser pour cette opération de socket asynchrone.
+
+ ne peut pas être Null.
+ Une opération de socket utilisant l'objet spécifié dans le paramètre spécifié était déjà en cours.
+ Windows XP ou version ultérieure est requis pour cette méthode.
+
+ a été fermé.
+ Une erreur s'est produite lors de la tentative d'accès au socket.
+
+
+ Obtient le point de terminaison distant.
+
+ avec lequel communique.
+ Une erreur s'est produite lors de la tentative d'accès au socket.Pour plus d'informations, consultez la section Notes.
+
+ a été fermé.
+
+
+
+
+
+
+
+ Envoie des données de façon asynchrone à un objet connecté.
+ Retourne la valeur true si l'opération d'E/S est en attente.L'événement sur le paramètre sera déclenché une fois l'opération terminée.Retourne la valeur false si l'opération d'E/S a été terminée de manière synchrone.Dans ce cas, l'événement sur le paramètre ne sera pas déclenché et l'objet transmis en tant que paramètre peut être examiné immédiatement après que l'appel de méthode a été retourné pour extraire le résultat de l'opération.
+ Objet à utiliser pour cette opération de socket asynchrone.
+ La propriété ou sur le paramètre de doit référencer des mémoires tampon valides.L'une ou l'autre de ces propriétés peut être définie, mais pas les deux à la fois.
+ Une opération de socket utilisant l'objet spécifié dans le paramètre spécifié était déjà en cours.
+ Windows XP ou version ultérieure est requis pour cette méthode.
+
+ a été fermé.
+ Le n'est pas encore connecté ou n'a pas été obtenu via une méthode , ou .
+
+
+ Obtient ou définit une valeur spécifiant la taille de la mémoire tampon d'envoi de .
+
+ contenant la taille de la mémoire tampon d'envoi en octets.La valeur par défaut est 8192.
+ Une erreur s'est produite lors de la tentative d'accès au socket.
+
+ a été fermé.
+ La valeur spécifiée pour une opération ensembliste est inférieure à 0.
+
+
+
+
+
+
+
+ Envoie des données de façon asynchrone à un hôte distant spécifique.
+ Retourne la valeur true si l'opération d'E/S est en attente.L'événement sur le paramètre sera déclenché une fois l'opération terminée.Retourne la valeur false si l'opération d'E/S a été terminée de manière synchrone.Dans ce cas, l'événement sur le paramètre ne sera pas déclenché et l'objet transmis en tant que paramètre peut être examiné immédiatement après que l'appel de méthode a été retourné pour extraire le résultat de l'opération.
+ Objet à utiliser pour cette opération de socket asynchrone.
+
+ ne peut pas être Null.
+ Une opération de socket utilisant l'objet spécifié dans le paramètre spécifié était déjà en cours.
+ Windows XP ou version ultérieure est requis pour cette méthode.
+
+ a été fermé.
+ Le protocole spécifié est orienté connexion, mais le n'est pas encore connecté.
+
+
+ Désactive les envois et les réceptions sur un .
+ Une des valeurs de spécifiant l'opération qui ne sera plus autorisée.
+ Une erreur s'est produite lors de la tentative d'accès au socket.Pour plus d'informations, consultez la section Notes.
+
+ a été fermé.
+
+
+
+
+
+
+
+ Obtient ou définit une valeur qui spécifie la durée de vie des paquets IP (Internet Protocol) envoyés par .
+ Durée de vie.
+ La valeur TTL ne peut pas être un nombre négatif.
+ Cette propriété ne peut être définie que pour les sockets dans les familles ou .
+ Une erreur s'est produite lors de la tentative d'accès au socket.Cette erreur est également retournée lorsqu'une tentative a été faite pour affecter à TTL une valeur supérieure à 255.
+
+ a été fermé.
+
+
+
+
+
+
+
+ Représente une opération de socket asynchrone.
+
+
+ Crée une instance vide.
+ La plateforme n'est pas prise en charge.
+
+
+ Obtient ou définit le socket à utiliser ou le socket créé pour accepter une connexion avec une méthode de socket asynchrone.
+
+ à utiliser ou socket créé pour accepter une connexion avec une méthode de socket asynchrone.
+
+
+ Obtient la mémoire tampon des données à utiliser avec une méthode de socket asynchrone.
+ Tableau qui représente la mémoire tampon des données à utiliser avec une méthode de socket asynchrone.
+
+
+ Obtient ou définit un tableau de la mémoire tampon de données à utiliser avec une méthode de socket asynchrone.
+
+ qui représente un tableau de mémoires tampons de données à utiliser avec une méthode de socket asynchrone.
+ Des mémoires tampon ambiguës sont spécifiées sur une opération ensembliste.Cette exception se produit si la propriété a eu une valeur non NULL et une tentative a été faite pour affecter à la propriété une valeur non NULL.
+
+
+ Obtient le nombre d'octets transférés dans l'opération de socket.
+
+ qui contient le nombre d'octets transférés dans l'opération de socket.
+
+
+ Événement utilisé pour terminer une opération asynchrone.
+
+
+ Obtient l'exception dans le cas d'un échec de connexion lorsqu'un a été utilisé.
+
+ qui indique la cause de l'erreur de connexion lorsqu'un a été spécifié pour la propriété .
+
+
+ Objet créé et connecté après l'exécution correcte de la méthode .
+ Objet connecté.
+
+
+ Obtient la quantité maximale de données, en octets, à envoyer ou recevoir dans une opération asynchrone.
+
+ qui contient la quantité maximale de données, en octets, à envoyer ou recevoir.
+
+
+ Libère les ressources non managées utilisées par l'instance et supprime éventuellement les ressources managées.
+
+
+ Libère les ressources utilisées par la classe .
+
+
+ Obtient le type d'opération de socket exécuté le plus récemment avec cet objet de contexte.
+ Instance qui indique le type d'opération de socket exécutée le plus récemment avec cet objet de contexte.
+
+
+ Obtient l'offset, en octets, dans la mémoire tampon de données référencée par la propriété .
+
+ qui contient l'offset, en octets, dans la mémoire tampon de données référencée par la propriété .
+
+
+ Représente une méthode qui est appelée lorsqu'une opération asynchrone se termine.
+ Événement qui est signalé.
+
+
+ Obtient ou définit le point de terminaison IP distant d'une opération asynchrone.
+
+ qui représente le point de terminaison IP distant d'une opération asynchrone.
+
+
+ Définit la mémoire tampon de données à utiliser avec une méthode de socket asynchrone.
+ Mémoire tampon de données à utiliser avec une méthode de socket asynchrone.
+ Offset, en octets, dans la mémoire tampon de données où l'opération démarre.
+ Quantité maximale de données, en octets, à envoyer ou à recevoir dans la mémoire tampon.
+ Des mémoires tampons ambiguës sont spécifiées.Cette exception se produit si la valeur des propriétés et n'est pas Null.
+ Un argument est hors limites.Cette exception se produit si le paramètre est inférieur à zéro ou supérieur à la longueur du tableau dans la propriété .Cette exception se produit également si le paramètre est inférieur à zéro ou supérieur à la longueur du tableau dans la propriété moins le paramètre .
+
+
+ Définit la mémoire tampon de données à utiliser avec une méthode de socket asynchrone.
+ Offset, en octets, dans la mémoire tampon de données où l'opération démarre.
+ Quantité maximale de données, en octets, à envoyer ou à recevoir dans la mémoire tampon.
+ Un argument est hors limites.Cette exception se produit si le paramètre est inférieur à zéro ou supérieur à la longueur du tableau dans la propriété .Cette exception se produit également si le paramètre est inférieur à zéro ou supérieur à la longueur du tableau dans la propriété moins le paramètre .
+
+
+ Obtient ou définit le résultat de l'opération de socket asynchrone.
+
+ qui représente le résultat final de l'opération de socket asynchrone.
+
+
+ Obtient ou définit un objet utilisateur ou application associé à cette opération de socket asynchrone.
+ Objet qui représente l'objet utilisateur ou application associé à cette opération de socket asynchrone.
+
+
+ Type d'opération de socket asynchrone exécutée le plus récemment avec cet objet de contexte.
+
+
+ Opération Accept du socket.
+
+
+ Opération Connect du socket.
+
+
+ Aucune des opérations de socket.
+
+
+ Opération Receive du socket.
+
+
+ Opération ReceiveFrom du socket.
+
+
+ Opération Send du socket.
+
+
+ Opération SendTo du socket.
+
+
+ Définit les constantes qui sont utilisées par la méthode .
+
+
+ Désactive pour l'envoi et la réception.Ce champ est constant.
+
+
+ Désactive pour la réception.Ce champ est constant.
+
+
+ Désactive pour l'envoi.Ce champ est constant.
+
+
+ Spécifie le type de socket que représente une instance de la classe .
+
+
+ Prend en charge des datagrammes, qui sont des messages peu fiables, sans connexion, d'une longueur maximale fixe (généralement réduite).Des messages pourraient être perdus ou dupliqués et arriver dans le désordre.Un de type ne requiert aucune connexion avant d'envoyer et de recevoir des données, et peut communiquer avec plusieurs homologues.Le champ utilise le protocole UDP () et le champ .
+
+
+ Prend en charge les flux d'octets fiables, bidirectionnels, orientés connexion sans la duplication de données et sans préservation de limites.Un Socket de ce type communique avec un homologue unique et nécessite une connexion d'hôte distant avant que la communication puisse débuter.Le champ utilise le protocole TCP () et InterNetwork.
+
+
+ Spécifie un type Socket inconnu.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/it/System.Net.Sockets.xml b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/it/System.Net.Sockets.xml
new file mode 100644
index 0000000..1a7fb57
--- /dev/null
+++ b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/it/System.Net.Sockets.xml
@@ -0,0 +1,398 @@
+
+
+
+ System.Net.Sockets
+
+
+
+ Specifica il protocollo supportato dalla classe .
+
+
+ Protocollo TCP (Transmission Control Protocol).
+
+
+ Protocollo UDP (User Datagram Protocol).
+
+
+ Protocollo sconosciuto.
+
+
+ Protocollo non specificato.
+
+
+ Implementa l'interfaccia socket Berkeley.
+
+
+ Inizializza una nuova istanza della classe utilizzando la famiglia di indirizzi, il tipo di socket e il protocollo specificati.
+ Uno dei valori di .
+ Uno dei valori di .
+ Uno dei valori di .
+ Il risultato della combinazione di , e è un socket non valido.
+
+
+ Inizializza una nuova istanza della classe utilizzando il tipo di socket e il protocollo specificati.
+ Uno dei valori di .
+ Uno dei valori di .
+ Il risultato della combinazione di e è un socket non valido.
+
+
+ Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso.
+ Restituisce true se l'operazione di I/O è in sospeso.Al completamento dell'operazione verrà generato l'evento sul parametro .Restituisce false se l'operazione di I/O è stata completata in modo sincrono.L'evento nel parametro non verrà generato e l'oggetto passato come parametro potrebbe essere esaminato immediatamente dopo che la chiamata al metodo ha restituito il risultato, per recuperare il risultato dell'operazione.
+ Oggetto da utilizzare per questa operazione socket asincrona.
+ Un argomento non è valido.Questa eccezione si verifica se il buffer fornito non è abbastanza grande.Il buffer deve essere di almeno 2 * (sizeof(SOCKADDR_STORAGE + 16) byte.Questa eccezione si verifica anche se sono specificati più buffer e la proprietà non è null.
+ Un argomento non è compreso nell'intervallo.L'eccezione si verifica se l'oggetto è minore di 0.
+ È stata richiesta un'operazione non valida.Questa eccezione si verifica se l'oggetto preposto ad accettare la connessione non è in attesa di connessioni o se il socket accettato è associato.È necessario chiamare il metodo e prima di chiamare il metodo .Questa eccezione si verifica anche se il socket è già connesso o se un'operazione socket era già in corso utilizzando il parametro specificato.
+ Si è verificato un errore durante il tentativo di accesso al socket.Per ulteriori informazioni vedere la sezione Osservazioni.
+ Per questo metodo è necessario Windows XP o versione successiva.
+ Il è stato chiuso.
+
+
+ Ottiene la famiglia di indirizzi del .
+ Uno dei valori di .
+
+
+ Associa un a un endpoint locale.
+
+ locale da associare al .
+
+ è null.
+ Si è verificato un errore durante il tentativo di accesso al socket.Per ulteriori informazioni vedere la sezione Osservazioni.
+ Il è stato chiuso.
+ Un chiamante nella parte superiore dello stack di chiamate non dispone dell'autorizzazione necessaria per l'operazione richiesta.
+
+
+
+
+
+
+
+
+ Annulla una richiesta asincrona di una connessione all'host remoto.
+ Oggetto utilizzato per richiedere la connessione all'host remoto chiamando uno dei metodi .
+ Il parametro non può essere Null e la proprietà non può essere Null.
+ Si è verificato un errore durante il tentativo di accesso al socket.
+ Il è stato chiuso.
+ Un chiamante nella parte superiore dello stack di chiamate non dispone dell'autorizzazione necessaria per l'operazione richiesta.
+
+
+ Avvia una richiesta asincrona di una connessione all'host remoto.
+ Restituisce true se l'operazione di I/O è in sospeso.Al completamento dell'operazione verrà generato l'evento sul parametro .Restituisce false se l'operazione di I/O è stata completata in modo sincrono.In questo caso, l'evento sul parametro non verrà generato e l'oggetto passato come parametro potrebbe essere esaminato immediatamente dopo che la chiamata al metodo è stata restituita per recuperare il risultato dell'operazione.
+ Oggetto da utilizzare per questa operazione socket asincrona.
+ Un argomento non è valido.Questa eccezione si verifica se sono specificati più buffer e la proprietà non è null.
+ Il parametro non può essere Null e la proprietà non può essere Null.
+
+ è in attesa o era già in corso un'operazione di socket che utilizza l'oggetto specificato nel parametro .
+ Si è verificato un errore durante il tentativo di accesso al socket.Per ulteriori informazioni vedere la sezione Osservazioni.
+ Per questo metodo è necessario Windows XP o versione successiva.Questa eccezione si verifica anche se l'endpoint locale e l'oggetto non appartengono alla stessa famiglia di indirizzi.
+ Il è stato chiuso.
+ Un chiamante nella parte superiore dello stack di chiamate non dispone dell'autorizzazione necessaria per l'operazione richiesta.
+
+
+ Avvia una richiesta asincrona di una connessione all'host remoto.
+ Restituisce true se l'operazione di I/O è in sospeso.Al completamento dell'operazione verrà generato l'evento sul parametro .Restituisce false se l'operazione di I/O è stata completata in modo sincrono.In questo caso, l'evento sul parametro non verrà generato e l'oggetto passato come parametro potrebbe essere esaminato immediatamente dopo che la chiamata al metodo è stata restituita per recuperare il risultato dell'operazione.
+ Uno dei valori di .
+ Uno dei valori di .
+ Oggetto da utilizzare per questa operazione socket asincrona.
+ Un argomento non è valido.Questa eccezione si verifica se sono specificati più buffer e la proprietà non è null.
+ Il parametro non può essere Null e la proprietà non può essere Null.
+
+ è in attesa o era già in corso un'operazione di socket che utilizza l'oggetto specificato nel parametro .
+ Si è verificato un errore durante il tentativo di accesso al socket.Per ulteriori informazioni vedere la sezione Osservazioni.
+ Per questo metodo è necessario Windows XP o versione successiva.Questa eccezione si verifica anche se l'endpoint locale e l'oggetto non appartengono alla stessa famiglia di indirizzi.
+ Il è stato chiuso.
+ Un chiamante nella parte superiore dello stack di chiamate non dispone dell'autorizzazione necessaria per l'operazione richiesta.
+
+
+ Ottiene un valore che indica se un si è connesso a un host remoto dall'ultima operazione o .
+ true se il è connesso a una risorsa remota nel corso dell'operazione più recente, in caso contrario false.
+
+
+ Rilascia tutte le risorse utilizzate dall'istanza corrente della classe .
+
+
+ Rilascia le risorse non gestite utilizzate dall'oggetto ed eventualmente elimina le risorse gestite.
+ true per liberare sia le risorse gestite che quelle non gestite; false per rilasciare solo le risorse non gestite.
+
+
+ Libera le risorse utilizzate dalla classe .
+
+
+ Colloca un in uno stato di attesa.
+ Lunghezza massima della coda delle connessioni in sospeso.
+ Si è verificato un errore durante il tentativo di accesso al socket.Per ulteriori informazioni vedere la sezione Osservazioni.
+ Il è stato chiuso.
+
+
+
+
+
+
+
+ Ottiene l'endpoint locale.
+ L'oggetto utilizzato dall'oggetto per le comunicazioni.
+ Si è verificato un errore durante il tentativo di accesso al socket.Per ulteriori informazioni vedere la sezione Osservazioni.
+ Il è stato chiuso.
+
+
+
+
+
+
+
+ Ottiene o imposta un valore che specifica se il di flusso utilizza l'algoritmo Nagle.
+ false se il utilizza l'algoritmo Nagle; in caso contrario, true.Il valore predefinito è false.
+ Si è verificato un errore durante il tentativo di accesso al .Per ulteriori informazioni vedere la sezione Osservazioni.
+ Il è stato chiuso.
+
+
+
+
+
+
+
+ Indica se il sistema operativo sottostante e gli adattatori di rete supportano il protocollo IPv4.
+ true se il sistema operativo e gli adattatori di rete supportano il protocollo IPv4. In caso contrario, false.
+
+
+ Indica se il sistema operativo sottostante e gli adattatori di rete supportano il protocollo IPv6.
+ true se il sistema operativo e gli adattatori di rete supportano il protocollo IPv6; in caso contrario, false.
+
+
+ Ottiene il tipo di protocollo del .
+ Uno dei valori di .
+
+
+ Avvia una richiesta asincrona per ricevere dati da un oggetto connesso.
+ Restituisce true se l'operazione di I/O è in sospeso.Al completamento dell'operazione verrà generato l'evento sul parametro .Restituisce false se l'operazione di I/O è stata completata in modo sincrono.In questo caso, l'evento sul parametro non verrà generato e l'oggetto passato come parametro potrebbe essere esaminato immediatamente dopo che la chiamata al metodo è stata restituita per recuperare il risultato dell'operazione.
+ Oggetto da utilizzare per questa operazione socket asincrona.
+ Un argomento non è valido.Le proprietà o sul parametro devono fare riferimento a buffer validi.È possibile impostare una di queste due proprietà, ma non entrambe contemporaneamente.
+ Era già in corso un'operazione di socket che utilizza l'oggetto specificato nel parametro .
+ Per questo metodo è necessario Windows XP o versione successiva.
+ Il è stato chiuso.
+ Si è verificato un errore durante il tentativo di accesso al socket.Per ulteriori informazioni vedere la sezione Osservazioni.
+
+
+ Ottiene o imposta un valore che specifica le dimensioni del buffer di ricezione del .
+
+ contenente le dimensioni, in byte, del buffer di ricezione.Il valore predefinito è 8192.
+ Si è verificato un errore durante il tentativo di accesso al socket.
+ Il è stato chiuso.
+ Il valore specificato per un'operazione di impostazione è minore di 0.
+
+
+
+
+
+
+
+ Inizia a ricevere dati in modalità asincrona da un dispositivo di rete specificato.
+ Restituisce true se l'operazione di I/O è in sospeso.Al completamento dell'operazione verrà generato l'evento sul parametro .Restituisce false se l'operazione di I/O è stata completata in modo sincrono.In questo caso, l'evento sul parametro non verrà generato e l'oggetto passato come parametro potrebbe essere esaminato immediatamente dopo che la chiamata al metodo è stata restituita per recuperare il risultato dell'operazione.
+ Oggetto da utilizzare per questa operazione socket asincrona.
+ L'oggetto non può essere null.
+ Era già in corso un'operazione di socket che utilizza l'oggetto specificato nel parametro .
+ Per questo metodo è necessario Windows XP o versione successiva.
+ Il è stato chiuso.
+ Si è verificato un errore durante il tentativo di accesso al socket.
+
+
+ Ottiene l'endpoint remoto.
+
+ con cui comunica il .
+ Si è verificato un errore durante il tentativo di accesso al socket.Per ulteriori informazioni vedere la sezione Osservazioni.
+ Il è stato chiuso.
+
+
+
+
+
+
+
+ Invia i dati in modo asincrono a un oggetto connesso.
+ Restituisce true se l'operazione di I/O è in sospeso.Al completamento dell'operazione verrà generato l'evento sul parametro .Restituisce false se l'operazione di I/O è stata completata in modo sincrono.In questo caso, l'evento sul parametro non verrà generato e l'oggetto passato come parametro potrebbe essere esaminato immediatamente dopo che la chiamata al metodo è stata restituita per recuperare il risultato dell'operazione.
+ Oggetto da utilizzare per questa operazione socket asincrona.
+ Le proprietà o sul parametro devono fare riferimento a buffer validi.È possibile impostare una di queste due proprietà, ma non entrambe contemporaneamente.
+ Era già in corso un'operazione di socket che utilizza l'oggetto specificato nel parametro .
+ Per questo metodo è necessario Windows XP o versione successiva.
+ Il è stato chiuso.
+ L'oggetto non è ancora connesso o non è stato ottenuto tramite un metodo , o .
+
+
+ Ottiene o imposta un valore che specifica le dimensioni del buffer di invio del .
+
+ contenente le dimensioni, in byte, del buffer di invio.Il valore predefinito è 8192.
+ Si è verificato un errore durante il tentativo di accesso al socket.
+ Il è stato chiuso.
+ Il valore specificato per un'operazione di impostazione è minore di 0.
+
+
+
+
+
+
+
+ Invia dati in modo asincrono a uno specifico host remoto.
+ Restituisce true se l'operazione di I/O è in sospeso.Al completamento dell'operazione verrà generato l'evento sul parametro .Restituisce false se l'operazione di I/O è stata completata in modo sincrono.In questo caso, l'evento sul parametro non verrà generato e l'oggetto passato come parametro potrebbe essere esaminato immediatamente dopo che la chiamata al metodo è stata restituita per recuperare il risultato dell'operazione.
+ Oggetto da utilizzare per questa operazione socket asincrona.
+ L'oggetto non può essere null.
+ Era già in corso un'operazione di socket che utilizza l'oggetto specificato nel parametro .
+ Per questo metodo è necessario Windows XP o versione successiva.
+ Il è stato chiuso.
+ Il protocollo specificato è orientato alla connessione, ma l'oggetto non è ancora connesso.
+
+
+ Disabilita le operazioni di invio e di ricezione su un .
+ Uno dei valori che specifica che l'operazione non sarà più consentita.
+ Si è verificato un errore durante il tentativo di accesso al socket.Per ulteriori informazioni vedere la sezione Osservazioni.
+ Il è stato chiuso.
+
+
+
+
+
+
+
+ Ottiene o imposta un valore che specifica la durata (TTL) dei pacchetti IP inviati dal .
+ La durata (TTL).
+ Non è possibile impostare il valore TTL su un numero negativo.
+ È possibile impostare questa proprietà solo per i socket inclusi nella famiglia o .
+ Si è verificato un errore durante il tentativo di accesso al socket.Questo errore viene restituito anche quando si tenta di impostare TTL su un valore superiore a 255.
+ Il è stato chiuso.
+
+
+
+
+
+
+
+ Rappresenta un'operazione socket asincrona.
+
+
+ Crea un'istanza vuota dell'oggetto .
+ La piattaforma non è supportata.
+
+
+ Ottiene o imposta il socket da utilizzare o il socket creato per accettare una connessione con un metodo socket asincrono.
+ Oggetto da utilizzare o socket creato per accettare una connessione con un metodo socket asincrono.
+
+
+ Ottiene il buffer di dati da utilizzare con un metodo socket asincrono.
+ Matrice che rappresenta il buffer di dati da utilizzare con un metodo socket asincrono.
+
+
+ Ottiene o imposta una matrice di buffer di dati da utilizzare con un metodo socket asincrono.
+ Matrice che rappresenta una matrice di buffer di dati da utilizzare con un metodo socket asincrono.
+ Esistono buffer ambigui specificati su un'operazione di impostazione.Questa eccezione si verifica se la proprietà è stata impostata su un valore non Null e si tenta di impostare la proprietà su un valore non Null.
+
+
+ Ottiene il numero di byte trasferiti nell'operazione socket.
+ Oggetto contenente il numero di byte trasferiti nell'operazione socket.
+
+
+ Evento utilizzato per completare un'operazione asincrona.
+
+
+ Ottiene l'eccezione nel caso di errore di connessione quando viene utilizzato .
+ Oggetto che indica la causa dell'errore di connessione quando è stato specificato un oggetto per la proprietà .
+
+
+ Oggetto creato e connesso dopo il completamento del metodo .
+ Oggetto connesso.
+
+
+ Ottiene la quantità massima di dati, in byte, da inviare o ricevere in un'operazione asincrona.
+ Oggetto che contiene la quantità massima di dati, in byte, da inviare o ricevere.
+
+
+ Rilascia le risorse non gestite utilizzate dall'istanza e facoltativamente elimina anche le risorse gestite.
+
+
+ Libera le risorse utilizzate dalla classe .
+
+
+ Ottiene il tipo di operazione socket eseguita più di recente con questo oggetto di contesto.
+ Istanza di che indica il tipo di operazione socket eseguita più di recente con questo oggetto di contesto.
+
+
+ Ottiene l'offset, in byte, nel buffer di dati a cui fa riferimento la proprietà .
+ Oggetto che contiene l'offset, in byte, nel buffer di dati a cui fa riferimento la proprietà .
+
+
+ Rappresenta un metodo chiamato quando un'operazione asincrona viene completata.
+ Evento segnalato.
+
+
+ Ottiene o imposta l'endpoint IP remoto per un'operazione asincrona.
+ Oggetto che rappresenta l'endpoint IP remoto per un'operazione asincrona.
+
+
+ Imposta il buffer di dati da utilizzare con un metodo socket asincrono.
+ Buffer di dati da utilizzare con un metodo socket asincrono.
+ Offset, in byte, nel buffer di dati dove viene avviata l'operazione.
+ Quantità massima di dati, in byte, da inviare o ricevere nel buffer.
+ Sono stati specificati buffer ambigui.Questa eccezione si verifica anche se le proprietà e non sono null.
+ Un argomento non è stato compreso nell'intervallo.Questa eccezione si verifica se il parametro è minore di zero o maggiore della lunghezza della matrice nella proprietà .Questa eccezione si verifica anche se il parametro è minore di zero o maggiore della lunghezza della matrice nella proprietà meno il parametro .
+
+
+ Imposta il buffer di dati da utilizzare con un metodo socket asincrono.
+ Offset, in byte, nel buffer di dati dove viene avviata l'operazione.
+ Quantità massima di dati, in byte, da inviare o ricevere nel buffer.
+ Un argomento non è stato compreso nell'intervallo.Questa eccezione si verifica se il parametro è minore di zero o maggiore della lunghezza della matrice nella proprietà .Questa eccezione si verifica anche se il parametro è minore di zero o maggiore della lunghezza della matrice nella proprietà meno il parametro .
+
+
+ Ottiene o imposta i risultati dell'operazione socket asincrona.
+ Oggetto che rappresenta il risultato dell'operazione socket asincrona.
+
+
+ Ottiene o imposta un oggetto utente o applicazione associato a questa operazione socket asincrona.
+ Oggetto che rappresenta l'oggetto utente o applicazione associato a questa operazione socket asincrona.
+
+
+ Tipo di operazione socket asincrona eseguita più di recente con questo oggetto di contesto.
+
+
+ Operazione socket Accept.
+
+
+ Operazione socket Connect.
+
+
+ Nessuna delle operazioni socket.
+
+
+ Operazione socket Receive.
+
+
+ Operazione socket ReceiveFrom.
+
+
+ Operazione socket Send.
+
+
+ Operazione socket SendTo.
+
+
+ Definisce le costanti utilizzate dal metodo .
+
+
+ Disabilita un per l'invio e la ricezione.Il campo è costante.
+
+
+ Disabilita un per la ricezione.Il campo è costante.
+
+
+ Disabilita un per l'invio.Il campo è costante.
+
+
+ Specifica il tipo di socket rappresentato da un'istanza della classe .
+
+
+ Supporta datagrammi, che sono messaggi senza connessione, non affidabili di lunghezza massima fissa (generalmente piccola).I messaggi potrebbero essere persi o duplicati e potrebbero arrivare non nell'ordine corretto.Un oggetto di tipo non richiede alcuna connessione prima dell'invio e della ricezione dei dati ed è in grado di comunicare con più peer. utilizza il Datagram Protocol () e l'oggetto .
+
+
+ Supporta flussi di byte affidabili, a due vie e orientati alla connessione senza la duplicazione di dati e senza la conservazione dei limiti.Un oggetto Socket di questo tipo comunica con un unico peer e richiede una connessione all'host remoto prima di poter avviare una comunicazione. utilizza il Transmission Control Protocol () e l'oggetto InterNetwork.
+
+
+ Specifica un tipo di Socket sconosciuto.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/ja/System.Net.Sockets.xml b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/ja/System.Net.Sockets.xml
new file mode 100644
index 0000000..e5889d7
--- /dev/null
+++ b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/ja/System.Net.Sockets.xml
@@ -0,0 +1,460 @@
+
+
+
+ System.Net.Sockets
+
+
+
+
+ クラスがサポートするプロトコルを指定します。
+
+
+ 伝送制御プロトコル。
+
+
+ ユーザー データグラム プロトコル。
+
+
+ 未確認のプロトコル。
+
+
+ 指定されていないプロトコル。
+
+
+ Berkeley ソケット インターフェイスを実装します。
+
+
+ 指定したアドレス ファミリ、ソケット タイプ、およびプロトコルを使用して、 クラスの新しいインスタンスを初期化します。
+
+ 値の 1 つ。
+
+ 値の 1 つ。
+
+ 値の 1 つ。
+
+ 、、および を組み合わせると、無効なソケットになります。
+
+
+ 指定したソケット タイプとプロトコルを使用して、 クラスの新しいインスタンスを初期化します。
+
+ 値の 1 つ。
+
+ 値の 1 つ。
+
+ と を組み合わせると、無効なソケットになります。
+
+
+ 受信接続の試行を受け入れる非同期操作を開始します。
+ I/O 操作が保留中の場合は、true を返します。操作の完了時に、 パラメーターの イベントが発生します。I/O 操作が同期的に完了した場合は、false を返します。この場合、 パラメーターの イベントは発生しません。メソッド呼び出しから制御が戻った直後に、パラメーターとして渡された オブジェクトを調べて操作の結果を取得できます。
+ この非同期ソケット操作に使用する オブジェクト。
+ 引数が無効です。この例外は、提供されたバッファーのサイズが不足している場合に発生します。バッファーは、2 * (sizeof(SOCKADDR_STORAGE + 16) バイト以上であることが必要です。この例外は、複数のバッファーが指定されているときに、 プロパティが null ではない場合にも発生します。
+ 引数が範囲外です。この例外は、 が 0 未満の場合に発生します。
+ 無効な操作が要求されました。この例外は、受け入れ側の が接続を待機していない場合、または受け入れられたソケットがバインドされている場合に発生します。 メソッドを呼び出す前に、 メソッドと メソッドを呼び出す必要があります。この例外は、ソケットが既に接続されている、またはソケット操作が指定された パラメーターを使用して既に進行中の場合にも発生します。
+ ソケットへのアクセスを試みているときにエラーが発生しました。詳細については、次の「解説」を参照してください。
+ このメソッドには Windows XP 以降が必要です。
+
+ は閉じられています。
+
+
+
+ のアドレス ファミリを取得します。
+
+ 値の 1 つ。
+
+
+
+ をローカル エンドポイントと関連付けます。
+
+ に関連付けるローカル 。
+
+ は null なので、
+ ソケットへのアクセスを試みているときにエラーが発生しました。詳細については、次の「解説」を参照してください。
+
+ は閉じられています。
+ コール スタックの上位にある呼び出し元が、要求された操作のアクセス許可を保持していません。
+
+
+
+
+
+
+
+
+ リモート ホスト接続への非同期要求を取り消します。
+
+ メソッドの 1 つを呼び出してリモート ホストへの接続を要求するために使用する オブジェクト。
+
+ パラメーターおよび を null にすることはできません。
+ ソケットへのアクセスを試みているときにエラーが発生しました。
+
+ は閉じられています。
+ コール スタックの上位にある呼び出し元が、要求された操作のアクセス許可を保持していません。
+
+
+ リモート ホストに接続する非同期要求を開始します。
+ I/O 操作が保留中の場合は、true を返します。操作の完了時に、 パラメーターの イベントが発生します。I/O 操作が同期的に完了した場合は、false を返します。この場合、 パラメーターの イベントは発生しません。メソッド呼び出しから制御が戻った直後に、パラメーターとして渡された オブジェクトを調べて操作の結果を取得できます。
+ この非同期ソケット操作に使用する オブジェクト。
+ 引数が無効です。この例外は、複数のバッファーが指定されているときに、 プロパティが null ではない場合に発生します。
+
+ パラメーターおよび を null にすることはできません。
+
+ が待機しているか、 パラメーターで指定されている オブジェクトを使用してソケット操作が既に進行していました。
+ ソケットへのアクセスを試みているときにエラーが発生しました。詳細については、次の「解説」を参照してください。
+ このメソッドには Windows XP 以降が必要です。この例外は、ローカル エンドポイントと が同じアドレス ファミリではない場合にも発生します。
+
+ は閉じられています。
+ コール スタックの上位にある呼び出し元が、要求された操作のアクセス許可を保持していません。
+
+
+ リモート ホストに接続する非同期要求を開始します。
+ I/O 操作が保留中の場合は、true を返します。操作の完了時に、 パラメーターの イベントが発生します。I/O 操作が同期的に完了した場合は、false を返します。この場合、 パラメーターの イベントは発生しません。メソッド呼び出しから制御が戻った直後に、パラメーターとして渡された オブジェクトを調べて操作の結果を取得できます。
+
+ 値の 1 つ。
+
+ 値の 1 つ。
+ この非同期ソケット操作に使用する オブジェクト。
+ 引数が無効です。この例外は、複数のバッファーが指定されているときに、 プロパティが null ではない場合に発生します。
+
+ パラメーターおよび を null にすることはできません。
+
+ が待機しているか、 パラメーターで指定されている オブジェクトを使用してソケット操作が既に進行していました。
+ ソケットへのアクセスを試みているときにエラーが発生しました。詳細については、次の「解説」を参照してください。
+ このメソッドには Windows XP 以降が必要です。この例外は、ローカル エンドポイントと が同じアドレス ファミリではない場合にも発生します。
+
+ は閉じられています。
+ コール スタックの上位にある呼び出し元が、要求された操作のアクセス許可を保持していません。
+
+
+ 最後に実行された 操作または 操作の時点で、 がリモート ホストに接続されていたかどうかを示す値を取得します。
+ 最後に実行された操作の時点で、 がリモート リソースに接続されていた場合は true。それ以外の場合は false。
+
+
+
+ クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。
+
+
+
+ が使用しているアンマネージ リソースを解放します。オプションでマネージ リソースも破棄します。
+ マネージ リソースとアンマネージ リソースの両方を解放する場合は true。アンマネージ リソースだけを解放する場合は false。
+
+
+
+ クラスによって使用されていたリソースを解放します。
+
+
+
+ を待機状態にします。
+ 保留中の接続のキューの最大長。
+ ソケットへのアクセスを試みているときにエラーが発生しました。詳細については、次の「解説」を参照してください。
+
+ は閉じられています。
+
+
+
+
+
+
+
+ ローカル エンドポイントを取得します。
+
+ が通信に使用している 。
+ ソケットへのアクセスを試みているときにエラーが発生しました。詳細については、次の「解説」を参照してください。
+
+ は閉じられています。
+
+
+
+
+
+
+
+ ストリーム が Nagle アルゴリズムを使用するかどうかを指定する 値を取得または設定します。
+
+ が Nagle アルゴリズムを使用する場合は false。それ以外の場合は true。既定値は、false です。
+
+ へのアクセスを試みているときにエラーが発生しました。詳細については、次の「解説」を参照してください。
+
+ は閉じられています。
+
+
+
+
+
+
+
+ 基になるオペレーティング システムおよびネットワーク アダプターがインターネット プロトコル Version 4 (IPv4) をサポートしているかどうかを示します。
+ オペレーティング システムおよびネットワーク アダプターが IPv4 プロトコルをサポートしている場合は true。それ以外の場合は false。
+
+
+ 基になるオペレーティング システムおよびネットワーク アダプターで、インターネット プロトコル Version 6 (IPv6) をサポートしているかどうかを示します。
+ オペレーティング システムおよびネットワーク アダプターが IPv6 プロトコルをサポートしている場合は true。それ以外の場合は false。
+
+
+
+ のプロトコル型を取得します。
+
+ 値の 1 つ。
+
+
+ 接続されている オブジェクトからデータを受信する非同期要求を開始します。
+ I/O 操作が保留中の場合は、true を返します。操作の完了時に、 パラメーターの イベントが発生します。I/O 操作が同期的に完了した場合は、false を返します。この場合、 パラメーターの イベントは発生しません。メソッド呼び出しから制御が戻った直後に、パラメーターとして渡された オブジェクトを調べて操作の結果を取得できます。
+ この非同期ソケット操作に使用する オブジェクト。
+ 引数が無効です。 パラメーターの プロパティまたは プロパティは、有効なバッファーを参照する必要があります。これらのプロパティは、どちらか 1 つを設定できます。一度に両方のプロパティを設定することはできません。
+
+ パラメーターに指定された オブジェクトを使用してソケット操作が既に進行していました。
+ このメソッドには Windows XP 以降が必要です。
+
+ は閉じられています。
+ ソケットへのアクセスを試みているときにエラーが発生しました。詳細については、次の「解説」を参照してください。
+
+
+
+ の受信バッファーのサイズを指定する値を取得または設定します。
+ 受信バッファーのサイズ (バイト単位) を格納している 。既定値は 8192 です。
+ ソケットへのアクセスを試みているときにエラーが発生しました。
+
+ は閉じられています。
+ 設定操作として指定された値が 0 未満です。
+
+
+
+
+
+
+
+ 指定したネットワーク デバイスから、データの非同期の受信を開始します。
+ I/O 操作が保留中の場合は、true を返します。操作の完了時に、 パラメーターの イベントが発生します。I/O 操作が同期的に完了した場合は、false を返します。この場合、 パラメーターの イベントは発生しません。メソッド呼び出しから制御が戻った直後に、パラメーターとして渡された オブジェクトを調べて操作の結果を取得できます。
+ この非同期ソケット操作に使用する オブジェクト。
+
+ に null を指定することはできません。
+
+ パラメーターに指定された オブジェクトを使用してソケット操作が既に進行していました。
+ このメソッドには Windows XP 以降が必要です。
+
+ は閉じられています。
+ ソケットへのアクセスを試みているときにエラーが発生しました。
+
+
+ リモート エンドポイントを取得します。
+
+ の通信先の 。
+ ソケットへのアクセスを試みているときにエラーが発生しました。詳細については、次の「解説」を参照してください。
+
+ は閉じられています。
+
+
+
+
+
+
+
+ 接続されている オブジェクトに、データを非同期に送信します。
+ I/O 操作が保留中の場合は、true を返します。操作の完了時に、 パラメーターの イベントが発生します。I/O 操作が同期的に完了した場合は、false を返します。この場合、 パラメーターの イベントは発生しません。メソッド呼び出しから制御が戻った直後に、パラメーターとして渡された オブジェクトを調べて操作の結果を取得できます。
+ この非同期ソケット操作に使用する オブジェクト。
+
+ パラメーターの プロパティまたは プロパティは、有効なバッファーを参照する必要があります。これらのプロパティは、どちらか 1 つを設定できます。一度に両方のプロパティを設定することはできません。
+
+ パラメーターに指定された オブジェクトを使用してソケット操作が既に進行していました。
+ このメソッドには Windows XP 以降が必要です。
+
+ は閉じられています。
+
+ がまだ接続されていないか、、、または の各メソッドによって取得されませんでした。
+
+
+
+ の送信バッファーのサイズを指定する値を取得または設定します。
+ 送信バッファーのサイズ (バイト単位) を格納している 。既定値は 8192 です。
+ ソケットへのアクセスを試みているときにエラーが発生しました。
+
+ は閉じられています。
+ 設定操作として指定された値が 0 未満です。
+
+
+
+
+
+
+
+ 特定のリモート ホストにデータを非同期的に送信します。
+ I/O 操作が保留中の場合は、true を返します。操作の完了時に、 パラメーターの イベントが発生します。I/O 操作が同期的に完了した場合は、false を返します。この場合、 パラメーターの イベントは発生しません。メソッド呼び出しから制御が戻った直後に、パラメーターとして渡された オブジェクトを調べて操作の結果を取得できます。
+ この非同期ソケット操作に使用する オブジェクト。
+
+ に null を指定することはできません。
+
+ パラメーターに指定された オブジェクトを使用してソケット操作が既に進行していました。
+ このメソッドには Windows XP 以降が必要です。
+
+ は閉じられています。
+ 指定されたプロトコルはコネクション指向ですが、 がまだ接続されていません。
+
+
+
+ での送受信を無効にします。
+ 許可されなくなる操作を指定する 値の 1 つ。
+ ソケットへのアクセスを試みているときにエラーが発生しました。詳細については、次の「解説」を参照してください。
+
+ は閉じられています。
+
+
+
+
+
+
+
+
+ によって送信されたインターネット プロトコル (IP) パケットの有効期間 (TTL) の値を指定する値を取得または設定します。
+ TTL の値。
+ TTL 値には、負の数を設定できません。
+ このプロパティは、 ファミリまたは ファミリのソケットに対してだけ設定できます。
+ ソケットへのアクセスを試みているときにエラーが発生しました。このエラーは、TTL に 255 より大きい値を設定しようとしたときにも返されます。
+
+ は閉じられています。
+
+
+
+
+
+
+
+ 非同期ソケット操作を表します。
+
+
+ 空の インスタンスを作成します。
+ このプラットフォームはサポートされていません。
+
+
+ 非同期ソケット メソッドとの接続を受け入れるために使用するソケットまたは作成されたソケットを取得または設定します。
+ 非同期ソケット メソッドとの接続を受け入れるために使用する または作成されたソケット。
+
+
+ 非同期ソケット メソッドで使用するデータ バッファーを取得します。
+ 非同期ソケット メソッドで使用するデータ バッファーを表す 配列。
+
+
+ 非同期ソケット メソッドで使用するデータ バッファーの配列を取得または設定します。
+ 非同期ソケット メソッドで使用するデータ バッファーの配列を表す 。
+ 設定操作であいまいなバッファーが指定されています。この例外は、 が null 以外の値に設定されている状態で、 プロパティに null 以外の値を設定しようとした場合に発生します。
+
+
+ ソケット操作で転送するバイト数を取得します。
+ ソケット操作で転送するバイト数を格納する 。
+
+
+ 非同期操作を完了させるために使用されるイベントです。
+
+
+
+ が使用されているときに接続エラーが発生した場合、例外を取得します。
+
+ プロパティに を指定したときの接続エラーの原因を示す 。
+
+
+
+ メソッドが正常に完了した後に作成され、接続された オブジェクト。
+ 接続された オブジェクト。
+
+
+ 非同期操作で送信または受信するデータの最大量 (バイト単位) を取得します。
+ 送信または受信するデータの最大量 (バイト単位) を格納する 。
+
+
+
+ インスタンスが使用するアンマネージ リソースを解放し、必要に応じてマネージ リソースを破棄します。
+
+
+
+ クラスによって使用されていたリソースを解放します。
+
+
+ このコンテキスト オブジェクトで最近実行されたソケット操作の種類を取得します。
+ このコンテキスト オブジェクトで最近実行されたソケット操作の種類を示す インスタンス。
+
+
+
+ プロパティによって参照されるデータ バッファーへのオフセット (バイト単位) を取得します。
+
+ プロパティによって参照されるデータ バッファーへのオフセット (バイト単位) を格納する 。
+
+
+ 非同期操作の完了時に呼び出されるメソッドを表します。
+ シグナル状態のイベント。
+
+
+ 非同期操作のリモート IP エンドポイントを取得または設定します。
+ 非同期操作のリモート IP エンドポイントを表す 。
+
+
+ 非同期ソケット メソッドで使用するデータ バッファーを設定します。
+ 非同期ソケット メソッドで使用するデータ バッファー。
+ 操作を開始するデータ バッファーのオフセット (バイト単位)。
+ バッファー内で送信または受信するデータの最大量 (バイト単位)。
+ あいまいなバッファーが指定されています。この例外は、 プロパティが null ではなく、 プロパティも null ではない場合に発生します。
+ 引数が範囲外です。この例外は、 パラメーターがゼロ未満であるか、 プロパティの配列の長さよりも大きい場合に発生します。また、 パラメーターがゼロ未満であるか、 プロパティの配列の長さから パラメーターを引いた長さよりも大きい場合にも、この例外が発生します。
+
+
+ 非同期ソケット メソッドで使用するデータ バッファーを設定します。
+ 操作を開始するデータ バッファーのオフセット (バイト単位)。
+ バッファー内で送信または受信するデータの最大量 (バイト単位)。
+ 引数が範囲外です。この例外は、 パラメーターがゼロ未満であるか、 プロパティの配列の長さよりも大きい場合に発生します。また、 パラメーターがゼロ未満であるか、 プロパティの配列の長さから パラメーターを引いた長さよりも大きい場合にも、この例外が発生します。
+
+
+ 非同期ソケット操作の結果を取得または設定します。
+ 非同期ソケット操作の結果を表す 。
+
+
+ この非同期ソケット操作に関連付けられたユーザー オブジェクトまたはアプリケーション オブジェクトを取得または設定します。
+ この非同期ソケット操作に関連付けられたユーザー オブジェクトまたはアプリケーション オブジェクトを表すオブジェクト。
+
+
+ このコンテキスト オブジェクトで最近実行された非同期ソケット操作の型。
+
+
+ ソケットの Accept 操作。
+
+
+ ソケットの Connect 操作。
+
+
+ ソケット操作なし。
+
+
+ ソケットの Receive 操作。
+
+
+ ソケットの ReceiveFrom 操作。
+
+
+ ソケットの Send 操作。
+
+
+ ソケットの SendTo 操作。
+
+
+
+ メソッドが使用する定数を定義します。
+
+
+ 送信と受信の両方の を無効にします。このフィールドは定数です。
+
+
+ 受信の を無効にします。このフィールドは定数です。
+
+
+ 送信の を無効にします。このフィールドは定数です。
+
+
+
+ クラスのインスタンスが表すソケットの種類を指定します。
+
+
+ データグラムをサポートしています。これはコネクションレスで、固定 (通常は短い) 最大長の、信頼性のないメッセージです。メッセージが喪失または複製されたり、正しい順序で受信されなかったりする可能性があります。 型の はデータの送受信に先立って接続する必要がなく、複数のピアと通信できます。 はデータグラム プロトコル () と を使用します。
+
+
+ データの複製および境界の維持を行うことなく、信頼性が高く双方向の、接続ベースのバイト ストリームをサポートします。この種類の Socket は、単一のピアと通信し、通信を開始する前にリモート ホスト接続を確立しておく必要があります。 は伝送制御プロトコル () および InterNetwork を使用します。
+
+
+ 不明な Socket 型を指定します。
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/ko/System.Net.Sockets.xml b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/ko/System.Net.Sockets.xml
new file mode 100644
index 0000000..d4438b2
--- /dev/null
+++ b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/ko/System.Net.Sockets.xml
@@ -0,0 +1,466 @@
+
+
+
+ System.Net.Sockets
+
+
+
+
+ 클래스가 지원하는 프로토콜을 지정합니다.
+
+
+ Transmission Control 프로토콜입니다.
+
+
+ User Datagram 프로토콜입니다.
+
+
+ 알 수 없는 프로토콜입니다.
+
+
+ 지정되지 않은 프로토콜입니다.
+
+
+ Berkeley 소켓 인터페이스를 구현합니다.
+
+
+ 지정된 주소 패밀리, 소켓 종류 및 프로토콜을 사용하여 클래스의 새 인스턴스를 초기화합니다.
+
+ 값 중 하나입니다.
+
+ 값 중 하나입니다.
+
+ 값 중 하나입니다.
+
+ , 및 을 조합했을 때 소켓이 잘못된 경우
+
+
+ 지정된 소켓 종류 및 프로토콜을 사용하여 클래스의 새 인스턴스를 초기화합니다.
+
+ 값 중 하나입니다.
+
+ 값 중 하나입니다.
+
+ 과 을 조합했을 때 소켓이 잘못된 경우
+
+
+ 들어오는 연결 시도를 받아들이는 비동기 작업을 시작합니다.
+ I/O 작업이 보류 중인 경우 true를 반환합니다.작업이 완료되면 매개 변수에 대한 이벤트가 발생합니다.I/O 작업이 동기적으로 완료된 경우 false를 반환합니다.이 경우에는 매개 변수에서 이벤트가 발생하지 않으며, 메서드 호출이 반환된 직후 매개 변수로 전달된 개체를 검사하여 작업 결과를 검색할 수 있습니다.
+ 이 비동기 소켓 작업에 사용할 개체입니다.
+ 인수가 잘못된 경우.제공된 버퍼의 크기가 너무 작으면 이 예외가 발생합니다.버퍼의 크기는 최소한 2 * (sizeof(SOCKADDR_STORAGE + 16)바이트 이상이어야 합니다.버퍼를 여러 개 지정하고 속성이 null이 아닌 경우에도 이 예외가 발생합니다.
+ 인수가 범위를 벗어난 경우.가 0보다 작으면 이 예외가 발생합니다.
+ 잘못된 작업이 요청된 경우.받아들이는 이 연결을 수신 대기하지 않거나 받아들인 소켓이 바인딩되어 있으면 이 예외가 발생합니다. 메서드를 호출하기 전에 및 메서드를 호출해야 합니다.소켓이 이미 연결되어 있거나 지정된 매개 변수를 사용하여 소켓 작업이 이미 진행 중인 경우에도 이 예외가 발생합니다.
+ 소켓에 액세스하려고 시도하는 동안 오류가 발생한 경우자세한 내용은 설명 부분을 참조하십시오.
+ 이 메서드에 Windows XP 이상이 필요한 경우.
+
+ 이 닫힌 경우
+
+
+
+ 의 주소 패밀리를 가져옵니다.
+
+ 값 중 하나입니다.
+
+
+
+ 을 로컬 끝점과 연결합니다.
+
+ 과 연결된 로컬 입니다.
+
+ 가 null입니다.
+ 소켓에 액세스하려고 시도하는 동안 오류가 발생한 경우자세한 내용은 설명 부분을 참조하십시오.
+
+ 이 닫힌 경우
+ 호출 스택에 있는 상위 호출자에게 요청된 작업에 대한 권한이 없는 경우
+
+
+
+
+
+
+
+
+ 원격 호스트 연결에 대한 비동기 요청을 취소합니다.
+
+ 메서드 중 하나를 호출하여 원격 호스트에 대한 연결을 요청하는 데 사용되는 개체입니다.
+
+ 매개 변수가 null일 수 없으며, 도 null일 수 없습니다.
+ 소켓에 액세스하려고 시도하는 동안 오류가 발생한 경우
+
+ 이 닫힌 경우
+ 호출 스택에 있는 상위 호출자에게 요청된 작업에 대한 권한이 없는 경우
+
+
+ 원격 호스트 연결에 대한 비동기 요청을 시작합니다.
+ I/O 작업이 보류 중인 경우 true를 반환합니다.작업이 완료되면 매개 변수에 대한 이벤트가 발생합니다.I/O 작업이 동기적으로 완료된 경우 false를 반환합니다.이 경우에는 매개 변수에서 이벤트가 발생하지 않으며, 메서드 호출이 반환된 직후 매개 변수로 전달된 개체를 검사하여 작업 결과를 검색할 수 있습니다.
+ 이 비동기 소켓 작업에 사용할 개체입니다.
+ 인수가 잘못된 경우.버퍼를 여러 개 지정하고 속성이 null이 아니면 이 예외가 발생합니다.
+
+ 매개 변수가 null일 수 없으며, 도 null일 수 없습니다.
+
+ 이 수신 대기 중이거나 매개 변수에 지정된 개체를 사용하여 소켓 작업이 이미 진행 중입니다.
+ 소켓에 액세스하려고 시도하는 동안 오류가 발생한 경우자세한 내용은 설명 부분을 참조하십시오.
+ 이 메서드에 Windows XP 이상이 필요한 경우.로컬 끝점과 가 같은 주소 패밀리에 포함되지 않은 경우에도 이 예외가 발생합니다.
+
+ 이 닫힌 경우
+ 호출 스택에 있는 상위 호출자에게 요청된 작업에 대한 권한이 없는 경우
+
+
+ 원격 호스트 연결에 대한 비동기 요청을 시작합니다.
+ I/O 작업이 보류 중인 경우 true를 반환합니다.작업이 완료되면 매개 변수에 대한 이벤트가 발생합니다.I/O 작업이 동기적으로 완료된 경우 false를 반환합니다.이 경우에는 매개 변수에서 이벤트가 발생하지 않으며, 메서드 호출이 반환된 직후 매개 변수로 전달된 개체를 검사하여 작업 결과를 검색할 수 있습니다.
+
+ 값 중 하나입니다.
+
+ 값 중 하나입니다.
+ 이 비동기 소켓 작업에 사용할 개체입니다.
+ 인수가 잘못된 경우.버퍼를 여러 개 지정하고 속성이 null이 아니면 이 예외가 발생합니다.
+
+ 매개 변수가 null일 수 없으며, 도 null일 수 없습니다.
+
+ 이 수신 대기 중이거나 매개 변수에 지정된 개체를 사용하여 소켓 작업이 이미 진행 중입니다.
+ 소켓에 액세스하려고 시도하는 동안 오류가 발생한 경우자세한 내용은 설명 부분을 참조하십시오.
+ 이 메서드에 Windows XP 이상이 필요한 경우.로컬 끝점과 가 같은 주소 패밀리에 포함되지 않은 경우에도 이 예외가 발생합니다.
+
+ 이 닫힌 경우
+ 호출 스택에 있는 상위 호출자에게 요청된 작업에 대한 권한이 없는 경우
+
+
+
+ 이 마지막으로 또는 작업을 수행할 때 원격 호스트에 연결되었는지 여부를 나타내는 값을 가져옵니다.
+ 가장 최근 작업에서 이 원격 리소스에 연결되었으면 true이고, 그렇지 않으면 false입니다.
+
+
+
+ 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.
+
+
+
+ 에서 사용하는 관리되지 않는 리소스를 해제하고, 필요에 따라 관리되는 리소스를 삭제합니다.
+ 관리되는 리소스와 관리되지 않는 리소스를 모두 해제하려면 true로 설정하고, 관리되지 않는 리소스만 해제하려면 false로 설정합니다.
+
+
+
+ 클래스에서 사용한 리소스를 해제합니다.
+
+
+
+ 을 수신 상태로 둡니다.
+ 보류 중인 연결 큐의 최대 길이입니다.
+ 소켓에 액세스하려고 시도하는 동안 오류가 발생한 경우자세한 내용은 설명 부분을 참조하십시오.
+
+ 이 닫힌 경우
+
+
+
+
+
+
+
+ 로컬 끝점을 가져옵니다.
+
+ 이 통신하는 데 사용하는 입니다.
+ 소켓에 액세스하려고 시도하는 동안 오류가 발생한 경우자세한 내용은 설명 부분을 참조하십시오.
+
+ 이 닫힌 경우
+
+
+
+
+
+
+
+
+ 스트림에서 Nagle 알고리즘을 사용하는지 여부를 나타내는 값을 가져오거나 설정합니다.
+
+ 에서 Nagle 알고리즘을 사용하면 false이고, 그렇지 않으면 true입니다.기본값은 false입니다.
+
+ 에 액세스하려고 시도하는 동안 오류가 발생한 경우.자세한 내용은 설명 부분을 참조하십시오.
+
+ 이 닫힌 경우
+
+
+
+
+
+
+
+ 내부 운영 체제 및 네트워크 어댑터에서 IPv4(인터넷 프로토콜 버전 4)를 지원하는지 여부를 나타냅니다.
+ 운영 체제 및 네트워크 어댑터에서 IPv4 프로토콜을 지원하면 true이고, 그렇지 않으면 false입니다.
+
+
+ 내부 운영 체제 및 네트워크 어댑터에서 IPv6(인터넷 프로토콜 버전 6)을 지원하는지 여부를 나타냅니다.
+ 운영 체제 및 네트워크 어댑터에서 IPv6 프로토콜을 지원하면 true이고, 그렇지 않으면 false입니다.
+
+
+
+ 의 프로토콜 종류를 가져옵니다.
+
+ 값 중 하나입니다.
+
+
+ 연결된 개체에서 데이터를 받기 위해 비동기 요청을 시작합니다.
+ I/O 작업이 보류 중인 경우 true를 반환합니다.작업이 완료되면 매개 변수에 대한 이벤트가 발생합니다.I/O 작업이 동기적으로 완료된 경우 false를 반환합니다.이 경우에는 매개 변수에서 이벤트가 발생하지 않으며, 메서드 호출이 반환된 직후 매개 변수로 전달된 개체를 검사하여 작업 결과를 검색할 수 있습니다.
+ 이 비동기 소켓 작업에 사용할 개체입니다.
+ 인수가 잘못된 경우. 매개 변수의 또는 속성이 올바른 버퍼를 참조하지 않는 경우.이러한 속성 중 하나를 설정할 수 있지만 두 속성을 동시에 설정할 수는 없습니다.
+
+ 매개 변수에 지정된 개체를 사용하여 소켓 작업이 이미 진행 중인 경우
+ 이 메서드에 Windows XP 이상이 필요한 경우.
+
+ 이 닫힌 경우
+ 소켓에 액세스하려고 시도하는 동안 오류가 발생한 경우자세한 내용은 설명 부분을 참조하십시오.
+
+
+
+ 의 수신 버퍼 크기를 지정하는 값을 가져오거나 설정합니다.
+ 수신 버퍼의 크기(바이트)가 들어 있는 입니다.기본값은 8192입니다.
+ 소켓에 액세스하려고 시도하는 동안 오류가 발생한 경우
+
+ 이 닫힌 경우
+ set 작업에 지정된 값이 0보다 작은 경우
+
+
+
+
+
+
+
+ 지정된 네트워크 장치에서 비동기적으로 데이터를 받기 시작합니다.
+ I/O 작업이 보류 중인 경우 true를 반환합니다.작업이 완료되면 매개 변수에 대한 이벤트가 발생합니다.I/O 작업이 동기적으로 완료된 경우 false를 반환합니다.이 경우에는 매개 변수에서 이벤트가 발생하지 않으며, 메서드 호출이 반환된 직후 매개 변수로 전달된 개체를 검사하여 작업 결과를 검색할 수 있습니다.
+ 이 비동기 소켓 작업에 사용할 개체입니다.
+
+ 가 null인 경우
+
+ 매개 변수에 지정된 개체를 사용하여 소켓 작업이 이미 진행 중인 경우
+ 이 메서드에 Windows XP 이상이 필요한 경우.
+
+ 이 닫힌 경우
+ 소켓에 액세스하려고 시도하는 동안 오류가 발생한 경우
+
+
+ 원격 끝점을 가져옵니다.
+
+ 이 통신에 사용하는 입니다.
+ 소켓에 액세스하려고 시도하는 동안 오류가 발생한 경우자세한 내용은 설명 부분을 참조하십시오.
+
+ 이 닫힌 경우
+
+
+
+
+
+
+
+ 데이터를 연결된 개체에 비동기적으로 보냅니다.
+ I/O 작업이 보류 중인 경우 true를 반환합니다.작업이 완료되면 매개 변수에 대한 이벤트가 발생합니다.I/O 작업이 동기적으로 완료된 경우 false를 반환합니다.이 경우에는 매개 변수에서 이벤트가 발생하지 않으며, 메서드 호출이 반환된 직후 매개 변수로 전달된 개체를 검사하여 작업 결과를 검색할 수 있습니다.
+ 이 비동기 소켓 작업에 사용할 개체입니다.
+
+ 매개 변수의 또는 속성이 올바른 버퍼를 참조하지 않는 경우.이러한 속성 중 하나를 설정할 수 있지만 두 속성을 동시에 설정할 수는 없습니다.
+
+ 매개 변수에 지정된 개체를 사용하여 소켓 작업이 이미 진행 중인 경우
+ 이 메서드에 Windows XP 이상이 필요한 경우.
+
+ 이 닫힌 경우
+
+ 이 아직 연결되지 않았거나 , 또는 메서드를 통해 소켓을 가져오지 못한 경우
+
+
+
+ 의 송신 버퍼 크기를 지정하는 값을 가져오거나 설정합니다.
+ 송신 버퍼의 크기(바이트)가 들어 있는 입니다.기본값은 8192입니다.
+ 소켓에 액세스하려고 시도하는 동안 오류가 발생한 경우
+
+ 이 닫힌 경우
+ set 작업에 지정된 값이 0보다 작은 경우
+
+
+
+
+
+
+
+ 특정 원격 호스트에 데이터를 비동기적으로 보냅니다.
+ I/O 작업이 보류 중인 경우 true를 반환합니다.작업이 완료되면 매개 변수에 대한 이벤트가 발생합니다.I/O 작업이 동기적으로 완료된 경우 false를 반환합니다.이 경우에는 매개 변수에서 이벤트가 발생하지 않으며, 메서드 호출이 반환된 직후 매개 변수로 전달된 개체를 검사하여 작업 결과를 검색할 수 있습니다.
+ 이 비동기 소켓 작업에 사용할 개체입니다.
+
+ 가 null인 경우
+
+ 매개 변수에 지정된 개체를 사용하여 소켓 작업이 이미 진행 중인 경우
+ 이 메서드에 Windows XP 이상이 필요한 경우.
+
+ 이 닫힌 경우
+ 연결 지향 프로토콜이 지정되었는데 이 아직 연결되지 않은 경우
+
+
+
+ 에서 보내기 및 받기를 사용할 수 없도록 설정합니다.
+ 더 이상 허용하지 않을 작업을 지정하는 값 중 하나입니다.
+ 소켓에 액세스하려고 시도하는 동안 오류가 발생한 경우자세한 내용은 설명 부분을 참조하십시오.
+
+ 이 닫힌 경우
+
+
+
+
+
+
+
+
+ 에서 보낸 IP(인터넷 프로토콜) 패킷의 TTL(Time-To-Live) 값을 지정하는 값을 가져오거나 설정합니다.
+ TTL 값입니다.
+ TTL 값은 음수로 설정할 수 있습니다.
+
+ 또는 패밀리의 소켓이 아닌 소켓에 대해 이 속성을 설정한 경우
+ 소켓에 액세스하려고 시도하는 동안 오류가 발생한 경우TTL을 255보다 큰 값으로 설정하고자 할 때에도 이 오류가 반환됩니다.
+
+ 이 닫힌 경우
+
+
+
+
+
+
+
+ 비동기 소켓 작업을 나타냅니다.
+
+
+ 빈 인스턴스를 만듭니다.
+ 플랫폼이 지원되지 않는 경우
+
+
+ 비동기 소켓 메서드를 통해 연결을 허용하기 위해 만들었거나 사용할 소켓을 가져오거나 설정합니다.
+ 비동기 소켓 메서드를 통해 연결을 허용하기 위해 만들었거나 사용할 입니다.
+
+
+ 비동기 소켓 메서드에 사용할 데이터 버퍼를 가져옵니다.
+ 비동기 소켓 메서드에 사용할 데이터 버퍼를 나타내는 배열입니다.
+
+
+ 비동기 소켓 메서드에 사용할 데이터 버퍼의 배열을 가져오거나 설정합니다.
+ 비동기 소켓 메서드에 사용할 데이터 버퍼의 배열을 나타내는 입니다.
+ 설정 작업에 지정된 버퍼가 명확하지 않은 경우. 속성이 null이 아닌 값으로 설정되고, 속성을 null이 아닌 값으로 설정하고자 하는 경우, 이러한 예외가 발생합니다.
+
+
+ 소켓 작업에서 전송된 바이트 수를 가져옵니다.
+ 소켓 작업에서 전송된 바이트 수를 포함하는 입니다.
+
+
+ 비동기 작업을 완료하는 데 사용할 이벤트입니다.
+
+
+
+ 를 사용할 때 연결 실패가 발생하는 경우의 예외를 가져옵니다.
+
+ 가 속성에 지정된 경우 연결 오류의 원인을 나타내는 입니다.
+
+
+
+ 메서드가 성공적으로 완료된 후 만들어지고 연결되는 개체입니다.
+ 연결된 개체입니다.
+
+
+ 비동기 작업을 통해 보내거나 받을 최대 데이터 양(바이트)을 가져옵니다.
+ 보내거나 받을 최대 데이터 양(바이트)을 포함하는 입니다.
+
+
+
+ 인스턴스에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 삭제합니다.
+
+
+
+ 클래스에서 사용하는 리소스를 해제합니다.
+
+
+ 이 컨텍스트 개체를 사용하여 가장 최근에 수행한 소켓 작업의 유형을 가져옵니다.
+ 이 컨텍스트 개체를 사용하여 가장 최근에 수행한 소켓 작업의 유형을 나타내는 인스턴스입니다.
+
+
+
+ 속성에서 참조하는 데이터 버퍼의 오프셋(바이트)을 가져옵니다.
+
+ 속성에서 참조하는 데이터 버퍼의 오프셋(바이트)이 포함된 입니다.
+
+
+ 비동기 작업이 완료되면 호출할 메서드를 나타냅니다.
+ 신호를 받는 이벤트입니다.
+
+
+ 비동기 작업의 원격 IP 끝점을 가져오거나 설정합니다.
+ 비동기 작업의 원격 IP 끝점을 나타내는 입니다.
+
+
+ 비동기 소켓 메서드에 사용할 데이터 버퍼를 설정합니다.
+ 비동기 소켓 메서드에 사용할 데이터 버퍼입니다.
+ 데이터 버퍼에서 작업이 시작되는 오프셋(바이트)입니다.
+ 버퍼에서 보내거나 받을 최대 데이터 양(바이트)입니다.
+ 지정된 버퍼가 명확하지 않은 경우. 속성도 null이 아니고 속성도 null이 아니면 이 예외가 발생합니다.
+ 인수가 범위를 벗어난 경우. 매개 변수가 0보다 작거나 속성에 지정된 배열 길이보다 크면 이 예외가 발생합니다.또한 매개 변수가 0보다 작거나, 속성에 지정된 배열 길이에서 매개 변수를 뺀 값보다 큰 경우에도 이 예외가 발생합니다.
+
+
+ 비동기 소켓 메서드에 사용할 데이터 버퍼를 설정합니다.
+ 데이터 버퍼에서 작업이 시작되는 오프셋(바이트)입니다.
+ 버퍼에서 보내거나 받을 최대 데이터 양(바이트)입니다.
+ 인수가 범위를 벗어난 경우. 매개 변수가 0보다 작거나 속성에 지정된 배열 길이보다 크면 이 예외가 발생합니다.또한 매개 변수가 0보다 작거나, 속성에 지정된 배열 길이에서 매개 변수를 뺀 값보다 큰 경우에도 이 예외가 발생합니다.
+
+
+ 비동기 소켓 작업의 결과를 가져오거나 설정합니다.
+ 비동기 소켓 작업의 결과를 나타내는 입니다.
+
+
+ 이 비동기 소켓 작업과 연결된 사용자 또는 응용 프로그램 개체를 가져오거나 설정합니다.
+ 이 비동기 소켓 작업과 연결된 사용자 또는 응용 프로그램 개체를 나타내는 개체입니다.
+
+
+ 이 컨텍스트 개체를 사용하여 가장 최근에 수행된 비동기 소켓 작업의 유형입니다.
+
+
+ 소켓 Accept 작업입니다.
+
+
+ 소켓 Connect 작업입니다.
+
+
+ 소켓 작업이 없습니다.
+
+
+ 소켓 Receive 작업입니다.
+
+
+ 소켓 ReceiveFrom 작업입니다.
+
+
+ 소켓 Send 작업입니다.
+
+
+ 소켓 SendTo 작업입니다.
+
+
+
+ 메서드에서 사용하는 상수를 정의합니다.
+
+
+
+ 을 보내기와 받기 모두에 사용할 수 없도록 설정합니다.이 필드는 상수입니다.
+
+
+
+ 을 받기에 사용할 수 없도록 설정합니다.이 필드는 상수입니다.
+
+
+
+ 을 보내기에 사용할 수 없도록 설정합니다.이 필드는 상수입니다.
+
+
+
+ 클래스의 인스턴스가 나타내는 소켓의 종류를 지정합니다.
+
+
+ 고정된 최대 길이(대개 작음)의 신뢰할 수 없고 연결 없는 메시지인 데이터그램을 지원합니다.메시지가 손실되거나 중복될 수 있으며 메시지 순서가 잘못될 수도 있습니다. 종류의 은 데이터를 보내고 받기 전에 연결하지 않고도 여러 피어와 통신할 수 있습니다.은 Datagram Protocol()과 를 사용합니다.
+
+
+ 데이터 중복이나 경계 유지 없이 신뢰성 있는 양방향 연결 기반의 바이트 스트림을 지원합니다.이 종류의 Socket은 단일 피어와 통신하며 이 소켓을 사용할 경우 통신을 시작하기 전에 원격 호스트에 연결해야 합니다.은 Transmission Control Protocol() 및 InterNetwork를 사용합니다.
+
+
+ 알 수 없는 Socket 종류를 지정합니다.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/ru/System.Net.Sockets.xml b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/ru/System.Net.Sockets.xml
new file mode 100644
index 0000000..0bab4e6
--- /dev/null
+++ b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/ru/System.Net.Sockets.xml
@@ -0,0 +1,393 @@
+
+
+
+ System.Net.Sockets
+
+
+
+ Задает протокол, поддерживающий класс .
+
+
+ Протокол TCP.
+
+
+ Протокол UDP.
+
+
+ Неизвестный протокол.
+
+
+ Неуказанный протокол.
+
+
+ Реализует интерфейс сокетов Berkeley.
+
+
+ Инициализирует новый экземпляр класса , используя заданные семейство адресов, тип сокета и протокол.
+ Одно из значений .
+ Одно из значений .
+ Одно из значений .
+ Сочетание параметров , и приводит к неработоспособному сокету.
+
+
+ Инициализирует новый экземпляр класса , используя указанный тип сокетов и протокол.
+ Одно из значений .
+ Одно из значений .
+ Сочетание параметров и приводит к недопустимому сокету.
+
+
+ Начинает асинхронную операцию, чтобы принять попытку входящего подключения.
+ Возвращает значение true, если операция ввода-вывода находится в состоянии ожидания.По завершении операции создается событие в параметре .Возвращает значение false, если операция ввода-вывода завершена синхронно.Событие на параметре не произойдет и объект , передаваемый как параметр, можно изучить сразу после получения результатов вызова метода для извлечения результатов операции.
+ Объект для использования в данной асинхронной операции сокета.
+ Аргумент является недопустимым.Это исключение возникает, если обеспечиваемый буфер имеет недостаточный размер.Буфер должен иметь размер, равный, по крайней мере, 2 * (размер(SOCKADDR_STORAGE + 16) байт.Это исключение также возникает, если задано несколько буферов, свойство не имеет значение "null".
+ Аргумент вне диапазона.Исключение возникает, если объект имеет значение меньше 0.
+ Предпринят запрос выполнения недопустимой операции.Это исключение возникает, если принимающий объект не производит прослушивание подключений или принимающий сокет является связанным.Требуется вызвать объект и метод перед вызовом метода .Это исключение также происходит, если сокет уже подключен или работа с сокетом уже выполнялась с использованием указанного параметра .
+ Произошла ошибка при попытке доступа к сокету.Дополнительные сведения см. в разделе "Примечания".
+ Этот метод доступен только в Windows XP и более поздних версиях.
+ Объект закрыт.
+
+
+ Получает семейство адресов объекта .
+ Одно из значений .
+
+
+ Связывает объект с локальной конечной точкой.
+ Локальный объект , который необходимо связать с объектом .
+ Параметр имеет значение null.
+ Произошла ошибка при попытке доступа к сокету.Дополнительные сведения см. в разделе "Примечания".
+ Объект закрыт.
+ У вызывающего оператора, находящегося в начале стека вызовов, нет разрешения для запрашиваемой операции.
+
+
+
+
+
+
+
+
+ Отменяет выполнение асинхронного запроса для подключения к удаленному узлу.
+ Объект , используемый для запроса соединения с удаленным узлом путем вызова одного из методов .
+ Параметр и не могут иметь значение NULL.
+ Произошла ошибка при попытке доступа к сокету.
+ Объект закрыт.
+ У вызывающего оператора, находящегося в начале стека вызовов, нет разрешения для запрашиваемой операции.
+
+
+ Начинает выполнение асинхронного запроса для подключения к удаленному узлу.
+ Возвращает значение true, если операция ввода-вывода находится в состоянии ожидания.По завершении операции создается событие в параметре .Возвращает значение false, если операция ввода-вывода завершена синхронно.В данном случае событие на параметре не будет создано и объект , передаваемый как параметр, можно изучить сразу после получения результатов вызова метода для извлечения результатов операции.
+ Объект для использования в данной асинхронной операции сокета.
+ Аргумент является недопустимым.Это исключение возникает, если задано несколько буферов, свойство не имеет значение "null".
+ Параметр и не могут иметь значение NULL.
+
+ ведет прослушивание или работа с сокетом уже выполняется с использованием объекта , указанного параметром .
+ Произошла ошибка при попытке доступа к сокету.Дополнительные сведения см. в разделе "Примечания".
+ Этот метод доступен только в Windows XP и более поздних версиях.Это исключение возникает также в том случае, если локальная конечная точка и объект не принадлежат к одному семейству адресов.
+ Объект закрыт.
+ У вызывающего оператора, находящегося в начале стека вызовов, нет разрешения для запрашиваемой операции.
+
+
+ Начинает выполнение асинхронного запроса для подключения к удаленному узлу.
+ Возвращает значение true, если операция ввода-вывода находится в состоянии ожидания.По завершении операции создается событие в параметре .Возвращает значение false, если операция ввода-вывода завершена синхронно.В данном случае событие на параметре не будет создано и объект , передаваемый как параметр, можно изучить сразу после получения результатов вызова метода для извлечения результатов операции.
+ Одно из значений .
+ Одно из значений .
+ Объект для использования в данной асинхронной операции сокета.
+ Аргумент является недопустимым.Это исключение возникает, если задано несколько буферов, свойство не имеет значение "null".
+ Параметр и не могут иметь значение NULL.
+
+ ведет прослушивание или работа с сокетом уже выполняется с использованием объекта , указанного параметром .
+ Произошла ошибка при попытке доступа к сокету.Дополнительные сведения см. в разделе "Примечания".
+ Этот метод доступен только в Windows XP и более поздних версиях.Это исключение возникает также в том случае, если локальная конечная точка и объект не принадлежат к одному семейству адресов.
+ Объект закрыт.
+ У вызывающего оператора, находящегося в начале стека вызовов, нет разрешения для запрашиваемой операции.
+
+
+ Получает значение, указывающее, подключается ли объект к удаленному узлу в результате последней операции или .
+ Значение true, если объект в результате последней операции был подключен к удаленному ресурсу; в противном случае — значение false.
+
+
+ Освобождает все ресурсы, используемые текущим экземпляром класса .
+
+
+ Освобождает неуправляемые ресурсы, используемые объектом , и по возможности — управляемые ресурсы.
+ Значение true для освобождения управляемых и неуправляемых ресурсов; значение false для освобождения только неуправляемых ресурсов.
+
+
+ Освобождает ресурсы, используемые классом .
+
+
+ Устанавливает объект в состояние прослушивания.
+ Максимальная длина очереди ожидающих подключений.
+ Произошла ошибка при попытке доступа к сокету.Дополнительные сведения см. в разделе "Примечания".
+ Объект закрыт.
+
+
+
+
+
+
+
+ Возвращает локальную конечную точку.
+ Объект , который объект использует для взаимодействий.
+ Произошла ошибка при попытке доступа к сокету.Дополнительные сведения см. в разделе "Примечания".
+ Объект закрыт.
+
+
+
+
+
+
+
+ Возвращает или задает значение , указывающее, используется ли поток в алгоритме Nagle.
+ Значение false, если объект использует алгоритм Nagle; в противном случае — значение true.Значение по умолчанию — false.
+ Произошла ошибка при попытке доступа к объекту .Дополнительные сведения см. в разделе "Примечания".
+ Объект закрыт.
+
+
+
+
+
+
+
+ Указывает, поддерживают ли основная операционная система и сетевые адаптеры протокол IPv4.
+ Значение true, если основная операционная система и сетевые адаптеры поддерживают протокол IPv4; в противном случае — значение false.
+
+
+ Указывает, поддерживают ли основная операционная система и сетевые адаптеры протокол IPv6.
+ Значение true, если основная операционная система и сетевые адаптеры поддерживают протокол IPv6; в противном случае — значение false.
+
+
+ Получает тип протокола объекта .
+ Одно из значений .
+
+
+ Начинает выполнение асинхронного запроса, чтобы получить данные из подключенного объекта .
+ Возвращает значение true, если операция ввода-вывода находится в состоянии ожидания.По завершении операции создается событие в параметре .Возвращает значение false, если операция ввода-вывода завершена синхронно.В данном случае событие на параметре не будет создано и объект , передаваемый как параметр, можно изучить сразу после получения результатов вызова метода для извлечения результатов операции.
+ Объект для использования в данной асинхронной операции сокета.
+ Аргумент был недопустимым.Свойства или на параметре должны ссылаться на допустимые буферы.Может быть установлено одно из этих свойств, но нельзя одновременно устанавливать оба свойства.
+ Операция сокета уже выполнялась с использованием объекта , указанного в параметре .
+ Этот метод доступен только в Windows XP и более поздних версиях.
+ Объект закрыт.
+ Произошла ошибка при попытке доступа к сокету.Дополнительные сведения см. в разделе "Примечания".
+
+
+ Получает или задает значение, задающее размер приемного буфера объекта .
+ Объект , который содержит значение размера приемного буфера в байтах.Значение по умолчанию — 8192.
+ Произошла ошибка при попытке доступа к сокету.
+ Объект закрыт.
+ Значение, указанное для операции установки, меньше 0.
+
+
+
+
+
+
+
+ Начинает выполнение асинхронного приема данных с указанного сетевого устройства.
+ Возвращает значение true, если операция ввода-вывода находится в состоянии ожидания.По завершении операции создается событие в параметре .Возвращает значение false, если операция ввода-вывода завершена синхронно.В данном случае событие на параметре не будет создано и объект , передаваемый как параметр, можно изучить сразу после получения результатов вызова метода для извлечения результатов операции.
+ Объект для использования в данной асинхронной операции сокета.
+ Объект не может иметь значение "null".
+ Операция сокета уже выполнялась с использованием объекта , указанного в параметре .
+ Этот метод доступен только в Windows XP и более поздних версиях.
+ Объект закрыт.
+ Произошла ошибка при попытке доступа к сокету.
+
+
+ Возвращает удаленную конечную точку.
+ Объект , с которым взаимодействует объект .
+ Произошла ошибка при попытке доступа к сокету.Дополнительные сведения см. в разделе "Примечания".
+ Объект закрыт.
+
+
+
+
+
+
+
+ Выполняет асинхронную передачу данных на подключенный объект .
+ Возвращает значение true, если операция ввода-вывода находится в состоянии ожидания.По завершении операции создается событие в параметре .Возвращает значение false, если операция ввода-вывода завершена синхронно.В данном случае событие на параметре не будет создано и объект , передаваемый как параметр, можно изучить сразу после получения результатов вызова метода для извлечения результатов операции.
+ Объект для использования в данной асинхронной операции сокета.
+ Свойства или на параметре должны ссылаться на допустимые буферы.Может быть установлено одно из этих свойств, но нельзя одновременно устанавливать оба свойства.
+ Операция сокета уже выполнялась с использованием объекта , указанного в параметре .
+ Этот метод доступен только в Windows XP и более поздних версиях.
+ Объект закрыт.
+ Объект уже не подключен или он был получен посредством метода , или .
+
+
+ Получает или задает значение, определяющее размер буфера передачи объекта .
+ Объект , который содержит значение размера буфера передачи в байтах.Значение по умолчанию — 8192.
+ Произошла ошибка при попытке доступа к сокету.
+ Объект закрыт.
+ Значение, указанное для операции установки, меньше 0.
+
+
+
+
+
+
+
+ Выполняет асинхронную передачу данных в указанный удаленный узел.
+ Возвращает значение true, если операция ввода-вывода находится в состоянии ожидания.По завершении операции создается событие в параметре .Возвращает значение false, если операция ввода-вывода завершена синхронно.В данном случае событие на параметре не будет создано и объект , передаваемый как параметр, можно изучить сразу после получения результатов вызова метода для извлечения результатов операции.
+ Объект для использования в данной асинхронной операции сокета.
+ Объект не может иметь значение "null".
+ Операция сокета уже выполнялась с использованием объекта , указанного в параметре .
+ Этот метод доступен только в Windows XP и более поздних версиях.
+ Объект закрыт.
+ Указанный протокол работает с установлением соединения, но объект еще не подключен.
+
+
+ Блокирует передачу и получение данных для объекта .
+ Одно из значений , указывающее на то, что операция более не разрешена.
+ Произошла ошибка при попытке доступа к сокету.Дополнительные сведения см. в разделе "Примечания".
+ Объект закрыт.
+
+
+
+
+
+
+
+ Получает или задает значение, задающее время существования (TTL) IP-пакетов, отправленных объектом .
+ Значение времени существования TTL.
+ В качестве величины срока жизни нельзя задать отрицательное число.
+ Это свойство может быть установлено только для сокетов в семействах или .
+ Произошла ошибка при попытке доступа к сокету.Эта ошибка также возвращается при попытке задать срок жизни больше, чем 255.
+ Объект закрыт.
+
+
+
+
+
+
+
+ Представляет асинхронную операцию сокета.
+
+
+ Создает пустой экземпляр класса .
+ Платформа не поддерживается.
+
+
+ Возвращает или задает сокет для применения или сокет, созданный для принятия запроса на подключения, с помощью асинхронного метода сокета.
+ Объект для применения (сокет, созданный для принятия запроса на подключения с помощью асинхронного метода сокета).
+
+
+ Получает буфер данных для применения в асинхронном методе сокета.
+ Массив , представляющий буфер данных для применения в асинхронном методе сокета.
+
+
+ Возвращает или задает массив буферов данных для применения в асинхронном методе сокета.
+ Объект , представляющий массив буферов данных для применения в асинхронном методе сокета.
+ Неоднозначное указание буферов для заданной операции.Это исключение возникает, если для свойства задано значение, отличное от NULL, и была предпринята попытка задать отличное от NULL значение для свойства .
+
+
+ Получает количество байтов, переданных в операции сокета.
+ Объект , содержащий количество байтов, переданных в операции сокета.
+
+
+ Событие, используемое для завершения асинхронной операции.
+
+
+ Получает исключение в случае сбоя соединения при использовании .
+ Объект , указывающий причину ошибки соединения, если значение было задано для свойства .
+
+
+ Созданный и подключенный объект после успешного выполнения метода .
+ Подключенный объект .
+
+
+ Получает значение, равное максимальному количеству данных (в байтах), которое может быть отправлено или получено в асинхронной операции.
+ Объект , содержащий значение, равное максимальному количеству данных (в байтах), которое может быть отправлено или получено.
+
+
+ Освобождает неуправляемые ресурсы, используемые экземпляром класса , и при необходимости удаляет управляемые ресурсы.
+
+
+ Освобождает ресурсы, используемые классом .
+
+
+ Получает тип операции сокета, которая была выполнена последней с этим объектом контекста.
+ Экземпляр класса , указывающий тип операции сокета, которая была выполнена последней с этим объектом контекста.
+
+
+ Получает смещение (в байтах) в буфере данных, на который ссылается свойство .
+ Объект , содержащий смещение (в байтах) в буфере данных, на который ссылается свойство .
+
+
+ Представляет метод, вызываемый после завершения асинхронной операции.
+ Сигнализирующее событие.
+
+
+ Возвращает или задает удаленную конечную точка IP для асинхронной операции.
+ Объект , представляющий удаленную конечную точка IP для асинхронной операции.
+
+
+ Задает буфер данных для применения в асинхронном методе сокета.
+ Буфер данных для применения в асинхронном методе сокета.
+ Смещение (в байтах) в буфере данных, при котором начинается операция.
+ Максимальное количество данных (в байтах), которое может быть отправлено или получено в буфере.
+ Неоднозначное указание буферов.Это исключение возникает, если значения свойств и одновременно отличны от null.
+ Аргумент вне диапазона.Это исключение возникает, если значение параметра меньше нуля или больше длины массива, указанной в свойстве .Это исключение возникает также, если значение параметра меньше нуля или больше разницы между длиной массива, указанной в свойстве , и значением параметра .
+
+
+ Задает буфер данных для применения в асинхронном методе сокета.
+ Смещение (в байтах) в буфере данных, при котором начинается операция.
+ Максимальное количество данных (в байтах), которое может быть отправлено или получено в буфере.
+ Аргумент вне диапазона.Это исключение возникает, если значение параметра меньше нуля или больше длины массива, указанной в свойстве .Это исключение возникает также, если значение параметра меньше нуля или больше разницы между длиной массива, указанной в свойстве , и значением параметра .
+
+
+ Возвращает или задает результат асинхронной операции сокета.
+ Объект , представляющий результат асинхронной операции сокета.
+
+
+ Возвращает или задает объект пользователя или приложения, связанный с данной асинхронной операцией сокета.
+ Объект, который представляет объект пользователя или приложения, связанный с данной асинхронной операцией сокета.
+
+
+ Тип асинхронной операции сокета, которая была выполнена последней с этим объектом контекста.
+
+
+ Операция Accept сокета.
+
+
+ Операция Connect сокета.
+
+
+ Ни одна из операций сокета.
+
+
+ Операция Receive сокета.
+
+
+ Операция ReceiveFrom сокета.
+
+
+ Операция Send сокета.
+
+
+ Операция SendTo сокета.
+
+
+ Определяет константы, используемые методом .
+
+
+ Отключает объект как от приема, так и от передачи.Это поле является константой.
+
+
+ Отключает объект от приема.Это поле является константой.
+
+
+ Отключает объект от передачи.Это поле является константой.
+
+
+ Указывает тип сокета, являющегося экземпляром класса .
+
+
+ Поддерживает датаграммы — ненадежные сообщения с фиксированной (обычно малой) максимальной длиной, передаваемые без установления подключения.Возможны потеря и дублирование сообщений, а также их получение не в том порядке, в котором они отправлены.Объект типа не требует установки подключения до приема и передачи данных и может обеспечивать связь со множеством одноранговых узлов. использует протокол Datagram () и .
+
+
+ Поддерживает надежные двусторонние байтовые потоки в режиме с установлением подключения, без дублирования данных и без сохранения границ данных.Объект Socket этого типа взаимодействует с одним узлом и требует установления подключения к удаленному узлу перед началом передачи данных. использует протокол TCP () и InterNetwork.
+
+
+ Задает неизвестный тип Socket.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/zh-hans/System.Net.Sockets.xml b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/zh-hans/System.Net.Sockets.xml
new file mode 100644
index 0000000..fe44e18
--- /dev/null
+++ b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/zh-hans/System.Net.Sockets.xml
@@ -0,0 +1,434 @@
+
+
+
+ System.Net.Sockets
+
+
+
+ 指定 类支持的协议。
+
+
+ 传输控制协议。
+
+
+ 用户数据报协议。
+
+
+ 未知协议。
+
+
+ 未指定的协议。
+
+
+ 实现 Berkeley 套接字接口。
+
+
+ 使用指定的地址族、套接字类型和协议初始化 类的新实例。
+
+ 值之一。
+
+ 值之一。
+
+ 值之一。
+
+ 、 和 的组合会导致无效套接字。
+
+
+ 使用指定的地址族、套接字类型和协议初始化 类的新实例。
+
+ 值之一。
+
+ 值之一。
+
+ 和 组合将导致套接字无效。
+
+
+ 开始一个异步操作来接受一个传入的连接尝试。
+ 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 参数的 事件。如果 I/O 操作同步完成,将返回 false。将不会引发 参数的 事件,并且可能在方法调用返回后立即检查作为参数传递的 对象以检索操作的结果。
+ 要用于此异步套接字操作的 对象。
+ 参数无效。如果所提供的缓冲区不够大,将会发生此异常。缓冲区必须至少为 2 * (sizeof(SOCKADDR_STORAGE + 16) 字节。如果指定了多个缓冲区,即 属性不为 null,也会发生此异常。
+ 参数超出范围。如果 小于 0,将会发生此异常。
+ 请求了无效操作。如果接收方 未侦听连接或者绑定了接受的套接字,将发生此异常。 和 方法必须先于 方法调用。如果套接字已连接或使用指定的 参数的套接字操作已经在进行中,也会发生此异常。
+ 试图访问套接字时发生错误。有关更多信息,请参见备注部分。
+ 此方法需要 Windows XP 或更高版本。
+
+ 已关闭。
+
+
+ 获取 的地址族。
+
+ 值之一。
+
+
+ 使 与一个本地终结点相关联。
+ 要与 关联的本地 。
+
+ 为 null。
+ 试图访问套接字时发生错误。有关更多信息,请参见备注部分。
+
+ 已关闭。
+ 调用堆栈上部的调用方无权执行所请求的操作。
+
+
+
+
+
+
+
+
+ 取消一个对远程主机连接的异步请求。
+
+ 对象,该对象用于通过调用 方法之一,请求与远程主机的连接。
+
+ 参数不能为 null,并且 不能为空。
+ 试图访问套接字时发生错误。
+
+ 已关闭。
+ 调用堆栈上部的调用方无权执行所请求的操作。
+
+
+ 开始一个对远程主机连接的异步请求。
+ 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 参数的 事件。如果 I/O 操作同步完成,将返回 false。在这种情况下,将不会引发 参数的 事件,并且可能在方法调用返回后立即检查作为参数传递的 对象以检索操作的结果。
+ 要用于此异步套接字操作的 对象。
+ 参数无效。如果指定了多个缓冲区,即 属性不为 null,将会发生此异常。
+
+ 参数不能为 null,并且 不能为空。
+
+ 正在侦听或已经在使用 参数中指定的 对象执行套接字操作。
+ 试图访问套接字时发生错误。有关更多信息,请参见备注部分。
+ 此方法需要 Windows XP 或更高版本。如果本地终结点和 不是相同的地址族,也会发生此异常。
+
+ 已关闭。
+ 调用堆栈上部的调用方无权执行所请求的操作。
+
+
+ 开始一个对远程主机连接的异步请求。
+ 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 参数的 事件。如果 I/O 操作同步完成,将返回 false。在这种情况下,将不会引发 参数的 事件,并且可能在方法调用返回后立即检查作为参数传递的 对象以检索操作的结果。
+
+ 值之一。
+
+ 值之一。
+ 要用于此异步套接字操作的 对象。
+ 参数无效。如果指定了多个缓冲区,即 属性不为 null,将会发生此异常。
+
+ 参数不能为 null,并且 不能为空。
+
+ 正在侦听或已经在使用 参数中指定的 对象执行套接字操作。
+ 试图访问套接字时发生错误。有关更多信息,请参见备注部分。
+ 此方法需要 Windows XP 或更高版本。如果本地终结点和 不是相同的地址族,也会发生此异常。
+
+ 已关闭。
+ 调用堆栈上部的调用方无权执行所请求的操作。
+
+
+ 获取一个值,该值指示 是在上次 还是 操作时连接到远程主机。
+ 如果 在最近操作时连接到远程资源,则为 true;否则为 false。
+
+
+ 释放由 类的当前实例占用的所有资源。
+
+
+ 释放由 使用的非托管资源,并可根据需要释放托管资源。
+ 如果为 true,则释放托管资源和非托管资源;如果为 false,则仅释放非托管资源。
+
+
+ 释放 类使用的资源。
+
+
+ 将 置于侦听状态。
+ 挂起连接队列的最大长度。
+ 试图访问套接字时发生错误。有关更多信息,请参见备注部分。
+
+ 已关闭。
+
+
+
+
+
+
+
+ 获取本地终结点。
+
+ 当前用以进行通信的 。
+ 试图访问套接字时发生错误。有关更多信息,请参见备注部分。
+
+ 已关闭。
+
+
+
+
+
+
+
+ 获取或设置 值,该值指定流 是否正在使用 Nagle 算法。
+ 如果 使用 Nagle 算法,则为 false;否则为 true。默认值为 false。
+ 试图访问 时发生错误。有关更多信息,请参见备注部分。
+
+ 已关闭。
+
+
+
+
+
+
+
+ 指示基础操作系统和网络适配器是否支持 Internet 协议第 4 版 (IPv4)。
+ 如果操作系统和网络适配器支持 IPv4 协议,则为 true;否则为 false。
+
+
+ 指示基础操作系统和网络适配器是否支持 Internet 协议第 6 版 (IPv6)。
+ 如果操作系统和网络适配器支持 IPv6 协议,则为 true;否则为 false。
+
+
+ 获取 的协议类型。
+
+ 值之一。
+
+
+ 开始一个异步请求以便从连接的 对象中接收数据。
+ 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 参数的 事件。如果 I/O 操作同步完成,将返回 false。在这种情况下,将不会引发 参数的 事件,并且可能在方法调用返回后立即检查作为参数传递的 对象以检索操作的结果。
+ 要用于此异步套接字操作的 对象。
+ 参数无效。 参数的 或 属性必须引用有效的缓冲区。可以设置这两个属性中的某一个,但不能同时设置这两个属性。
+ 已经在使用 参数中指定的 对象执行套接字操作。
+ 此方法需要 Windows XP 或更高版本。
+
+ 已关闭。
+ 试图访问套接字时发生错误。有关更多信息,请参见备注部分。
+
+
+ 获取或设置一个值,它指定 接收缓冲区的大小。
+
+ ,它包含接收缓冲区的大小(以字节为单位)。默认值为 8192。
+ 试图访问套接字时发生错误。
+
+ 已关闭。
+ 为设置操作指定的值小于 0。
+
+
+
+
+
+
+
+ 开始从指定网络设备中异步接收数据。
+ 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 参数的 事件。如果 I/O 操作同步完成,将返回 false。在这种情况下,将不会引发 参数的 事件,并且可能在方法调用返回后立即检查作为参数传递的 对象以检索操作的结果。
+ 要用于此异步套接字操作的 对象。
+
+ 不能为 null。
+ 已经在使用 参数中指定的 对象执行套接字操作。
+ 此方法需要 Windows XP 或更高版本。
+
+ 已关闭。
+ 试图访问套接字时发生错误。
+
+
+ 获取远程终结点。
+ 当前和 通信的 。
+ 试图访问套接字时发生错误。有关更多信息,请参见备注部分。
+
+ 已关闭。
+
+
+
+
+
+
+
+ 将数据异步发送到连接的 对象。
+ 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 参数的 事件。如果 I/O 操作同步完成,将返回 false。在这种情况下,将不会引发 参数的 事件,并且可能在方法调用返回后立即检查作为参数传递的 对象以检索操作的结果。
+ 要用于此异步套接字操作的 对象。
+
+ 参数的 或 属性必须引用有效的缓冲区。可以设置这两个属性中的某一个,但不能同时设置这两个属性。
+ 已经在使用 参数中指定的 对象执行套接字操作。
+ 此方法需要 Windows XP 或更高版本。
+
+ 已关闭。
+
+ 尚未连接或者尚未通过 、 或 方法获得。
+
+
+ 获取或设置一个值,该值指定 发送缓冲区的大小。
+
+ ,它包含发送缓冲区的大小(以字节为单位)。默认值为 8192。
+ 试图访问套接字时发生错误。
+
+ 已关闭。
+ 为设置操作指定的值小于 0。
+
+
+
+
+
+
+
+ 向特定远程主机异步发送数据。
+ 如果 I/O 操作挂起,将返回 true。操作完成时,将引发 参数的 事件。如果 I/O 操作同步完成,将返回 false。在这种情况下,将不会引发 参数的 事件,并且可能在方法调用返回后立即检查作为参数传递的 对象以检索操作的结果。
+ 要用于此异步套接字操作的 对象。
+
+ 不能为 null。
+ 已经在使用 参数中指定的 对象执行套接字操作。
+ 此方法需要 Windows XP 或更高版本。
+
+ 已关闭。
+ 指定的协议是面向连接的,但 尚未连接。
+
+
+ 禁用某 上的发送和接收。
+
+ 值之一,它指定不再允许执行的操作。
+ 试图访问套接字时发生错误。有关更多信息,请参见备注部分。
+
+ 已关闭。
+
+
+
+
+
+
+
+ 获取或设置一个值,指定 发送的 Internet 协议 (IP) 数据包的生存时间 (TTL) 值。
+ TTL 值。
+ TTL 值不能设置为负数。
+ 只有对于在 或 族中的套接字,才可以设置此属性。
+ 试图访问套接字时发生错误。在尝试将 TTL 设置为大于 255 的值时,也将返回此错误。
+
+ 已关闭。
+
+
+
+
+
+
+
+ 表示异步套接字操作。
+
+
+ 创建一个空的 实例。
+ 该平台不受支持。
+
+
+ 获取或设置要使用的套接字或创建用于接受与异步套接字方法的连接的套接字。
+ 要使用的 或者创建用于接受与异步套接字方法的连接的套接字。
+
+
+ 获取要用于异步套接字方法的数据缓冲区。
+ 一个 数组,表示要用于异步套接字方法的数据缓冲区。
+
+
+ 获取或设置一个要用于异步套接字方法的数据缓冲区数组。
+ 一个 ,表示要用于异步套接字方法的数据缓冲区数组。
+ 存在不明确的缓冲区,这些缓冲区是在 set 操作上指定的。如果 属性已设置为非空值并且尝试将 属性设置为非空值,将引发此异常。
+
+
+ 获取在套接字操作中传输的字节数。
+ 一个 ,包含在套接字操作中传输的字节数。
+
+
+ 用于完成异步操作的事件。
+
+
+ 当使用 时,在出现连接故障的情况下获取异常。
+ 一个 ,指示在为 属性指定 时发生连接错误的原因。
+
+
+ 成功完成 方法后创建和连接的 对象。
+ 连接的 对象。
+
+
+ 获取可在异步操作中发送或接收的最大数据量(以字节为单位)。
+ 一个 ,包含可发送或接收的最大数据量(以字节为单位)。
+
+
+ 释放由 实例使用的非托管资源,并可选择释放托管资源。
+
+
+ 释放 类使用的资源。
+
+
+ 获取最近使用此上下文对象执行的套接字操作类型。
+ 一个 实例,指示最近使用此上下文对象执行的套接字操作类型。
+
+
+ 获取 属性引用的数据缓冲区的偏移量(以字节为单位)。
+ 一个 ,包含 属性引用的数据缓冲区的偏移量(以字节为单位)。
+
+
+ 表示异步操作完成时调用的方法。
+ 终止的事件。
+
+
+ 获取或设置异步操作的远程 IP 终结点。
+ 一个 ,表示异步操作的远程 IP 终结点。
+
+
+ 设置要用于异步套接字方法的数据缓冲区。
+ 要用于异步套接字方法的数据缓冲区。
+ 数据缓冲区中操作开始位置处的偏移量,以字节为单位。
+ 可在缓冲区中发送或接收的最大数据量(以字节为单位)。
+ 指定的缓冲区不明确。如果 属性不为 null, 属性也不为 null,将发生此异常。
+ 参数超出范围。如果 参数小于零或大于 属性中的数组长度,将发生此异常。如果 参数小于零或大于 属性中的数组长度减去 参数的值,也会发生此异常。
+
+
+ 设置要用于异步套接字方法的数据缓冲区。
+ 数据缓冲区中操作开始位置处的偏移量,以字节为单位。
+ 可在缓冲区中发送或接收的最大数据量(以字节为单位)。
+ 参数超出范围。如果 参数小于零或大于 属性中的数组长度,将发生此异常。如果 参数小于零或大于 属性中的数组长度减去 参数的值,也会发生此异常。
+
+
+ 获取或设置异步套接字操作的结果。
+ 一个 ,表示异步套接字操作的结果。
+
+
+ 获取或设置与此异步套接字操作关联的用户或应用程序对象。
+ 一个对象,表示与此异步套接字操作关联的用户或应用程序对象。
+
+
+ 最近使用此上下文对象执行的异步套接字操作的类型。
+
+
+ 一个套接字 Accept 操作。
+
+
+ 一个套接字 Connect 操作。
+
+
+ 没有套接字操作。
+
+
+ 一个套接字 Receive 操作。
+
+
+ 一个套接字 ReceiveFrom 操作。
+
+
+ 一个套接字 Send 操作。
+
+
+ 一个套接字 SendTo 操作。
+
+
+ 定义 方法使用的常量。
+
+
+ 为发送和接收禁用 。此字段为常数。
+
+
+ 禁用接收的 。此字段为常数。
+
+
+ 禁用发送的 。此字段为常数。
+
+
+ 指定 类的实例表示的套接字类型。
+
+
+ 支持数据报,即最大长度固定(通常很小)的无连接、不可靠消息。消息可能会丢失或重复并可能在到达时不按顺序排列。 类型的 在发送和接收数据之前不需要任何连接,并且可以与多个对方主机进行通信。 使用数据报协议 () 和 。
+
+
+ 支持可靠、双向、基于连接的字节流,而不重复数据,也不保留边界。此类型的 Socket 与单个对方主机通信,并且在通信开始之前需要建立远程主机连接。 使用传输控制协议 () 和 InterNetwork。
+
+
+ 指定未知的 Socket 类型。
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/zh-hant/System.Net.Sockets.xml b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/zh-hant/System.Net.Sockets.xml
new file mode 100644
index 0000000..8f05042
--- /dev/null
+++ b/packages/System.Net.Sockets.4.3.0/ref/netstandard1.3/zh-hant/System.Net.Sockets.xml
@@ -0,0 +1,441 @@
+
+
+
+ System.Net.Sockets
+
+
+
+ 指定 類別支援的通訊協定。
+
+
+ 傳輸控制通訊協定。
+
+
+ 使用者資料包通訊協定 (User Datagram Protocol,UDP)。
+
+
+ 不明的通訊協定。
+
+
+ 未指定的通訊協定。
+
+
+ 實作 Berkeley 通訊端介面。
+
+
+ 使用指定的通訊協定家族 (Family)、通訊端類型和通訊協定,初始化 類別的新執行個體。
+ 一個 值。
+ 其中一個 值。
+ 其中一個 值。
+
+ 、 和 組合所產生的無效通訊端。
+
+
+ 使用指定的通訊端類型和通訊協定,初始化 類別的新執行個體。
+ 其中一個 值。
+ 其中一個 值。
+
+ 和 組合產生無效通訊端。
+
+
+ 開始非同步作業以接受連入的連接嘗試。
+ 如果 I/O 作業暫止,則傳回 true。作業完成時會引發與 參數有關的 事件。如果 I/O 作業同步完成,則傳回 false。不會引發與 參數有關的 事件,而在方法呼叫傳回後會立即檢查做為參數傳遞的 物件,以擷取作業的結果。
+
+ 物件,用於這個非同步通訊端作業。
+ 引數是無效的。如果提供的緩衝區不夠大,就會發生這個例外狀況。緩衝區必須至少為 2 * (sizeof(SOCKADDR_STORAGE + 16) 位元組。如果指定多個緩衝區而 屬性不是 null,也會發生這個例外狀況。
+ 引數超出範圍。如果 小於 0,就會發生這個例外狀況。
+ 要求了無效的作業。如果接受的 不接聽連接或接受的通訊端已繫結,就會發生這個例外狀況。您必須先呼叫 和 方法,再呼叫 方法。此例外狀況也會在已與通訊端連線,或是通訊端作業已使用指定的 參數進行時發生。
+ 嘗試存取通訊端時發生錯誤。如需詳細資訊,請參閱「備註」一節。
+ 這個方法需要 Windows XP (含) 以後版本。
+
+ 已經關閉。
+
+
+ 取得 的通訊協定家族 (Family)。
+ 一個 值。
+
+
+ 使 與本機端點建立關聯。
+ 要與 關聯的本機 。
+
+ 為 null。
+ 嘗試存取通訊端時發生錯誤。如需詳細資訊,請參閱「備註」一節。
+
+ 已經關閉。
+ 在呼叫堆疊中位置較高的呼叫端對於要求的作業沒有使用權限。
+
+
+
+
+
+
+
+
+ 取消遠端主機連接的非同步要求。
+
+ 物件,藉由呼叫一個 方法來要求與遠端主機連接。
+
+ 參數不可為 null,而且 也不可為 null。
+ 嘗試存取通訊端時發生錯誤。
+
+ 已經關閉。
+ 在呼叫堆疊中位置較高的呼叫端對於要求的作業沒有使用權限。
+
+
+ 開始與遠端主機連接的非同步要求。
+ 如果 I/O 作業暫止,則傳回 true。作業完成時會引發與 參數有關的 事件。如果 I/O 作業同步完成,則傳回 false。在這個情況下,就不會引發與 參數有關的 事件,而在方法呼叫傳回後會立即檢查做為參數傳遞的 物件,以擷取作業的結果。
+
+ 物件,用於這個非同步通訊端作業。
+ 引數是無效的。如果指定多個緩衝區而 屬性不是 null,就會發生這個例外狀況。
+
+ 參數不可為 null,而且 也不可為 null。
+
+ 正在接聽,或是通訊端作業正在進行並且使用 參數所指定的 物件。
+ 嘗試存取通訊端時發生錯誤。如需詳細資訊,請參閱「備註」一節。
+ 這個方法需要 Windows XP (含) 以後版本。如果本機端點和 不是同一個通訊協定家族 (Family),也會發生這個例外狀況。
+
+ 已經關閉。
+ 在呼叫堆疊中位置較高的呼叫端對於要求的作業沒有使用權限。
+
+
+ 開始與遠端主機連接的非同步要求。
+ 如果 I/O 作業暫止,則傳回 true。作業完成時會引發與 參數有關的 事件。如果 I/O 作業同步完成,則傳回 false。在這個情況下,就不會引發與 參數有關的 事件,而在方法呼叫傳回後會立即檢查做為參數傳遞的 物件,以擷取作業的結果。
+ 其中一個 值。
+ 其中一個 值。
+
+ 物件,用於這個非同步通訊端作業。
+ 引數是無效的。如果指定多個緩衝區而 屬性不是 null,就會發生這個例外狀況。
+
+ 參數不可為 null,而且 也不可為 null。
+
+ 正在接聽,或是通訊端作業正在進行並且使用 參數所指定的 物件。
+ 嘗試存取通訊端時發生錯誤。如需詳細資訊,請參閱「備註」一節。
+ 這個方法需要 Windows XP (含) 以後版本。如果本機端點和 不是同一個通訊協定家族 (Family),也會發生這個例外狀況。
+
+ 已經關閉。
+ 在呼叫堆疊中位置較高的呼叫端對於要求的作業沒有使用權限。
+
+
+ 取得值,指出上一個 或 作業是否將 連接至遠端主機。
+ 如果最近一次的作業是將 連接到遠端資源,則為 true,否則,即為 false。
+
+
+ 將 類別目前的執行個體所使用的資源全部釋出。
+
+
+ 釋放 所使用的 Unmanaged 資源,並選擇性處置 Managed 資源。
+ true,表示釋放 Managed 和 Unmanaged 資源;false,表示只釋放 Unmanaged 資源。
+
+
+ 釋放 類別所使用的資源。
+
+
+ 將 置於接聽狀態。
+ 暫止連接佇列的最大長度。
+ 嘗試存取通訊端時發生錯誤。如需詳細資訊,請參閱「備註」一節。
+
+ 已經關閉。
+
+
+
+
+
+
+
+ 取得本機端點。
+
+ , 正將它用於通訊。
+ 嘗試存取通訊端時發生錯誤。如需詳細資訊,請參閱「備註」一節。
+
+ 已經關閉。
+
+
+
+
+
+
+
+ 取得或設定 值,指定資料流 是否使用 Nagle 演算法。
+ 如果 使用 Nagle 演算法,則為 false,否則為 true。預設值為 false。
+ 嘗試存取 時發生錯誤。如需詳細資訊,請參閱「備註」一節。
+
+ 已經關閉。
+
+
+
+
+
+
+
+ 指出基礎作業系統和網路配置器是否支援網際網路通訊協定第 4 版 (IPv4)。
+ 如果作業系統和網路配置器支援 IPv4 通訊協定則為 true,否則為 false。
+
+
+ 指出基礎作業系統和網路配置器是否支援網際網路通訊協定第 6 版 (IPv6)。
+ 如果作業系統和網路配置器支援 IPv6 通訊協定則為 true,否則為 false。
+
+
+ 取得 的通訊協定 (Protocol) 類型。
+ 其中一個 值。
+
+
+ 開始非同步要求,以接收來自已連接的 物件的資料。
+ 如果 I/O 作業暫止,則傳回 true。作業完成時會引發與 參數有關的 事件。如果 I/O 作業同步完成,則傳回 false。在這個情況下,就不會引發與 參數有關的 事件,而在方法呼叫傳回後會立即檢查做為參數傳遞的 物件,以擷取作業的結果。
+
+ 物件,用於這個非同步通訊端作業。
+ 引數無效。 參數上的 或 屬性必須參考有效的緩衝區。這兩個屬性可能有一個已經設定,但不會同時都已設定。
+ 通訊端作業已使用 參數內指定的 物件正在進行中。
+ 這個方法需要 Windows XP (含) 以後版本。
+
+ 已經關閉。
+ 嘗試存取通訊端時發生錯誤。如需詳細資訊,請參閱「備註」一節。
+
+
+ 取得或設定值,指定 之接收緩衝區的大小。
+
+ ,包含接收緩衝區的大小 (以位元組為單位)。預設值為 8192。
+ 嘗試存取通訊端時發生錯誤。
+
+ 已經關閉。
+ 為設定作業指定的值小於 0。
+
+
+
+
+
+
+
+ 開始從指定的網路裝置非同步接收資料。
+ 如果 I/O 作業暫止,則傳回 true。作業完成時會引發與 參數有關的 事件。如果 I/O 作業同步完成,則傳回 false。在這個情況下,就不會引發與 參數有關的 事件,而在方法呼叫傳回後會立即檢查做為參數傳遞的 物件,以擷取作業的結果。
+
+ 物件,用於這個非同步通訊端作業。
+
+ 不可以是 null。
+ 通訊端作業已使用 參數內指定的 物件正在進行中。
+ 這個方法需要 Windows XP (含) 以後版本。
+
+ 已經關閉。
+ 嘗試存取通訊端時發生錯誤。
+
+
+ 取得遠端端點。
+
+ , 正在與其通訊。
+ 嘗試存取通訊端時發生錯誤。如需詳細資訊,請參閱「備註」一節。
+
+ 已經關閉。
+
+
+
+
+
+
+
+ 將資料以非同步方式傳送至已連接的 物件。
+ 如果 I/O 作業暫止,則傳回 true。作業完成時會引發與 參數有關的 事件。如果 I/O 作業同步完成,則傳回 false。在這個情況下,就不會引發與 參數有關的 事件,而在方法呼叫傳回後會立即檢查做為參數傳遞的 物件,以擷取作業的結果。
+
+ 物件,用於這個非同步通訊端作業。
+
+ 參數上的 或 屬性必須參考有效的緩衝區。這兩個屬性可能有一個已經設定,但不會同時都已設定。
+ 通訊端作業已使用 參數內指定的 物件正在進行中。
+ 這個方法需要 Windows XP (含) 以後版本。
+
+ 已經關閉。
+ 尚未透過 、 或 方法取得 ,或尚未連接。
+
+
+ 取得或設定值,指定 之傳送緩衝區的大小。
+
+ ,包含傳送緩衝區的大小 (以位元組為單位)。預設值為 8192。
+ 嘗試存取通訊端時發生錯誤。
+
+ 已經關閉。
+ 為設定作業指定的值小於 0。
+
+
+
+
+
+
+
+ 非同步傳送資料至特定的遠端主機。
+ 如果 I/O 作業暫止,則傳回 true。作業完成時會引發與 參數有關的 事件。如果 I/O 作業同步完成,則傳回 false。在這個情況下,就不會引發與 參數有關的 事件,而在方法呼叫傳回後會立即檢查做為參數傳遞的 物件,以擷取作業的結果。
+
+ 物件,用於這個非同步通訊端作業。
+
+ 不可以是 null。
+ 通訊端作業已使用 參數內指定的 物件正在進行中。
+ 這個方法需要 Windows XP (含) 以後版本。
+
+ 已經關閉。
+ 指定的通訊協定是連接導向的,但尚未連接 。
+
+
+ 暫停 上的傳送和接收作業。
+ 其中一個 值,指定將不再允許的作業。
+ 嘗試存取通訊端時發生錯誤。如需詳細資訊,請參閱「備註」一節。
+
+ 已經關閉。
+
+
+
+
+
+
+
+ 取得或設定值,指定 傳送之網際網路通訊協定 (IP) 封包的存留時間 (TTL) 值。
+ TTL 值。
+ TTL 值不能設定為負數。
+ 這個屬性只可為 或 家族中的通訊端設定。
+ 嘗試存取通訊端時發生錯誤。當嘗試將 TTL 設定為大於 255 的值時,也會傳回這個錯誤。
+
+ 已經關閉。
+
+
+
+
+
+
+
+ 代表非同步 (Asynchronous) 通訊端作業。
+
+
+ 建立空的 執行個體。
+ 不支援平台。
+
+
+ 取得或設定要使用的通訊端,或是已建立並且使用非同步通訊端方法接受連線的通訊端。
+ 要使用的 ,或是已建立並且使用非同步通訊端方法接受連線的通訊端。
+
+
+ 取得要和非同步通訊端方法一起使用的資料緩衝區。
+
+ 陣列,表示要和非同步通訊端方法一起使用的資料緩衝區。
+
+
+ 取得或設定要和非同步通訊端方法一起使用的資料緩衝區之陣列。
+
+ ,表示要和非同步通訊端方法一起使用的資料緩衝區之陣列。
+ Set 作業指定了不明確的緩衝區。如果 屬性設定成非 Null 值,且嘗試將 屬性設定為非 Null 值,就會發生這個例外狀況。
+
+
+ 取得通訊端作業中所傳輸的位元組數目。
+
+ ,內含通訊端作業中所傳輸的位元組數目。
+
+
+ 用來完成非同步作業的事件。
+
+
+ 取得使用 時發生連接失敗的例外狀況 (Exception)。
+
+ ,指出當指定 屬性的 條件下發生連接錯誤的原因。
+
+
+
+ 方法成功完成後已建立和連接的 物件。
+ 連接的 物件。
+
+
+ 取得非同步作業中要傳送或接收的資料量上限 (以位元組為單位)。
+
+ ,內含要傳送或接收的資料量上限 (以位元組為單位)。
+
+
+ 釋放 執行個體所使用的 Unmanaged 資源,並選擇性地處置 Managed 資源。
+
+
+ 釋放 所使用的資源。
+
+
+ 取得最近使用這個內容物件執行的通訊端作業類型。
+
+ 執行個體,代表最近使用這個內容物件執行的通訊端作業類型。
+
+
+ 取得 屬性所參考之資料緩衝區中的位移 (以位元組為單位)。
+
+ ,內含 屬性所參考之資料緩衝區中的位移 (以位元組為單位)。
+
+
+ 代表在非同步作業完成時所呼叫的方法。
+ 收到信號的事件。
+
+
+ 取得或設定非同步作業的遠端 IP 端點。
+
+ ,表示非同步作業的遠端 IP 端點。
+
+
+ 設定要和非同步通訊端方法一起使用的資料緩衝區。
+ 要和非同步通訊端方法一起使用的資料緩衝區。
+ 作業開始的資料緩衝區位移 (以位元組為單位)。
+ 緩衝區中要傳送或接收的資料量上限 (以位元組為單位)。
+ 指定了不明確的緩衝區。如果 屬性和 屬性都不是 null,就會發生這個例外狀況。
+ 引數超出範圍。如果 參數小於零或大於 屬性中的陣列長度,就會發生這個例外狀況。如果 參數小於零或大於 屬性中的陣列長度減去 參數,也會發生這個例外狀況。
+
+
+ 設定要和非同步通訊端方法一起使用的資料緩衝區。
+ 作業開始的資料緩衝區位移 (以位元組為單位)。
+ 緩衝區中要傳送或接收的資料量上限 (以位元組為單位)。
+ 引數超出範圍。如果 參數小於零或大於 屬性中的陣列長度,就會發生這個例外狀況。如果 參數小於零或大於 屬性中的陣列長度減去 參數,也會發生這個例外狀況。
+
+
+ 取得或設定非同步通訊端作業的結果。
+
+ ,表示非同步通訊端作業的結果。
+
+
+ 取得或設定與這個非同步通訊端作業相關聯的使用者或應用程式物件。
+ 物件,表示與這個非同步通訊端作業相關聯的使用者或應用程式物件。
+
+
+ 最近使用這個內容物件執行的非同步通訊端作業類型。
+
+
+ 通訊端 Accept 作業。
+
+
+ 通訊端 Connect 作業。
+
+
+ 沒有任何一個通訊端作業。
+
+
+ 通訊端 Receive 作業。
+
+
+ 通訊端 ReceiveFrom 作業。
+
+
+ 通訊端 Send 作業。
+
+
+ 通訊端 SendTo 作業。
+
+
+ 定義 方法所使用的常數。
+
+
+ 停用關閉傳送和接收的 。這個欄位是常數。
+
+
+ 停用接收的 。這個欄位是常數。
+
+
+ 停用傳送的 。這個欄位是常數。
+
+
+ 指定 類別的執行個體 (Instance) 所表示的通訊端 (Socket) 類型。
+
+
+ 支援資料包 (Datagram),這些資料包是固定 (一般為小型) 最大長度的無連線、不可靠訊息。訊息可能會遺失或重複而抵達的順序也可能會混亂。 類型的 在傳送和接收資料之前並不需要先連線,並且可以與多個對等端通訊。 會使用資料包通訊協定 () 以及 。
+
+
+ 支援可靠、雙向、連接架構的位元組資料流,而不會導致資料重複且不需保留界限。這個類型的 Socket 可與單一對等端通訊,而在可以開始通訊之前必須連接遠端主機。 會使用「傳輸控制通訊協定」() 以及 InterNetwork。
+
+
+ 指定未知的 Socket 類型。
+
+
+
\ No newline at end of file
diff --git a/packages/System.Net.Sockets.4.3.0/ref/xamarinios10/_._ b/packages/System.Net.Sockets.4.3.0/ref/xamarinios10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.Sockets.4.3.0/ref/xamarinmac20/_._ b/packages/System.Net.Sockets.4.3.0/ref/xamarinmac20/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.Sockets.4.3.0/ref/xamarintvos10/_._ b/packages/System.Net.Sockets.4.3.0/ref/xamarintvos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Net.Sockets.4.3.0/ref/xamarinwatchos10/_._ b/packages/System.Net.Sockets.4.3.0/ref/xamarinwatchos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/.signature.p7s b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/.signature.p7s
new file mode 100644
index 0000000..fb9174b
Binary files /dev/null and b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/.signature.p7s differ
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/System.Runtime.InteropServices.RuntimeInformation.4.0.0.nupkg b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/System.Runtime.InteropServices.RuntimeInformation.4.0.0.nupkg
new file mode 100644
index 0000000..c3a2f79
Binary files /dev/null and b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/System.Runtime.InteropServices.RuntimeInformation.4.0.0.nupkg differ
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ThirdPartyNotices.txt b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ThirdPartyNotices.txt
new file mode 100644
index 0000000..55cfb20
--- /dev/null
+++ b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ThirdPartyNotices.txt
@@ -0,0 +1,31 @@
+This Microsoft .NET Library may incorporate components from the projects listed
+below. Microsoft licenses these components under the Microsoft .NET Library
+software license terms. The original copyright notices and the licenses under
+which Microsoft received such components are set forth below for informational
+purposes only. Microsoft reserves all rights not expressly granted herein,
+whether by implication, estoppel or otherwise.
+
+1. .NET Core (https://github.com/dotnet/core/)
+
+.NET Core
+Copyright (c) .NET Foundation and Contributors
+
+The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/dotnet_library_license.txt b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/dotnet_library_license.txt
new file mode 100644
index 0000000..92b6c44
--- /dev/null
+++ b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/dotnet_library_license.txt
@@ -0,0 +1,128 @@
+
+MICROSOFT SOFTWARE LICENSE TERMS
+
+
+MICROSOFT .NET LIBRARY
+
+These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft
+
+· updates,
+
+· supplements,
+
+· Internet-based services, and
+
+· support services
+
+for this software, unless other terms accompany those items. If so, those terms apply.
+
+BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.
+
+
+IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW.
+
+1. INSTALLATION AND USE RIGHTS.
+
+a. Installation and Use. You may install and use any number of copies of the software to design, develop and test your programs.
+
+b. Third Party Programs. The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only.
+
+2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.
+
+a. DISTRIBUTABLE CODE. The software is comprised of Distributable Code. “Distributable Code” is code that you are permitted to distribute in programs you develop if you comply with the terms below.
+
+i. Right to Use and Distribute.
+
+· You may copy and distribute the object code form of the software.
+
+· Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs.
+
+ii. Distribution Requirements. For any Distributable Code you distribute, you must
+
+· add significant primary functionality to it in your programs;
+
+· require distributors and external end users to agree to terms that protect it at least as much as this agreement;
+
+· display your valid copyright notice on your programs; and
+
+· indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your programs.
+
+iii. Distribution Restrictions. You may not
+
+· alter any copyright, trademark or patent notice in the Distributable Code;
+
+· use Microsoft’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by Microsoft;
+
+· include Distributable Code in malicious, deceptive or unlawful programs; or
+
+· modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that
+
+· the code be disclosed or distributed in source code form; or
+
+· others have the right to modify it.
+
+3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not
+
+· work around any technical limitations in the software;
+
+· reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;
+
+· publish the software for others to copy;
+
+· rent, lease or lend the software;
+
+· transfer the software or this agreement to any third party; or
+
+· use the software for commercial software hosting services.
+
+4. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software.
+
+5. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes.
+
+6. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting.
+
+7. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it.
+
+8. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.
+
+9. APPLICABLE LAW.
+
+a. United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort.
+
+b. Outside the United States. If you acquired the software in any other country, the laws of that country apply.
+
+10. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.
+
+11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+FOR AUSTRALIA – YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS.
+
+12. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.
+
+This limitation applies to
+
+· anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and
+
+· claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.
+
+It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.
+
+Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French.
+
+Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français.
+
+EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont exclues.
+
+LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices.
+
+Cette limitation concerne :
+
+· tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et
+
+· les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur.
+
+Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel dommage. Si votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’appliquera pas à votre égard.
+
+EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas.
+
+
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/MonoAndroid10/_._ b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/MonoAndroid10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/MonoTouch10/_._ b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/MonoTouch10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000..86fa29f
Binary files /dev/null and b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/win8/System.Runtime.InteropServices.RuntimeInformation.dll b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/win8/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000..15dcb06
Binary files /dev/null and b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/win8/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/wpa81/System.Runtime.InteropServices.RuntimeInformation.dll b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/wpa81/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000..01105f2
Binary files /dev/null and b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/wpa81/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/xamarinios10/_._ b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/xamarinios10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/xamarinmac20/_._ b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/xamarinmac20/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/xamarintvos10/_._ b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/xamarintvos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/xamarinwatchos10/_._ b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/lib/xamarinwatchos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ref/MonoAndroid10/_._ b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ref/MonoAndroid10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ref/MonoTouch10/_._ b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ref/MonoTouch10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ref/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ref/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000..79fdc06
Binary files /dev/null and b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ref/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ref/xamarinios10/_._ b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ref/xamarinios10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ref/xamarinmac20/_._ b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ref/xamarinmac20/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ref/xamarintvos10/_._ b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ref/xamarintvos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ref/xamarinwatchos10/_._ b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/ref/xamarinwatchos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/runtimes/aot/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/runtimes/aot/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000..ac92f0c
Binary files /dev/null and b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/runtimes/aot/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/runtimes/unix/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/runtimes/unix/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000..c95aafd
Binary files /dev/null and b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/runtimes/unix/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/runtimes/win/lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/runtimes/win/lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000..86fa29f
Binary files /dev/null and b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/runtimes/win/lib/net45/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/runtimes/win/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/runtimes/win/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000..abe3c82
Binary files /dev/null and b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/runtimes/win/lib/netcore50/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/runtimes/win/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/runtimes/win/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000..1642e7b
Binary files /dev/null and b/packages/System.Runtime.InteropServices.RuntimeInformation.4.0.0/runtimes/win/lib/netstandard1.1/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/packages/System.Xml.XmlDocument.4.3.0/.signature.p7s b/packages/System.Xml.XmlDocument.4.3.0/.signature.p7s
new file mode 100644
index 0000000..4ed15e4
Binary files /dev/null and b/packages/System.Xml.XmlDocument.4.3.0/.signature.p7s differ
diff --git a/packages/System.Xml.XmlDocument.4.3.0/System.Xml.XmlDocument.4.3.0.nupkg b/packages/System.Xml.XmlDocument.4.3.0/System.Xml.XmlDocument.4.3.0.nupkg
new file mode 100644
index 0000000..c106cb4
Binary files /dev/null and b/packages/System.Xml.XmlDocument.4.3.0/System.Xml.XmlDocument.4.3.0.nupkg differ
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ThirdPartyNotices.txt b/packages/System.Xml.XmlDocument.4.3.0/ThirdPartyNotices.txt
new file mode 100644
index 0000000..55cfb20
--- /dev/null
+++ b/packages/System.Xml.XmlDocument.4.3.0/ThirdPartyNotices.txt
@@ -0,0 +1,31 @@
+This Microsoft .NET Library may incorporate components from the projects listed
+below. Microsoft licenses these components under the Microsoft .NET Library
+software license terms. The original copyright notices and the licenses under
+which Microsoft received such components are set forth below for informational
+purposes only. Microsoft reserves all rights not expressly granted herein,
+whether by implication, estoppel or otherwise.
+
+1. .NET Core (https://github.com/dotnet/core/)
+
+.NET Core
+Copyright (c) .NET Foundation and Contributors
+
+The MIT License (MIT)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/packages/System.Xml.XmlDocument.4.3.0/dotnet_library_license.txt b/packages/System.Xml.XmlDocument.4.3.0/dotnet_library_license.txt
new file mode 100644
index 0000000..92b6c44
--- /dev/null
+++ b/packages/System.Xml.XmlDocument.4.3.0/dotnet_library_license.txt
@@ -0,0 +1,128 @@
+
+MICROSOFT SOFTWARE LICENSE TERMS
+
+
+MICROSOFT .NET LIBRARY
+
+These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft
+
+· updates,
+
+· supplements,
+
+· Internet-based services, and
+
+· support services
+
+for this software, unless other terms accompany those items. If so, those terms apply.
+
+BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE.
+
+
+IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW.
+
+1. INSTALLATION AND USE RIGHTS.
+
+a. Installation and Use. You may install and use any number of copies of the software to design, develop and test your programs.
+
+b. Third Party Programs. The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only.
+
+2. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS.
+
+a. DISTRIBUTABLE CODE. The software is comprised of Distributable Code. “Distributable Code” is code that you are permitted to distribute in programs you develop if you comply with the terms below.
+
+i. Right to Use and Distribute.
+
+· You may copy and distribute the object code form of the software.
+
+· Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs.
+
+ii. Distribution Requirements. For any Distributable Code you distribute, you must
+
+· add significant primary functionality to it in your programs;
+
+· require distributors and external end users to agree to terms that protect it at least as much as this agreement;
+
+· display your valid copyright notice on your programs; and
+
+· indemnify, defend, and hold harmless Microsoft from any claims, including attorneys’ fees, related to the distribution or use of your programs.
+
+iii. Distribution Restrictions. You may not
+
+· alter any copyright, trademark or patent notice in the Distributable Code;
+
+· use Microsoft’s trademarks in your programs’ names or in a way that suggests your programs come from or are endorsed by Microsoft;
+
+· include Distributable Code in malicious, deceptive or unlawful programs; or
+
+· modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that
+
+· the code be disclosed or distributed in source code form; or
+
+· others have the right to modify it.
+
+3. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not
+
+· work around any technical limitations in the software;
+
+· reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation;
+
+· publish the software for others to copy;
+
+· rent, lease or lend the software;
+
+· transfer the software or this agreement to any third party; or
+
+· use the software for commercial software hosting services.
+
+4. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software.
+
+5. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes.
+
+6. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting.
+
+7. SUPPORT SERVICES. Because this software is “as is,” we may not provide support services for it.
+
+8. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services.
+
+9. APPLICABLE LAW.
+
+a. United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort.
+
+b. Outside the United States. If you acquired the software in any other country, the laws of that country apply.
+
+10. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so.
+
+11. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED “AS-IS.” YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+
+FOR AUSTRALIA – YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS.
+
+12. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES.
+
+This limitation applies to
+
+· anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and
+
+· claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law.
+
+It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages.
+
+Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French.
+
+Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français.
+
+EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n’accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d’adéquation à un usage particulier et d’absence de contrefaçon sont exclues.
+
+LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices.
+
+Cette limitation concerne :
+
+· tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et
+
+· les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d’une autre faute dans la limite autorisée par la loi en vigueur.
+
+Elle s’applique également, même si Microsoft connaissait ou devrait connaître l’éventualité d’un tel dommage. Si votre pays n’autorise pas l’exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l’exclusion ci-dessus ne s’appliquera pas à votre égard.
+
+EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d’autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas.
+
+
diff --git a/packages/System.Xml.XmlDocument.4.3.0/lib/MonoAndroid10/_._ b/packages/System.Xml.XmlDocument.4.3.0/lib/MonoAndroid10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Xml.XmlDocument.4.3.0/lib/MonoTouch10/_._ b/packages/System.Xml.XmlDocument.4.3.0/lib/MonoTouch10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Xml.XmlDocument.4.3.0/lib/net46/System.Xml.XmlDocument.dll b/packages/System.Xml.XmlDocument.4.3.0/lib/net46/System.Xml.XmlDocument.dll
new file mode 100644
index 0000000..cf138d3
Binary files /dev/null and b/packages/System.Xml.XmlDocument.4.3.0/lib/net46/System.Xml.XmlDocument.dll differ
diff --git a/packages/System.Xml.XmlDocument.4.3.0/lib/netstandard1.3/System.Xml.XmlDocument.dll b/packages/System.Xml.XmlDocument.4.3.0/lib/netstandard1.3/System.Xml.XmlDocument.dll
new file mode 100644
index 0000000..c1d415d
Binary files /dev/null and b/packages/System.Xml.XmlDocument.4.3.0/lib/netstandard1.3/System.Xml.XmlDocument.dll differ
diff --git a/packages/System.Xml.XmlDocument.4.3.0/lib/xamarinios10/_._ b/packages/System.Xml.XmlDocument.4.3.0/lib/xamarinios10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Xml.XmlDocument.4.3.0/lib/xamarinmac20/_._ b/packages/System.Xml.XmlDocument.4.3.0/lib/xamarinmac20/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Xml.XmlDocument.4.3.0/lib/xamarintvos10/_._ b/packages/System.Xml.XmlDocument.4.3.0/lib/xamarintvos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Xml.XmlDocument.4.3.0/lib/xamarinwatchos10/_._ b/packages/System.Xml.XmlDocument.4.3.0/lib/xamarinwatchos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/MonoAndroid10/_._ b/packages/System.Xml.XmlDocument.4.3.0/ref/MonoAndroid10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/MonoTouch10/_._ b/packages/System.Xml.XmlDocument.4.3.0/ref/MonoTouch10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/net46/System.Xml.XmlDocument.dll b/packages/System.Xml.XmlDocument.4.3.0/ref/net46/System.Xml.XmlDocument.dll
new file mode 100644
index 0000000..cf138d3
Binary files /dev/null and b/packages/System.Xml.XmlDocument.4.3.0/ref/net46/System.Xml.XmlDocument.dll differ
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/System.Xml.XmlDocument.dll b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/System.Xml.XmlDocument.dll
new file mode 100644
index 0000000..34fcb6d
Binary files /dev/null and b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/System.Xml.XmlDocument.dll differ
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/System.Xml.XmlDocument.xml b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/System.Xml.XmlDocument.xml
new file mode 100644
index 0000000..1a58b0f
--- /dev/null
+++ b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/System.Xml.XmlDocument.xml
@@ -0,0 +1,1426 @@
+
+
+
+ System.Xml.XmlDocument
+
+
+
+ Represents an attribute. Valid and default values for the attribute are defined in a document type definition (DTD) or schema.
+
+
+ Initializes a new instance of the class.
+ The namespace prefix.
+ The local name of the attribute.
+ The namespace uniform resource identifier (URI).
+ The parent XML document.
+
+
+ Adds the specified node to the end of the list of child nodes, of this node.
+ The added.
+ The to add.
+ This node is of a type that does not allow child nodes of the type of the node.The is an ancestor of this node.
+ The was created from a different document than the one that created this node.This node is read-only.
+
+
+ Gets the base Uniform Resource Identifier (URI) of the node.
+ The location from which the node was loaded or String.Empty if the node has no base URI. Attribute nodes have the same base URI as their owner element. If an attribute node does not have an owner element, BaseURI returns String.Empty.
+
+
+ Creates a duplicate of this node.
+ The duplicate node.
+ true to recursively clone the subtree under the specified node; false to clone only the node itself
+
+
+ Sets the concatenated values of the node and all its children.
+ The concatenated values of the node and all its children. For attribute nodes, this property has the same functionality as the property.
+
+
+ Sets the value of the attribute.
+ The attribute value.
+ The XML specified when setting this property is not well-formed.
+
+
+ Inserts the specified node immediately after the specified reference node.
+ The inserted.
+ The to insert.
+ The that is the reference node. The is placed after the .
+ This node is of a type that does not allow child nodes of the type of the node.The is an ancestor of this node.
+ The was created from a different document than the one that created this node.The is not a child of this node.This node is read-only.
+
+
+ Inserts the specified node immediately before the specified reference node.
+ The inserted.
+ The to insert.
+ The that is the reference node. The is placed before this node.
+ The current node is of a type that does not allow child nodes of the type of the node.The is an ancestor of this node.
+ The was created from a different document than the one that created this node.The is not a child of this node.This node is read-only.
+
+
+ Gets the local name of the node.
+ The name of the attribute node with the prefix removed. In the following example <book bk:genre= 'novel'>, the LocalName of the attribute is genre.
+
+
+ Gets the qualified name of the node.
+ The qualified name of the attribute node.
+
+
+ Gets the namespace URI of this node.
+ The namespace URI of this node. If the attribute is not explicitly given a namespace, this property returns String.Empty.
+
+
+ Gets the type of the current node.
+ The node type for XmlAttribute nodes is XmlNodeType.Attribute.
+
+
+ Gets the to which this node belongs.
+ An XML document to which this node belongs.
+
+
+ Gets the to which the attribute belongs.
+ The XmlElement that the attribute belongs to or null if this attribute is not part of an XmlElement.
+
+
+ Gets the parent of this node. For XmlAttribute nodes, this property always returns null.
+ For XmlAttribute nodes, this property always returns null.
+
+
+ Gets or sets the namespace prefix of this node.
+ The namespace prefix of this node. If there is no prefix, this property returns String.Empty.
+ This node is read-only.
+ The specified prefix contains an invalid character.The specified prefix is malformed.The namespaceURI of this node is null.The specified prefix is "xml", and the namespaceURI of this node is different from "http://www.w3.org/XML/1998/namespace".This node is an attribute, the specified prefix is "xmlns", and the namespaceURI of this node is different from "http://www.w3.org/2000/xmlns/".This node is an attribute, and the qualifiedName of this node is "xmlns" [Namespaces].
+
+
+ Adds the specified node to the beginning of the list of child nodes for this node.
+ The added.
+ The to add. If it is an , the entire contents of the document fragment are moved into the child list of this node.
+ This node is of a type that does not allow child nodes of the type of the node.The is an ancestor of this node.
+ The was created from a different document than the one that created this node.This node is read-only.
+
+
+ Removes the specified child node.
+ The removed.
+ The to remove.
+ The is not a child of this node. Or this node is read-only.
+
+
+ Replaces the child node specified with the new child node specified.
+ The replaced.
+ The new child .
+ The to replace.
+ This node is of a type that does not allow child nodes of the type of the node.The is an ancestor of this node.
+ The was created from a different document than the one that created this node.This node is read-only.The is not a child of this node.
+
+
+ Gets a value indicating whether the attribute value was explicitly set.
+ true if this attribute was explicitly given a value in the original instance document; otherwise, false. A value of false indicates that the value of the attribute came from the DTD.
+
+
+ Gets or sets the value of the node.
+ The value returned depends on the of the node. For XmlAttribute nodes, this property is the value of attribute.
+ The node is read-only and a set operation is called.
+
+
+ Saves all the children of the node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Saves the node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Represents a collection of attributes that can be accessed by name or index.
+
+
+ Inserts the specified attribute as the last node in the collection.
+ The XmlAttribute to append to the collection.
+ The to insert.
+
+ was created from a document different from the one that created this collection.
+
+
+ Copies all the objects from this collection into the given array.
+ The array that is the destination of the objects copied from this collection.
+ The index in the array where copying begins.
+
+
+ Inserts the specified attribute immediately after the specified reference attribute.
+ The XmlAttribute to insert into the collection.
+ The to insert.
+ The that is the reference attribute. is placed after the .
+ The was created from a document different from the one that created this collection. Or the is not a member of this collection.
+
+
+ Inserts the specified attribute immediately before the specified reference attribute.
+ The XmlAttribute to insert into the collection.
+ The to insert.
+ The that is the reference attribute. is placed before the .
+ The was created from a document different from the one that created this collection. Or the is not a member of this collection.
+
+
+ Gets the attribute with the specified index.
+ The at the specified index.
+ The index of the attribute.
+ The index being passed in is out of range.
+
+
+ Gets the attribute with the specified name.
+ The with the specified name. If the attribute does not exist, this property returns null.
+ The qualified name of the attribute.
+
+
+ Gets the attribute with the specified local name and namespace Uniform Resource Identifier (URI).
+ The with the specified local name and namespace URI. If the attribute does not exist, this property returns null.
+ The local name of the attribute.
+ The namespace URI of the attribute.
+
+
+ Inserts the specified attribute as the first node in the collection.
+ The XmlAttribute added to the collection.
+ The to insert.
+
+
+ Removes the specified attribute from the collection.
+ The node removed or null if it is not found in the collection.
+ The to remove.
+
+
+ Removes all attributes from the collection.
+
+
+ Removes the attribute corresponding to the specified index from the collection.
+ Returns null if there is no attribute at the specified index.
+ The index of the node to remove. The first node has index 0.
+
+
+ Adds a using its property
+ If the replaces an existing node with the same name, the old node is returned; otherwise, the added node is returned.
+ An attribute node to store in this collection. The node will later be accessible using the name of the node. If a node with that name is already present in the collection, it is replaced by the new one; otherwise, the node is appended to the end of the collection.
+
+ was created from a different than the one that created this collection.This XmlAttributeCollection is read-only.
+
+ is an that is already an attribute of another object. To re-use attributes in other elements, you must clone the XmlAttribute objects you want to re-use.
+
+
+ For a description of this member, see .
+ The array that is the destination of the objects copied from this collection.
+ The index in the array where copying begins.
+
+
+ For a description of this member, see .
+ Returns an int that contains the count of the attributes.
+
+
+ For a description of this member, see .
+ Returns true if the collection is synchronized.
+
+
+ For a description of this member, see .
+ Returns the that is the root of the collection.
+
+
+ Represents a CDATA section.
+
+
+ Initializes a new instance of the class.
+
+ that contains character data.
+
+ object.
+
+
+ Creates a duplicate of this node.
+ The cloned node.
+ true to recursively clone the subtree under the specified node; false to clone only the node itself. Because CDATA nodes do not have children, regardless of the parameter setting, the cloned node will always include the data content.
+
+
+ Gets the local name of the node.
+ For CDATA nodes, the local name is #cdata-section.
+
+
+ Gets the qualified name of the node.
+ For CDATA nodes, the name is #cdata-section.
+
+
+ Gets the type of the current node.
+ The node type. For CDATA nodes, the value is XmlNodeType.CDATA.
+
+
+
+ Gets the text node that immediately precedes this node.
+ Returns .
+
+
+ Saves the children of the node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Saves the node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Provides text manipulation methods that are used by several classes.
+
+
+ Initializes a new instance of the class.
+ String that contains character data to be added to document.
+
+ to contain character data.
+
+
+ Appends the specified string to the end of the character data of the node.
+ The string to insert into the existing string.
+
+
+ Contains the data of the node.
+ The data of the node.
+
+
+ Removes a range of characters from the node.
+ The position within the string to start deleting.
+ The number of characters to delete.
+
+
+ Inserts the specified string at the specified character offset.
+ The position within the string to insert the supplied string data.
+ The string data that is to be inserted into the existing string.
+
+
+ Gets the length of the data, in characters.
+ The length, in characters, of the string in the property. The length may be zero; that is, CharacterData nodes can be empty.
+
+
+ Replaces the specified number of characters starting at the specified offset with the specified string.
+ The position within the string to start replacing.
+ The number of characters to replace.
+ The new data that replaces the old string data.
+
+
+ Retrieves a substring of the full string from the specified range.
+ The substring corresponding to the specified range.
+ The position within the string to start retrieving. An offset of zero indicates the starting point is at the start of the data.
+ The number of characters to retrieve.
+
+
+ Gets or sets the value of the node.
+ The value of the node.
+ Node is read-only.
+
+
+ Represents the content of an XML comment.
+
+
+ Initializes a new instance of the class.
+ The content of the comment element.
+ The parent XML document.
+
+
+ Creates a duplicate of this node.
+ The cloned node.
+ true to recursively clone the subtree under the specified node; false to clone only the node itself. Because comment nodes do not have children, the cloned node always includes the text content, regardless of the parameter setting.
+
+
+ Gets the local name of the node.
+ For comment nodes, the value is #comment.
+
+
+ Gets the qualified name of the node.
+ For comment nodes, the value is #comment.
+
+
+ Gets the type of the current node.
+ For comment nodes, the value is XmlNodeType.Comment.
+
+
+ Saves all the children of the node to the specified . Because comment nodes do not have children, this method has no effect.
+ The XmlWriter to which you want to save.
+
+
+ Saves the node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Represents the XML declaration node <?xml version='1.0'...?>.
+
+
+ Initializes a new instance of the class.
+ The XML version; see the property.
+ The encoding scheme; see the property.
+ Indicates whether the XML document depends on an external DTD; see the property.
+ The parent XML document.
+
+
+ Creates a duplicate of this node.
+ The cloned node.
+ true to recursively clone the subtree under the specified node; false to clone only the node itself. Because XmlDeclaration nodes do not have children, the cloned node always includes the data value, regardless of the parameter setting.
+
+
+ Gets or sets the encoding level of the XML document.
+ The valid character encoding name. The most commonly supported character encoding names for XML are the following: Category Encoding Names Unicode UTF-8, UTF-16 ISO 10646 ISO-10646-UCS-2, ISO-10646-UCS-4 ISO 8859 ISO-8859-n (where "n" is a digit from 1 to 9) JIS X-0208-1997 ISO-2022-JP, Shift_JIS, EUC-JP This value is optional. If a value is not set, this property returns String.Empty.If an encoding attribute is not included, UTF-8 encoding is assumed when the document is written or saved out.
+
+
+ Gets or sets the concatenated values of the XmlDeclaration.
+ The concatenated values of the XmlDeclaration (that is, everything between <?xml and ?>).
+
+
+ Gets the local name of the node.
+ For XmlDeclaration nodes, the local name is xml.
+
+
+ Gets the qualified name of the node.
+ For XmlDeclaration nodes, the name is xml.
+
+
+ Gets the type of the current node.
+ For XmlDeclaration nodes, this value is XmlNodeType.XmlDeclaration.
+
+
+ Gets or sets the value of the standalone attribute.
+ Valid values are yes if all entity declarations required by the XML document are contained within the document or no if an external document type definition (DTD) is required. If a standalone attribute is not present in the XML declaration, this property returns String.Empty.
+
+
+ Gets or sets the value of the XmlDeclaration.
+ The contents of the XmlDeclaration (that is, everything between <?xml and ?>).
+
+
+ Gets the XML version of the document.
+ The value is always 1.0.
+
+
+ Saves the children of the node to the specified . Because XmlDeclaration nodes do not have children, this method has no effect.
+ The XmlWriter to which you want to save.
+
+
+ Saves the node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Represents an XML document.For more information, see the Remarks section.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the XmlDocument class with the specified .
+ The XmlImplementation to use.
+
+
+ Initializes a new instance of the XmlDocument class with the specified .
+ The XmlNameTable to use.
+
+
+ Gets the base URI of the current node.
+ The location from which the node was loaded.
+
+
+ Creates a duplicate of this node.
+ The cloned XmlDocument node.
+ true to recursively clone the subtree under the specified node; false to clone only the node itself.
+
+
+ Creates an with the specified .
+ The new XmlAttribute.
+ The qualified name of the attribute. If the name contains a colon, the property reflects the part of the name preceding the first colon and the property reflects the part of the name following the first colon. The remains empty unless the prefix is a recognized built-in prefix such as xmlns. In this case NamespaceURI has a value of http://www.w3.org/2000/xmlns/.
+
+
+ Creates an with the specified qualified name and .
+ The new XmlAttribute.
+ The qualified name of the attribute. If the name contains a colon then the property will reflect the part of the name preceding the colon and the property will reflect the part of the name after the colon.
+ The namespaceURI of the attribute. If the qualified name includes a prefix of xmlns, then this parameter must be http://www.w3.org/2000/xmlns/.
+
+
+ Creates an with the specified , , and .
+ The new XmlAttribute.
+ The prefix of the attribute (if any). String.Empty and null are equivalent.
+ The local name of the attribute.
+ The namespace URI of the attribute (if any). String.Empty and null are equivalent. If is xmlns, then this parameter must be http://www.w3.org/2000/xmlns/; otherwise an exception is thrown.
+
+
+ Creates an containing the specified data.
+ The new XmlCDataSection.
+ The content of the new XmlCDataSection.
+
+
+ Creates an containing the specified data.
+ The new XmlComment.
+ The content of the new XmlComment.
+
+
+ Creates an .
+ The new XmlDocumentFragment.
+
+
+ Creates an element with the specified name.
+ The new XmlElement.
+ The qualified name of the element. If the name contains a colon then the property reflects the part of the name preceding the colon and the property reflects the part of the name after the colon. The qualified name cannot include a prefix of'xmlns'.
+
+
+ Creates an with the qualified name and .
+ The new XmlElement.
+ The qualified name of the element. If the name contains a colon then the property will reflect the part of the name preceding the colon and the property will reflect the part of the name after the colon. The qualified name cannot include a prefix of'xmlns'.
+ The namespace URI of the element.
+
+
+ Creates an element with the specified , , and .
+ The new .
+ The prefix of the new element (if any). String.Empty and null are equivalent.
+ The local name of the new element.
+ The namespace URI of the new element (if any). String.Empty and null are equivalent.
+
+
+ Creates an with the specified node type, , and .
+ The new XmlNode.
+ String version of the of the new node. This parameter must be one of the values listed in the table below.
+ The qualified name of the new node. If the name contains a colon, it is parsed into and components.
+ The namespace URI of the new node.
+ The name was not provided and the XmlNodeType requires a name; or is not one of the strings listed below.
+
+
+ Creates an with the specified , , and .
+ The new XmlNode.
+ The XmlNodeType of the new node.
+ The qualified name of the new node. If the name contains a colon then it is parsed into and components.
+ The namespace URI of the new node.
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ Creates a with the specified , , , and .
+ The new XmlNode.
+ The XmlNodeType of the new node.
+ The prefix of the new node.
+ The local name of the new node.
+ The namespace URI of the new node.
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ Creates an with the specified name and data.
+ The new XmlProcessingInstruction.
+ The name of the processing instruction.
+ The data for the processing instruction.
+
+
+ Creates an node.
+ A new XmlSignificantWhitespace node.
+ The string must contain only the following characters  and 	
+
+
+ Creates an with the specified text.
+ The new XmlText node.
+ The text for the Text node.
+
+
+ Creates an node.
+ A new XmlWhitespace node.
+ The string must contain only the following characters  and 	
+
+
+ Creates an node with the specified values.
+ The new XmlDeclaration node.
+ The version must be "1.0".
+ The value of the encoding attribute. This is the encoding that is used when you save the to a file or a stream; therefore, it must be set to a string supported by the class, otherwise fails. If this is null or String.Empty, the Save method does not write an encoding attribute on the XML declaration and therefore the default encoding, UTF-8, is used.Note: If the XmlDocument is saved to either a or an , this encoding value is discarded. Instead, the encoding of the TextWriter or the XmlTextWriter is used. This ensures that the XML written out can be read back using the correct encoding.
+ The value must be either "yes" or "no". If this is null or String.Empty, the Save method does not write a standalone attribute on the XML declaration.
+ The values of or are something other than the ones specified above.
+
+
+ Gets the root for the document.
+ The XmlElement that represents the root of the XML document tree. If no root exists, null is returned.
+
+
+ Returns an containing a list of all descendant elements that match the specified .
+ An containing a list of all matching nodes. If no nodes match , the returned collection will be empty.
+ The qualified name to match. It is matched against the Name property of the matching node. The special value "*" matches all tags.
+
+
+ Returns an containing a list of all descendant elements that match the specified and .
+ An containing a list of all matching nodes. If no nodes match the specified and , the returned collection will be empty.
+ The LocalName to match. The special value "*" matches all tags.
+ NamespaceURI to match.
+
+
+ Gets the object for the current document.
+ The XmlImplementation object for the current document.
+
+
+ Imports a node from another document to the current document.
+ The imported .
+ The node being imported.
+ true to perform a deep clone; otherwise, false.
+ Calling this method on a node type which cannot be imported.
+
+
+ Throws an in all cases.
+ The values of the node and all its child nodes.
+ In all cases.
+
+
+ Gets or sets the markup representing the children of the current node.
+ The markup of the children of the current node.
+ The XML specified when setting this property is not well-formed.
+
+
+ Gets a value indicating whether the current node is read-only.
+ true if the current node is read-only; otherwise false. XmlDocument nodes always return false.
+
+
+ Loads the XML document from the specified stream.
+ The stream containing the XML document to load.
+ There is a load or parse error in the XML. In this case, a is raised.
+
+
+ Loads the XML document from the specified .
+ The TextReader used to feed the XML data into the document.
+ There is a load or parse error in the XML. In this case, the document remains empty.
+
+
+ Loads the XML document from the specified .
+ The XmlReader used to feed the XML data into the document.
+ There is a load or parse error in the XML. In this case, the document remains empty.
+
+
+ Loads the XML document from the specified string.
+ String containing the XML document to load.
+ There is a load or parse error in the XML. In this case, the document remains empty.
+
+
+ Gets the local name of the node.
+ For XmlDocument nodes, the local name is #document.
+
+
+ Gets the qualified name of the node.
+ For XmlDocument nodes, the name is #document.
+
+
+ Gets the associated with this implementation.
+ An XmlNameTable enabling you to get the atomized version of a string within the document.
+
+
+ Occurs when the of a node belonging to this document has been changed.
+
+
+ Occurs when the of a node belonging to this document is about to be changed.
+
+
+ Occurs when a node belonging to this document has been inserted into another node.
+
+
+ Occurs when a node belonging to this document is about to be inserted into another node.
+
+
+ Occurs when a node belonging to this document has been removed from its parent.
+
+
+ Occurs when a node belonging to this document is about to be removed from the document.
+
+
+ Gets the type of the current node.
+ The node type. For XmlDocument nodes, this value is XmlNodeType.Document.
+
+
+ Gets the to which the current node belongs.
+ For XmlDocument nodes ( equals XmlNodeType.Document), this property always returns null.
+
+
+ Gets the parent node of this node (for nodes that can have parents).
+ Always returns null.
+
+
+ Gets or sets a value indicating whether to preserve white space in element content.
+ true to preserve white space; otherwise false. The default is false.
+
+
+ Creates an object based on the information in the . The reader must be positioned on a node or attribute.
+ The new XmlNode or null if no more nodes exist.
+ The XML source
+ The reader is positioned on a node type that does not translate to a valid DOM node (for example, EndElement or EndEntity).
+
+
+ Saves the XML document to the specified stream.
+ The stream to which you want to save.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Saves the XML document to the specified .
+ The TextWriter to which you want to save.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Saves the XML document to the specified .
+ The XmlWriter to which you want to save.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Saves all the children of the XmlDocument node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Saves the XmlDocument node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Represents a lightweight object that is useful for tree insert operations.
+
+
+ Initializes a new instance of the class.
+ The XML document that is the source of the fragment.
+
+
+ Creates a duplicate of this node.
+ The cloned node.
+ true to recursively clone the subtree under the specified node; false to clone only the node itself.
+
+
+ Gets or sets the markup representing the children of this node.
+ The markup of the children of this node.
+ The XML specified when setting this property is not well-formed.
+
+
+ Gets the local name of the node.
+ For XmlDocumentFragment nodes, the local name is #document-fragment.
+
+
+ Gets the qualified name of the node.
+ For XmlDocumentFragment, the name is #document-fragment.
+
+
+ Gets the type of the current node.
+ For XmlDocumentFragment nodes, this value is XmlNodeType.DocumentFragment.
+
+
+ Gets the to which this node belongs.
+ The XmlDocument to which this node belongs.
+
+
+ Gets the parent of this node (for nodes that can have parents).
+ The parent of this node.For XmlDocumentFragment nodes, this property is always null.
+
+
+ Saves all the children of the node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Saves the node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Represents an element.
+
+
+ Initializes a new instance of the class.
+ The namespace prefix; see the property.
+ The local name; see the property.
+ The namespace URI; see the property.
+ The parent XML document.
+
+
+ Gets an containing the list of attributes for this node.
+
+ containing the list of attributes for this node.
+
+
+ Creates a duplicate of this node.
+ The cloned node.
+ true to recursively clone the subtree under the specified node; false to clone only the node itself (and its attributes if the node is an XmlElement).
+
+
+ Returns the value for the attribute with the specified name.
+ The value of the specified attribute. An empty string is returned if a matching attribute is not found or if the attribute does not have a specified or default value.
+ The name of the attribute to retrieve. This is a qualified name. It is matched against the Name property of the matching node.
+
+
+ Returns the value for the attribute with the specified local name and namespace URI.
+ The value of the specified attribute. An empty string is returned if a matching attribute is not found or if the attribute does not have a specified or default value.
+ The local name of the attribute to retrieve.
+ The namespace URI of the attribute to retrieve.
+
+
+ Returns the XmlAttribute with the specified name.
+ The specified XmlAttribute or null if a matching attribute was not found.
+ The name of the attribute to retrieve. This is a qualified name. It is matched against the Name property of the matching node.
+
+
+ Returns the with the specified local name and namespace URI.
+ The specified XmlAttribute or null if a matching attribute was not found.
+ The local name of the attribute.
+ The namespace URI of the attribute.
+
+
+ Returns an containing a list of all descendant elements that match the specified .
+ An containing a list of all matching nodes. The list is empty if there are no matching nodes.
+ The name tag to match. This is a qualified name. It is matched against the Name property of the matching node. The asterisk (*) is a special value that matches all tags.
+
+
+ Returns an containing a list of all descendant elements that match the specified and .
+ An containing a list of all matching nodes. The list is empty if there are no matching nodes.
+ The local name to match. The asterisk (*) is a special value that matches all tags.
+ The namespace URI to match.
+
+
+ Determines whether the current node has an attribute with the specified name.
+ true if the current node has the specified attribute; otherwise, false.
+ The name of the attribute to find. This is a qualified name. It is matched against the Name property of the matching node.
+
+
+ Determines whether the current node has an attribute with the specified local name and namespace URI.
+ true if the current node has the specified attribute; otherwise, false.
+ The local name of the attribute to find.
+ The namespace URI of the attribute to find.
+
+
+ Gets a boolean value indicating whether the current node has any attributes.
+ true if the current node has attributes; otherwise, false.
+
+
+ Gets or sets the concatenated values of the node and all its children.
+ The concatenated values of the node and all its children.
+
+
+ Gets or sets the markup representing just the children of this node.
+ The markup of the children of this node.
+ The XML specified when setting this property is not well-formed.
+
+
+ Gets or sets the tag format of the element.
+ Returns true if the element is to be serialized in the short tag format "<item/>"; false for the long format "<item></item>".When setting this property, if set to true, the children of the element are removed and the element is serialized in the short tag format. If set to false, the value of the property is changed (regardless of whether or not the element has content); if the element is empty, it is serialized in the long format.This property is a Microsoft extension to the Document Object Model (DOM).
+
+
+ Gets the local name of the current node.
+ The name of the current node with the prefix removed. For example, LocalName is book for the element <bk:book>.
+
+
+ Gets the qualified name of the node.
+ The qualified name of the node. For XmlElement nodes, this is the tag name of the element.
+
+
+ Gets the namespace URI of this node.
+ The namespace URI of this node. If there is no namespace URI, this property returns String.Empty.
+
+
+ Gets the immediately following this element.
+ The XmlNode immediately following this element.
+
+
+ Gets the type of the current node.
+ The node type. For XmlElement nodes, this value is XmlNodeType.Element.
+
+
+ Gets the to which this node belongs.
+ The XmlDocument to which this element belongs.
+
+
+
+ Gets or sets the namespace prefix of this node.
+ The namespace prefix of this node. If there is no prefix, this property returns String.Empty.
+ This node is read-only
+ The specified prefix contains an invalid character.The specified prefix is malformed.The namespaceURI of this node is null.The specified prefix is "xml" and the namespaceURI of this node is different from http://www.w3.org/XML/1998/namespace.
+
+
+ Removes all specified attributes and children of the current node. Default attributes are not removed.
+
+
+ Removes all specified attributes from the element. Default attributes are not removed.
+
+
+ Removes an attribute by name.
+ The name of the attribute to remove.This is a qualified name. It is matched against the Name property of the matching node.
+ The node is read-only.
+
+
+ Removes an attribute with the specified local name and namespace URI. (If the removed attribute has a default value, it is immediately replaced).
+ The local name of the attribute to remove.
+ The namespace URI of the attribute to remove.
+ The node is read-only.
+
+
+ Removes the attribute node with the specified index from the element. (If the removed attribute has a default value, it is immediately replaced).
+ The attribute node removed or null if there is no node at the given index.
+ The index of the node to remove. The first node has index 0.
+
+
+ Removes the specified by the local name and namespace URI. (If the removed attribute has a default value, it is immediately replaced).
+ The removed XmlAttribute or null if the XmlElement does not have a matching attribute node.
+ The local name of the attribute.
+ The namespace URI of the attribute.
+ This node is read-only.
+
+
+ Removes the specified .
+ The removed XmlAttribute or null if is not an attribute node of the XmlElement.
+ The XmlAttribute node to remove. If the removed attribute has a default value, it is immediately replaced.
+ This node is read-only.
+
+
+ Sets the value of the attribute with the specified name.
+ The name of the attribute to create or alter. This is a qualified name. If the name contains a colon it is parsed into prefix and local name components.
+ The value to set for the attribute.
+ The specified name contains an invalid character.
+ The node is read-only.
+
+
+ Sets the value of the attribute with the specified local name and namespace URI.
+ The attribute value.
+ The local name of the attribute.
+ The namespace URI of the attribute.
+ The value to set for the attribute.
+
+
+ Adds the specified .
+ The XmlAttribute to add.
+ The local name of the attribute.
+ The namespace URI of the attribute.
+
+
+ Adds the specified .
+ If the attribute replaces an existing attribute with the same name, the old XmlAttribute is returned; otherwise, null is returned.
+ The XmlAttribute node to add to the attribute collection for this element.
+ The was created from a different document than the one that created this node. Or this node is read-only.
+ The is already an attribute of another XmlElement object. You must explicitly clone XmlAttribute nodes to re-use them in other XmlElement objects.
+
+
+ Saves all the children of the node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Saves the current node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Defines the context for a set of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified.
+ An object.
+
+
+ Creates a new .
+ The new XmlDocument object.
+
+
+ Tests if the Document Object Model (DOM) implementation implements a specific feature.
+ true if the feature is implemented in the specified version; otherwise, false.The following table shows the combinations that cause HasFeature to return true.strFeature strVersion XML 1.0 XML 2.0
+ The package name of the feature to test. This name is not case-sensitive.
+ This is the version number of the package name to test. If the version is not specified (null), supporting any version of the feature causes the method to return true.
+
+
+ Gets the node immediately preceding or following this node.
+
+
+ Gets the node immediately following this node.
+ The immediately following this node or null if one does not exist.
+
+
+ Gets the node immediately preceding this node.
+ The preceding or null if one does not exist.
+
+
+ Represents a collection of nodes that can be accessed by name or index.
+
+
+ Gets the number of nodes in the XmlNamedNodeMap.
+ The number of nodes.
+
+
+ Provides support for the "foreach" style iteration over the collection of nodes in the XmlNamedNodeMap.
+ An enumerator object.
+
+
+ Retrieves an specified by name.
+ An XmlNode with the specified name or null if a matching node is not found.
+ The qualified name of the node to retrieve. It is matched against the property of the matching node.
+
+
+ Retrieves a node with the matching and .
+ An with the matching local name and namespace URI or null if a matching node was not found.
+ The local name of the node to retrieve.
+ The namespace Uniform Resource Identifier (URI) of the node to retrieve.
+
+
+ Retrieves the node at the specified index in the XmlNamedNodeMap.
+ The at the specified index. If is less than 0 or greater than or equal to the property, null is returned.
+ The index position of the node to retrieve from the XmlNamedNodeMap. The index is zero-based; therefore, the index of the first node is 0 and the index of the last node is -1.
+
+
+ Removes the node from the XmlNamedNodeMap.
+ The XmlNode removed from this XmlNamedNodeMap or null if a matching node was not found.
+ The qualified name of the node to remove. The name is matched against the property of the matching node.
+
+
+ Removes a node with the matching and .
+ The removed or null if a matching node was not found.
+ The local name of the node to remove.
+ The namespace URI of the node to remove.
+
+
+ Adds an using its property.
+ If the replaces an existing node with the same name, the old node is returned; otherwise, null is returned.
+ An XmlNode to store in the XmlNamedNodeMap. If a node with that name is already present in the map, it is replaced by the new one.
+ The was created from a different than the one that created the XmlNamedNodeMap; or the XmlNamedNodeMap is read-only.
+
+
+ Represents a single node in the XML document.
+
+
+ Adds the specified node to the end of the list of child nodes, of this node.
+ The node added.
+ The node to add. All the contents of the node to be added are moved into the specified location.
+ This node is of a type that does not allow child nodes of the type of the node.The is an ancestor of this node.
+ The was created from a different document than the one that created this node.This node is read-only.
+
+
+ Gets an containing the attributes of this node.
+ An XmlAttributeCollection containing the attributes of the node.If the node is of type XmlNodeType.Element, the attributes of the node are returned. Otherwise, this property returns null.
+
+
+ Gets the base URI of the current node.
+ The location from which the node was loaded or String.Empty if the node has no base URI.
+
+
+ Gets all the child nodes of the node.
+ An object that contains all the child nodes of the node.If there are no child nodes, this property returns an empty .
+
+
+ Creates a duplicate of the node, when overridden in a derived class.
+ The cloned node.
+ true to recursively clone the subtree under the specified node; false to clone only the node itself.
+ Calling this method on a node type that cannot be cloned.
+
+
+ Gets the first child of the node.
+ The first child of the node. If there is no such node, null is returned.
+
+
+ Get an enumerator that iterates through the child nodes in the current node.
+ An object that can be used to iterate through the child nodes in the current node.
+
+
+ Looks up the closest xmlns declaration for the given prefix that is in scope for the current node and returns the namespace URI in the declaration.
+ The namespace URI of the specified prefix.
+ The prefix whose namespace URI you want to find.
+
+
+ Looks up the closest xmlns declaration for the given namespace URI that is in scope for the current node and returns the prefix defined in that declaration.
+ The prefix for the specified namespace URI.
+ The namespace URI whose prefix you want to find.
+
+
+ Gets a value indicating whether this node has any child nodes.
+ true if the node has child nodes; otherwise, false.
+
+
+ Gets or sets the concatenated values of the node and all its child nodes.
+ The concatenated values of the node and all its child nodes.
+
+
+ Gets or sets the markup representing only the child nodes of this node.
+ The markup of the child nodes of this node.NoteInnerXml does not return default attributes.
+ Setting this property on a node that cannot have child nodes.
+ The XML specified when setting this property is not well-formed.
+
+
+ Inserts the specified node immediately after the specified reference node.
+ The node being inserted.
+ The XmlNode to insert.
+ The XmlNode that is the reference node. The is placed after the .
+ This node is of a type that does not allow child nodes of the type of the node.The is an ancestor of this node.
+ The was created from a different document than the one that created this node.The is not a child of this node.This node is read-only.
+
+
+ Inserts the specified node immediately before the specified reference node.
+ The node being inserted.
+ The XmlNode to insert.
+ The XmlNode that is the reference node. The is placed before this node.
+ The current node is of a type that does not allow child nodes of the type of the node.The is an ancestor of this node.
+ The was created from a different document than the one that created this node.The is not a child of this node.This node is read-only.
+
+
+ Gets a value indicating whether the node is read-only.
+ true if the node is read-only; otherwise false.
+
+
+ Gets the first child element with the specified .
+ The first that matches the specified name. It returns a null reference (Nothing in Visual Basic) if there is no match.
+ The qualified name of the element to retrieve.
+
+
+ Gets the first child element with the specified and .
+ The first with the matching and . . It returns a null reference (Nothing in Visual Basic) if there is no match.
+ The local name of the element.
+ The namespace URI of the element.
+
+
+ Gets the last child of the node.
+ The last child of the node. If there is no such node, null is returned.
+
+
+ Gets the local name of the node, when overridden in a derived class.
+ The name of the node with the prefix removed. For example, LocalName is book for the element <bk:book>.The name returned is dependent on the of the node: Type Name Attribute The local name of the attribute. CDATA #cdata-section Comment #comment Document #document DocumentFragment #document-fragment DocumentType The document type name. Element The local name of the element. Entity The name of the entity. EntityReference The name of the entity referenced. Notation The notation name. ProcessingInstruction The target of the processing instruction. Text #text Whitespace #whitespace SignificantWhitespace #significant-whitespace XmlDeclaration #xml-declaration
+
+
+ Gets the qualified name of the node, when overridden in a derived class.
+ The qualified name of the node. The name returned is dependent on the of the node: Type Name Attribute The qualified name of the attribute. CDATA #cdata-section Comment #comment Document #document DocumentFragment #document-fragment DocumentType The document type name. Element The qualified name of the element. Entity The name of the entity. EntityReference The name of the entity referenced. Notation The notation name. ProcessingInstruction The target of the processing instruction. Text #text Whitespace #whitespace SignificantWhitespace #significant-whitespace XmlDeclaration #xml-declaration
+
+
+ Gets the namespace URI of this node.
+ The namespace URI of this node. If there is no namespace URI, this property returns String.Empty.
+
+
+ Gets the node immediately following this node.
+ The next XmlNode. If there is no next node, null is returned.
+
+
+ Gets the type of the current node, when overridden in a derived class.
+ One of the values.
+
+
+ Puts all XmlText nodes in the full depth of the sub-tree underneath this XmlNode into a "normal" form where only markup (that is, tags, comments, processing instructions, CDATA sections, and entity references) separates XmlText nodes, that is, there are no adjacent XmlText nodes.
+
+
+ Gets the markup containing this node and all its child nodes.
+ The markup containing this node and all its child nodes.NoteOuterXml does not return default attributes.
+
+
+ Gets the to which this node belongs.
+ The to which this node belongs.If the node is an (NodeType equals XmlNodeType.Document), this property returns null.
+
+
+ Gets the parent of this node (for nodes that can have parents).
+ The XmlNode that is the parent of the current node. If a node has just been created and not yet added to the tree, or if it has been removed from the tree, the parent is null. For all other nodes, the value returned depends on the of the node. The following table describes the possible return values for the ParentNode property.NodeType Return Value of ParentNode Attribute, Document, DocumentFragment, Entity, Notation Returns null; these nodes do not have parents. CDATA Returns the element or entity reference containing the CDATA section. Comment Returns the element, entity reference, document type, or document containing the comment. DocumentType Returns the document node. Element Returns the parent node of the element. If the element is the root node in the tree, the parent is the document node. EntityReference Returns the element, attribute, or entity reference containing the entity reference. ProcessingInstruction Returns the document, element, document type, or entity reference containing the processing instruction. Text Returns the parent element, attribute, or entity reference containing the text node.
+
+
+ Gets or sets the namespace prefix of this node.
+ The namespace prefix of this node. For example, Prefix is bk for the element <bk:book>. If there is no prefix, this property returns String.Empty.
+ This node is read-only.
+ The specified prefix contains an invalid character.The specified prefix is malformed.The specified prefix is "xml" and the namespaceURI of this node is different from "http://www.w3.org/XML/1998/namespace".This node is an attribute and the specified prefix is "xmlns" and the namespaceURI of this node is different from "http://www.w3.org/2000/xmlns/ ".This node is an attribute and the qualifiedName of this node is "xmlns".
+
+
+ Adds the specified node to the beginning of the list of child nodes for this node.
+ The node added.
+ The node to add. All the contents of the node to be added are moved into the specified location.
+ This node is of a type that does not allow child nodes of the type of the node.The is an ancestor of this node.
+ The was created from a different document than the one that created this node.This node is read-only.
+
+
+ Gets the node immediately preceding this node.
+ The preceding XmlNode. If there is no preceding node, null is returned.
+
+
+ Gets the text node that immediately precedes this node.
+ Returns .
+
+
+ Removes all the child nodes and/or attributes of the current node.
+
+
+ Removes specified child node.
+ The node removed.
+ The node being removed.
+ The is not a child of this node. Or this node is read-only.
+
+
+ Replaces the child node with node.
+ The node replaced.
+ The new node to put in the child list.
+ The node being replaced in the list.
+ This node is of a type that does not allow child nodes of the type of the node.The is an ancestor of this node.
+ The was created from a different document than the one that created this node.This node is read-only.The is not a child of this node.
+
+
+ Tests if the DOM implementation implements a specific feature.
+ true if the feature is implemented in the specified version; otherwise, false. The following table describes the combinations that return true.Feature Version XML 1.0 XML 2.0
+ The package name of the feature to test. This name is not case-sensitive.
+ The version number of the package name to test. If the version is not specified (null), supporting any version of the feature causes the method to return true.
+
+
+ For a description of this member, see .
+ Returns an enumerator for the collection.
+
+
+ Gets or sets the value of the node.
+ The value returned depends on the of the node: Type Value Attribute The value of the attribute. CDATASection The content of the CDATA Section. Comment The content of the comment. Document null. DocumentFragment null. DocumentType null. Element null. You can use the or properties to access the value of the element node. Entity null. EntityReference null. Notation null. ProcessingInstruction The entire content excluding the target. Text The content of the text node. SignificantWhitespace The white space characters. White space can consist of one or more space characters, carriage returns, line feeds, or tabs. Whitespace The white space characters. White space can consist of one or more space characters, carriage returns, line feeds, or tabs. XmlDeclaration The content of the declaration (that is, everything between <?xml and ?>).
+ Setting the value of a node that is read-only.
+ Setting the value of a node that is not supposed to have a value (for example, an Element node).
+
+
+ Saves all the child nodes of the node to the specified , when overridden in a derived class.
+ The XmlWriter to which you want to save.
+
+
+ Saves the current node to the specified , when overridden in a derived class.
+ The XmlWriter to which you want to save.
+
+
+ Specifies the type of node change.
+
+
+ A node value is being changed.
+
+
+ A node is being inserted in the tree.
+
+
+ A node is being removed from the tree.
+
+
+ Provides data for the , , , , and events.
+
+
+ Initializes a new instance of the class.
+ The that generated the event.
+ The old parent of the that generated the event.
+ The new parent of the that generated the event.
+ The old value of the that generated the event.
+ The new value of the that generated the event.
+ The .
+
+
+ Gets a value indicating what type of node change event is occurring.
+ An XmlNodeChangedAction value describing the node change event.XmlNodeChangedAction Value Description Insert A node has been or will be inserted. Remove A node has been or will be removed. Change A node has been or will be changed. NoteThe Action value does not differentiate between when the event occurred (before or after). You can create separate event handlers to handle both instances.
+
+
+ Gets the value of the after the operation completes.
+ The value of the ParentNode after the operation completes. This property returns null if the node is being removed.NoteFor attribute nodes this property returns the .
+
+
+ Gets the new value of the node.
+ The new value of the node. This property returns null if the node is neither an attribute nor a text node, or if the node is being removed.If called in a event, NewValue returns the value of the node if the change is successful. If called in a event, NewValue returns the current value of the node.
+
+
+ Gets the that is being added, removed or changed.
+ The XmlNode that is being added, removed or changed; this property never returns null.
+
+
+ Gets the value of the before the operation began.
+ The value of the ParentNode before the operation began. This property returns null if the node did not have a parent.NoteFor attribute nodes this property returns the .
+
+
+ Gets the original value of the node.
+ The original value of the node. This property returns null if the node is neither an attribute nor a text node, or if the node is being inserted.If called in a event, OldValue returns the current value of the node that will be replaced if the change is successful. If called in a event, OldValue returns the value of node prior to the change.
+
+
+ Represents the method that handles , , , , and events.
+ The source of the event.
+ An containing the event data.
+
+
+ Represents an ordered collection of nodes.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the number of nodes in the XmlNodeList.
+ The number of nodes in the XmlNodeList.
+
+
+ Gets an enumerator that iterates through the collection of nodes.
+ An enumerator used to iterate through the collection of nodes.
+
+
+ Retrieves a node at the given index.
+ The with the specified index in the collection. If is greater than or equal to the number of nodes in the list, this returns null.
+ The zero-based index into the list of nodes.
+
+
+ Gets a node at the given index.
+ The with the specified index in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.
+ The zero-based index into the list of nodes.
+
+
+ Disposes resources in the node list privately.
+
+
+ Releases all resources used by the class.
+
+
+ Represents a processing instruction, which XML defines to keep processor-specific information in the text of the document.
+
+
+ Initializes a new instance of the class.
+ The target of the processing instruction; see the property.
+ The content of the instruction; see the property.
+ The parent XML document.
+
+
+ Creates a duplicate of this node.
+ The duplicate node.
+ true to recursively clone the subtree under the specified node; false to clone only the node itself.
+
+
+ Gets or sets the content of the processing instruction, excluding the target.
+ The content of the processing instruction, excluding the target.
+
+
+ Gets or sets the concatenated values of the node and all its children.
+ The concatenated values of the node and all its children.
+
+
+ Gets the local name of the node.
+ For processing instruction nodes, this property returns the target of the processing instruction.
+
+
+ Gets the qualified name of the node.
+ For processing instruction nodes, this property returns the target of the processing instruction.
+
+
+ Gets the type of the current node.
+ For XmlProcessingInstruction nodes, this value is XmlNodeType.ProcessingInstruction.
+
+
+ Gets the target of the processing instruction.
+ The target of the processing instruction.
+
+
+ Gets or sets the value of the node.
+ The entire content of the processing instruction, excluding the target.
+ Node is read-only.
+
+
+ Saves all the children of the node to the specified . Because ProcessingInstruction nodes do not have children, this method has no effect.
+ The XmlWriter to which you want to save.
+
+
+ Saves the node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Represents white space between markup in a mixed content node or white space within an xml:space= 'preserve' scope. This is also referred to as significant white space.
+
+
+ Initializes a new instance of the class.
+ The white space characters of the node.
+ The object.
+
+
+ Creates a duplicate of this node.
+ The cloned node.
+ true to recursively clone the subtree under the specified node; false to clone only the node itself. For significant white space nodes, the cloned node always includes the data value, regardless of the parameter setting.
+
+
+ Gets the local name of the node.
+ For XmlSignificantWhitespace nodes, this property returns #significant-whitespace.
+
+
+ Gets the qualified name of the node.
+ For XmlSignificantWhitespace nodes, this property returns #significant-whitespace.
+
+
+ Gets the type of the current node.
+ For XmlSignificantWhitespace nodes, this value is XmlNodeType.SignificantWhitespace.
+
+
+ Gets the parent of the current node.
+ The parent node of the current node.
+
+
+ Gets the text node that immediately precedes this node.
+ Returns .
+
+
+ Gets or sets the value of the node.
+ The white space characters found in the node.
+ Setting Value to invalid white space characters.
+
+
+ Saves all the children of the node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Saves the node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Represents the text content of an element or attribute.
+
+
+ Initializes a new instance of the class.
+ The content of the node; see the property.
+ The parent XML document.
+
+
+ Creates a duplicate of this node.
+ The cloned node.
+ true to recursively clone the subtree under the specified node; false to clone only the node itself.
+
+
+ Gets the local name of the node.
+ For text nodes, this property returns #text.
+
+
+ Gets the qualified name of the node.
+ For text nodes, this property returns #text.
+
+
+ Gets the type of the current node.
+ For text nodes, this value is XmlNodeType.Text.
+
+
+
+ Gets the text node that immediately precedes this node.
+ Returns .
+
+
+ Splits the node into two nodes at the specified offset, keeping both in the tree as siblings.
+ The new node.
+ The offset at which to split the node.
+
+
+ Gets or sets the value of the node.
+ The content of the text node.
+
+
+ Saves all the children of the node to the specified . XmlText nodes do not have children, so this method has no effect.
+ The XmlWriter to which you want to save.
+
+
+ Saves the node to the specified .
+ The XmlWriter to which you want to save.
+
+
+ Represents white space in element content.
+
+
+ Initializes a new instance of the class.
+ The white space characters of the node.
+ The object.
+
+
+ Creates a duplicate of this node.
+ The cloned node.
+ true to recursively clone the subtree under the specified node; false to clone only the node itself. For white space nodes, the cloned node always includes the data value, regardless of the parameter setting.
+
+
+ Gets the local name of the node.
+ For XmlWhitespace nodes, this property returns #whitespace.
+
+
+ Gets the qualified name of the node.
+ For XmlWhitespace nodes, this property returns #whitespace.
+
+
+ Gets the type of the node.
+ For XmlWhitespace nodes, the value is .
+
+
+ Gets the parent of the current node.
+ The parent node of the current node.
+
+
+ Gets the text node that immediately precedes this node.
+ Returns .
+
+
+ Gets or sets the value of the node.
+ The white space characters found in the node.
+ Setting to invalid white space characters.
+
+
+ Saves all the children of the node to the specified .
+ The to which you want to save.
+
+
+ Saves the node to the specified .
+ The to which you want to save.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/de/System.Xml.XmlDocument.xml b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/de/System.Xml.XmlDocument.xml
new file mode 100644
index 0000000..16bd4ce
--- /dev/null
+++ b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/de/System.Xml.XmlDocument.xml
@@ -0,0 +1,1443 @@
+
+
+
+ System.Xml.XmlDocument
+
+
+
+ Stellt ein Attribut dar.Gültige Werte und Standardwerte für Attribute werden in einer DTD (Document Type Definition) oder in einem Schema angegeben.
+
+
+ Initialisiert eine neue Instanz der -Klasse.
+ Das Namespacepräfix.
+ Der lokale Name des Attributs.
+ Der URI (Uniform Resource Identifier) des Namespaces.
+ Das übergeordnete XML-Dokument.
+
+
+ Fügt den angegebenen Knoten am Ende der Liste der untergeordneten Knoten dieses Knotens hinzu.
+ Der hinzugefügte .
+ Die zu addierende .
+ Der Typ dieses Knotens lässt keine untergeordneten Knoten vom Typ des -Knotens zu. ist eine frühere Version dieses Knotens.
+
+ wurde nicht aus dem Dokument erstellt, aus dem dieser Knoten erstellt wurde.Dieser Knoten ist schreibgeschützt.
+
+
+ Ruft den Basis-URI (Uniform Resource Identifier) des Knotens ab.
+ Die Position, aus der der Knoten geladen wurde oder String.Empty, wenn der Knoten über keinen Basis-URI verfügt.Attributknoten haben die gleiche Basis-URI wie das Besitzerelement.Wenn ein Attributknoten kein Besitzerelement aufweist, gibt BaseURI String.Empty zurück.
+
+
+ Erstellt ein Duplikat dieses Knotens.
+ Das Knotenduplikat.
+ true, wenn die Teilstruktur unter dem angegebenen Knoten rekursiv geklont werden soll, false, wenn nur der Knoten selbst geklont werden soll.
+
+
+ Legt die verketteten Werte des Knotens und aller diesem untergeordneten Elemente fest.
+ Die verketteten Werte des Knotens und aller diesem untergeordneten Elemente.Bei Attributknoten verfügt diese Eigenschaft über dieselben Funktionen wie die -Eigenschaft.
+
+
+ Legt den Wert des Attributs fest.
+ Der Attributwert.
+ Der beim Festlegen dieser Eigenschaft angegebene XML-Code ist nicht wohlgeformt.
+
+
+ Fügt den angegebenen Knoten unmittelbar hinter dem angegebenen Verweisknoten ein.
+ Der eingefügte .
+ Die einzufügende .
+ Der , der der Verweisknoten ist. wird hinter platziert.
+ Der Typ dieses Knotens lässt keine untergeordneten Knoten vom Typ des -Knotens zu. ist eine frühere Version dieses Knotens.
+
+ wurde nicht aus dem Dokument erstellt, aus dem dieser Knoten erstellt wurde. ist kein untergeordnetes Element dieses Knotens.Dieser Knoten ist schreibgeschützt.
+
+
+ Fügt den angegebenen Knoten direkt vor dem angegebenen Verweisknoten ein.
+ Der eingefügte .
+ Die einzufügende .
+ Der , der der Verweisknoten ist. wird vor diesem Knoten platziert.
+ Der Typ des aktuellen Knotens lässt keine untergeordneten Knoten vom Typ des -Knotens zu. ist eine frühere Version dieses Knotens.
+
+ wurde nicht aus dem Dokument erstellt, aus dem dieser Knoten erstellt wurde. ist kein untergeordnetes Element dieses Knotens.Dieser Knoten ist schreibgeschützt.
+
+
+ Ruft den lokalen Namen des Knotens ab.
+ Der Name des Attributknotens ohne das Präfix.Im folgenden Beispiel <book bk:genre= 'novel'> ist der LocalName des Attributs genre.
+
+
+ Ruft den qualifizierten Namen des Knotens ab.
+ Der gekennzeichnete Name des Attributknotens.
+
+
+ Ruft den Namespace-URI dieses Knotens ab.
+ Der Namespace-URI dieses Knotens.Wenn für dieses Attribut nicht explizit ein Namespace angegeben wird, gibt diese Eigenschaft String.Empty zurück.
+
+
+ Ruft den Typ des aktuellen Knotens ab.
+ Der Knotentyp für XmlAttribute-Knoten ist XmlNodeType.Attribute.
+
+
+ Ruft das ab, zu dem dieser Knoten gehört.
+ Ein XML-Dokument, zu dem dieser Knoten gehört.
+
+
+ Ruft das ab, zu dem das Attribut gehört.
+ Das XmlElement, zu dem das Attribut gehört, oder null, wenn dieses Attribut nicht Teil eines XmlElement ist.
+
+
+ Ruft das übergeordnete Element dieses Knotens ab.Für XmlAttribute-Knoten gibt diese Eigenschaft immer null zurück.
+ Für XmlAttribute-Knoten gibt diese Eigenschaft immer null zurück.
+
+
+ Ruft das Namespacepräfix dieses Knotens ab oder legt dieses fest.
+ Das Namespacepräfix dieses Knotens.Wenn kein Präfix vorhanden ist, gibt diese Eigenschaft String.Empty zurück.
+ Dieser Knoten ist schreibgeschützt.
+ Das angegebene Präfix enthält ein ungültiges Zeichen.Das angegebene Präfix ist ungültig.Der namespaceURI dieses Knotens ist null.Das angegebene Präfix ist "xml", und der namespaceURI dieses Knotens ist nicht identisch mit "http://www.w3.org/XML/1998/namespace".Dieser Knoten ist ein Attribut, das angegebene Präfix ist "xmlns", und der namespaceURI dieses Knotens unterscheidet sich von "http://www.w3.org/2000/xmlns/".Dieser Knoten ist ein Attribut, und qualifiedName dieses Knotens lautet "xmlns" [Namespaces].
+
+
+ Fügt den angegebenen Knoten am Anfang der Liste der untergeordneten Knoten dieses Knotens hinzu.
+ Der hinzugefügte .
+ Die zu addierende .Wenn dieser ein ist, wird der gesamte Inhalt des Dokumentfragments in die Liste der untergeordneten Elemente dieses Knotens verschoben.
+ Der Typ dieses Knotens lässt keine untergeordneten Knoten vom Typ des -Knotens zu. ist eine frühere Version dieses Knotens.
+
+ wurde nicht aus dem Dokument erstellt, aus dem dieser Knoten erstellt wurde.Dieser Knoten ist schreibgeschützt.
+
+
+ Entfernt den angegebenen untergeordneten Knoten.
+ Der entfernte .
+ Das zu entfernende -Element.
+
+ ist kein untergeordnetes Element dieses Knotens.Oder dieser Knoten ist schreibgeschützt.
+
+
+ Ersetzt den angegebenen untergeordneten Knoten durch den angegebenen neuen Knoten.
+ Der ersetzte .
+ Der neue untergeordnete .
+ Der zu ersetzende .
+ Der Typ dieses Knotens lässt keine untergeordneten Knoten vom Typ des -Knotens zu. ist eine frühere Version dieses Knotens.
+
+ wurde nicht aus dem Dokument erstellt, aus dem dieser Knoten erstellt wurde.Dieser Knoten ist schreibgeschützt. ist kein untergeordnetes Element dieses Knotens.
+
+
+ Ruft einen Wert ab, der angibt, ob der Attributwert explizit festgelegt wurde.
+ true, wenn für dieses Attribut im ursprünglichen Instanzendokument ein Wert angegeben wurde, andernfalls false.Der Wert false gibt an, dass der Wert des Attributs aus der DTD stammt.
+
+
+ Ruft den Wert des Knotens ab oder legt diesen fest.
+ Der zurückgegebene Wert hängt vom des Knotens ab.Bei XmlAttribute-Knoten ist diese Eigenschaft der Wert des Attributs.
+ Der Knoten ist schreibgeschützt, und ein Set-Vorgang wird aufgerufen.
+
+
+ Speichert alle untergeordneten Elemente des Knotens im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Speichert den Knoten im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Stellt eine Auflistung von Attributen dar, die über Name oder Index zugänglich sind.
+
+
+ Fügt das angegebene Attribut als letzten Knoten in die Auflistung ein.
+ Das an die Auflistung anzufügende XmlAttribute.
+ Die einzufügende .
+
+ wurde aus einem anderen Dokument als dem erstellt, das diese Auflistung erstellt hat.
+
+
+ Kopiert alle -Objekte aus dieser Auflistung in das angegebene Array.
+ Das Array, das als Ziel für die aus dieser Auflistung kopierten Objekte verwendet wird.
+ Der Index im Array, bei dem mit dem Kopieren begonnen wird.
+
+
+ Fügt das angegebene Attribut direkt nach dem angegebenen Verweisattribut ein.
+ Die in die Auflistung einzufügende XmlAttribute-Klasse.
+ Die einzufügende .
+ Das , das das Verweisattribut ist. wird hinter platziert.
+
+ wurde aus einem anderen Dokument als dem erstellt, das diese Auflistung erstellt hat.Oder ist kein Member dieser Auflistung.
+
+
+ Fügt das angegebene Attribut direkt vor dem angegebenen Verweisattribut ein.
+ Die in die Auflistung einzufügende XmlAttribute-Klasse.
+ Die einzufügende .
+ Das , das das Verweisattribut ist. wird vor platziert.
+
+ wurde aus einem anderen Dokument als dem erstellt, das diese Auflistung erstellt hat.Oder ist kein Member dieser Auflistung.
+
+
+ Ruft das Attribut mit dem angegebenen Index ab.
+ Der am angegebenen Index.
+ Der Index des Attributs.
+ Der übergebene Index liegt außerhalb des Bereichs.
+
+
+ Ruft das Attribut mit dem angegebenen Namen ab.
+ Der mit dem angegebenen Namen.Wenn das Attribut nicht vorhanden ist, gibt diese Eigenschaft null zurück.
+ Der qualifizierte Name des Attributs.
+
+
+ Ruft das Attribut mit dem angegebenen lokalen Namen und Namespace-URI (Uniform Resource Identifier) ab.
+ Das mit dem angegebenen lokalen Namen und Namespace-URI.Wenn das Attribut nicht vorhanden ist, gibt diese Eigenschaft null zurück.
+ Der lokale Name des Attributs.
+ Der Namespace-URI dieses Attributs.
+
+
+ Fügt das angegebene Attribut als ersten Knoten in die Auflistung ein.
+ Das der Auflistung hinzugefügte XmlAttribute.
+ Die einzufügende .
+
+
+ Entfernt das angegebene Attribut aus der Auflistung.
+ Der entfernte Knoten oder null, wenn er nicht in der Auflistung gefunden wurde.
+ Das zu entfernende -Element.
+
+
+ Entfernt alle Attribute aus der Auflistung.
+
+
+ Entfernt das Attribut aus der Auflistung, das dem angegebenen Index entspricht.
+ Gibt null zurück, wenn sich am angegebenen Index kein Attribut befindet.
+ Der Index des zu entfernenden Knotens.Der erste Knoten hat den Index 0.
+
+
+ Fügt einen unter Verwendung der entsprechenden -Eigenschaft hinzu.
+ Wenn der einen vorhandenen Knoten mit demselben Namen ersetzt, wird der alte Knoten zurückgegeben, andernfalls wird hinzugefügte Knoten zurückgegeben.
+ Ein in dieser Auflistung zu speichernder Attributknoten.Auf den Knoten kann später mit dem Namen des Knotens zugegriffen werden.Wenn ein Knoten mit diesem Namen bereits in der Auflistung enthalten ist, wird er durch den neuen ersetzt, andernfalls wird der Knoten am Ende der Auflistung angehängt.
+
+ wurde aus einem anderen als dem erstellt, das diese Auflistung erstellt hat.Diese XmlAttributeCollection ist schreibgeschützt.
+
+ ist ein , das bereits ein Attribut eines anderen -Objekts ist.Wenn Attribute in anderen Elementen wiederverwendet werden sollen, müssen Sie die wiederzuverwendenden XmlAttribute-Objekte klonen.
+
+
+ Eine Beschreibung dieses Members finden Sie unter .
+ Das Array, das als Ziel für die aus dieser Auflistung kopierten Objekte verwendet wird.
+ Der Index im Array, bei dem mit dem Kopieren begonnen wird.
+
+
+ Eine Beschreibung dieses Members finden Sie unter .
+ Gibt ein int zurück, das die Anzahl der Attribute enthält.
+
+
+ Eine Beschreibung dieses Members finden Sie unter .
+ Gibt true zurück, wenn die Auflistung synchronisiert ist.
+
+
+ Eine Beschreibung dieses Members finden Sie unter .
+ Gibt das zurück, das der Stamm der Auflistung ist.
+
+
+ Stellt einen CDATA-Abschnitt dar.
+
+
+ Initialisiert eine neue Instanz der-Klasse.
+ Ein , der Zeichendaten enthält.
+
+ -Objekt
+
+
+ Erstellt ein Duplikat dieses Knotens.
+ Der geklonte Knoten.
+ true, wenn die Teilstruktur unter dem angegebenen Knoten rekursiv geklont werden soll, false, wenn nur der Knoten selbst geklont werden soll.Da CDATA-Knoten, unabhängig von der Parametereinstellung, keine untergeordneten Elemente aufweisen, enthält der geklonte Knoten immer den Dateninhalt.
+
+
+ Ruft den lokalen Namen des Knotens ab.
+ Für CDATA-Knoten lautet der lokale Name #cdata-section.
+
+
+ Ruft den qualifizierten Namen des Knotens ab.
+ Für CDATA-Knoten lautet der Name #cdata-section.
+
+
+ Ruft den Typ des aktuellen Knotens ab.
+ Der Knotentyp.Für CDATA-Knoten ist der Wert XmlNodeType.CDATA.
+
+
+
+ Ruft den Textknoten ab, der diesem Knoten unmittelbar vorausgeht.
+ Gibt zurück.
+
+
+ Speichert die untergeordneten Elemente des Knotens im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Speichert den Knoten im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Stellt Methoden für die Textbearbeitung bereit, die von mehreren Klassen verwendet werden.
+
+
+ Initialisiert eine neue Instanz der -Klasse.
+ Die Zeichenfolge mit den Zeichendaten, die dem Dokument hinzugefügt werden sollen.
+
+ für Zeichendaten.
+
+
+ Fügt die angegebene Zeichenfolge an das Ende der Zeichendaten des Knotens an.
+ Die Zeichenfolge, die in die vorhandene Zeichenfolge eingefügt werden soll.
+
+
+ Enthält die Daten des Knotens.
+ Die Daten des Knotens.
+
+
+ Entfernt einen Bereich von Zeichen aus dem Knoten.
+ Die Position in der Zeichenfolge, an der der Löschvorgang begonnen werden soll.
+ Die Anzahl der zu löschenden Zeichen.
+
+
+ Fügen Sie die angegebene Zeichenfolge am angegebenen Zeichenoffset ein.
+ Die Position in der Zeichenfolge, an der die übergebenen Zeichenfolgendaten eingefügt werden sollen.
+ Die Zeichenfolgendaten, die in die vorhandene Zeichenfolge eingefügt werden sollen.
+
+
+ Ruft die Länge der Daten in Zeichen ab.
+ Die Länge der Zeichenfolge in der -Eigenschaft in Zeichen.Die Länge kann den Wert 0 haben. CharacterData-Knoten können somit leer sein.
+
+
+ Ersetzt die angegebene Anzahl von Zeichen ab dem angegebenen Offset mit der angegebenen Zeichenfolge.
+ Die Position in der Zeichenfolge, an der der Ersetzungsvorgang begonnen werden soll.
+ Die Anzahl der zu ersetzenden Zeichen.
+ Die neuen Daten, die die alten Zeichenfolgendaten ersetzen.
+
+
+ Ruft eine Teilzeichenfolge der vollständigen Zeichenfolge aus dem angegebenen Bereich ab.
+ Die dem angegebenen Bereich entsprechende Teilzeichenfolge.
+ Die Position in der Zeichenfolge, an der der Abruf begonnen werden soll.Ein Offset von 0 gibt an, dass der Anfangspunkt am Anfang der Daten liegt.
+ Die Anzahl der abzurufenden Zeichen.
+
+
+ Ruft den Wert des Knotens ab oder legt diesen fest.
+ Der Wert des Knotens.
+ Der Knoten ist schreibgeschützt.
+
+
+ Stellt den Inhalt eines XML-Kommentars dar.
+
+
+ Initialisiert eine neue Instanz der -Klasse.
+ Der Inhalt des Kommentarelements.
+ Das übergeordnete XML-Dokument.
+
+
+ Erstellt ein Duplikat dieses Knotens.
+ Der geklonte Knoten.
+ true, wenn die Teilstruktur unter dem angegebenen Knoten rekursiv geklont werden soll, false, wenn nur der Knoten selbst geklont werden soll.Da Kommentarknoten, unabhängig von der Parametereinstellung, keine untergeordneten Elemente aufweisen, enthält der geklonte Knoten immer den Textinhalt.
+
+
+ Ruft den lokalen Namen des Knotens ab.
+ Für Kommentarknoten ist der Wert #comment.
+
+
+ Ruft den qualifizierten Namen des Knotens ab.
+ Für Kommentarknoten ist der Wert #comment.
+
+
+ Ruft den Typ des aktuellen Knotens ab.
+ Für Kommentarknoten ist der Wert XmlNodeType.Comment.
+
+
+ Speichert alle untergeordneten Elemente des Knotens im angegebenen .Da Kommentarknoten nicht über untergeordnete Elemente verfügen, hat diese Methode keine Auswirkungen.
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Speichert den Knoten im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Stellt den Knoten für die XML-Deklaration <?xml version='1.0' ...?> dar.
+
+
+ Initialisiert eine neue Instanz der -Klasse.
+ Die XML-Version. Weitere Informationen finden Sie unter der -Eigenschaft.
+ Das Codierungsschema. Weitere Informationen finden Sie unter der -Eigenschaft.
+ Gibt an, ob das XML-Dokument von einer externen DTD abhängt. Weitere Informationen finden Sie unter der -Eigenschaft.
+ Das übergeordnete XML-Dokument.
+
+
+ Erstellt ein Duplikat dieses Knotens.
+ Der geklonte Knoten.
+ true, wenn die Teilstruktur unter dem angegebenen Knoten rekursiv geklont werden soll, false, wenn nur der Knoten selbst geklont werden soll.Da XmlDeclaration-Knoten, unabhängig von der Parametereinstellung, keine untergeordneten Elemente aufweisen, enthält der geklonte Knoten immer den Datenwert.
+
+
+ Ruft die Codierungsebene des XML-Dokuments ab oder legt diese fest.
+ Der gültige Name der Zeichencodierung.Im Folgenden werden die am häufigsten unterstützten Namen für die Zeichencodierung in XML aufgeführt:Kategorie (Category) Codierungsnamen Unicode UTF-8, UTF-16 ISO 10646 ISO-10646-UCS-2, ISO-10646-UCS-4 ISO 8859 ISO-8859-n (wobei "n" eine Ziffer von 1 bis 9 ist) JIS X-0208-1997 ISO-2022-JP, Shift_JIS, EUC-JP Dieser Wert ist optional.Wenn kein Wert festgelegt ist, gibt diese Eigenschaft String.Empty zurück.Wenn kein Codierungsattribut angegeben ist, wird beim Schreiben oder Speichern des Dokuments die UTF-8-Codierung zugrunde gelegt.
+
+
+ Ruft die verketteten Werte der XmlDeclaration ab oder legt diese fest.
+ Die verketteten Werte der XmlDeclaration (d. h. alle Werte zwischen <?xml und ?>).
+
+
+ Ruft den lokalen Namen des Knotens ab.
+ Für XmlDeclaration-Knoten lautet der lokale Name xml.
+
+
+ Ruft den qualifizierten Namen des Knotens ab.
+ Für XmlDeclaration-Knoten lautet der Name xml.
+
+
+ Ruft den Typ des aktuellen Knotens ab.
+ Für XmlDeclaration-Knoten ist dieser Wert XmlNodeType.XmlDeclaration.
+
+
+ Ruft den Wert für das eigenständige Attribut ab oder legt diesen fest.
+ Gültige Werte sind yes,wenn alle vom XML-Dokument geforderten Entitätsdeklarationen im Dokument enthalten sind, oder no, wenn eine externe DTD (Document Type Definition) benötigt wird.Wenn die XML-Deklaration kein eigenständiges Attribut aufweist, gibt diese Eigenschaft String.Empty zurück.
+
+
+ Ruft den Wert von XmlDeclaration ab oder legt diesen fest.
+ Der Inhalt der XmlDeclaration (d. h. alle Werte zwischen <?xml und ?>).
+
+
+ Ruft die XML-Version des Dokuments ab.
+ Der Wert ist immer 1.0.
+
+
+ Speichert die untergeordneten Elemente des Knotens im angegebenen .Da XmlDeclaration-Knoten keine untergeordneten Elemente besitzen, hat diese Methode keine Auswirkungen.
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Speichert den Knoten im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Stellt ein XML-Dokument dar.Weitere Informationen finden Sie im Abschnitt Remarks.
+
+
+ Initialisiert eine neue Instanz der -Klasse.
+
+
+ Initialisiert eine neue Instanz der XmlDocument-Klasse mit der angegebenen .
+ Der zu verwendende XmlImplementation.
+
+
+ Initialisiert eine neue Instanz der XmlDocument-Klasse mit der angegebenen .
+ Der zu verwendende XmlNameTable.
+
+
+ Ruft den Basis-URI des aktuellen Knotens ab.
+ Der Speicherort, von dem aus der Knoten geladen wurde.
+
+
+ Erstellt ein Duplikat dieses Knotens.
+ Der geklonte XmlDocument-Knoten.
+ true, wenn die Teilstruktur unter dem angegebenen Knoten rekursiv geklont werden soll, false, wenn nur der Knoten selbst geklont werden soll.
+
+
+ Erstellt ein mit dem angegebenen .
+ Die neue XmlAttribute.
+ Der qualifizierte Name des Attributs.Wenn der Name einen Doppelpunkt enthält, gibt die -Eigenschaft den vor dem Doppelpunkt stehenden Teil des Namens und die -Eigenschaft den hinter dem Doppelpunkt stehenden Teil wieder.Der bleibt leer, sofern das Präfix kein erkanntes integriertes Präfix, z. B. „xmlns“ ist.In diesem Fall hat der NamespaceURI den Wert http://www.w3.org/2000/xmlns/.
+
+
+ Erstellt ein mit dem angegebenen qualifizierten Namen und dem angegebenen .
+ Die neue XmlAttribute.
+ Der qualifizierte Name des Attributs.Wenn der Name einen Doppelpunkt enthält, gibt die -Eigenschaft den vor dem Doppelpunkt stehenden Teil des Namens und die -Eigenschaft den hinter dem Doppelpunkt stehenden Teil wieder.
+ Der namespaceURI des Attributs.Wenn der qualifizierte Name das Präfix xmlns enthält, muss dieser Parameter http://www.w3.org/2000/xmlns/ lauten.
+
+
+ Erstellt ein mit dem angegebenen , und .
+ Die neue XmlAttribute.
+ Das Präfix des Attributs (sofern vorhanden).„String.Empty“ und null sind äquivalent.
+ Der lokale Name des Attributs.
+ Der Namespace-URI des Attributs (sofern vorhanden).„String.Empty“ und null sind äquivalent.Wenn das „xmlns“ ist, muss dieser Parameter „http://www.w3.org/2000/xmlns/“ lauten. Andernfalls wird eine Ausnahme ausgelöst.
+
+
+ Erstellt eine , die die angegebenen Daten enthält.
+ Die neue XmlCDataSection.
+ Der Inhalt der neuen XmlCDataSection.
+
+
+ Erstellt einen , der die angegebenen Daten enthält.
+ Die neue XmlComment.
+ Der Inhalt des neuen XmlComment.
+
+
+ Erstellt eine .
+ Die neue XmlDocumentFragment.
+
+
+ Erstellt ein Element mit dem angegebenen Namen.
+ Die neue XmlElement.
+ Der qualifizierte Name des Elements.Wenn der Name einen Doppelpunkt enthält, gibt die -Eigenschaft den vor dem Doppelpunkt stehenden Teil des Namens und die -Eigenschaft den hinter dem Doppelpunkt stehenden Teil wieder.Der qualifizierte Name darf nicht das Präfix "xmlns" enthalten.
+
+
+ Erstellt ein mit dem qualifizierten Namen und dem .
+ Die neue XmlElement.
+ Der qualifizierte Name des Elements.Wenn der Name einen Doppelpunkt enthält, gibt die -Eigenschaft den vor dem Doppelpunkt stehenden Teil des Namens und die -Eigenschaft den hinter dem Doppelpunkt stehenden Teil wieder.Der qualifizierte Name darf nicht das Präfix "xmlns" enthalten.
+ Der Namespace-URI des Elements.
+
+
+ Erstellt ein Element mit dem angegebenen , und der .
+ Die neue .
+ Das Präfix des neuen Elements (sofern vorhanden).„String.Empty“ und null sind äquivalent.
+ Der lokale Name des neuen Elements.
+ Der Namespace-URI des neuen Elements (sofern vorhanden).„String.Empty“ und null sind äquivalent.
+
+
+ Erstellt einen mit dem angegebenen Knotentyp, und .
+ Die neue XmlNode.
+ Zeichenfolgenversion des für den neuen Knoten.Dieser Parameter muss einer der in der folgenden Tabelle aufgelisteten Werte sein.
+ Der qualifizierte Name des neuen Knotens.Wenn der Name einen Doppelpunkt enthält, wird er in eine -Komponente und eine -Komponente aufgelöst.
+ Der Namespace-URI des neuen Knotens.
+ The name was not provided and the XmlNodeType requires a name; or is not one of the strings listed below.
+
+
+ Erstellt einen mit dem angegebenen , und .
+ Die neue XmlNode.
+ Der XmlNodeType des neuen Knotens.
+ Der qualifizierte Name des neuen Knotens.Wenn der Name einen Doppelpunkt enthält, wird er in eine -Komponente und eine -Komponente aufgelöst.
+ Der Namespace-URI des neuen Knotens.
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ Erstellt einen mit dem angegebenen , , und .
+ Die neue XmlNode.
+ Der XmlNodeType des neuen Knotens.
+ Das Präfix des neuen Knotens.
+ Der lokale Name des neuen Knotens.
+ Der Namespace-URI des neuen Knotens.
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ Erstellt eine mit dem angegebenen Namen und den angegebenen Daten.
+ Die neue XmlProcessingInstruction.
+ Der Name der Verarbeitungsanweisung.
+ Die Daten für die Verarbeitungsanweisung.
+
+
+ Erstellt einen -Knoten.
+ Ein neuer XmlSignificantWhitespace-Knoten.
+ Die Zeichenfolge darf nur die Zeichen  und 	 enthalten.
+
+
+ Erstellt einen mit dem angegebenen Text.
+ Der neue XmlText-Knoten.
+ Der Text für den Text-Knoten.
+
+
+ Erstellt einen -Knoten.
+ Ein neuer XmlWhitespace-Knoten.
+ Die Zeichenfolge darf nur die Zeichen  und 	 enthalten.
+
+
+ Erstellt einen -Knoten mit den angegebenen Werten.
+ Der neue XmlDeclaration-Knoten.
+ Die Version muss "1.0" sein.
+ Der Wert des Codierungsattributs.Dies ist die Codierung, die für das Speichern des in einer Datei oder einem Stream verwendet wird. Daher muss das Codierungsattribut auf eine von der -Klasse unterstützte Zeichenfolge festgelegt werden. Andernfalls schlägt fehl.Wenn der Wert null oder „String.Empty“ ist, schreibt die Save-Methode kein Codierungsattribut für die XML-Deklaration, und es wird daher die Standardcodierung UTF-8 verwendet.Wenn das XmlDocument in einem oder einem gespeichert wird, wird dieser Codierungswert verworfen.Stattdessen wird die Codierung des TextWriter oder XmlTextWriter verwendet.Dadurch ist gewährleistet, dass die geschriebenen XML-Daten mit der richtigen Codierung eingelesen werden können.
+ Der Wert muss entweder yes oder no sein.Wenn der Wert null oder String.Empty ist, schreibt die Save-Methode kein eigenständiges Attribut für die XML-Deklaration.
+ The values of or are something other than the ones specified above.
+
+
+ Ruft das Stamm- für das Dokument ab.
+ Das XmlElement, das den Stamm der XML-Dokumentstruktur darstellt.Wenn kein Stamm vorhanden ist, wird null zurückgegeben.
+
+
+ Gibt eine mit einer Liste aller untergeordneten Elemente zurück, die mit dem angegebenen übereinstimmen.
+ Eine mit einer Liste aller übereinstimmenden Knoten.Wenn mit keine Knoten übereinstimmen, ist die zurückgegebene Auflistung leer.
+ Der qualifizierte Name, mit dem eine Übereinstimmung gefunden werden soll.Er wird mit der Name-Eigenschaft des übereinstimmenden Knotens verglichen.Der spezielle Wert "*" entspricht allen Tags.
+
+
+ Gibt eine mit einer Liste aller untergeordneten Elemente zurück, die mit dem angegebenen und übereinstimmen.
+ Eine mit einer Liste aller übereinstimmenden Knoten.Wenn keine mit dem angegebenen und dem kein Knoten übereinstimmt, ist die zurückgegebene Auflistung leer.
+ Der LocalName, mit dem eine Übereinstimmung gefunden werden soll.Der spezielle Wert "*" entspricht allen Tags.
+ Der NamespaceURI, mit dem eine Übereinstimmung gefunden werden soll.
+
+
+ Ruft das -Objekt für das aktuelle Dokument ab.
+ Das XmlImplementation-Objekt für das aktuelle Dokument.
+
+
+ Importiert einen Knoten aus einem anderen Dokument in das aktuelle Dokument.
+ Der importierte .
+ Der Knoten, der importiert wird.
+ true für das Erstellen eines tiefen Klons, andernfalls false.
+ Calling this method on a node type which cannot be imported.
+
+
+ Löst in allen Fällen eine aus.
+ Die Werte des Knotens und aller diesem untergeordneten Knoten.
+ In all cases.
+
+
+ Ruft das Markup ab, das die untergeordneten Elemente des aktuellen Knotens darstellt, oder legt dieses fest.
+ Das Markup der untergeordneten Elemente des aktuellen Knotens.
+ The XML specified when setting this property is not well-formed.
+
+
+ Ruft einen Wert ab, der angibt, ob der aktuelle Knoten schreibgeschützt ist.
+ true, wenn der aktuelle Knoten schreibgeschützt ist, andernfalls false.XmlDocument-Knoten geben immer false zurück.
+
+
+ Lädt das XML-Dokument aus dem angegebenen Stream.
+ Der Stream, der das zu ladende XML-Dokument enthält.
+ There is a load or parse error in the XML.In this case, a is raised.
+
+
+ Lädt das XML-Dokument aus dem angegebenen .
+ Der zum Übertragen von XML-Daten in das Dokument verwendete TextReader.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ Lädt das XML-Dokument aus dem angegebenen .
+ Der zum Übertragen von XML-Daten in das Dokument verwendete XmlReader.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ Lädt das XML-Dokument aus der angegebenen Zeichenfolge.
+ Zeichenfolge, die das zu ladende XML-Dokument enthält.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ Ruft den lokalen Namen des Knotens ab.
+ Für XmlDocument-Knoten lautet der lokale Name „#document“.
+
+
+ Ruft den qualifizierten Namen des Knotens ab.
+ Für XmlDocument-Knoten lautet der Name „#document“.
+
+
+ Ruft die ab, die dieser Implementierung zugeordnet ist.
+ Eine XmlNameTable, die das Abrufen der atomisierten Version einer Zeichenfolge im Dokument ermöglicht.
+
+
+ Tritt ein, wenn der eines zu diesem Dokument gehörenden Knotens geändert wurde.
+
+
+ Tritt ein, wenn der eines zu diesem Dokument gehörenden Knotens gerade geändert wird.
+
+
+ Tritt ein, wenn ein zu diesem Dokument gehörender Knoten in einen anderen Knoten eingefügt wurde.
+
+
+ Tritt ein, wenn ein zu diesem Dokument gehörender Knoten gerade in einen anderen Knoten eingefügt wird.
+
+
+ Tritt ein, wenn ein zu diesem Dokument gehörender Knoten aus dem übergeordneten Element entfernt wurde.
+
+
+ Tritt ein, wenn ein zu diesem Dokument gehörender Knoten gerade aus dem Dokument entfernt wird.
+
+
+ Ruft den Typ des aktuellen Knotens ab.
+ Der Knotentyp.Für XmlDocument-Knoten ist dieser Wert „XmlNodeType.Document“.
+
+
+ Ruft das ab, zu dem der aktuelle Knoten gehört.
+ Für XmlDocument-Knoten ( entspricht „XmlNodeType.Document“) gibt diese Eigenschaft immer null zurück.
+
+
+ Ruft den übergeordneten Knoten dieses Knotens ab (bei Knoten, die über übergeordnete Knoten verfügen können).
+ Gibt immer null zurück.
+
+
+ Ruft einen Wert ab, der angibt, ob der Leerraum im Elementinhalt beibehalten wird, oder legt diesen fest.
+ true, um Leerraum beizubehalten, andernfalls false.Die Standardeinstellung ist false.
+
+
+ Erstellt anhand der Informationen im ein -Objekt.Der Reader muss auf einem Knoten oder Attribut positioniert sein.
+ Der neue XmlNode oder null, wenn keine weiteren Knoten vorhanden sind.
+ Die XML-Quelle
+ The reader is positioned on a node type that does not translate to a valid DOM node (for example, EndElement or EndEntity).
+
+
+ Speichert das XML-Dokument im angegebenen Stream.
+ Der Stream, in dem gespeichert werden soll.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Speichert das XML-Dokument im angegebenen .
+ Der TextWriter, in dem gespeichert werden soll.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Speichert das XML-Dokument im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Speichert alle untergeordneten Elemente des XmlDocument-Knotens im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Speichert den XmlDocument-Knoten im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Stellt ein kompaktes Objekt dar, das für das Einfügen in Strukturen nützlich ist.
+
+
+ Initialisiert eine neue Instanz der -Klasse.
+ Das XML-Dokument, das die Quelle des Fragments darstellt.
+
+
+ Erstellt ein Duplikat dieses Knotens.
+ Der geklonte Knoten.
+ true, wenn die Teilstruktur unter dem angegebenen Knoten rekursiv geklont werden soll, false, wenn nur der Knoten selbst geklont werden soll.
+
+
+ Ruft das Markup ab, das die untergeordneten Elemente dieses Knotens darstellt, oder legt dieses fest.
+ Das Markup der untergeordneten Elemente dieses Knotens.
+ Der beim Festlegen dieser Eigenschaft angegebene XML-Code ist nicht wohlgeformt.
+
+
+ Ruft den lokalen Namen des Knotens ab.
+ Für XmlDocumentFragment-Knoten lautet der lokale Name #document-fragment.
+
+
+ Ruft den qualifizierten Namen des Knotens ab.
+ Für XmlDocumentFragment lautet der Name #document-fragment.
+
+
+ Ruft den Typ des aktuellen Knotens ab.
+ Für XmlDocumentFragment-Knoten ist dieser Wert XmlNodeType.DocumentFragment.
+
+
+ Ruft das ab, zu dem dieser Knoten gehört.
+ Das XmlDocument, zu dem dieser Knoten gehört.
+
+
+ Ruft das übergeordnete Element dieses Knotens ab (bei Knoten, die über übergeordnete Elemente verfügen können).
+ Das übergeordnete Element dieses Knotens.Für XmlDocumentFragment-Knoten ist diese Eigenschaft immer null.
+
+
+ Speichert alle untergeordneten Elemente des Knotens im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Speichert den Knoten im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Stellt ein Element dar.
+
+
+ Initialisiert eine neue Instanz der -Klasse.
+ Das Namespacepräfix. Weitere Informationen finden Sie unter der -Eigenschaft.
+ Der lokale Name. Weitere Informationen finden Sie unter der -Eigenschaft.
+ Der Namespace-URI. Weitere Informationen finden Sie unter der -Eigenschaft.
+ Das übergeordnete XML-Dokument.
+
+
+ Ruft eine ab, die die Liste der Attribute für diesen Knoten enthält.
+
+ , die die Liste der Attribute für diesen Knoten enthält.
+
+
+ Erstellt ein Duplikat dieses Knotens.
+ Der geklonte Knoten.
+ true, um die Teilstruktur unter dem angegebenen Knoten rekursiv zu klonen. false, um nur den Knoten selbst zu klonen (und dessen Attribute, wenn der Knoten ein XmlElement ist).
+
+
+ Gibt den Wert des Attributs mit dem angegebenen Namen zurück.
+ Der Wert des angegebenen Attributs.Wenn kein übereinstimmendes Attribut gefunden wurde oder das Attribut keinen angegebenen Wert oder Standardwert hat, wird eine leere Zeichenfolge zurückgegeben.
+ Der Name des abzurufenden Attributs.Dies ist ein gekennzeichneter Name.Er wird mit der Name-Eigenschaft des übereinstimmenden Knotens verglichen.
+
+
+ Gibt den Wert des Attributs mit dem angegebenen lokalen Namen und Namespace-URI zurück.
+ Der Wert des angegebenen Attributs.Wenn kein übereinstimmendes Attribut gefunden wurde oder das Attribut keinen angegebenen Wert oder Standardwert hat, wird eine leere Zeichenfolge zurückgegeben.
+ Der lokale Name des abzurufenden Attributs.
+ Der Namespace-URI des abzurufenden Attributs.
+
+
+ Gibt das XmlAttribute mit dem angegebenen Namen zurück.
+ Das angegebene XmlAttribute oder null, wenn kein übereinstimmendes Attribut gefunden wurde.
+ Der Name des abzurufenden Attributs.Dies ist ein gekennzeichneter Name.Er wird mit der Name-Eigenschaft des übereinstimmenden Knotens verglichen.
+
+
+ Gibt das mit dem angegebenen lokalen Namen und Namespace-URI zurück.
+ Das angegebene XmlAttribute oder null, wenn kein übereinstimmendes Attribut gefunden wurde.
+ Der lokale Name des Attributs.
+ Der Namespace-URI dieses Attributs.
+
+
+ Gibt eine mit einer Liste aller untergeordneten Elemente zurück, die mit dem angegebenen übereinstimmen.
+ Eine mit einer Liste aller übereinstimmenden Knoten.Die Liste ist leer, wenn es keine entsprechenden Knoten gibt.
+ Der Namenstag, mit dem eine Übereinstimmung gefunden werden soll.Dies ist ein gekennzeichneter Name.Er wird mit der Name-Eigenschaft des übereinstimmenden Knotens verglichen.Das Sternchen (*) ist ein spezieller Wert, der allen Tags entspricht.
+
+
+ Gibt eine mit einer Liste aller Nachfolgerelemente zurück, die mit dem angegebenen und übereinstimmen.
+ Eine mit einer Liste aller übereinstimmenden Knoten.Die Liste ist leer, wenn es keine entsprechenden Knoten gibt.
+ Der lokale Name, mit dem eine Übereinstimmung gefunden werden soll.Das Sternchen (*) ist ein spezieller Wert, der allen Tags entspricht.
+ Der Namespace-URI, mit dem Übereinstimmungen gefunden werden sollen.
+
+
+ Ermittelt, ob der aktuelle Knoten über ein Attribut mit dem angegebenen Namen verfügt.
+ true, wenn der aktuelle Knoten über das angegebene Attribut verfügt, andernfalls false.
+ Der Name des zu suchenden Attributs.Dies ist ein gekennzeichneter Name.Er wird mit der Name-Eigenschaft des übereinstimmenden Knotens verglichen.
+
+
+ Ermittelt, ob der aktuelle Knoten über ein Attribut mit dem angegebenen lokalen Namen und Namespace-URI verfügt.
+ true, wenn der aktuelle Knoten über das angegebene Attribut verfügt, andernfalls false.
+ Der lokale Name des zu suchenden Attributs.
+ Der Namespace-URI des zu suchenden Attributs.
+
+
+ Ruft einen boolean-Wert ab, der angibt, ob der aktuelle Knoten über Attribute verfügt.
+ true, wenn der aktuelle Knoten über Attribute verfügt, andernfalls false.
+
+
+ Ruft die verketteten Werte des Knotens und sämtlicher diesem untergeordneten Elemente ab oder legt diese fest.
+ Die verketteten Werte des Knotens und aller diesem untergeordneten Elemente.
+
+
+ Ruft das Markup ab, das nur die untergeordneten Elemente dieses Knotens darstellt, oder legt dieses fest.
+ Das Markup der untergeordneten Elemente dieses Knotens.
+ Der beim Festlegen dieser Eigenschaft angegebene XML-Code ist nicht wohlgeformt.
+
+
+ Ruft das Tagformat des Elements ab oder legt dieses fest.
+ Gibt true zurück, wenn das Element im kurzen Tagformat "<item/>" serialisiert werden soll, false für das lange Format "<item></item>".Wenn diese Eigenschaft auf true festgelegt ist, werden die dem Element untergeordneten Elemente entfernt, und das Element wird im kurzen Tagformat serialisiert.Wenn die Eigenschaft auf false festgelegt ist, ändert sich der Wert der Eigenschaft (unabhängig davon, ob das Element leer ist oder nicht). Wenn das Element leer ist, wird es im langen Format serialisiert.Diese Eigenschaft ist eine Microsoft-Erweiterung des Dokumentobjektmodells (Document Object Model, DOM).
+
+
+ Ruft den lokalen Namen des aktuellen Knotens ab.
+ Der Name des aktuellen Knotens ohne das Präfix.Beispielsweise ist book der LocalName für das Element <bk:book>.
+
+
+ Ruft den qualifizierten Namen des Knotens ab.
+ Der gekennzeichnete Name des Knotens.Für XmlElement-Knoten ist dies der Tagname des Elements.
+
+
+ Ruft den Namespace-URI dieses Knotens ab.
+ Der Namespace-URI dieses Knotens.Wenn kein Namespace-URI vorhanden ist, gibt diese Eigenschaft String.Empty zurück.
+
+
+ Ruft den ab, der diesem Element unmittelbar folgt.
+ Der XmlNode, der diesem Element unmittelbar folgt.
+
+
+ Ruft den Typ des aktuellen Knotens ab.
+ Der Knotentyp.Für XmlElement-Knoten ist dieser Wert XmlNodeType.Element.
+
+
+ Ruft das ab, zu dem dieser Knoten gehört.
+ Das XmlDocument, zu dem dieses Element gehört.
+
+
+
+ Ruft das Namespacepräfix dieses Knotens ab oder legt dieses fest.
+ Das Namespacepräfix dieses Knotens.Wenn kein Präfix vorhanden ist, gibt diese Eigenschaft String.Empty zurück.
+ Dieser Knoten ist schreibgeschützt
+ Das angegebene Präfix enthält ein ungültiges Zeichen.Das angegebene Präfix ist ungültig.Der namespaceURI dieses Knotens ist null.Das angegebene Präfix ist "xml", und der namespaceURI dieses Knotens ist nicht identisch mit http://www.w3.org/XML/1998/namespace.
+
+
+ Entfernt alle angegebenen Attribute und untergeordneten Elemente des aktuellen Knotens.Standardattribute werden nicht entfernt.
+
+
+ Entfernt alle angegebenen Attribute des Elements.Standardattribute werden nicht entfernt.
+
+
+ Entfernt ein Attribut über den Namen.
+ Der Name des zu entfernenden Attributs. Dies ist ein gekennzeichneter Name.Er wird mit der Name-Eigenschaft des übereinstimmenden Knotens verglichen.
+ Der Knoten ist schreibgeschützt.
+
+
+ Entfernt ein Attribut mit dem angegebenen lokalen Namen und Namespace-URI. (Wenn das entfernte Attribut über einen Standardwert verfügt, wird es sofort ersetzt.)
+ Der lokale Name des zu entfernenden Attributs.
+ Der Namespace-URI des zu entfernenden Attributs.
+ Der Knoten ist schreibgeschützt.
+
+
+ Entfernt den Attributknoten mit dem angegebenen Index aus dem Element. (Wenn das entfernte Attribut über einen Standardwert verfügt, wird es sofort ersetzt.)
+ Der entfernte Attributknoten oder null, wenn am angegebenen Index kein Knoten vorhanden ist.
+ Der Index des zu entfernenden Knotens.Der erste Knoten hat den Index 0.
+
+
+ Entfernt das mit dem lokalen Namen und Namespace-URI angegebene . (Wenn das entfernte Attribut über einen Standardwert verfügt, wird es sofort ersetzt.)
+ Das entfernte XmlAttribute oder null, wenn das XmlElement über keinen übereinstimmenden Attributknoten verfügt.
+ Der lokale Name des Attributs.
+ Der Namespace-URI dieses Attributs.
+ Dieser Knoten ist schreibgeschützt.
+
+
+ Entfernt das angegebene .
+ Das entfernte XmlAttribute oder null, wenn kein Attributknoten des XmlElement ist.
+ Der zu entfernende XmlAttribute-Knoten.Wenn das entfernte Attribut über einen Standardwert verfügt, wird es sofort ersetzt.
+ Dieser Knoten ist schreibgeschützt.
+
+
+ Legt den Wert des Attributs mit dem angegebenen Namen fest.
+ Der Name des Attributs, das erstellt oder geändert werden soll.Dies ist ein gekennzeichneter Name.Wenn der Name einen Doppelpunkt enthält, wird er in eine Präfix- und eine lokale Namenskomponente aufgelöst.
+ Der für das Attribut festzulegende Wert.
+ Der angegebene Name enthält ein ungültiges Zeichen.
+ Der Knoten ist schreibgeschützt.
+
+
+ Legt den Wert des Attributs mit dem angegebenen lokalen Namen und Namespace-URI fest.
+ Der Attributwert.
+ Der lokale Name des Attributs.
+ Der Namespace-URI dieses Attributs.
+ Der für das Attribut festzulegende Wert.
+
+
+ Fügt das angegebene hinzu.
+ Die zu addierende XmlAttribute.
+ Der lokale Name des Attributs.
+ Der Namespace-URI dieses Attributs.
+
+
+ Fügt das angegebene hinzu.
+ Wenn das Attribut ein vorhandenes Attribut mit demselben Namen ersetzt, wird das alte XmlAttribute zurückgegeben, andernfalls wird null zurückgegeben.
+ Der XmlAttribute-Knoten, der der Attributauflistung dieses Elements hinzugefügt werden soll.
+
+ wurde nicht aus dem Dokument erstellt, aus dem dieser Knoten erstellt wurde.Oder dieser Knoten ist schreibgeschützt.
+
+ ist bereits ein Attribut eines anderen XmlElement-Objekts.Sie müssen XmlAttribute-Knoten explizit klonen, um sie in anderen XmlElement-Objekten erneut verwenden zu können.
+
+
+ Speichert alle untergeordneten Elemente des Knotens im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Speichert den aktuellen Knoten im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Definiert den Kontext für eine Gruppe von -Objekten
+
+
+ Initialisiert eine neue Instanz der -Klasse.
+
+
+ Initialisiert eine neue Instanz der -Klasse mit der angegebenen .
+ Ein -Objekt.
+
+
+ Erstellt einen neuen .
+ Das neue XmlDocument-Objekt.
+
+
+ Überprüft, ob die DOM-Implementierung (Document Object Model) ein bestimmtes Feature implementiert.
+ true, wenn das Feature in der angegebenen Version implementiert ist, andernfalls false.In der folgenden Tabelle werden die Kombinationen aufgeführt, bei den HasFeature den Wert true zurückgibt.strFeature strVersion XML 1.0 XML 2.0
+ Der Paketname des zu testenden Features.Bei diesem Namen wird die Groß- und Kleinschreibung nicht berücksichtigt.
+ Dies ist die Versionsnummer des zu testenden Paketnamens.Wenn die Version nicht angegeben ist (null) und eine beliebige Version des Features unterstützt wird, gibt die Methode den Wert true zurück.
+
+
+ Ruft den Knoten ab, der diesem Knoten unmittelbar vorausgeht oder auf ihn folgt.
+
+
+ Ruft den Knoten ab, der diesem Knoten unmittelbar folgt.
+ Der , der unmittelbar auf diesen Knoten folgt, oder null, wenn kein solcher vorhanden ist.
+
+
+ Ruft den Knoten ab, der diesem Knoten unmittelbar vorausgeht.
+ Der vorausgehende oder null, wenn kein solcher vorhanden ist.
+
+
+ Stellt eine Auflistung von Knoten dar, die über Name oder Index zugänglich sind.
+
+
+ Ruft die Anzahl der Knoten im XmlNamedNodeMap-Objekt ab.
+ Die Anzahl der Knoten.
+
+
+ Stellt Unterstützung für "foreach"-Iterationen in der Auflistung von Knoten in der XmlNamedNodeMap bereit.
+ Ein Enumeratorobjekt.
+
+
+ Ruft einen durch den Namen angegebenen ab.
+ Ein XmlNode mit dem angegebenen Namen oder null, wenn kein übereinstimmender Knoten gefunden wurde.
+ Der gekennzeichnete Name des abzurufenden Knotens.Er wird mit der -Eigenschaft des übereinstimmenden Knotens verglichen.
+
+
+ Ruft einen Knoten mit dem übereinstimmenden und ab.
+ Ein mit dem übereinstimmenden lokalen Namen und Namespace-URI oder null, wenn kein übereinstimmender Knoten gefunden wurde.
+ Der lokale Name des abzurufenden Knotens.
+ Der abzurufende Namespace-URI (Uniform Resource Identifier) des Knotens.
+
+
+ Ruft den Knoten am angegebenen Index in der XmlNamedNodeMap ab.
+ Der am angegebenen Index.Wenn kleiner als 0 oder größer oder gleich der -Eigenschaft ist, wird null zurückgegeben.
+ Die Indexposition des aus der XmlNamedNodeMap abzurufenden Knotens.Der Index ist nullbasiert. Daher ist der Index des ersten Knotens 0 und der des letzten Knotens -1.
+
+
+ Entfernt den Knoten aus der XmlNamedNodeMap.
+ Der aus dieser XmlNamedNodeMap entfernte XmlNode oder null, wenn kein übereinstimmender Knoten gefunden wurde.
+ Der gekennzeichnete Name des zu entfernenden Knotens.Der Name wird mit der -Eigenschaft des übereinstimmenden Knotens verglichen.
+
+
+ Entfernt einen Knoten mit dem übereinstimmenden und .
+ Der entfernte oder null, wenn kein übereinstimmender Knoten gefunden wurde.
+ Der lokale Name des zu entfernenden Knotens.
+ Der Namespace-URI des zu entfernenden Knotens.
+
+
+ Fügt einen unter Verwendung der entsprechenden -Eigenschaft hinzu.
+ Wenn der einen vorhandenen Knoten mit demselben Namen ersetzt, wird der alte Knoten zurückgegeben, andernfalls wird null zurückgegeben.
+ Ein in der XmlNamedNodeMap zu speichernder XmlNode.Wenn ein Knoten mit diesem Namen bereits in der Zuordnung enthalten ist, wird er durch den neuen ersetzt.
+ Der wurde aus einem anderen als dem erstellt, das die XmlNamedNodeMap erstellt hat; oder die XmlNamedNodeMap ist schreibgeschützt.
+
+
+ Stellt einen einzelnen Knoten im XML-Dokument dar.
+
+
+ Fügt den angegebenen Knoten am Ende der Liste der untergeordneten Knoten dieses Knotens hinzu.
+ Der hinzugefügte Knoten.
+ Der hinzuzufügende Knoten.Der gesamte Inhalt des hinzuzufügenden Knotens wird an den angegebenen Speicherort verschoben.
+ Der Typ dieses Knotens lässt keine untergeordneten Knoten vom Typ des -Knotens zu. ist eine frühere Version dieses Knotens.
+
+ wurde nicht aus dem Dokument erstellt, aus dem dieser Knoten erstellt wurde.Dieser Knoten ist schreibgeschützt.
+
+
+ Ruft eine ab, die die Attribute dieses Knotens enthält.
+ Eine XmlAttributeCollection, die die Attribute des Knotens enthält.Wenn der Knoten vom Typ XmlNodeType.Element ist, werden die Attribute des Knotens zurückgegeben.Andernfalls gibt diese Eigenschaft null zurück.
+
+
+ Ruft den Basis-URI des aktuellen Knotens ab.
+ Die Position, aus der der Knoten geladen wurde oder String.Empty, wenn der Knoten über keinen Basis-URI verfügt.
+
+
+ Ruft alle untergeordneten Knoten des Knotens ab.
+ Ein Objekt, das sämtliche untergeordneten Knoten des Knotens enthält.Wenn keine untergeordneten Knoten vorhanden sind, gibt diese Eigenschaft eine leere zurück.
+
+
+ Erstellt beim Überschreiben in einer abgeleiteten Klasse ein Duplikat des Knotens.
+ Der geklonte Knoten.
+ true, wenn die Teilstruktur unter dem angegebenen Knoten rekursiv geklont werden soll, false, wenn nur der Knoten selbst geklont werden soll.
+ Aufruf dieser Methode für einen Knotentyp, der nicht geklont werden kann.
+
+
+ Ruft das erste untergeordnete Element des Knotens ab.
+ Das erste untergeordnete Element des Knotens.Wenn kein solcher Knoten vorhanden ist, wird null zurückgegeben.
+
+
+ Ruft einen Enumerator ab, der die untergeordneten Knoten des aktuellen Knotens durchläuft.
+ Ein -Objekt, mit dem die untergeordneten Knoten im aktuellen Knoten durchlaufen werden können.
+
+
+ Sucht im Gültigkeitsbereich des aktuellen Knotens die nächstgelegene xmlns-Deklaration für das angegebene Präfix und gibt den Namespace-URI in der Deklaration zurück.
+ Der Namespace-URI des angegebenen Präfixes.
+ Das Präfix, dessen Namespace-URI gesucht werden soll.
+
+
+ Sucht im Gültigkeitsbereich des aktuellen Knotens die nächstgelegene xmlns-Deklaration für den angegebenen Namespace-URI und gibt das in dieser Deklaration definierte Präfix zurück.
+ Das Präfix für den angegebenen Namespace-URI.
+ Der Namespace-URI, dessen Präfix gesucht werden soll.
+
+
+ Ruft einen Wert ab, der angibt, ob dieser Knoten über untergeordnete Knoten verfügt.
+ true, wenn der Knoten über untergeordnete Knoten verfügt, andernfalls false.
+
+
+ Ruft die verketteten Werte des Knotens und sämtlicher diesem untergeordneten Knoten ab oder legt diese fest.
+ Die verketteten Werte des Knotens und aller diesem untergeordneten Knoten.
+
+
+ Ruft das Markup ab, das nur die untergeordneten Knoten dieses Knotens darstellt, oder legt dieses fest.
+ Das Markup der untergeordneten Knoten dieses Knotens.HinweisInnerXml gibt keine Standardattribute zurück.
+ Festlegen dieser Eigenschaft auf einem Knoten, der keine untergeordneten Knoten besitzen kann.
+ Der beim Festlegen dieser Eigenschaft angegebene XML-Code ist nicht wohlgeformt.
+
+
+ Fügt den angegebenen Knoten unmittelbar hinter dem angegebenen Verweisknoten ein.
+ Der Knoten, der eingefügt wird.
+ Der einzufügende XmlNode.
+ Der XmlNode, der der Verweisknoten ist.Der wird hinter platziert.
+ Der Typ dieses Knotens lässt keine untergeordneten Knoten vom Typ des -Knotens zu. ist eine frühere Version dieses Knotens.
+
+ wurde nicht aus dem Dokument erstellt, aus dem dieser Knoten erstellt wurde. ist kein untergeordnetes Element dieses Knotens.Dieser Knoten ist schreibgeschützt.
+
+
+ Fügt den angegebenen Knoten direkt vor dem angegebenen Verweisknoten ein.
+ Der Knoten, der eingefügt wird.
+ Der einzufügende XmlNode.
+ Der XmlNode, der der Verweisknoten ist.Das wird vor diesem Knoten platziert.
+ Der Typ des aktuellen Knotens lässt keine untergeordneten Knoten vom Typ des -Knotens zu. ist eine frühere Version dieses Knotens.
+
+ wurde nicht aus dem Dokument erstellt, aus dem dieser Knoten erstellt wurde. ist kein untergeordnetes Element dieses Knotens.Dieser Knoten ist schreibgeschützt.
+
+
+ Ruft einen Wert ab, der angibt, ob der Knoten schreibgeschützt ist.
+ true, wenn der Knoten schreibgeschützt ist, andernfalls false.
+
+
+ Ruft das erste untergeordnete Element mit dem angegebenen ab.
+ Das erste , das mit dem angegebenen Namen übereinstimmt.Es wird ein NULL-Verweis zurückgegeben (Nothing in Visual Basic), wenn keine Übereinstimmung vorhanden ist.
+ Der gekennzeichnete Name des abzurufenden Elements.
+
+
+ Ruft das erste untergeordnete Element mit dem angegebenen und dem ab.
+ Das erste mit dem passenden und ..Es wird ein NULL-Verweis zurückgegeben (Nothing in Visual Basic), wenn keine Übereinstimmung vorhanden ist.
+ Der lokale Name des Elements.
+ Der Namespace-URI des Elements.
+
+
+ Ruft das letzte untergeordnete Element des Knotens ab.
+ Das letzte untergeordnete Element des Knotens.Wenn kein solcher Knoten vorhanden ist, wird null zurückgegeben.
+
+
+ Ruft den lokalen Namen des Knotens ab, wenn er in einer abgeleiteten Klasse überschrieben wird.
+ Der Name des Knotens ohne dessen Präfix.Beispielsweise ist book der LocalName für das Element <bk:book>.Der zurückgegebene Name hängt vom des Knotens ab: Typ Name Attribut Der lokale Name des Attributs. CDATA #cdata-section Kommentar #comment Document #document DocumentFragment #document-fragment DocumentType Der Name des Dokumenttyps. Element Der lokale Name des Elements. Entität Der Name der Entität. EntityReference Der Name der Entität, auf die verwiesen wird. Notation Der Notationsname. ProcessingInstruction Das Ziel der Verarbeitungsanweisung. Text #text Whitespace #whitespace SignificantWhitespace #significant-whitespace XmlDeclaration #xml-declaration
+
+
+ Ruft den qualifizierten Namen des Knotens ab, wenn er in einer abgeleiteten Klasse überschrieben wurde.
+ Der gekennzeichnete Name des Knotens.Der zurückgegebene Name hängt vom des Knotens ab: Typ Name Attribut Der qualifizierte Name des Attributs. CDATA #cdata-section Kommentar #comment Document #document DocumentFragment #document-fragment DocumentType Der Name des Dokumenttyps. Element Der qualifizierte Name des Elements. Entität Der Name der Entität. EntityReference Der Name der Entität, auf die verwiesen wird. Notation Der Notationsname. ProcessingInstruction Das Ziel der Verarbeitungsanweisung. Text #text Whitespace #whitespace SignificantWhitespace #significant-whitespace XmlDeclaration #xml-declaration
+
+
+ Ruft den Namespace-URI dieses Knotens ab.
+ Der Namespace-URI dieses Knotens.Wenn kein Namespace-URI vorhanden ist, gibt diese Eigenschaft String.Empty zurück.
+
+
+ Ruft den Knoten ab, der diesem Knoten unmittelbar folgt.
+ Der nächste XmlNode.Wenn kein nächster Knoten vorhanden ist, wird null zurückgegeben.
+
+
+ Ruft beim Überschreiben in einer abgeleiteten Klasse den Typ des aktuellen Knotens ab.
+ Einer der -Werte.
+
+
+ Weist allen XmlText-Knoten in der Teilstruktur unterhalb dieses XmlNode eine "normale" Form zu. In dieser werden XmlText-Knoten nur durch Markup (d. h. Tags, Kommentare, Verarbeitungsanweisungen, CDATA-Abschnitte und Entitätsverweise) getrennt, und es sind somit keine direkt aufeinander folgenden XmlText-Knoten vorhanden.
+
+
+ Ruft das Markup ab, das diesen Knoten und alle ihm untergeordneten Knoten enthält.
+ Das Markup, das diesen Knoten und alle ihm untergeordneten Knoten enthält.HinweisOuterXml gibt keine Standardattribute zurück.
+
+
+ Ruft das ab, zu dem dieser Knoten gehört.
+ Das , zu dem dieser Knoten gehört.Wenn der Knoten ein ist (NodeType ist gleich XmlNodeType.Document), gibt diese Eigenschaft null zurück.
+
+
+ Ruft das übergeordnete Element dieses Knotens ab (bei Knoten, die über übergeordnete Elemente verfügen können).
+ Der XmlNode, der das übergeordnete Element des aktuellen Knotens ist.Wenn ein Knoten gerade erstellt, jedoch noch nicht der Struktur hinzugefügt oder aus dieser entfernt wurde, ist das übergeordnete Element null.Für alle anderen Knoten hängt der zurückgegebene Wert vom des Knotens ab.In der folgenden Tabelle werden die möglichen Rückgabewerte für die ParentNode-Eigenschaft beschrieben.NodeType Rückgabewert von ParentNode Attribute, Document, DocumentFragment, Entity, Notation Gibt null zurück. Diese Knoten verfügen über keine übergeordneten Elemente. CDATA Gibt das Element oder den Entitätsverweis mit dem CDATA-Abschnitt zurück. Kommentar Gibt das Element, den Entitätsverweis, den Dokumenttyp oder das Dokument mit dem Kommentar zurück. DocumentType Gibt den Dokumentknoten zurück. Element Gibt den übergeordneten Knoten des Elements zurück.Wenn das Element der Stammknoten der Struktur ist, ist das übergeordnete Element der Dokumentknoten.EntityReference Gibt das Element, das Attribut oder den Entitätsverweis mit dem Entitätsverweis zurück. ProcessingInstruction Gibt das Dokument, das Element, den Dokumenttyp oder den Entitätsverweis mit der Verarbeitungsanweisung zurück. Text Gibt das übergeordnete Element, das Attribut oder den Entitätsverweis mit dem Textknoten zurück.
+
+
+ Ruft das Namespacepräfix dieses Knotens ab oder legt dieses fest.
+ Das Namespacepräfix dieses Knotens.Beispielsweise ist bk das Prefix für das Element <bk:book>.Wenn kein Präfix vorhanden ist, gibt diese Eigenschaft String.Empty zurück.
+ Dieser Knoten ist schreibgeschützt.
+ Das angegebene Präfix enthält ein ungültiges Zeichen.Das angegebene Präfix ist ungültig.Das angegebene Präfix ist "xml", und der namespaceURI dieses Knotens ist nicht mit "http://www.w3.org/XML/1998/namespace" identisch.Dieser Knoten ist ein Attribut, das angegebene Präfix ist "xmlns", und der namespaceURI dieses Knotens unterscheidet von "http://www.w3.org/2000/xmlns/".Dieser Knoten ist ein Attribut, und der qualifiedName dieses Knotens ist "xmlns".
+
+
+ Fügt den angegebenen Knoten am Anfang der Liste der untergeordneten Knoten dieses Knotens hinzu.
+ Der hinzugefügte Knoten.
+ Der hinzuzufügende Knoten.Der gesamte Inhalt des hinzuzufügenden Knotens wird an den angegebenen Speicherort verschoben.
+ Der Typ dieses Knotens lässt keine untergeordneten Knoten vom Typ des -Knotens zu. ist eine frühere Version dieses Knotens.
+
+ wurde nicht aus dem Dokument erstellt, aus dem dieser Knoten erstellt wurde.Dieser Knoten ist schreibgeschützt.
+
+
+ Ruft den Knoten ab, der diesem Knoten unmittelbar vorausgeht.
+ Der vorausgehende XmlNode.Wenn kein vorausgehender Knoten vorhanden ist, wird null zurückgegeben.
+
+
+ Ruft den Textknoten ab, der diesem Knoten unmittelbar vorausgeht.
+ Gibt zurück.
+
+
+ Entfernt alle untergeordneten Knoten bzw. Attribute des aktuellen Knotens.
+
+
+ Entfernt den angegebenen untergeordneten Knoten.
+ Der entfernte Knoten.
+ Der Knoten, der entfernt wird.
+
+ ist kein untergeordnetes Element dieses Knotens.Oder dieser Knoten ist schreibgeschützt.
+
+
+ Ersetzt den untergeordneten -Knoten durch den -Knoten.
+ Der ersetzte Knoten.
+ Der neue Knoten, der in die Liste der untergeordneten Elemente eingefügt werden soll.
+ Der Knoten, der in der Liste ersetzt wird.
+ Der Typ dieses Knotens lässt keine untergeordneten Knoten vom Typ des -Knotens zu. ist eine frühere Version dieses Knotens.
+
+ wurde nicht aus dem Dokument erstellt, aus dem dieser Knoten erstellt wurde.Dieser Knoten ist schreibgeschützt. ist kein untergeordnetes Element dieses Knotens.
+
+
+ Überprüft, ob die DOM-Implementierung ein bestimmtes Funktion implementiert.
+ true, wenn das Feature in der angegebenen Version implementiert ist, andernfalls false.In der folgenden Tabelle werden die Kombinationen beschrieben, bei denen true zurückgegeben wird.Funktion Version XML 1.0 XML 2.0
+ Der Paketname des zu testenden Features.Bei diesem Namen wird die Groß- und Kleinschreibung nicht berücksichtigt.
+ Die Versionsnummer des zu testenden Paketnamens.Wenn die Version nicht angegeben ist (NULL) und jede Version des Features unterstützt wird, gibt die Methode True zurück.
+
+
+ Eine Beschreibung dieses Members finden Sie unter .
+ Gibt einen Enumerator für die Auflistung zurück.
+
+
+ Ruft den Wert des Knotens ab oder legt diesen fest.
+ Der zurückgegebene Wert hängt vom des Knotens ab: Typ Wert Attribut Der Wert des Attributs. CDATASection Der Inhalt des CDATA-Abschnitts. Kommentar Der Inhalt des Kommentars. Document null. DocumentFragment null. DocumentType null. Element null.Sie können mit der -Eigenschaft oder der -Eigenschaft auf den Wert des Elementknotens zugreifen.Entität null. EntityReference null. Notation null. ProcessingInstruction Der gesamte Inhalt mit Ausnahme des Ziels. Text Der Inhalt des Textknotens. SignificantWhitespace Die Leerraumzeichen.Leerraum kann aus einem oder mehreren Leerzeichen, Wagenrückläufen, Zeilenvorschüben und Tabstopps bestehen.Whitespace Die Leerraumzeichen.Leerraum kann aus einem oder mehreren Leerzeichen, Wagenrückläufen, Zeilenvorschüben und Tabstopps bestehen.XmlDeclaration Der Inhalt der Deklaration (d. h. alle Zeichen zwischen <?xml und ?>).
+ Festlegen des Werts eines schreibgeschützten Knotens.
+ Festlegen des Werts eines Knotens, der normalerweise keinen Wert besitzt (z. B. ein Elementknoten).
+
+
+ Speichert beim Überschreiben in einer abgeleiteten Klasse sämtliche untergeordneten Knoten des Knotens im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Speichert beim Überschreiben in einer abgeleiteten Klasse den aktuellen Knoten im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Gibt den Typ der Knotenänderung an.
+
+
+ Ein Knotenwert wird geändert.
+
+
+ In die Struktur wird ein Knoten eingefügt.
+
+
+ Aus der Struktur wird ein Knoten entfernt.
+
+
+ Stellt Daten für das -Ereignis, das -Ereignis, das -Ereignis, das -Ereignis, das -Ereignis und das -Ereignis bereit.
+
+
+ Initialisiert eine neue Instanz der -Klasse.
+ Der , der das Ereignis generiert hat.
+ Der alte übergeordnete des , der das Ereignis generiert hat.
+ Der neue übergeordnete des , der das Ereignis generiert hat.
+ Der alte Wert des , der das Ereignis generiert hat.
+ Der neue Wert des , der das Ereignis generiert hat.
+
+ .
+
+
+ Ruft einen Wert ab, der angibt, welcher Typ von Knotenänderungsereignis eintritt.
+ Ein XmlNodeChangedAction-Wert, der das Knotenänderungsereignis beschreibt.XmlNodeChangedAction-Wert BeschreibungInsert Ein Knoten wurde oder wird eingefügt. Entfernen Ein Knoten wurde oder wird entfernt. Änderung Ein Knoten wurde oder wird geändert. HinweisBeim Action-Wert wird der Zeitpunkt des Ereignisses (vor oder nach) nicht berücksichtigt.Um beide Instanzen zu behandeln, können Sie separate Ereignishandler erstellen.
+
+
+ Ruft nach Abschluss des Vorgangs den Wert des ab.
+ Der Wert des ParentNode nach Abschluss des Vorgangs.Wenn der Knoten entfernt wird, gibt diese Eigenschaft null zurück.HinweisFür Attributknoten gibt diese Eigenschaft das zurück.
+
+
+ Ruft den neuen Wert des Knotens ab.
+ Der neue Wert des Knotens.Diese Eigenschaft gibt null zurück, wenn der Knoten kein ein Attribut und kein Textknoten ist oder der Knoten entfernt wird.Bei einem Aufruf im -Ereignis gibt NewValue den Wert des Knotens zurück, wenn die Änderung erfolgreich ist.Bei einem Aufruf im -Ereignis gibt NewValue den aktuellen Wert des Knotens zurück.
+
+
+ Ruft den ab, der hinzugefügt, entfernt oder geändert wird.
+ Der XmlNode, der hinzugefügt, entfernt oder geändert wird. Diese Eigenschaft gibt niemals null zurück.
+
+
+ Ruft den Wert des vor Beginn des Vorgangs ab.
+ Der Wert des ParentNode vor Beginn des Vorgangs.Wenn für den Knoten kein übergeordnetes Element vorhanden war, gibt diese Eigenschaft null zurück.HinweisFür Attributknoten gibt diese Eigenschaft das zurück.
+
+
+ Ruft den ursprünglichen Wert des Knotens ab.
+ Der ursprüngliche Wert des Knotens.Diese Eigenschaft gibt null zurück, wenn der Knoten kein ein Attribut und kein Textknoten ist oder der Knoten eingefügt wird.Bei einem Aufruf im -Ereignis gibt OldValue den aktuellen Wert des Knotens zurück, der ersetzt wird, wenn die Änderung erfolgreich ist.Bei einem Aufruf im -Ereignis gibt OldValue den Wert des Knotens vor der Änderung zurück.
+
+
+ Stellt die Methode dar, die das -Ereignis, das -Ereignis, das -Ereignis, das -Ereignis, das -Ereignis und das -Ereignis behandelt.
+ Die Quelle des Ereignisses.
+ Eine Instanz von , die die Ereignisdaten enthält.
+
+
+ Stellt eine geordnete Auflistung von Knoten dar.
+
+
+ Initialisiert eine neue Instanz der -Klasse.
+
+
+ Ruft die Anzahl der Knoten in der XmlNodeList ab.
+ Die Anzahl der Knoten im XmlNodeList-Objekt.
+
+
+ Ruft einen Enumerator ab, der die Knotenauflistung durchläuft.
+ Ein Enumerator, der zum Durchlaufen der Knotensammlung verwendet werden kann.
+
+
+ Ruft einen Knoten am angegebenen Index ab.
+ Das mit dem angegebenen Index in der Auflistung.Wenn größer oder gleich der Anzahl der Knoten in der Liste ist, wird null zurückgegeben.
+ Nullbasierter Index für die Liste der Knoten.
+
+
+ Ruft einen Knoten am angegebenen Index ab.
+ Das mit dem angegebenen Index in der Auflistung.Wenn der Index größer oder gleich der Anzahl der Knoten in der Liste ist, wird null zurückgegeben.
+ Nullbasierter Index für die Liste der Knoten.
+
+
+ Gibt Ressourcen in der Knotenliste privat frei.
+
+
+ Gibt alle von der -Klasse verwendeten Ressourcen frei.
+
+
+ Stellt eine Verarbeitungsanweisung dar, die in XML definiert wird, um prozessorspezifische Informationen im Text des Dokuments beizubehalten.
+
+
+ Initialisiert eine neue Instanz der -Klasse.
+ Das Ziel der Verarbeitungsanweisung. Weitere Informationen finden Sie unter der -Eigenschaft.
+ Der Inhalt der Anweisung. Weitere Informationen finden Sie unter der -Eigenschaft.
+ Das übergeordnete XML-Dokument.
+
+
+ Erstellt ein Duplikat dieses Knotens.
+ Das Knotenduplikat.
+ true, wenn die Teilstruktur unter dem angegebenen Knoten rekursiv geklont werden soll, false, wenn nur der Knoten selbst geklont werden soll.
+
+
+ Ruft den Inhalt der Verarbeitungsanweisung ohne das Ziel ab oder legt diesen fest.
+ Der Inhalt der Verarbeitungsanweisung ohne das Ziel.
+
+
+ Ruft die verketteten Werte des Knotens und sämtlicher diesem untergeordneten Elemente ab oder legt diese fest.
+ Die verketteten Werte des Knotens und aller diesem untergeordneten Elemente.
+
+
+ Ruft den lokalen Namen des Knotens ab.
+ Bei Verarbeitungsanweisungsknoten gibt diese Eigenschaft das Ziel der Verarbeitungsanweisung zurück.
+
+
+ Ruft den qualifizierten Namen des Knotens ab.
+ Bei Verarbeitungsanweisungsknoten gibt diese Eigenschaft das Ziel der Verarbeitungsanweisung zurück.
+
+
+ Ruft den Typ des aktuellen Knotens ab.
+ Für XmlProcessingInstruction-Knoten ist dieser Wert XmlNodeType.ProcessingInstruction.
+
+
+ Ruft das Ziel der Verarbeitungsanweisung ab.
+ Das Ziel der Verarbeitungsanweisung.
+
+
+ Ruft den Wert des Knotens ab oder legt diesen fest.
+ Der gesamte Inhalt der Verarbeitungsanweisung ohne das Ziel.
+ Node is read-only.
+
+
+ Speichert alle untergeordneten Elemente des Knotens im angegebenen .Da ProcessingInstruction-Knoten über keine untergeordneten Elemente verfügen, hat diese Methode keine Auswirkungen.
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Speichert den Knoten im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Stellt ein Leerzeichen zwischen Markup in einem Knoten mit gemischtem Inhalt oder ein Leerzeichen innerhalb eines xml:space= "preserve"-Bereichs dar.Dies wird auch als signifikantes Leerzeichen bezeichnet.
+
+
+ Initialisiert eine neue Instanz der-Klasse.
+ Die Leerzeichen im Knoten.
+ Das -Objekt.
+
+
+ Erstellt ein Duplikat dieses Knotens.
+ Der geklonte Knoten.
+ true, wenn die Teilstruktur unter dem angegebenen Knoten rekursiv geklont werden soll, false, wenn nur der Knoten selbst geklont werden soll.Bei signifikanten Leerzeichenknoten enthält der geklonte Knoten, unabhängig von der Parametereinstellung, immer den Datenwert.
+
+
+ Ruft den lokalen Namen des Knotens ab.
+ Für XmlSignificantWhitespace-Knoten gibt diese Eigenschaft #significant-whitespace zurück.
+
+
+ Ruft den qualifizierten Namen des Knotens ab.
+ Für XmlSignificantWhitespace-Knoten gibt diese Eigenschaft #significant-whitespace zurück.
+
+
+ Ruft den Typ des aktuellen Knotens ab.
+ Für XmlSignificantWhitespace-Knoten ist dieser Wert XmlNodeType.SignificantWhitespace.
+
+
+ Ruft das übergeordnete Element des aktuellen Knotens ab.
+ Der übergeordnete -Knoten des aktuellen Knotens.
+
+
+ Ruft den Textknoten ab, der diesem Knoten unmittelbar vorausgeht.
+ Gibt zurück.
+
+
+ Ruft den Wert des Knotens ab oder legt diesen fest.
+ Die im Knoten gefundenen Leerzeichen.
+ Value wird auf ungültige Leerraumzeichen festgelegt.
+
+
+ Speichert alle untergeordneten Elemente des Knotens im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Speichert den Knoten im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Stellt den Textinhalt eines Elements oder Attributs dar.
+
+
+ Initialisiert eine neue Instanz der-Klasse.
+ Der Inhalt des Knotens. Weitere Informationen finden Sie unter der -Eigenschaft.
+ Das übergeordnete XML-Dokument.
+
+
+ Erstellt ein Duplikat dieses Knotens.
+ Der geklonte Knoten.
+ true, wenn die Teilstruktur unter dem angegebenen Knoten rekursiv geklont werden soll, false, wenn nur der Knoten selbst geklont werden soll.
+
+
+ Ruft den lokalen Namen des Knotens ab.
+ Für Textknoten gibt diese Eigenschaft #text zurück.
+
+
+ Ruft den qualifizierten Namen des Knotens ab.
+ Für Textknoten gibt diese Eigenschaft #text zurück.
+
+
+ Ruft den Typ des aktuellen Knotens ab.
+ Für Textknoten ist dieser Wert XmlNodeType.Text.
+
+
+
+ Ruft den Textknoten ab, der diesem Knoten unmittelbar vorausgeht.
+ Gibt zurück.
+
+
+ Teilt den Knoten am angegebenen Offset in zwei Knoten und behält beide Knoten in der Struktur als nebengeordnete Elemente bei.
+ Der neue Knoten.
+ Der Offset, an dem der Knoten geteilt werden soll.
+
+
+ Ruft den Wert des Knotens ab oder legt diesen fest.
+ Der Inhalt des Textknotens.
+
+
+ Speichert alle untergeordneten Elemente des Knotens im angegebenen .Da XmlText-Knoten keine untergeordneten Elemente besitzen, hat diese Methode keine Auswirkungen.
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Speichert den Knoten im angegebenen .
+ Der XmlWriter, in dem gespeichert werden soll.
+
+
+ Stellt Leerzeichen im Elementinhalt dar.
+
+
+ Initialisiert eine neue Instanz der-Klasse.
+ Die Leerzeichen im Knoten.
+ Das -Objekt.
+
+
+ Erstellt ein Duplikat dieses Knotens.
+ Der geklonte Knoten.
+ true, wenn die Teilstruktur unter dem angegebenen Knoten rekursiv geklont werden soll, false, wenn nur der Knoten selbst geklont werden soll.Bei Leerzeichenknoten enthält der geklonte Knoten, unabhängig von der Parametereinstellung, immer den Datenwert.
+
+
+ Ruft den lokalen Namen des Knotens ab.
+ Für XmlWhitespace-Knoten gibt diese Eigenschaft #whitespace zurück.
+
+
+ Ruft den qualifizierten Namen des Knotens ab.
+ Für XmlWhitespace-Knoten gibt diese Eigenschaft #whitespace zurück.
+
+
+ Ruft den Typ des Knotens ab.
+ Für XmlWhitespace-Knoten ist der Wert .
+
+
+ Ruft das übergeordnete Element des aktuellen Knotens ab.
+ Der übergeordnete -Knoten des aktuellen Knotens.
+
+
+ Ruft den Textknoten ab, der diesem Knoten unmittelbar vorausgeht.
+ Gibt zurück.
+
+
+ Ruft den Wert des Knotens ab oder legt diesen fest.
+ Die im Knoten gefundenen Leerzeichen.
+
+ wird auf ungültige Leerraumzeichen festgelegt.
+
+
+ Speichert alle untergeordneten Elemente des Knotens im angegebenen .
+ Der , in dem gespeichert werden soll.
+
+
+ Speichert den Knoten im angegebenen .
+ Der , in dem gespeichert werden soll.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/es/System.Xml.XmlDocument.xml b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/es/System.Xml.XmlDocument.xml
new file mode 100644
index 0000000..3fb441e
--- /dev/null
+++ b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/es/System.Xml.XmlDocument.xml
@@ -0,0 +1,1474 @@
+
+
+
+ System.Xml.XmlDocument
+
+
+
+ Representa un atributo.Los valores válidos y predeterminados del atributo se definen en una definición de tipo de documento (DTD) o en un esquema.
+
+
+ Inicializa una nueva instancia de la clase .
+ Prefijo del espacio de nombres.
+ Nombre local del atributo.
+ Identificador de recursos uniforme (URI) de este espacio de nombres.
+ Documento XML primario.
+
+
+ Agrega el nodo especificado al final de la lista de nodos secundarios de este nodo.
+
+ agregado.
+
+ que se va a sumar.
+ Este nodo es de un tipo que no permite nodos secundarios del tipo del nodo . es un nodo antecesor de este nodo.
+
+ se creó a partir de un documento diferente del que creó este nodo.Este nodo es de sólo lectura.
+
+
+ Obtiene el Identificador de recursos uniforme (URI) del nodo .
+ Ubicación desde la que se cargó el nodo o String.Empty si el nodo no tiene un identificador URI base.Los nodos de atributo tienen el mismo identificador URI base que el elemento al que pertenecen.Si un nodo de atributo no pertenece a ningún elemento, BaseURI devuelve String.Empty.
+
+
+ Crea un duplicado de este nodo.
+ Nodo duplicado.
+ Es true para clonar de forma recursiva el subárbol del nodo especificado y false para clonar sólo el nodo en sí.
+
+
+ Establece los valores concatenados del nodo y de todos sus nodos secundarios.
+ Valores concatenados del nodo y de todos sus nodos secundarios.Para nodos de atributo, esta propiedad tiene la misma funcionalidad que la propiedad .
+
+
+ Establece el valor del atributo.
+ Valor del atributo.
+ El código XML especificado al establecer esta propiedad no tiene un formato correcto.
+
+
+ Inserta el nodo especificado inmediatamente detrás del nodo de referencia igualmente especificado.
+
+ insertado.
+
+ que se va a insertar.
+
+ que es el nodo de referencia. se coloca detrás de .
+ Este nodo es de un tipo que no permite nodos secundarios del tipo del nodo . es un nodo antecesor de este nodo.
+
+ se creó a partir de un documento diferente del que creó este nodo. no es un nodo secundario de este nodo.Este nodo es de sólo lectura.
+
+
+ Inserta el nodo especificado inmediatamente antes del nodo de referencia igualmente especificado.
+
+ insertado.
+
+ que se va a insertar.
+
+ que es el nodo de referencia. se coloca delante de este nodo.
+ El nodo actual es de un tipo que no permite nodos secundarios del tipo del nodo . es un nodo antecesor de este nodo.
+
+ se creó a partir de un documento diferente del que creó este nodo. no es un nodo secundario de este nodo.Este nodo es de sólo lectura.
+
+
+ Obtiene el nombre local del nodo.
+ Nombre del nodo de atributo sin prefijo.En el ejemplo siguiente, <book bk:genre= 'novel'>, el LocalName del atributo es genre.
+
+
+ Obtiene el nombre completo del nodo.
+ Nombre completo del nodo de atributo.
+
+
+ Obtiene el identificador URI de espacio de nombres de este nodo.
+ Identificador URI de espacio de nombres de este nodo.Si no se da al atributo un espacio de nombres explícitamente, esta propiedad devuelve String.Empty.
+
+
+ Obtiene el tipo del nodo actual.
+ El tipo de nodo de los nodos XmlAttribute es XmlNodeType.Attribute.
+
+
+ Obtiene el al que pertenece este nodo.
+ Un documento XML al que este nodo pertenece.
+
+
+ Obtiene el al que pertenece el atributo.
+ XmlElement al que pertenece el atributo o null si este atributo no forma parte de un XmlElement.
+
+
+ Obtiene el nodo principal de este nodo.Para nodos XmlAttribute, esta propiedad devuelve siempre null.
+ Para nodos XmlAttribute, esta propiedad devuelve siempre null.
+
+
+ Obtiene o establece el prefijo de espacio de nombres de este nodo.
+ Prefijo de espacio de nombres de este nodo.Si no hay prefijo, esta propiedad devuelve String.Empty.
+ Este nodo es de sólo lectura.
+ El prefijo especificado contiene un carácter no válido.El prefijo especificado no está formado correctamente.El identificador URI de espacio de nombres de este nodo es null.El prefijo especificado es "xml" y el identificador URI de espacio de nombres de este nodo no es http://www.w3.org/XML/1998/namespace.Este nodo es un atributo, el prefijo especificado es "xmlns" y su identificador URI de espacio de nombres no es "http://www.w3.org/2000/xmlns/".Este nodo es un atributo y su nombre completo es "xmlns" [espacios de nombres].
+
+
+ Agrega el nodo especificado al principio de la lista de nodos secundarios de este nodo.
+
+ agregado.
+
+ que se va a sumar.Si es un objeto , todo el contenido del fragmento de documento se desplaza a la lista de nodos secundarios de este nodo.
+ Este nodo es de un tipo que no permite nodos secundarios del tipo del nodo . es un nodo antecesor de este nodo.
+
+ se creó a partir de un documento diferente del que creó este nodo.Este nodo es de sólo lectura.
+
+
+ Quita el nodo secundario especificado.
+
+ quitado.
+
+ que se va a quitar.
+
+ no es un nodo secundario de este nodo.O este nodo es de sólo lectura.
+
+
+ Reemplaza el nodo secundario especificado con el nuevo nodo secundario especificado.
+
+ reemplazado.
+ El nuevo secundario.
+
+ que se va a reemplazar.
+ Este nodo es de un tipo que no permite nodos secundarios del tipo del nodo . es un nodo antecesor de este nodo.
+
+ se creó a partir de un documento diferente del que creó este nodo.Este nodo es de sólo lectura. no es un nodo secundario de este nodo.
+
+
+ Obtiene un valor que indica si el valor de atributo se estableció explícitamente.
+ Es true si a este atributo se le dio explícitamente un valor en la instancia original del documento; en caso contrario, es false.El valor false indica que el valor del atributo procedía de la DTD.
+
+
+ Obtiene o establece el valor del nodo.
+ El valor devuelto depende de la propiedad del nodo.Para nodos XmlAttribute, esta propiedad es el valor de atributo.
+ El nodo es de sólo lectura y se llama a una operación de conjunto.
+
+
+ Guarda todos los nodos secundarios del nodo en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Guarda el nodo en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Representa una colección de atributos a los que se puede obtener acceso por nombre o por índice.
+
+
+ Inserta el atributo especificado como último nodo de la colección.
+ XmlAttribute que se va a agregar a la colección.
+
+ que se va a insertar.
+ Se creó a partir de un documento diferente que el que creó esta colección.
+
+
+ Copia todos los objetos de esta colección en la matriz dada.
+ Matriz que representa el destino de los objetos copiados de esta colección.
+ Índice de la matriz en que se inicia la copia.
+
+
+ Inserta el atributo especificado inmediatamente después del atributo de referencia igualmente especificado.
+ Clase XmlAttribute que se va a insertar en la colección.
+
+ que se va a insertar.
+
+ que es el atributo de referencia.El parámetro se coloca detrás de .
+ Se creó a partir de un documento diferente al que creó esta colección.O no es un miembro de esta colección.
+
+
+ Inserta el atributo especificado inmediatamente delante del atributo de referencia especificado.
+ Clase XmlAttribute que se va a insertar en la colección.
+
+ que se va a insertar.
+
+ que es el atributo de referencia.El parámetro se coloca delante de .
+ Se creó a partir de un documento diferente al que creó esta colección.O no es un miembro de esta colección.
+
+
+ Obtiene el atributo que tiene el índice especificado.
+
+ en el índice especificado.
+ Índice del atributo.
+ El índice a pasándose está fuera del intervalo.
+
+
+ Obtiene el atributo con el nombre especificado.
+
+ con el nombre especificado.Si el atributo no existe, esta propiedad devuelve null.
+ Nombre completo del atributo.
+
+
+ Obtiene el atributo que tiene el nombre local e Identificador uniforme de recursos (URI) de espacio de nombres especificados.
+
+ con el nombre local y la URI de espacio de nombres que se hayan especificado.Si el atributo no existe, esta propiedad devuelve null.
+ Nombre local del atributo.
+ URI de espacio de nombres del atributo.
+
+
+ Inserta el atributo especificado como primer nodo de la colección.
+ XmlAttribute agregado a la colección.
+
+ que se va a insertar.
+
+
+ Quita el atributo especificado de la colección.
+ Nodo que se ha quitado o null si no se encuentra en la colección.
+
+ que se va a quitar.
+
+
+ Quita todos los atributos de la colección.
+
+
+ Quita de la colección el atributo correspondiente al índice especificado.
+ Devuelve null si no hay ningún atributo en el índice especificado.
+ Índice del nodo que se va a quitar.El primer nodo tiene índice 0.
+
+
+ Agrega un mediante su propiedad
+ Si reemplaza a un nodo existente con el mismo nombre, se devolverá el nodo antiguo; en caso contrario, se devolverá el nodo agregado.
+ Nodo de atributo que se almacenará en la colección.Posteriormente se podrá obtener acceso al nodo utilizando el nombre del nodo en cuestión.Si ya hay un nodo con ese nombre en la colección, se reemplazará por el nuevo; en caso contrario, el nodo se agregará al final de la colección.
+ Se creó a partir de un distinto al que creó esta colección.Esta XmlAttributeCollection es de sólo lectura.
+
+ es un que, a su vez, es un atributo de otro objeto .Para volver a utilizar atributos en otros elementos, hay que duplicar los objetos XmlAttribute que se deseen volver a utilizar.
+
+
+ Para obtener una descripción de este miembro, vea .
+ Matriz que representa el destino de los objetos copiados de esta colección.
+ Índice de la matriz en que se inicia la copia.
+
+
+ Para obtener una descripción de este miembro, vea .
+ Devuelve un valor int que contiene el número de atributos.
+
+
+ Para obtener una descripción de este miembro, vea .
+ Devuelve true si la colección está sincronizada.
+
+
+ Para obtener una descripción de este miembro, vea .
+ Devuelve el objeto que es la raíz de la colección.
+
+
+ Representa una sección CDATA.
+
+
+ Inicializa una nueva instancia de la clase .
+ Objeto que contiene los datos de caracteres.
+ Objeto .
+
+
+ Crea un duplicado de este nodo.
+ Nodo clonado.
+ trueforma recursiva para clonar el subárbol del nodo especificado; false para clonar sólo el nodo en Sí.Dado que los nodos CDATA no tienen elementos secundarios, con independencia del valor del parámetro, el nodo clonado incluirá siempre el contenido de los datos.
+
+
+ Obtiene el nombre local del nodo.
+ En el caso de nodos CDATA, el nombre local es #cdata-section.
+
+
+ Obtiene el nombre completo del nodo.
+ En el caso de nodos CDATA, el nombre es #cdata-section.
+
+
+ Obtiene el tipo del nodo actual.
+ Tipo de nodo.En el caso de nodos CDATA, el valor es XmlNodeType.CDATA.
+
+
+
+ Obtiene el nodo de texto que precede inmediatamente a este nodo.
+ Devuelve .
+
+
+ Guarda los nodos secundarios del nodo en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Guarda el nodo en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Proporciona métodos de manipulación de texto que son utilizados por varias clases.
+
+
+ Inicializa una nueva instancia de la clase .
+ Cadena que contiene datos de caracteres que se van a agregar a un documento.
+
+ que va a contener los datos de caracteres.
+
+
+ Anexa la cadena especificada al final de los datos de caracteres del nodo.
+ Cadena que se va a insertar en la cadena existente.
+
+
+ Contiene los datos del nodo.
+ Datos del nodo.
+
+
+ Quita un intervalo de caracteres del nodo.
+ Posición dentro de la cadena donde se va a iniciar la eliminación.
+ Número de caracteres que se va a eliminar.
+
+
+ Inserta la cadena especificada en el desplazamiento de caracteres especificado.
+ Posición dentro de la cadena donde se van a insertar los datos de cadena proporcionados.
+ Datos de cadena que se van a insertar en la cadena existente.
+
+
+ Obtiene la longitud de los datos en caracteres.
+ Longitud en caracteres de la cadena de la propiedad .La longitud puede ser cero; es decir, los nodos CharacterData pueden estar vacíos.
+
+
+ Reemplaza el número de caracteres especificado, empezando en el desplazamiento especificado, por la cadena especificada.
+ Posición dentro de la cadena donde se va a iniciar la sustitución.
+ Número de caracteres que se va a reemplazar.
+ Datos nuevos que reemplazan a los datos de cadena antiguos.
+
+
+ Recupera una subcadena de la cadena completa en el intervalo especificado.
+ Subcadena que corresponde al intervalo especificado.
+ Posición dentro de la cadena donde se va a iniciar la recuperación.Un desplazamiento de cero indica que el punto inicial es el principio de los datos.
+ Número de caracteres que se va a recuperar.
+
+
+ Obtiene o establece el valor del nodo.
+ Valor del nodo.
+ El nodo es de sólo lectura.
+
+
+ Representa el contenido de un comentario XML.
+
+
+ Inicializa una nueva instancia de la clase .
+ Contenido del elemento de comentario.
+ Documento XML primario.
+
+
+ Crea un duplicado de este nodo.
+ Nodo clonado.
+ Es true para clonar de forma recursiva el subárbol del nodo especificado y false sólo para clonar el nodo en sí.Dado que los nodos Comment no tienen elementos secundarios, el nodo clonado incluye siempre el contenido del texto, con independencia del valor del parámetro.
+
+
+ Obtiene el nombre local del nodo.
+ Para los nodos de comentarios, el valor es #comment.
+
+
+ Obtiene el nombre completo del nodo.
+ Para los nodos de comentarios, el valor es #comment.
+
+
+ Obtiene el tipo del nodo actual.
+ Para los nodos de comentarios, el valor es XmlNodeType.Comment.
+
+
+ Guarda todos los nodos secundarios del nodo en el especificado.Dado que los nodos de comentario no tienen elementos secundarios, este método no tiene ningún efecto.
+ XmlWriter en el que se desea guardar.
+
+
+ Guarda el nodo en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Representa el nodo de declaración XML <?xml version='1.0' ...?>.
+
+
+ Inicializa una nueva instancia de la clase .
+ Versión de XML; vea la propiedad .
+ Esquema de la codificación; vea la propiedad .
+ Indica si el documento XML depende de una DTD externa; vea la propiedad .
+ Documento XML primario.
+
+
+ Crea un duplicado de este nodo.
+ Nodo clonado.
+ Es true para clonar de forma recursiva el subárbol del nodo especificado y false sólo para clonar el nodo en sí.Dado que los nodos XmlDeclaration no tienen elementos secundarios, el nodo clonado incluye siempre el valor de los datos, con independencia del valor del parámetro.
+
+
+ Obtiene o establece el nivel de codificación del documento XML.
+ El nombre de codificación de caracteres válidos.Los nombres de codificación de caracteres que presentan mayor compatibilidad en documentos XML son los siguientes:Categoría Nombres de codificación Unicode UTF-8, UTF-16 ISO 10646 ISO-10646-UCS-2, ISO-10646-UCS-4 ISO 8859 ISO-8859-n (donde "n" es un dígito de 1 a 9) JIS X-0208-1997 ISO-2022-JP, Shift_JIS, EUC-JP Este valor es opcional.Si no se establece un valor, esta propiedad devuelve String.Empty.Si no se incluye un atributo de codificación, se supone la codificación UTF-8 cuando el documento se escribe o se guarda.
+
+
+ Obtiene o establece los valores concatenados de XmlDeclaration.
+ Valores concatenados de XmlDeclaration (es decir, todos los que se encuentran entre <?xml y ?>).
+
+
+ Obtiene el nombre local del nodo.
+ Para nodos XmlDeclaration, el nombre local es xml.
+
+
+ Obtiene el nombre completo del nodo.
+ En el caso de nodos XmlDeclaration, el nombre es xml.
+
+
+ Obtiene el tipo del nodo actual.
+ En el caso de nodos XmlDeclaration, este valor es XmlNodeType.XmlDeclaration.
+
+
+ Obtiene o establece el valor del atributo independiente.
+ Los valores válidos son yes si todas las declaraciones de entidad necesarias para el documento XML se encuentran en el documento o no si se necesita una definición de tipo de documento (DTD) externa.Si no existe un atributo independiente en la declaración XML, estas propiedad devuelve String.Empty.
+
+
+ Obtiene o establece el valor de XmlDeclaration.
+ Contenido de XmlDeclaration (es decir, lo que aparece entre <?xml y ?>).
+
+
+ Obtiene la versión XML del documento.
+ El valor es siempre 1.0.
+
+
+ Guarda los nodos secundarios del nodo en el especificado.Debido a que los nodos XmlDeclaration no tienen elementos secundarios, este método no tiene ningún efecto.
+ XmlWriter en el que se desea guardar.
+
+
+ Guarda el nodo en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Representa un documento XML.Para obtener más información, vea la sección Remarks.
+
+
+ Inicializa una nueva instancia de la clase .
+
+
+ Inicializa una nueva instancia de la clase XmlDocument con el objeto especificado.
+ Objeto XmlImplementation que se va a usar.
+
+
+ Inicializa una nueva instancia de la clase XmlDocument con el objeto especificado.
+ Objeto XmlNameTable que se va a usar.
+
+
+ Obtiene el identificador URI base del nodo actual.
+ Ubicación desde la que se cargó el nodo.
+
+
+ Crea un duplicado de este nodo.
+ Nodo XmlDocument clonado.
+ true para clonar de forma recursiva el subárbol del nodo especificado; false solo para clonar el nodo en sí.
+
+
+ Crea un objeto con el especificado.
+ Nuevo objeto XmlAttribute.
+ Nombre completo del atributo.Si el nombre contiene un carácter de dos puntos, la propiedad refleja la parte del nombre que va delante del carácter de dos puntos y la propiedad refleja la parte que va detrás.El queda vacío, a menos que el prefijo sea un prefijo integrado conocido, como xmlns.En este caso, NamespaceURI tiene el valor http://www.w3.org/2000/xmlns/.
+
+
+ Crea un con el nombre completo especificados y el .
+ Nuevo objeto XmlAttribute.
+ Nombre completo del atributo.Si el nombre contiene un carácter de dos puntos, la propiedad reflejará la parte del nombre que va delante del carácter de dos puntos y la propiedad reflejará la parte que va detrás.
+ URI del espacio de nombres del atributo.Si el nombre completo incluye un prefijo de xmlns, este parámetro debe ser http://www.w3.org/2000/xmlns/.
+
+
+ Crea un con los , y especificados.
+ Nuevo objeto XmlAttribute.
+ Prefijo del atributo, si lo tiene.String.Empty y null son equivalentes.
+ Nombre local del atributo.
+ URI del espacio de nombres del atributo, si lo tiene.String.Empty y null son equivalentes.Si es xmlns, este parámetro debe ser http://www.w3.org/2000/xmlns/; en caso contrario, se produce una excepción.
+
+
+ Crea un que contiene los datos especificados.
+ Nuevo objeto XmlCDataSection.
+ Contenido del nuevo XmlCDataSection.
+
+
+ Crea un que contiene los datos especificados.
+ Nuevo objeto XmlComment.
+ Contenido del nuevo objeto XmlComment.
+
+
+ Crea una interfaz .
+ Nuevo objeto XmlDocumentFragment.
+
+
+ Crea un elemento con el nombre especificado.
+ Nuevo objeto XmlElement.
+ Nombre completo del elemento.Si el nombre contiene un carácter de dos puntos, la propiedad refleja la parte del nombre que va delante del carácter de dos puntos y la propiedad refleja la parte que va detrás.El nombre completo no puede incluir un prefijo de 'xmlns'.
+
+
+ Crea un con el nombre completo y el .
+ Nuevo objeto XmlElement.
+ Nombre completo del elemento.Si el nombre contiene un carácter de dos puntos, la propiedad reflejará la parte del nombre que va delante del carácter de dos puntos y la propiedad reflejará la parte que va detrás.El nombre completo no puede incluir un prefijo de 'xmlns'.
+ Identificador URI de espacio de nombres del elemento.
+
+
+ Crea un elemento con los , y especificados.
+ Nuevo objeto .
+ Prefijo del nuevo elemento, si lo tiene.String.Empty y null son equivalentes.
+ Nombre local del nuevo elemento.
+ Identificador URI de espacio de nombres del nuevo elemento, si lo tiene.String.Empty y null son equivalentes.
+
+
+ Crea un con el tipo de nodo especificado, y .
+ Nuevo objeto XmlNode.
+ Versión de cadena del del nuevo nodo.Este parámetro debe ser uno de los valores de la tabla que figura más abajo.
+ Nombre completo del nuevo nodo.Si el nombre contiene un carácter de dos puntos, se analiza en los componentes y .
+ Identificador URI de espacio de nombres del nuevo nodo.
+ The name was not provided and the XmlNodeType requires a name; or is not one of the strings listed below.
+
+
+ Crea un con los , y especificados.
+ Nuevo objeto XmlNode.
+ XmlNodeType del nuevo nodo.
+ Nombre completo del nuevo nodo.Si el nombre contiene un carácter de dos puntos, se analiza en los componentes y .
+ Identificador URI de espacio de nombres del nuevo nodo.
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ Crea un con los , , y especificados.
+ Nuevo objeto XmlNode.
+ XmlNodeType del nuevo nodo.
+ Prefijo del nuevo nodo.
+ Nombre local del nuevo nodo.
+ Identificador URI de espacio de nombres del nuevo nodo.
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ Crea un con el nombre y los datos especificados.
+ Nuevo objeto XmlProcessingInstruction.
+ Nombre de la instrucción de procesamiento.
+ Datos para la instrucción de procesamiento.
+
+
+ Crea un nodo .
+ Nuevo nodo XmlSignificantWhitespace.
+ La cadena debe contener solo los caracteres siguientes:  y 	
+
+
+ Crea un objeto con el texto especificado.
+ Nuevo nodo XmlText.
+ Texto del nodo Text.
+
+
+ Crea un nodo .
+ Nuevo nodo XmlWhitespace.
+ La cadena debe contener solo los caracteres siguientes:  y 	
+
+
+ Crea un nodo con los valores especificados.
+ Nuevo nodo XmlDeclaration.
+ La versión debe ser "1.0".
+ Valor del atributo de codificación.Es la codificación que se usa cuando se guarda en un archivo o en un flujo; por tanto, se debe establecer en una cadena admitida por la clase ya que, en caso contrario, produce un error.Si es null o String.Empty, el método Save no escribe un atributo de codificación en la declaración XML y, por tanto, se usa la codificación predeterminada, UTF-8.Nota: Si XmlDocument se guarda en o en , se descartará este valor de codificación.En su lugar, se usa la codificación de TextWriter o de XmlTextWriter.De este modo se garantiza que el fragmento XML que se escribe se puede volver a leer usando la codificación correcta.
+ Este valor debe ser "yes" o "no".Si es null o String.Empty, el método Save no escribe un atributo independiente en la declaración XML.
+ The values of or are something other than the ones specified above.
+
+
+ Obtiene el raíz del documento.
+ XmlElement que representa la raíz del árbol del documento XML.Si no hay raíz, se devuelve null.
+
+
+ Devuelve un objeto que contiene una lista de todos los elementos descendientes que coinciden con el especificado.
+ Objeto que contiene una lista de todos los nodos coincidentes.Si ningún nodo coincide con , se devolverá la colección vacía.
+ Nombre completo que se va a hacer coincidir.Se compara con la propiedad Name del nodo coincidente.El valor especial "*" coincide con todas las etiquetas.
+
+
+ Devuelve un objeto que contiene una lista de todos los elementos descendientes que coinciden con el y especificados.
+ Objeto que contiene una lista de todos los nodos coincidentes.Si ningún nodo coincide con el y especificados, se devolverá la colección vacía.
+ Nombre local que se va a hacer coincidir.El valor especial "*" coincide con todas las etiquetas.
+ Identificador URI de espacio de nombres con el que debe haber una coincidencia.
+
+
+ Obtiene el objeto del documento actual.
+ Objeto XmlImplementation del documento actual.
+
+
+ Importa un nodo de otro documento al documento actual.
+
+ que se importó.
+ Nodo que se va a importar.
+ true para producir un clon profundo; en caso contrario, false.
+ Calling this method on a node type which cannot be imported.
+
+
+ Produce una en todos los casos.
+ Valores del nodo y de todos sus nodos secundarios.
+ In all cases.
+
+
+ Obtiene o establece el marcado que representa los nodos secundarios del nodo actual.
+ Marcado de los nodos secundarios del nodo actual.
+ The XML specified when setting this property is not well-formed.
+
+
+ Obtiene un valor que indica si el nodo actual es de solo lectura.
+ true si el nodo actual es de solo lectura; en caso contrario, false.Los nodos XmlDocument siempre devuelven false.
+
+
+ Carga el documento XML desde el flujo especificado.
+ Secuencia que contiene el documento XML que se va a cargar.
+ There is a load or parse error in the XML.In this case, a is raised.
+
+
+ Carga el documento XML desde el especificado.
+ TextReader que se usa para introducir los datos XML en el documento.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ Carga el documento XML desde el especificado.
+ XmlReader que se usa para introducir los datos XML en el documento.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ Carga el documento XML desde la cadena especificada.
+ Cadena que contiene el documento XML que se va a cargar.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ Obtiene el nombre local del nodo.
+ Para nodos XmlDocument, el nombre local es #document.
+
+
+ Obtiene el nombre completo del nodo.
+ Para nodos XmlDocument, el nombre es #document.
+
+
+ Obtiene el asociado a esta implementación.
+ XmlNameTable que permite obtener la versión subdivida de una cadena en el documento.
+
+
+ Se produce cuando el de un nodo que pertenece a este documento se modifica.
+
+
+ Se produce cuando el de un nodo que pertenece a este documento se va a modificar.
+
+
+ Se produce cuando un nodo que pertenece a este documento se ha insertado en otro nodo.
+
+
+ Se produce cuando un nodo que pertenece a este documento se va a insertar en otro nodo.
+
+
+ Se produce cuando un nodo que pertenece a este documento se ha quitado de su nodo primario.
+
+
+ Se produce cuando un nodo que pertenece a este documento se va a quitar del documento.
+
+
+ Obtiene el tipo del nodo actual.
+ Tipo de nodo.Para los nodos XmlDocument, este valor es XmlNodeType.Document.
+
+
+ Obtiene el al que pertenece el nodo actual.
+ Para nodos XmlDocument ( equivale a XmlNodeType.Document), esta propiedad devuelve siempre null.
+
+
+ Obtiene el nodo primario de este nodo, en los nodos que pueden tener nodos primarios.
+ Siempre devuelve null.
+
+
+ Obtiene o establece un valor que indica si se va a conservar el espacio en blanco del contenido del elemento.
+ true para conservar el espacio en blanco; en caso contrario, false.De manera predeterminada, es false.
+
+
+ Crea un objeto tomando como base la información de .El lector debe estar situado en un nodo o en un atributo.
+ Nuevo XmlNode o null si no hay más nodos.
+ XML de origen.
+ The reader is positioned on a node type that does not translate to a valid DOM node (for example, EndElement or EndEntity).
+
+
+ Guarda el documento XML en el flujo especificado.
+ Secuencia en la que se desea guardar.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Guarda el documento XML en el especificado.
+ TextWriter en el que se desea guardar.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Guarda el documento XML en el especificado.
+ XmlWriter en el que se desea guardar.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Guarda todos los nodos secundarios del nodo XmlDocument en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Guarda el nodo XmlDocument en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Representa un objeto pequeño tamaño, que resulta útil para realizar operaciones de inserción de árboles.
+
+
+ Inicializa una nueva instancia de la clase .
+ El documento XML que es el origen del fragmento.
+
+
+ Crea un duplicado de este nodo.
+ Nodo clonado.
+ Es true para clonar de forma recursiva el subárbol del nodo especificado y false sólo para clonar el nodo en sí.
+
+
+ Obtiene o establece el marcado que representa los nodos secundarios de este nodo.
+ Marcado de los nodos secundarios de este nodo.
+ El código XML especificado al establecer esta propiedad no tiene un formato correcto.
+
+
+ Obtiene el nombre local del nodo.
+ Para nodos XmlDocumentFragment, el nombre local es #document-fragment.
+
+
+ Obtiene el nombre completo del nodo.
+ Para XmlDocumentFragment, el nombre es #document-fragment.
+
+
+ Obtiene el tipo del nodo actual.
+ Para nodos XmlDocumentFragment, este valor es XmlNodeType.DocumentFragment.
+
+
+ Obtiene el al que pertenece este nodo.
+ XmlDocument al que pertenece este nodo.
+
+
+ Obtiene el nodo primario de este nodo (para nodos que pueden tener nodos primarios).
+ Elemento principal de este nodo.Para nodos XmlDocumentFragment, esta propiedad siempre es null.
+
+
+ Guarda todos los nodos secundarios del nodo en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Guarda el nodo en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Representa un elemento.
+
+
+ Inicializa una nueva instancia de la clase .
+ Prefijo del espacio de nombres; vea la propiedad .
+ Nombre local; vea la propiedad .
+ URI del espacio de nombres; vea la propiedad .
+ Documento XML primario.
+
+
+ Obtiene un objeto que contiene la lista de atributos de este nodo.
+
+ que contiene la lista de atributos de este nodo.
+
+
+ Crea un duplicado de este nodo.
+ Nodo clonado.
+ Es true para clonar de forma recursiva el subárbol del nodo especificado; es false para clonar sólo el nodo en sí (y sus atributos si el nodo es un XmlElement).
+
+
+ Devuelve el valor del atributo con el nombre especificado.
+ Valor del atributo especificado.Se devuelve una cadena vacía si no se encuentra un atributo coincidente o si el atributo no tiene un valor especificado o un valor predeterminado.
+ Nombre del atributo que se va a recuperar.Es un nombre completo.Se compara con la propiedad Name del nodo coincidente.
+
+
+ Devuelve el valor del atributo con el nombre local y el identificador URI de espacio de nombres que se hayan especificado.
+ Valor del atributo especificado.Se devuelve una cadena vacía si no se encuentra un atributo coincidente o si el atributo no tiene un valor especificado o un valor predeterminado.
+ Nombre local del atributo que se va a recuperar.
+ Identificador URI de espacio de nombres del atributo que se va a recuperar.
+
+
+ Devuelve el XmlAttribute con el nombre especificado.
+ XmlAttribute especificado o null si no se ha encontrado un atributo coincidente.
+ Nombre del atributo que se va a recuperar.Es un nombre completo.Se compara con la propiedad Name del nodo coincidente.
+
+
+ Devuelve el con el nombre local y el identificador URI de espacio de nombres que se hayan especificado.
+ XmlAttribute especificado o null si no se ha encontrado un atributo coincidente.
+ Nombre local del atributo.
+ URI de espacio de nombres del atributo.
+
+
+ Devuelve un objeto que contiene una lista de todos los elementos descendientes que coinciden con el especificado.
+ Objeto que contiene una lista de todos los nodos coincidentes.La lista está vacía si no hay nodos coincidentes.
+ Etiqueta de nombre que se va a hacer coincidir.Es un nombre completo.Se compara con la propiedad Name del nodo coincidente.El asterisco (*) es un valor especial que coincide con todas las etiquetas.
+
+
+ Devuelve un objeto que contiene una lista de todos los elementos descendientes que coinciden con el y el especificados.
+ Objeto que contiene una lista de todos los nodos coincidentes.La lista está vacía si no hay nodos coincidentes.
+ Nombre local que se va a hacer coincidir.El asterisco (*) es un valor especial que coincide con todas las etiquetas.
+ Identificador URI de espacio de nombres que se va a hacer coincidir.
+
+
+ Determina si el nodo actual tiene un atributo con el nombre especificado.
+ Es true si el nodo actual tiene el atributo especificado; en caso contrario, es false.
+ Nombre del atributo que se va a buscar.Es un nombre completo.Se compara con la propiedad Name del nodo coincidente.
+
+
+ Determina si el nodo actual tiene un atributo con el nombre local y el identificador URI de espacio de nombres especificados.
+ Es true si el nodo actual tiene el atributo especificado; en caso contrario, es false.
+ Nombre local del atributo que se va a buscar.
+ Identificador URI de espacio de nombres del atributo que se va a buscar.
+
+
+ Obtiene un valor boolean que indica si el nodo actual tiene atributos.
+ Es true si el nodo actual tiene atributos; en caso contrario, es false.
+
+
+ Obtiene o establece los valores concatenados del nodo y de todos sus nodos secundarios.
+ Valores concatenados del nodo y de todos sus nodos secundarios.
+
+
+ Obtiene o establece el marcado que representa sólo los nodos secundarios de este nodo.
+ Marcado de los nodos secundarios de este nodo.
+ El código XML especificado al establecer esta propiedad no tiene un formato correcto.
+
+
+ Obtiene o establece el formato de etiqueta del elemento.
+ Devuelve true si el elemento se va a serializar en el formato corto de etiqueta, "<item/>"; false para el formato largo, "<item></item>".Cuando se configura esta propiedad, si se establece en true, se quitan los elementos secundarios del elemento y el elemento se serializa en el formato corto de etiqueta.Si se establece en false, se cambia el valor de la propiedad (independientemente de que el elemento tenga o no contenido); si el elemento está vacío, se serializa en el formato largo.Esta propiedad es una extensión de Microsoft a Document Object Model (DOM).
+
+
+ Obtiene el nombre local del nodo actual.
+ Nombre del nodo actual sin prefijo.Por ejemplo, LocalName es "book" para el elemento <bk:book>.
+
+
+ Obtiene el nombre completo del nodo.
+ Nombre completo del nodo.Para nodos XmlElement, éste es el nombre de etiqueta del elemento.
+
+
+ Obtiene el identificador URI de espacio de nombres de este nodo.
+ Identificador URI de espacio de nombres de este nodo.Si no hay identificador URI de espacio de nombres, esta propiedad devuelve String.Empty.
+
+
+ Obtiene el inmediatamente siguiente a este elemento.
+ XmlNode inmediatamente siguiente a este elemento.
+
+
+ Obtiene el tipo del nodo actual.
+ Tipo de nodo.Para nodos XmlElement, este valor es XmlNodeType.Element.
+
+
+ Obtiene el al que pertenece este nodo.
+ XmlDocument al que pertenece este elemento.
+
+
+
+ Obtiene o establece el prefijo de espacio de nombres de este nodo.
+ Prefijo de espacio de nombres de este nodo.Si no hay prefijo, esta propiedad devuelve String.Empty.
+ Este nodo es de sólo lectura.
+ El prefijo especificado contiene un carácter no válido.El prefijo especificado no está formado correctamente.El identificador URI de espacio de nombres de este nodo es null.El prefijo especificado es "xml" y el identificador URI de espacio de nombres de este nodo no es http://www.w3.org/XML/1998/namespace.
+
+
+ Quita todos los atributos y nodos secundarios especificados del nodo actual.Los atributos predeterminados no se quitan.
+
+
+ Quita todos los atributos especificados del elemento.Los atributos predeterminados no se quitan.
+
+
+ Quita un atributo por el nombre.
+ Nombre del atributo que se va a quitar. Es un nombre completo.Se compara con la propiedad Name del nodo coincidente.
+ El nodo es de sólo lectura.
+
+
+ Quita un atributo con el nombre local y el identificador URI de espacio de nombres que se hayan especificado. (Si el atributo eliminado tiene un valor predeterminado, se reemplaza inmediatamente).
+ Nombre local del atributo que se va a quitar.
+ Identificador URI de espacio de nombres del atributo que se va a quitar.
+ El nodo es de sólo lectura.
+
+
+ Quita del elemento el nodo de atributo con el índice especificado. (Si el atributo eliminado tiene un valor predeterminado, se reemplaza inmediatamente).
+ Nodo de atributo que se quita o null si no hay un nodo en el índice especificado.
+ Índice del nodo que se va a quitar.El primer nodo tiene índice 0.
+
+
+ Quita el especificado mediante el nombre local y el identificador URI de espacio de nombres. (Si el atributo eliminado tiene un valor predeterminado, se reemplaza inmediatamente).
+ XmlAttribute que se ha quitado o null si XmlElement no tiene un nodo de atributo coincidente.
+ Nombre local del atributo.
+ URI de espacio de nombres del atributo.
+ Este nodo es de sólo lectura.
+
+
+ Quita el objeto especificado.
+ XmlAttribute que se ha quitado o null si no es un nodo de atributo de XmlElement.
+ Nodo XmlAttribute que se va a quitar.Si el atributo que se quita tiene un valor predeterminado, se reemplaza inmediatamente.
+ Este nodo es de sólo lectura.
+
+
+ Establece el valor del atributo con el nombre especificado.
+ Nombre del atributo que se va a crear o modificar.Es un nombre completo.Si el nombre contiene un carácter de dos puntos, se analiza en los componentes de prefijo y nombre local.
+ Valor en que se va a establecer el atributo.
+ El nombre especificado contiene un carácter no válido.
+ El nodo es de sólo lectura.
+
+
+ Establece el valor del atributo con el nombre local y el identificador URI de espacio de nombres que se hayan especificado.
+ Valor del atributo.
+ Nombre local del atributo.
+ URI de espacio de nombres del atributo.
+ Valor en que se va a establecer el atributo.
+
+
+ Agrega el especificado.
+ XmlAttribute que se va a sumar.
+ Nombre local del atributo.
+ URI de espacio de nombres del atributo.
+
+
+ Agrega el especificado.
+ Si el atributo reemplaza a un atributo existente del mismo nombre, se devolverá el XmlAttribute antiguo; en caso contrario, se devolverá null.
+ Nodo XmlAttribute que se va a agregar a la colección de atributos de este elemento.
+
+ se creó a partir de un documento diferente del que creó este nodo.O este nodo es de sólo lectura.
+
+ ya es un atributo de otro objeto XmlElement.Los nodos XmlAttribute se deben clonar explícitamente para volver a utilizarlos en otros objetos XmlElement.
+
+
+ Guarda todos los nodos secundarios del nodo en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Guarda el nodo actual en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Define el contexto para un conjunto de objetos .
+
+
+ Inicializa una nueva instancia de la clase .
+
+
+ Inicializa una nueva instancia de la clase con el especificado.
+ Un objeto .
+
+
+ Crea un nuevo .
+ Nuevo objeto XmlDocument.
+
+
+ Comprueba si la implementación de DOM (Document Object Model) incluye una característica específica.
+ Es true si la característica se implementa en la versión especificada; en caso contrario, es false.La siguiente tabla muestra las combinaciones que hacen que HasFeature devuelva true.strFeature strVersion XML 1.0 XML 2.0
+ Nombre del paquete de la característica que se va a comprobar.Este nombre no distingue entre mayúsculas y minúsculas.
+ Se trata del número de versión del nombre del paquete que se va a comprobar.Si no se ha especificado la versión (null), la compatibilidad con cualquier versión de la característica hace que el método devuelva true.
+
+
+ Obtiene el nodo inmediatamente anterior o siguiente a éste.
+
+
+ Obtiene el nodo inmediatamente siguiente a éste.
+
+ inmediatamente siguiente a este nodo o null en caso de que uno no exista.
+
+
+ Obtiene el nodo inmediatamente anterior a éste.
+
+ anterior o null en caso de que uno no exista.
+
+
+ Representa una colección de nodos a los que se puede tener acceso por nombre o por índice.
+
+
+ Obtiene el número de nodos de XmlNamedNodeMap.
+ Número de nodos.
+
+
+ Proporciona funcionalidad para la iteración de estilo "foreach" en la colección de nodos de XmlNamedNodeMap.
+ Un objeto enumerador.
+
+
+ Recupera un objeto especificado por el nombre.
+ XmlNode con el nombre especificado o null si no se encuentra ningún nodo coincidente.
+ Nombre completo del nodo que se va a recuperar.Se compara con la propiedad del nodo coincidente.
+
+
+ Recupera un nodo con y coincidentes.
+
+ con el nombre local y el identificador URI de espacio de nombres coincidentes o null si no se ha encontrado un nodo coincidente.
+ Nombre local del nodo que se va a recuperar.
+ El Identificador uniforme de recursos (Identificador URI) del espacio de nombres del nodo a recuperar.
+
+
+ Recupera el nodo que se encuentra en el índice especificado en XmlNamedNodeMap.
+
+ en el índice especificado.Si es menor que 0 o mayor o igual que la propiedad , se devuelve null.
+ Posición de índice del nodo que se va a recuperar de XmlNamedNodeMap.El índice es de base cero, por lo que el índice del primer nodo es 0 y el del último nodo es - 1.
+
+
+ Quita el nodo de XmlNamedNodeMap.
+ XmlNode quitado de este XmlNamedNodeMap o null si no se ha encontrado un nodo coincidente.
+ Nombre completo del nodo que se va a quitar.El nombre se compara con la propiedad del nodo coincidente.
+
+
+ Quita un nodo con y coincidentes.
+
+ quitado o null si no se ha encontrado un nodo coincidente.
+ Nombre local del nodo que se va a quitar.
+ Identificador URI de espacio de nombres del nodo que se va a quitar.
+
+
+ Agrega un mediante su propiedad .
+ Si reemplaza a un nodo existente con el mismo nombre, se devolverá el nodo antiguo; en caso contrario, se devolverá null.
+ XmlNode que se almacenará en XmlNamedNodeMap.Si ya hay un nodo con ese nombre en el mapa, se reemplazará por el nuevo.
+
+ se creó a partir de un distinto al que creó XmlNamedNodeMap, o XmlNamedNodeMap es de sólo lectura.
+
+
+ Representa un único nodo del documento XML.
+
+
+ Agrega el nodo especificado al final de la lista de nodos secundarios de este nodo.
+ Nodo agregado.
+ Nodo que se va a agregar.Todo el contenido del nodo que se va a agregar se pasa a la ubicación especificada.
+ Este nodo es de un tipo que no permite nodos secundarios del tipo del nodo . es un nodo antecesor de este nodo.
+
+ se creó a partir de un documento diferente del que creó este nodo.Este nodo es de sólo lectura.
+
+
+ Obtiene un objeto que contiene los atributos de este nodo.
+ XmlAttributeCollection que contiene los atributos de este nodo.Si el nodo es del tipo XmlNodeType.Element, se devuelven sus atributos.En caso contrario, esta propiedad devuelve null.
+
+
+ Obtiene el identificador URI base del nodo actual.
+ Ubicación desde la que se cargó el nodo o String.Empty si el nodo no tiene un identificador URI base.
+
+
+ Obtiene todos los nodos secundarios del nodo.
+ Objeto que contiene todos los nodos secundarios del nodo.Si no hay ningún nodo secundario, esta propiedad devuelve un objeto vacío.
+
+
+ Crea un duplicado del nodo, cuando se invalida en una clase derivada.
+ Nodo clonado.
+ trueforma recursiva para clonar el subárbol del nodo especificado; false para clonar sólo el nodo en Sí.
+ Llamar a este método en un tipo de nodo que no se puede clonar.
+
+
+ Obtiene el primer nodo secundario del nodo.
+ Primer nodo secundario del nodo.Si no hay nodo secundario, se devuelve null.
+
+
+ Obtiene un enumerador que recorre en iteración los nodos secundarios del nodo actual.
+ Objeto que puede utilizarse para recorrer en iteración los nodos secundarios en el nodo actual.
+
+
+ Busca la declaración xmlns más cercana para el prefijo especificado que está en el ámbito del nodo actual y devuelve el identificador URI de espacio de nombres de la declaración.
+ Identificador URI de espacio de nombres del prefijo especificado.
+ Prefijo cuyo URI de espacio de nombres se desea buscar.
+
+
+ Busca la declaración xmlns más cercana para el identificador URI de espacio de nombres especificado que está en el ámbito del nodo actual y devuelve el prefijo definido en la declaración.
+ Prefijo del identificador URI de espacio de nombres especificado.
+ Identificador URI de espacio de nombres cuyo prefijo se desea buscar.
+
+
+ Obtiene un valor que indica si este nodo tiene nodos secundarios.
+ Es true si el nodo tiene nodos secundarios; en caso contrario, es false.
+
+
+ Obtiene o establece los valores concatenados del nodo y de todos sus nodos secundarios.
+ Valores concatenados del nodo y de todos sus nodos secundarios.
+
+
+ Obtiene o establece el marcado que representa solo los nodos secundarios de este nodo.
+ Marcado de los nodos secundarios de este nodo.NotaInnerXml no devuelve los atributos predeterminados.
+ Establecer esta propiedad en un nodo que no puede tener secundarios.
+ El código XML especificado al establecer esta propiedad no tiene un formato correcto.
+
+
+ Inserta el nodo especificado inmediatamente detrás del nodo de referencia igualmente especificado.
+ Nodo que se va a insertar.
+ XmlNode que se va a insertar.
+ XmlNode que es el nodo de referencia. se coloca detrás de .
+ Este nodo es de un tipo que no permite nodos secundarios del tipo del nodo . es un nodo antecesor de este nodo.
+
+ se creó a partir de un documento diferente del que creó este nodo. no es un nodo secundario de este nodo.Este nodo es de sólo lectura.
+
+
+ Inserta el nodo especificado inmediatamente antes del nodo de referencia igualmente especificado.
+ Nodo que se va a insertar.
+ XmlNode que se va a insertar.
+ XmlNode que es el nodo de referencia. se coloca delante de este nodo.
+ El nodo actual es de un tipo que no permite nodos secundarios del tipo del nodo . es un nodo antecesor de este nodo.
+
+ se creó a partir de un documento diferente del que creó este nodo. no es un nodo secundario de este nodo.Este nodo es de sólo lectura.
+
+
+ Obtiene un valor que indica si el nodo es de solo lectura.
+ Es true si el nodo es de sólo lectura; en caso contrario, es false.
+
+
+ Obtiene el primer elemento secundario con el especificado.
+ Primer que coincide con el nombre especificado.Devuelve una referencia nula (Nothing en Visual Basic) si no hay ninguna coincidencia.
+ Nombre completo del elemento que se va a recuperar.
+
+
+ Obtiene el primer elemento secundario con el y el especificados.
+ Primer con los parámetros y coincidentes..Devuelve una referencia nula (Nothing en Visual Basic) si no hay ninguna coincidencia.
+ Nombre local del elemento.
+ Identificador URI de espacio de nombres del elemento.
+
+
+ Obtiene el último nodo secundario del nodo.
+ Último nodo secundario del nodo.Si no hay nodo secundario, se devuelve null.
+
+
+ Obtiene el nombre local del nodo, cuando se invalida en una clase derivada.
+ Nombre del nodo sin prefijo.Por ejemplo, LocalName es "book" para el elemento <bk:book>.El nombre devuelto depende de la propiedad del nodo. Tipo Name Atributo Nombre local del atributo. CDATA #cdata-section Comentario #comment Document #document DocumentFragment #document-fragment DocumentType Nombre del tipo de documento. Elemento Nombre local del elemento. Entity Nombre de la entidad. EntityReference Nombre de la entidad a la que se hace referencia. Notation Nombre de la notación. ProcessingInstruction Destino de la instrucción de procesamiento. Texto #text Whitespace #whitespace SignificantWhitespace #significant-whitespace XmlDeclaration #xml-declaration
+
+
+ Cuando se invalida en una clase derivada, obtiene el nombre completo del nodo.
+ Nombre completo del nodo.El nombre devuelto depende de la propiedad del nodo.Tipo Name Atributo Nombre completo del atributo. CDATA #cdata-section Comentario #comment Document #document DocumentFragment #document-fragment DocumentType Nombre del tipo de documento. Elemento Nombre completo del elemento. Entity Nombre de la entidad. EntityReference Nombre de la entidad a la que se hace referencia. Notation Nombre de la notación. ProcessingInstruction Destino de la instrucción de procesamiento. Texto #text Whitespace #whitespace SignificantWhitespace #significant-whitespace XmlDeclaration #xml-declaration
+
+
+ Obtiene el identificador URI de espacio de nombres de este nodo.
+ Identificador URI de espacio de nombres de este nodo.Si no hay identificador URI de espacio de nombres, esta propiedad devuelve String.Empty.
+
+
+ Obtiene el nodo inmediatamente siguiente a éste.
+ XmlNode siguiente.Si no hay nodo siguiente, se devuelve null.
+
+
+ Obtiene el tipo del nodo actual cuando se invalida en una clase derivada.
+ Uno de los valores de .
+
+
+ Hace que todos los nodos XmlText de toda la profundidad del subárbol situado bajo XmlNode aparezcan de forma "normal", de modo que solo el marcado (es decir, las etiquetas, comentarios, instrucciones de procesamiento, secciones CDATA y referencias a entidades) separa los nodos XmlText, es decir, no hay nodos XmlText adyacentes.
+
+
+ Obtiene el marcado que contiene este nodo y todos sus nodos secundarios.
+ Marcado que contiene este nodo y todos sus nodos secundarios.NotaOuterXml no devuelve los atributos predeterminados.
+
+
+ Obtiene el al que pertenece este nodo.
+
+ al que pertenece este nodo.Si el nodo es (NodeType es igual que XmlNodeType.Document), esta propiedad devuelve null.
+
+
+ Obtiene el nodo primario de este nodo (para nodos que pueden tener nodos primarios).
+ XmlNode que es el nodo primario del nodo actual.Si se acaba de crear un nodo y todavía no se ha agregado al árbol, o si se ha quitado un nodo del árbol, el nodo primario es null.Para todos los demás nodos, el valor devuelto depende de la propiedad del nodo.En la tabla siguiente se describen los valores devueltos posibles de la propiedad ParentNode.NodeType Valor devuelto de ParentNode Attribute, Document, DocumentFragment, Entity, Notation Devuelve null; estos nodos no tienen nodos primarios. CDATA Devuelve el elemento o la referencia a entidad que contiene la sección CDATA. Comentario Devuelve el elemento, la referencia a entidad, el tipo de documento o el documento que contiene el comentario. DocumentType Devuelve el nodo de documento. Elemento Devuelve el nodo primario del elemento.Si el elemento es el nodo raíz del árbol, el nodo primario es el nodo de documento.EntityReference Devuelve el elemento, el atributo o la referencia a entidad que contiene la referencia a entidad. ProcessingInstruction Devuelve el documento, el elemento, el tipo de documento o la referencia a entidad que contiene la instrucción de procesamiento. Texto Devuelve el elemento primario, el atributo o la referencia a entidad que contiene el nodo de texto.
+
+
+ Obtiene o establece el prefijo de espacio de nombres de este nodo.
+ Prefijo de espacio de nombres de este nodo.Por ejemplo, Prefix es "bk" para el elemento <bk:book>.Si no hay prefijo, esta propiedad devuelve String.Empty.
+ Este nodo es de sólo lectura.
+ El prefijo especificado contiene un carácter no válido.El prefijo especificado no está formado correctamente.El prefijo especificado es "xml" y el identificador URI de espacio de nombres de este nodo no es "http://www.w3.org/XML/1998/namespace".Este nodo es un atributo, el prefijo especificado es "xmlns" y su identificador URI de espacio de nombres no es "http://www.w3.org/2000/xmlns/".Este nodo es un atributo y su nombre completo es "xmlns".
+
+
+ Agrega el nodo especificado al principio de la lista de nodos secundarios de este nodo.
+ Nodo agregado.
+ Nodo que se va a agregar.Todo el contenido del nodo que se va a agregar se pasa a la ubicación especificada.
+ Este nodo es de un tipo que no permite nodos secundarios del tipo del nodo . es un nodo antecesor de este nodo.
+
+ se creó a partir de un documento diferente del que creó este nodo.Este nodo es de sólo lectura.
+
+
+ Obtiene el nodo inmediatamente anterior a éste.
+ XmlNode anterior.Si no hay nodo anterior, se devuelve null.
+
+
+ Obtiene el nodo de texto que precede inmediatamente a este nodo.
+ Devuelve .
+
+
+ Quita todos los atributos y nodos secundarios del nodo actual.
+
+
+ Quita el nodo secundario especificado.
+ Nodo que se quita.
+ Nodo que se va a quitar.
+
+ no es un nodo secundario de este nodo.O este nodo es de sólo lectura.
+
+
+ Reemplaza el nodo secundario por el nodo .
+ Nodo que se reemplaza.
+ Nuevo nodo que se va a agregar a la lista de nodos secundarios.
+ Nodo que se va a reemplazar en la lista.
+ Este nodo es de un tipo que no permite nodos secundarios del tipo del nodo . es un nodo antecesor de este nodo.
+
+ se creó a partir de un documento diferente del que creó este nodo.Este nodo es de sólo lectura. no es un nodo secundario de este nodo.
+
+
+ Comprueba si la implementación de DOM incluye una característica específica.
+ Es true si la característica se implementa en la versión especificada; en caso contrario, es false.En la tabla siguiente se describen las combinaciones que devuelven true.Característica Versión XML 1.0 XML 2.0
+ Nombre del paquete de la característica que se va a comprobar.Este nombre no distingue entre mayúsculas y minúsculas.
+ Número de versión del nombre del paquete que se va a comprobar.Si no se especifica la versión (null), la compatibilidad con cualquier versión de la característica hará que el método devuelva True.
+
+
+ Para obtener una descripción de este miembro, vea .
+ Devuelve un enumerador para la colección.
+
+
+ Obtiene o establece el valor del nodo.
+ El valor devuelto depende de la propiedad del nodo. Tipo Valor Atributo Valor del atributo. CDATASection Contenido de la sección CDATA. Comentario Contenido del comentario. Document null. DocumentFragment null. DocumentType null. Elemento null.Puede usar las propiedades o para obtener acceso al valor del nodo element.Entity null. EntityReference null. Notation null. ProcessingInstruction Todo el contenido, salvo el destino. Texto El contenido del nodo de texto. SignificantWhitespace Caracteres de espacio en blanco.El espacio en blanco puede estar formado por uno o varios caracteres de espacio, retornos de carro, saltos de línea o tabulaciones.Whitespace Caracteres de espacio en blanco.El espacio en blanco puede estar formado por uno o varios caracteres de espacio, retornos de carro, saltos de línea o tabulaciones.XmlDeclaration Contenido de la declaración (es decir, lo que aparece entre <?xml y ?>).
+ Establecer el valor de un nodo que es de sólo lectura.
+ Establecer el valor de un nodo que no debe tener un valor, por ejemplo, un nodo Element.
+
+
+ Guarda todos los nodos secundarios del nodo en el especificado, cuando se reemplaza en una clase derivada.
+ XmlWriter en el que se desea guardar.
+
+
+ Guarda el nodo actual en el especificado, cuando se reemplaza en una clase derivada.
+ XmlWriter en el que se desea guardar.
+
+
+ Especifica el tipo de cambio de nodo.
+
+
+ Se está modificando un valor de nodo.
+
+
+ Se está insertando un nodo en el árbol.
+
+
+ Se está quitando un nodo del árbol.
+
+
+ Proporciona datos para los eventos , , , , y .
+
+
+ Inicializa una nueva instancia de la clase .
+ El objeto que generó el evento.
+ El primario anterior del que generó el evento.
+ El nuevo primario del que generó el evento.
+ El valor anterior del que generó el evento.
+ El nuevo valor del que generó el evento.
+
+ .
+
+
+ Obtiene un valor que indica qué tipo de evento de cambio de nodo se está produciendo.
+ Valor de XmlNodeChangedAction que describe el evento de cambio de nodo.Valor de XmlNodeChangedAction Descripción Insertar Se ha insertado o se insertará un nodo. Remove Se ha quitado o se quitará un nodo. Cambio Se ha cambiado o se cambiará un nodo. NotaEl valor de Action no distingue el momento en que se produjo el evento (antes o después).Se pueden crear controladores de eventos independientes para controlar ambas instancias.
+
+
+ Obtiene el valor de la propiedad tras finalizar la operación.
+ Valor de ParentNode tras finalizar la operación.Esta propiedad devuelve null si se quita el nodo.NotaPara los nodos de atributo, esta propiedad devuelve .
+
+
+ Obtiene el nuevo valor del nodo.
+ Nuevo valor del nodo.Esta propiedad devuelve null si el nodo no es ni un atributo ni un nodo de texto, o si se quita el nodo.Si se llamó en un evento , NewValue devuelve el valor del nodo si el cambio tiene éxito.Si se llamó en un evento , NewValue devuelve el valor actual del nodo.
+
+
+ Obtiene el que se agrega, se quita o se cambia.
+ XmlNode que se agrega, se quita o se cambia; esta propiedad nunca devuelve null.
+
+
+ Obtiene el valor de la propiedad antes de que comience la operación.
+ Valor de ParentNode antes de que comience la operación.Esta propiedad devuelve null si el nodo no tiene nodo primario.NotaPara los nodos de atributo, esta propiedad devuelve .
+
+
+ Obtiene el valor original del nodo.
+ Valor original del nodo.Esta propiedad devuelve null si el nodo no es ni un atributo ni un nodo de texto, o si se inserta el nodo.Si se llamó en un evento , OldValue devuelve el valor actual del nodo que se reemplazará si el cambio tiene éxito.Si se llamó en un evento , OldValue devuelve el valor del nodo previo al cambio.
+
+
+ Representa el método que controla los eventos , , , , y .
+ Origen del evento.
+
+ que contiene los datos del evento.
+
+
+ Representa una colección ordenada de nodos.
+
+
+ Inicializa una nueva instancia de la clase .
+
+
+ Obtiene el número de nodos de XmlNodeList.
+ Número de nodos de XmlNodeList.
+
+
+ Obtiene un enumerador que recorre en iteración la colección de nodos.
+ Enumerador utilizado para recorrer en iteración la colección de nodos.
+
+
+ Recupera un nodo en el índice especificado.
+
+ con el índice especificad en la colección.Si es mayor o igual que el número de nodos de la lista, esto devuelve null.
+ Índice de base cero en la lista de nodos.
+
+
+ Obtiene un nodo en el índice especificado.
+
+ con el índice especificad en la colección.Si el índice es mayor o igual que el número de nodos de la lista, esto devuelve null.
+ Índice de base cero en la lista de nodos.
+
+
+ Desecha los recursos de la lista de nodos de forma privada.
+
+
+ Libera todos los recursos que utiliza la clase .
+
+
+ Representa una instrucción de procesamiento que XML define para conservar información específica del procesador en el texto del documento.
+
+
+ Inicializa una nueva instancia de la clase .
+ Destino de la instrucción de procesamiento; vea la propiedad .
+ Contenido de la instrucción; vea la propiedad .
+ Documento XML primario.
+
+
+ Crea un duplicado de este nodo.
+ Nodo duplicado.
+ true para clonar de forma recursiva el subárbol del nodo especificado y false solo para clonar el nodo en sí.
+
+
+ Obtiene o establece el contenido de la instrucción de procesamiento, excepto el destino.
+ Contenido de la instrucción de procesamiento, excepto el destino.
+
+
+ Obtiene o establece los valores concatenados del nodo y de todos sus nodos secundarios.
+ Valores concatenados del nodo y de todos sus nodos secundarios.
+
+
+ Obtiene el nombre local del nodo.
+ Para los nodos de instrucción de procesamiento, esta propiedad devuelve el destino de la instrucción de procesamiento.
+
+
+ Obtiene el nombre completo del nodo.
+ Para los nodos de instrucción de procesamiento, esta propiedad devuelve el destino de la instrucción de procesamiento.
+
+
+ Obtiene el tipo del nodo actual.
+ Para los nodos XmlProcessingInstruction, este valor es XmlNodeType.ProcessingInstruction.
+
+
+ Obtiene el destino de la instrucción de procesamiento.
+ Destino de la instrucción de procesamiento.
+
+
+ Obtiene o establece el valor del nodo.
+ Todo el contenido de la instrucción de procesamiento, excepto el destino.
+ Node is read-only.
+
+
+ Guarda todos los nodos secundarios del nodo en el especificado.Dado que los nodos ProcessingInstruction no tienen elementos secundarios, este método no tiene ningún efecto.
+ XmlWriter en el que se desea guardar.
+
+
+ Guarda el nodo en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Representa el espacio en blanco entre marcas en un nodo de contenido mixto o espacio en blanco dentro del ámbito xml:space= "preserve".También se hace referencia a esto como espacio en blanco significativo.
+
+
+ Inicializa una nueva instancia de la clase .
+ Caracteres de espacio en blanco del nodo.
+ Objeto .
+
+
+ Crea un duplicado de este nodo.
+ Nodo clonado.
+ trueforma recursiva para clonar el subárbol del nodo especificado; false para clonar sólo el nodo en Sí.Para los nodos de espacio en blanco significativo, el nodo clonado incluye siempre el valor de los datos, con independencia del valor del parámetro.
+
+
+ Obtiene el nombre local del nodo.
+ Para nodos XmlSignificantWhitespace, esta propiedad devuelve #significant-whitespace.
+
+
+ Obtiene el nombre completo del nodo.
+ Para nodos XmlSignificantWhitespace, esta propiedad devuelve #significant-whitespace.
+
+
+ Obtiene el tipo del nodo actual.
+ Para los nodos XmlSignificantWhitespace, este valor es XmlNodeType.SignificantWhitespace.
+
+
+ Obtiene el elemento primario del nodo actual.
+ Nodo primario del nodo actual.
+
+
+ Obtiene el nodo de texto que precede inmediatamente a este nodo.
+ Devuelve .
+
+
+ Obtiene o establece el valor del nodo.
+ Caracteres de espacio en blanco encontrados en el nodo.
+ Establecimiento de Value en caracteres de espacio en blanco no válidos.
+
+
+ Guarda todos los nodos secundarios del nodo en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Guarda el nodo en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Representa el contenido de texto de un elemento o atributo.
+
+
+ Inicializa una nueva instancia de la clase .
+ El contenido del nodo: vea la propiedad .
+ Documento XML primario.
+
+
+ Crea un duplicado de este nodo.
+ Nodo clonado.
+ trueforma recursiva para clonar el subárbol del nodo especificado; false para clonar sólo el nodo en Sí.
+
+
+ Obtiene el nombre local del nodo.
+ Para nodos de texto, esta propiedad devuelve #text.
+
+
+ Obtiene el nombre completo del nodo.
+ Para nodos de texto, esta propiedad devuelve #text.
+
+
+ Obtiene el tipo del nodo actual.
+ Para nodos de texto, este valor es XmlNodeType.Text.
+
+
+
+ Obtiene el nodo de texto que precede inmediatamente a este nodo.
+ Devuelve .
+
+
+ Divide el nodo en dos nodos en el desplazamiento especificado, manteniéndolos en el árbol como nodos relacionados.
+ Nuevo nodo.
+ Desplazamiento en el que se va a dividir el nodo.
+
+
+ Obtiene o establece el valor del nodo.
+ El contenido del nodo de texto.
+
+
+ Guarda todos los nodos secundarios del nodo en el especificado.Los nodos XmlText no tienen nodos secundarios, por lo que este método no tiene ningún efecto.
+ XmlWriter en el que se desea guardar.
+
+
+ Guarda el nodo en el especificado.
+ XmlWriter en el que se desea guardar.
+
+
+ Representa los espacios en blanco en el contenido del elemento.
+
+
+ Inicializa una nueva instancia de la clase .
+ Caracteres de espacio en blanco del nodo.
+ Objeto .
+
+
+ Crea un duplicado de este nodo.
+ Nodo clonado.
+ trueforma recursiva para clonar el subárbol del nodo especificado; false para clonar sólo el nodo en Sí.Para los nodos de espacio en blanco, el nodo clonado incluye siempre el valor de los datos, con independencia del valor del parámetro.
+
+
+ Obtiene el nombre local del nodo.
+ Para nodos XmlWhitespace, esta propiedad devuelve #whitespace.
+
+
+ Obtiene el nombre completo del nodo.
+ Para nodos XmlWhitespace, esta propiedad devuelve #whitespace.
+
+
+ Obtiene el tipo del nodo.
+ En el caso de nodos XmlWhitespace, el valor es .
+
+
+ Obtiene el elemento primario del nodo actual.
+ Nodo primario del nodo actual.
+
+
+ Obtiene el nodo de texto que precede inmediatamente a este nodo.
+ Devuelve .
+
+
+ Obtiene o establece el valor del nodo.
+ Caracteres de espacio en blanco encontrados en el nodo.
+ Establecimiento de en caracteres de espacio en blanco no válidos.
+
+
+ Guarda todos los nodos secundarios del nodo en el especificado.
+
+ en el que se desea guardar.
+
+
+ Guarda el nodo en el especificado.
+
+ en el que se desea guardar.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/fr/System.Xml.XmlDocument.xml b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/fr/System.Xml.XmlDocument.xml
new file mode 100644
index 0000000..f98e331
--- /dev/null
+++ b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/fr/System.Xml.XmlDocument.xml
@@ -0,0 +1,1481 @@
+
+
+
+ System.Xml.XmlDocument
+
+
+
+ Représente un attribut.Les valeurs valides et par défaut de l'attribut sont définies dans une définition de type de document (DTD) ou dans un schéma.
+
+
+ Initialise une nouvelle instance de la classe .
+ Préfixe de l'espace de noms.
+ Nom local de l'attribut.
+ URI (Uniform Resource Identifier) de l'espace de noms.
+ Document XML parent.
+
+
+ Ajoute le nœud spécifié à la fin de la liste des nœuds enfants de ce nœud.
+
+ ajouté.
+
+ à ajouter.
+ Le type de ce nœud n'autorise pas les nœuds enfants possédant le type de nœud . est un ancêtre de ce nœud.
+
+ a été créé à partir d'un document différent de celui qui a créé ce nœud.Ce nœud est en lecture seule.
+
+
+ Obtient l'URI (Uniform Resource Identifier) de base du nœud.
+ Emplacement à partir duquel le nœud a été chargé ou String.Empty si le nœud n'a pas d'URI de base.Les nœuds d'attributs ont la même URI de base que leur élément propriétaire.Si un nœud d'attribut n'a pas d'élément propriétaire, BaseURI retourne String.Empty.
+
+
+ Crée un doublon de ce nœud.
+ Doublon du nœud.
+ true pour cloner de manière récursive le sous-arbre sous le nœud spécifié ; false pour cloner uniquement le nœud lui-même.
+
+
+ Définit les valeurs concaténées du nœud et de tous ses enfants.
+ Valeurs concaténées du nœud et de tous ses enfants.Pour les nœuds d'attribut, cette propriété remplit la même fonction que la propriété .
+
+
+ Définit la valeur de l'attribut.
+ Valeur de l'attribut
+ Le XML spécifié lors de la définition de cette propriété est incorrect.
+
+
+ Insère le nœud spécifié immédiatement après le nœud de référence spécifié.
+
+ inséré.
+
+ à insérer.
+
+ qui est le nœud de référence. est placé après .
+ Le type de ce nœud n'autorise pas les nœuds enfants possédant le type de nœud . est un ancêtre de ce nœud.
+
+ a été créé à partir d'un document différent de celui qui a créé ce nœud. n'est pas un enfant de ce nœud.Ce nœud est en lecture seule.
+
+
+ Insère le nœud spécifié immédiatement avant le nœud de référence spécifié.
+
+ inséré.
+
+ à insérer.
+
+ qui est le nœud de référence. est placé avant ce nœud.
+ Le type du nœud actuel n'autorise pas les nœuds enfants possédant le type de nœud . est un ancêtre de ce nœud.
+
+ a été créé à partir d'un document différent de celui qui a créé ce nœud. n'est pas un enfant de ce nœud.Ce nœud est en lecture seule.
+
+
+ Obtient le nom local du nœud.
+ Nom du nœud d'attribut sans le préfixe.Dans l'exemple suivant <book bk:genre= 'novel'>, le LocalName de l'attribut est genre.
+
+
+ Obtient le nom qualifié du nœud.
+ Nom qualifié du nœud d'attribut.
+
+
+ Obtient l'URI de l'espace de noms de ce nœud.
+ Espace de noms d'URI du nœud.Si l'attribut ne se voit pas assigner un espace de noms de manière explicite, cette propriété retourne String.Empty.
+
+
+ Obtient le type du nœud actuel.
+ Le type des nœuds XmlAttribute est XmlNodeType.Attribute.
+
+
+ Obtient le auquel ce nœud appartient.
+ Un document XML auquel ce nœud appartient.
+
+
+ Obtient le auquel appartient l'attribut.
+ XmlElement auquel appartient l'attribut, ou null si celui-ci ne fait pas partie d'un XmlElement.
+
+
+ Obtient le parent de ce nœud.Pour les nœuds XmlAttribute, cette propriété retourne toujours null.
+ Pour les nœuds XmlAttribute, cette propriété retourne toujours null.
+
+
+ Obtient ou définit le préfixe de l'espace de noms de ce nœud.
+ Préfixe de l'espace de noms de ce nœud.En l'absence de préfixe, cette propriété retourne String.Empty.
+ Ce nœud est en lecture seule.
+ Le préfixe spécifié contient un caractère non valide.Le préfixe spécifié est incorrect.Le NamespaceURI de ce nœud est null.Le préfixe spécifié est « xml » et le namespaceURI de ce nœud n'est pas « http://www.w3.org/XML/1998/namespace ».Le nœud est un attribut, le préfixe spécifié est « xmlns » et l'URI d'espace de noms de ce nœud diffère de « http://www.w3.org/2000/xmlns/ ».Ce nœud est un attribut et son qualifiedName est « xmlns » [espaces de noms].
+
+
+ Ajoute le nœud spécifié au début de la liste des nœuds enfants de ce nœud.
+
+ ajouté.
+
+ à ajouter.S'il s'agit de , le contenu entier du fragment de document est déplacé dans la liste enfant de ce nœud.
+ Le type de ce nœud n'autorise pas les nœuds enfants possédant le type de nœud . est un ancêtre de ce nœud.
+
+ a été créé à partir d'un document différent de celui qui a créé ce nœud.Ce nœud est en lecture seule.
+
+
+ Supprime le nœud enfant spécifié.
+
+ supprimé.
+
+ à supprimer.
+
+ n'est pas un enfant de ce nœud.ou bien ce nœud est en lecture seule.
+
+
+ Remplace le nœud enfant spécifié avec le nouveau nœud enfant spécifié.
+
+ remplacé.
+ Nouveau enfant.
+
+ à remplacer.
+ Le type de ce nœud n'autorise pas les nœuds enfants possédant le type de nœud . est un ancêtre de ce nœud.
+
+ a été créé à partir d'un document différent de celui qui a créé ce nœud.Ce nœud est en lecture seule. n'est pas un enfant de ce nœud.
+
+
+ Obtient une valeur indiquant si la valeur de l'attribut a été définie explicitement.
+ true si l'attribut a reçu explicitement une valeur dans l'instance de document d'origine ; sinon false.Une valeur false indique que la valeur de l'attribut provient du DTD.
+
+
+ Obtient ou définit la valeur du nœud.
+ La valeur retournée dépend du du nœud.Pour les nœuds XmlAttribute, cette propriété équivaut à la valeur de l'attribut.
+ Le nœud est en lecture seule et une opération set est appelée.
+
+
+ Enregistre les enfants du nœud dans le spécifié.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Enregistre le nœud dans le spécifié.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Représente une collection d'attributs accessibles par nom ou index.
+
+
+ Insère l'attribut spécifié en tant que dernier nœud de la collection.
+ XmlAttribute à ajouter à la collection.
+
+ à insérer.
+
+ a été créé à partir d'un document différent de celui qui a créé cette collection.
+
+
+ Copie tous les objets de cette collection dans le tableau donné.
+ Tableau à une dimension, qui est la destination des objets copiés à partir de la collection.
+ Index à partir duquel la copie commence dans le tableau.
+
+
+ Insère l'attribut spécifié immédiatement après l'attribut de référence spécifié.
+ XmlAttribute à insérer dans la collection.
+
+ à insérer.
+
+ qui est l'attribut de référence. est placé après .
+
+ a été créé à partir d'un document différent de celui qui a créé cette collection.Ou n'est pas membre de cette collection.
+
+
+ Insère l'attribut spécifié immédiatement avant l'attribut de référence spécifié.
+ XmlAttribute à insérer dans la collection.
+
+ à insérer.
+
+ qui est l'attribut de référence. est placé avant .
+
+ a été créé à partir d'un document différent de celui qui a créé cette collection.Ou n'est pas membre de cette collection.
+
+
+ Obtient l'attribut avec l'index spécifié.
+
+ à l'index spécifié.
+ Index de l'attribut.
+ L'index qui est passé est hors limites.
+
+
+ Obtient l'attribut avec le nom spécifié.
+
+ portant le nom spécifié.Si l'attribut n'existe pas, cette propriété retourne null.
+ Nom qualifié de l'attribut.
+
+
+ Obtient l'attribut possédant le nom local et l'URI (Uniform Resource Identifier) de l'espace de noms spécifiés.
+
+ avec le nom local et l'identificateur URI d'espace de noms spécifié.Si l'attribut n'existe pas, cette propriété retourne null.
+ Nom local de l'attribut.
+ URI de l'espace de noms de l'attribut.
+
+
+ Insère l'attribut spécifié en tant que premier nœud de la collection.
+ XmlAttribute ajouté à la collection.
+
+ à insérer.
+
+
+ Supprime l'attribut spécifié de la collection.
+ Nœud supprimé ou null s'il ne se trouve pas dans la collection.
+
+ à enlever.
+
+
+ Supprime tous les attributs de la collection.
+
+
+ Supprime l'attribut correspondant à l'index spécifié de la collection.
+ Retourne null s'il n'y a aucun attribut à l'index spécifié.
+ Index du nœud à supprimer.Le premier nœud a l'index 0.
+
+
+ Ajoute un en utilisant sa propriété
+ Si remplace un nœud existant portant le même nom, l'ancien nœud est retourné ; sinon, le nœud ajouté est retourné.
+ Un nœud d'attribut à stocker dans cette collection.Le nœud sera accessible par la suite à l'aide de son nom.Si un nœud porte déjà ce nom dans la collection, il est alors remplacé par ce nouveau nœud ; sinon, le nœud est ajouté à la fin de la collection.
+
+ a été créé à partir d'un différent de celui qui a créé cette collection.Cette XmlAttributeCollection est en lecture seule.
+
+ est un qui est déjà un attribut d'un autre objet .Pour réutiliser des attributs dans d'autres éléments, vous devez cloner les XmlAttribute objets que vous voulez réutiliser.
+
+
+ Pour obtenir une description de ce membre, consultez .
+ Tableau à une dimension, qui est la destination des objets copiés à partir de la collection.
+ Index à partir duquel la copie commence dans le tableau.
+
+
+ Pour obtenir une description de ce membre, consultez .
+ Retourne un int qui contient le nombre des attributs.
+
+
+ Pour obtenir une description de ce membre, consultez .
+ Retourne true si la collection est synchronisée.
+
+
+ Pour obtenir une description de ce membre, consultez .
+ Retourne qui est la racine de la collection.
+
+
+ Représente une section CDATA.
+
+
+ Initialise une nouvelle instance de la classe .
+
+ qui contient des données caractères.
+ Objet .
+
+
+ Crée un doublon de ce nœud.
+ Nœud cloné.
+ true pour cloner de manière récursive le sous-arbre sous le nœud spécifié ; false pour cloner uniquement le nœud lui-même.Comme les nœuds CDATA n'ont pas d'enfant, le nœud cloné comportera toujours des données, quelle que soit la valeur du paramètre.
+
+
+ Obtient le nom local du nœud.
+ Pour les nœuds CDATA, le nom local est #cdata-section.
+
+
+ Obtient le nom qualifié du nœud.
+ Pour les nœuds CDATA, le nom est #cdata-section.
+
+
+ Obtient le type du nœud actuel.
+ Type de nœud.Pour les nœuds CDATA, la valeur est XmlNodeType.CDATA.
+
+
+
+ Obtient le nœud de texte qui précède immédiatement ce nœud.
+ retourne ;
+
+
+ Enregistre les enfants du nœud dans le spécifié.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Enregistre le nœud dans le spécifié.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Fournit des méthodes de manipulation de texte utilisées par plusieurs classes.
+
+
+ Initialise une nouvelle instance de la classe .
+ Chaîne qui contient des données caractères à ajouter au document.
+
+ pour contenir les données caractères.
+
+
+ Ajoute la chaîne spécifiée à la fin des données de caractère du nœud.
+ Chaîne à insérer dans la chaîne existante.
+
+
+ Contient les données du nœud.
+ Données du nœud.
+
+
+ Supprime une plage de caractères du nœud.
+ Position dans la chaîne à laquelle commencer la suppression.
+ Nombre de caractères à supprimer.
+
+
+ Insère la chaîne spécifiée à l'offset du caractère spécifié.
+ Position dans la chaîne à laquelle insérer les données de type chaîne fournies.
+ Données de type chaîne à insérer dans la chaîne existante.
+
+
+ Obtient la longueur des données, en caractères.
+ Longueur, en caractères, de la chaîne de la propriété .La longueur peut être égale à zéro, c'est-à-dire que les nœuds CharacterData peuvent être vides.
+
+
+ Remplace le nombre spécifié de caractères en commençant à l'offset spécifié avec la chaîne spécifiée.
+ Position dans la chaîne à laquelle commencer le remplacement.
+ Nombre de caractères à remplacer.
+ Les nouvelles données remplacent les anciennes données de type chaîne.
+
+
+ Récupère une sous-chaîne de la chaîne complète à partir de la plage spécifiée.
+ Sous-chaîne correspondant à la place spécifiée.
+ Position dans la chaîne à laquelle commencer la récupération.Un offset nul indique que la position de départ est le début des données.
+ Nombre de caractères à récupérer.
+
+
+ Obtient ou définit la valeur du nœud.
+ Valeur du nœud.
+ Le nœud est en lecture seule.
+
+
+ Représente le contenu d'un commentaire XML.
+
+
+ Initialise une nouvelle instance de la classe .
+ Contenu de l'élément du commentaire.
+ Document XML parent.
+
+
+ Crée un doublon de ce nœud.
+ Nœud cloné.
+ true pour cloner de manière récursive le sous-arbre sous le nœud spécifié ; false pour cloner uniquement le nœud lui-même.Comme les nœuds de commentaires n'ont pas d'enfant, le nœud cloné comporte toujours du texte, quelle que soit la valeur du paramètre.
+
+
+ Obtient le nom local du nœud.
+ Pour les nœuds de commentaire, la valeur est #comment.
+
+
+ Obtient le nom qualifié du nœud.
+ Pour les nœuds de commentaire, la valeur est #comment.
+
+
+ Obtient le type du nœud actuel.
+ Pour les nœuds de commentaires, la valeur est XmlNodeType.Comment.
+
+
+ Enregistre les enfants du nœud dans le spécifié.Comme les nœuds de commentaires n'ont pas d'enfant, cette méthode reste sans effet.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Enregistre le nœud dans le spécifié.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Représente le nœud de déclaration XML <?xml version='1.0'...?>.
+
+
+ Initialise une nouvelle instance de la classe .
+ Version XML ; consultez la propriété .
+ Schéma d'encodage ; consultez la propriété .
+ Indique si le document XML dépend d'un DTD externe ; consultez la propriété .
+ Document XML parent.
+
+
+ Crée un doublon de ce nœud.
+ Nœud cloné.
+ true pour cloner de manière récursive le sous-arbre sous le nœud spécifié ; false pour cloner uniquement le nœud lui-même.Comme les nœuds XmlDeclaration n'ont pas d'enfant, le nœud cloné comporte toujours la valeur des données, quelle que soit la valeur du paramètre.
+
+
+ Obtient ou définit le niveau d'encodage du document XML.
+ Nom d'encodage de caractères valide.Les noms d'encodages de caractères les plus couramment pris en charge pour XML sont les suivants :Catégorie Noms d'encodages Unicode UTF-8, UTF-16 ISO 10646 ISO-10646-UCS-2, ISO-10646-UCS-4 ISO 8859 ISO-8859-n (où « n » correspond à un nombre compris entre 1 et 9) JIS X-0208-1997 ISO-2022-JP, Shift_JIS, EUC-JP Cette valeur est facultative.Si aucune valeur n'est définie, cette propriété retourne alors String.Empty.Si aucun attribut d'encodage n'est inclus, l'encodage admis par défaut lors de l'écriture ou de l'enregistrement du document est alors UTF-8.
+
+
+ Obtient ou définit les valeurs concaténées de XmlDeclaration.
+ Valeurs concaténées de XmlDeclaration (c'est-à-dire tout ce qui se trouve entre <?xml et ?>).
+
+
+ Obtient le nom local du nœud.
+ Pour les nœuds XmlDeclaration, le nom local est xml.
+
+
+ Obtient le nom qualifié du nœud.
+ Pour les nœuds XmlDeclaration, le nom est xml.
+
+
+ Obtient le type du nœud actuel.
+ Pour les nœuds XmlDeclaration, cette valeur est XmlNodeType.XmlDeclaration.
+
+
+ Obtient ou définit la valeur de l'attribut autonome.
+ Les valeurs valides sont yes si toutes les déclarations requises par le document XML sont contenues dans le document, ou no si une définition de type de document (DTD) externe est requise.Si aucun attribut autonome ne figure dans la déclaration XML, cette propriété retourne alors String.Empty.
+
+
+ Obtient ou définit la valeur du XmlDeclaration.
+ Contenu de XmlDeclaration (c'est-à-dire tout ce qui se situe entre <?xml et ?>).
+
+
+ Obtient la version XML du document.
+ La valeur est toujours 1.0.
+
+
+ Enregistre les enfants du nœud dans le spécifié.Étant donné que les nœuds XmlDeclaration n'ont pas d'enfants, cette méthode est sans effet.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Enregistre le nœud dans le spécifié.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Représente un document XML.Pour plus d'informations, voir la section Remarks.
+
+
+ Initialise une nouvelle instance de la classe .
+
+
+ Initialise une nouvelle instance de la classe XmlDocument avec le spécifié.
+ XmlImplementation à utiliser.
+
+
+ Initialise une nouvelle instance de la classe XmlDocument avec le spécifié.
+ XmlNameTable à utiliser.
+
+
+ Obtient l'URI de base du nœud actuel.
+ Emplacement à partir duquel le nœud a été chargé.
+
+
+ Crée un doublon de ce nœud.
+ Le nœud XmlDocument cloné.
+ true pour cloner récursivement la sous-arborescence sous le nœud spécifié ; false pour cloner seulement le nœud lui-même.
+
+
+ Crée un élément avec la valeur spécifiée.
+ Nouvelle XmlAttribute.
+ Nom qualifié de l'attribut.Si le nom contient un signe deux-points, la propriété reflète la partie du nom qui précède le premier signe deux-points, et la propriété reflète la partie du nom qui suit le premier signe deux-points.L'élément reste vide sauf si le préfixe est un préfixe intégré reconnu, comme xmlns.Dans ce cas, NamespaceURI a la valeur http://www.w3.org/2000/xmlns/.
+
+
+ Crée un élément avec le nom qualifié et l'élément spécifiés.
+ Nouvelle XmlAttribute.
+ Nom qualifié de l'attribut.Si le nom contient un signe deux-points, la propriété reflète la partie du nom qui précède le signe deux-points et la propriété reflète la partie du nom qui suit le signe deux-points.
+ URI de l'espace de noms de l'attribut.Si le nom qualifié comprend un préfixe xmlns, ce paramètre doit être http://www.w3.org/2000/xmlns/.
+
+
+ Crée un élément avec les valeurs spécifiées pour , et .
+ Nouvelle XmlAttribute.
+ Préfixe de l'attribut (le cas échéant).String.Empty et null sont équivalents.
+ Le nom local de l'attribut.
+ URI de l'espace de noms de l'attribut (le cas échéant).String.Empty et null sont équivalents.Si a la valeur xmlns, ce paramètre doit être http://www.w3.org/2000/xmlns/ ; sinon, une exception est levée.
+
+
+ Crée un élément contenant les données spécifiées.
+ Nouvelle XmlCDataSection.
+ Contenu du nouvel élément XmlCDataSection.
+
+
+ Crée un élément contenant les données spécifiées.
+ Nouvelle XmlComment.
+ Contenu du nouvel élément XmlComment.
+
+
+ Crée un .
+ Nouvelle XmlDocumentFragment.
+
+
+ Crée un élément avec le nom spécifié.
+ Nouvelle XmlElement.
+ Nom qualifié de l'élément.Si le nom contient un signe deux-points, la propriété reflète la partie du nom qui précède le signe deux-points et la propriété reflète la partie du nom qui suit le signe deux-points.Le nom qualifié ne peut pas contenir le préfixe xmlns.
+
+
+ Crée un élément avec le nom qualifié et l'élément .
+ Nouvelle XmlElement.
+ Nom qualifié de l'élément.Si le nom contient un signe deux-points, la propriété reflète la partie du nom qui précède le signe deux-points et la propriété reflète la partie du nom qui suit le signe deux-points.Le nom qualifié ne peut pas contenir le préfixe xmlns.
+ L'URI de l'espace de noms de l'élément.
+
+
+ Crée un élément avec les éléments , et spécifiés.
+ Nouvelle .
+ Préfixe du nouvel élément (le cas échéant).String.Empty et null sont équivalents.
+ Le nom local du nouvel élément.
+ URI de l'espace de noms du nouvel élément (le cas échéant).String.Empty et null sont équivalents.
+
+
+ Crée un élément avec le type de nœud, l'élément et l'élément spécifiés.
+ Nouvelle XmlNode.
+ Version au format chaîne de l'élément du nouveau nœud.Ce paramètre doit prendre l'une des valeurs répertoriées dans le tableau suivant.
+ Nom qualifié du nouveau nœud.Si le nom contient un signe deux-points, il est analysé en deux composants : et .
+ L'URI de l'espace de noms du nouveau nœud.
+ The name was not provided and the XmlNodeType requires a name; or is not one of the strings listed below.
+
+
+ Crée un élément avec les éléments , et spécifiés.
+ Nouvelle XmlNode.
+ XmlNodeType du nouveau nœud.
+ Nom qualifié du nouveau nœud.Si le nom contient un signe deux-points, il est analysé en deux composants : et .
+ L'URI de l'espace de noms du nouveau nœud.
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ Crée un élément avec les éléments , , et spécifiés.
+ Nouvelle XmlNode.
+ XmlNodeType du nouveau nœud.
+ Préfixe du nouveau nœud.
+ Nom local du nouveau nœud.
+ L'URI de l'espace de noms du nouveau nœud.
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ Crée un élément avec le nom et les données spécifiés.
+ Nouvelle XmlProcessingInstruction.
+ Nom de l'instruction de traitement.
+ Données de l'instruction de traitement.
+
+
+ Crée un nœud .
+ Nouveau nœud XmlSignificantWhitespace.
+ La chaîne ne doit contenir que les caractères suivants : , 
, 
 et 	.
+
+
+ Crée un élément avec le texte spécifié.
+ Nouveau nœud XmlText.
+ Texte du nœud Text.
+
+
+ Crée un nœud .
+ Nouveau nœud XmlWhitespace.
+ La chaîne ne doit contenir que les caractères suivants : , 
, 
 et 	.
+
+
+ Crée un nœud avec les valeurs spécifiées.
+ Nouveau nœud XmlDeclaration.
+ La version doit être "1.0".
+ Valeur de l'attribut d'encodage.Il s'agit de l'encodage utilisé quand vous enregistrez un élément dans un fichier ou un flux ; il doit donc être défini avec une chaîne prise en charge par la classe , sinon échoue.Si cette valeur est null ou String.Empty, la méthode Save n'écrit pas d'attribut d'encodage sur la déclaration XML ; le codage par défaut UTF-8 est donc utilisé.Remarque : si l'élément XmlDocument est enregistré dans un ou un , cette valeur d'encodage est ignorée.L'encodage du TextWriter ou du XmlTextWriter est utilisé à la place.Cela garantit que le code XML écrit peut être lu en utilisant l'encodage correct.
+ La valeur doit être "yes" ou "no".Si cette valeur est null ou String.Empty, la méthode Save n'écrit pas d'attribut autonome sur la déclaration XML.
+ The values of or are something other than the ones specified above.
+
+
+ Obtient l'élément racine pour le document.
+ Élément XmlElement représentant la racine de l'arborescence du document XML.S'il n'existe pas de racine, null est retourné.
+
+
+ Retourne un élément contenant la liste de tous les éléments descendants qui correspondent à l'élément spécifié.
+ Un élément contenant la liste de tous les nœuds correspondants.Si aucun nœud ne correspond à , la collection retournée sera vide.
+ Nom qualifié à trouver.Il est comparé à la propriété Name du nœud correspondant.La valeur spéciale "*" correspond à toutes les balises.
+
+
+ Retourne un élément contenant la liste de tous les éléments descendants qui correspondent aux éléments et spécifiés.
+ Un élément contenant la liste de tous les nœuds correspondants.Si aucun nœud ne correspond aux éléments et spécifiés, la collection retournée sera vide.
+ LocalName à trouver.La valeur spéciale "*" correspond à toutes les balises.
+ URI d'espace de noms avec lequel établir une correspondance.
+
+
+ Obtient l'objet pour le document actif.
+ Objet XmlImplementation pour le document actif.
+
+
+ Importe un nœud d'un autre document vers le document actif.
+ L'élément importé.
+ Nœud importé.
+ true pour réaliser un clone complet ; sinon, false.
+ Calling this method on a node type which cannot be imported.
+
+
+ Lève une exception dans tous les cas.
+ Valeurs concaténées du nœud et de tous ses nœuds enfants.
+ In all cases.
+
+
+ Obtient ou définit le balisage représentant les enfants du nœud actuel.
+ Balisage des enfants du nœud actuel.
+ The XML specified when setting this property is not well-formed.
+
+
+ Obtient une valeur indiquant si le nœud actuel est en lecture seule.
+ true si le nœud actif est en lecture seule ; sinon, false.Les nœuds XmlDocument retournent toujours false.
+
+
+ Charge le document XML à partir du flux spécifié.
+ Flux contenant le document XML à charger.
+ There is a load or parse error in the XML.In this case, a is raised.
+
+
+ Charge le document XML à partir de l'élément spécifié.
+ L'élément TextReader utilisé pour introduire les données XML dans le document.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ Charge le document XML à partir de l'élément spécifié.
+ L'élément XmlReader utilisé pour introduire les données XML dans le document.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ Charge le document XML à partir de la chaîne spécifiée.
+ Chaîne contenant le document XML à charger.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ Obtient le nom local du nœud.
+ Pour les nœuds XmlDocument, le nom local est #document.
+
+
+ Obtient le nom qualifié du nœud.
+ Pour les nœuds XmlDocument, le nom est #document.
+
+
+ Obtient l'élément associé à cette implémentation.
+ Un élément XmlNameTable qui vous permet d'obtenir la version atomisée d'une chaîne dans le document.
+
+
+ Se produit quand l'élément d'un nœud appartenant à ce document a été modifié.
+
+
+ Se produit quand l'élément d'un nœud appartenant à ce document est sur le point d'être modifié.
+
+
+ Se produit quand un nœud appartenant à ce document a été inséré dans un autre nœud.
+
+
+ Se produit quand un nœud appartenant à ce document est sur le point d'être inséré dans un autre nœud.
+
+
+ Se produit quand un nœud appartenant à ce document a été enlevé à son parent.
+
+
+ Se produit quand un nœud appartenant à ce document est sur le point d'être supprimé du document.
+
+
+ Obtient le type du nœud actuel.
+ Type de nœud.Pour les nœuds XmlDocument, cette valeur est XmlNodeType.Document.
+
+
+ Obtient l'élément auquel le nœud actif appartient.
+ Pour les nœuds XmlDocument ( est égal à XmlNodeType.Document), cette propriété retourne toujours null.
+
+
+ Obtient le nœud parent de ce nœud (pour les nœuds qui peuvent avoir des parents).
+ Retourne toujours null.
+
+
+ Obtient ou définit une valeur indiquant si les espaces blancs doivent être conservés dans le contenu d'élément.
+ true pour conserver les espaces ; sinon, false.La valeur par défaut est false.
+
+
+ Crée un objet sur la base des informations de l'élément .Le lecteur doit être positionné sur un nœud ou sur un attribut.
+ Le nouvel élément XmlNode ou null s'il n'existe plus de nœuds.
+ Source XML
+ The reader is positioned on a node type that does not translate to a valid DOM node (for example, EndElement or EndEntity).
+
+
+ Enregistre le document XML dans le flux spécifié.
+ Flux dans lequel vous voulez enregistrer.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Enregistre le document XML dans l'élément spécifié.
+ Élément TextWriter dans lequel vous voulez enregistrer.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Enregistre le document XML dans l'élément spécifié.
+ L'élément XmlWriter dans lequel vous voulez enregistrer.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Enregistre tous les enfants du nœud XmlDocument dans l'élément spécifié.
+ L'élément XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Enregistre le nœud XmlDocument dans l'élément spécifié.
+ L'élément XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Représente un objet rudimentaire utilisé dans les opérations d'insertion dans les arborescences.
+
+
+ Initialise une nouvelle instance de la classe .
+ Document XML qui est la source du fragment.
+
+
+ Crée un doublon de ce nœud.
+ Nœud cloné.
+ true pour cloner de manière récursive le sous-arbre sous le nœud spécifié ; false pour cloner uniquement le nœud lui-même.
+
+
+ Obtient ou définit le balisage représentant les enfants de ce nœud.
+ Balisage des enfants de ce nœud.
+ Le XML spécifié lors de la définition de cette propriété est incorrect.
+
+
+ Obtient le nom local du nœud.
+ Pour les nœuds XmlDocumentFragment, le nom local est #document-fragment.
+
+
+ Obtient le nom qualifié du nœud.
+ Pour XmlDocumentFragment, le nom est #document-fragment.
+
+
+ Obtient le type du nœud actuel.
+ Pour les nœuds XmlDocumentFragment, cette valeur est XmlNodeType.DocumentFragment.
+
+
+ Obtient le auquel ce nœud appartient.
+ XmlDocument auquel ce nœud appartient.
+
+
+ Obtient le parent de ce nœud (pour les nœuds qui peuvent avoir des parents).
+ Parent de ce nœud.Pour les nœuds XmlDocumentFragment, cette propriété est toujours null.
+
+
+ Enregistre les enfants du nœud dans le spécifié.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Enregistre le nœud dans le spécifié.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Représente un élément.
+
+
+ Initialise une nouvelle instance de la classe .
+ Préfixe de l'espace de noms ; consultez la propriété .
+ Nom local ; consultez la propriété .
+ URI de l'espace de noms ; consultez la propriété .
+ Document XML parent.
+
+
+ Obtient contenant la liste des attributs de ce nœud.
+
+ contenant la liste des attributs de ce nœud.
+
+
+ Crée un doublon de ce nœud.
+ Nœud cloné.
+ true pour cloner de manière récursive le sous-arbre sous le nœud spécifié ; false pour cloner uniquement le nœud lui-même (et ses attributs si le nœud correspond à XmlElement).
+
+
+ Retourne la valeur de l'attribut avec le nom spécifié.
+ Valeur de l'attribut spécifié.Une chaîne vide est retournée si aucun attribut correspondant n'est trouvé, ou si l'attribut ne possède pas une valeur spécifiée ou une valeur par défaut.
+ Nom de l'attribut à récupérer.Il s'agit d'un nom qualifié.Il est comparé à la propriété Name du nœud correspondant.
+
+
+ Retourne la valeur de l'attribut avec le nom local et l'URI de l'espace de noms spécifiés.
+ Valeur de l'attribut spécifié.Une chaîne vide est retournée si aucun attribut correspondant n'est trouvé, ou si l'attribut ne possède pas une valeur spécifiée ou une valeur par défaut.
+ Nom local de l'attribut à récupérer.
+ URI de l'espace de noms de l'attribut à récupérer.
+
+
+ Retourne XmlAttribute avec le nom spécifié.
+ XmlAttribute spécifié ou null si aucun attribut correspondant n'est trouvé.
+ Nom de l'attribut à récupérer.Il s'agit d'un nom qualifié.Il est comparé à la propriété Name du nœud correspondant.
+
+
+ Retourne avec le nom local et l'URI de l'espace de noms spécifiés.
+ XmlAttribute spécifié ou null si aucun attribut correspondant n'est trouvé.
+ Nom local de l'attribut.
+ URI de l'espace de noms de l'attribut.
+
+
+ Retourne contenant la liste de tous les éléments descendants qui correspondent au spécifié.
+
+ contenant la liste de tous les nœuds correspondants.The list is empty if there are no matching nodes.
+ Balise de nom à mettre en correspondance.Il s'agit d'un nom qualifié.Il est comparé à la propriété Name du nœud correspondant.L'astérisque (*) est une valeur spéciale qui correspond à toutes les balises.
+
+
+ Retourne contenant une liste de tous les éléments descendants qui correspondent aux et spécifiés.
+
+ contenant la liste de tous les nœuds correspondants.The list is empty if there are no matching nodes.
+ Nom local à mettre en correspondance.L'astérisque (*) est une valeur spéciale qui correspond à toutes les balises.
+ URI de l'espace de noms à mettre en correspondance.
+
+
+ Détermine si le nœud actuel possède un attribut avec le nom spécifié.
+ true si le nœud actuel possède l'attribut spécifié ; sinon, false.
+ Nom de l'attribut à rechercher.Il s'agit d'un nom qualifié.Il est comparé à la propriété Name du nœud correspondant.
+
+
+ Détermine si le nœud actuel possède un attribut avec le nom local et l'URI de l'espace de noms spécifiés.
+ true si le nœud actuel possède l'attribut spécifié ; sinon, false.
+ Nom local de l'attribut à rechercher.
+ URI de l'espace de noms de l'attribut à rechercher.
+
+
+ Obtient une valeur boolean indiquant si le nœud actuel possède des attributs.
+ true si le nœud actuel possède des attributs ; sinon, false.
+
+
+ Obtient ou définit les valeurs concaténées du nœud et de tous ses enfants.
+ Valeurs concaténées du nœud et de tous ses enfants.
+
+
+ Obtient ou définit le balisage représentant uniquement les enfants de ce nœud.
+ Balisage des enfants de ce nœud.
+ Le XML spécifié lors de la définition de cette propriété est incorrect.
+
+
+ Obtient ou définit le format de balise de l'élément.
+ Retourne true si l'élément est sérialisé dans le format de balise abrégé « <item/> » ; false pour le format long « <item></item> ».Lors de la définition de cette propriété, si la valeur true est affectée, les enfants de l'élément sont supprimés et l'élément est sérialisé dans le format de balise abrégé.Si la valeur false est affectée, la valeur de la propriété est modifiée (que l'élément possède ou non un contenu) ; si l'élément est vide, il est sérialisé dans le format long.Cette propriété est une extension Microsoft du modèle DOM (Document Object Model).
+
+
+ Obtient le nom local du nœud actuel.
+ Nom du nœud actuel dont le préfixe est supprimé.Par exemple, LocalName correspond à book pour l'élément <bk:book>.
+
+
+ Obtient le nom qualifié du nœud.
+ Nom qualifié du nœud.Pour les nœuds XmlElement, il s'agit du nom de balise de l'élément.
+
+
+ Obtient l'URI de l'espace de noms de ce nœud.
+ Espace de noms d'URI du nœud.En l'absence d'URI d'espace de noms, cette propriété retourne String.Empty.
+
+
+ Obtient qui suit immédiatement cet élément.
+ XmlNode qui suit immédiatement cet élément.
+
+
+ Obtient le type du nœud actuel.
+ Type de nœud.Pour les nœuds XmlElement, cette valeur est XmlNodeType.Element.
+
+
+ Obtient le auquel ce nœud appartient.
+ XmlDocument auquel cet élément appartient.
+
+
+
+ Obtient ou définit le préfixe de l'espace de noms de ce nœud.
+ Préfixe de l'espace de noms de ce nœud.En l'absence de préfixe, cette propriété retourne String.Empty.
+ Ce nœud est en lecture seule.
+ Le préfixe spécifié contient un caractère non valide.Le préfixe spécifié est incorrect.Le NamespaceURI de ce nœud est null.Le préfixe spécifié est « xml » et le namespaceURI de ce nœud n'est pas « http://www.w3.org/XML/1998/namespace ».
+
+
+ Supprime tous les attributs et enfants spécifiés du nœud actuel.Les attributs par défaut ne sont pas supprimés.
+
+
+ Supprime tous les attributs spécifiés de l'élément.Les attributs par défaut ne sont pas supprimés.
+
+
+ Supprime un attribut par son nom.
+ Nom de l'attribut à supprimer. Il s'agit d'un nom qualifié.Il est comparé à la propriété Name du nœud correspondant.
+ Le nœud est en lecture seule.
+
+
+ Supprime un attribut avec le nom local et l'URI de l'espace de noms spécifiés. (Si l'attribut supprimé possède une valeur par défaut, il est immédiatement remplacé.)
+ Nom local de l'attribut à supprimer.
+ URI de l'espace de noms de l'attribut à supprimer.
+ Le nœud est en lecture seule.
+
+
+ Supprime le nœud d'attribut avec l'index spécifié de l'élément. (Si l'attribut supprimé possède une valeur par défaut, il est immédiatement remplacé.)
+ Nœud d'attribut supprimé ou null s'il n'existe aucun nœud à l'index spécifié.
+ Index du nœud à supprimer.Le premier nœud a l'index 0.
+
+
+ Supprime spécifié par le nom local et l'URI de l'espace de noms. (Si l'attribut supprimé possède une valeur par défaut, il est immédiatement remplacé.)
+ XmlAttribute supprimé ou null si XmlElement ne possède pas de nœud d'attribut correspondant.
+ Nom local de l'attribut.
+ URI de l'espace de noms de l'attribut.
+ Ce nœud est en lecture seule.
+
+
+ Supprime le spécifié.
+ Le XmlAttribute supprimé ou null si n'est pas un nœud d'attribut de XmlElement.
+ Nœud XmlAttribute à supprimer.Si l'attribut supprimé possède une valeur par défaut, il est immédiatement remplacé.
+ Ce nœud est en lecture seule.
+
+
+ Définit la valeur de l'attribut avec le nom spécifié.
+ Nom de l'attribut à créer ou à modifier.Il s'agit d'un nom qualifié.Si le nom contient un signe deux-points, il est analysé dans les composants de préfixe et de nom local.
+ Valeur à définir pour l'attribut.
+ Le nom spécifié contient un caractère non valide.
+ Le nœud est en lecture seule.
+
+
+ Définit la valeur de l'attribut avec le nom local et l'URI de l'espace de noms spécifiés.
+ Valeur de l'attribut
+ Nom local de l'attribut.
+ URI de l'espace de noms de l'attribut.
+ Valeur à définir pour l'attribut.
+
+
+ Ajoute le spécifié.
+ XmlAttribute à ajouter.
+ Nom local de l'attribut.
+ URI de l'espace de noms de l'attribut.
+
+
+ Ajoute le spécifié.
+ Si l'attribut remplace un attribut existant portant le même nom, l'ancien XmlAttribute est retourné ; sinon, null est retournée.
+ Nœud XmlAttribute à ajouter à la collection d'attributs de cet élément.
+
+ a été créé à partir d'un document différent de celui qui a créé ce nœud,ou bien ce nœud est en lecture seule.
+
+ est déjà l'attribut d'un autre objet XmlElement.Vous devez explicitement cloner les nœuds XmlAttribute pour les réutiliser dans d'autres objets XmlElement.
+
+
+ Enregistre les enfants du nœud dans le spécifié.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Enregistre le nœud actuel dans le spécifié.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Définit le contexte pour un jeu d'objets .
+
+
+ Initialise une nouvelle instance de la classe .
+
+
+ Initialise une nouvelle instance de la classe avec le spécifié.
+ Objet .
+
+
+ Crée un .
+ Nouvel objet XmlDocument.
+
+
+ Teste si l'implémentation DOM (Document Object Model) implémente une fonctionnalité spécifique.
+ true si la fonctionnalité est implémentée dans la version spécifiée ; sinon, false.Le tableau suivant montre les combinaisons en présence desquelles HasFeature retourne true.strFeature strVersion XML 1.0 XML 2.0
+ Nom de package de la fonctionnalité à tester.Ce nom ne respecte pas la casse.
+ Ceci est le numéro de version du nom de package à tester.Si la version n'est pas spécifiée (null), la prise en charge de n'importe quelle version de la fonctionnalité entraîne le retour de true par la méthode.
+
+
+ Obtient le nœud qui précède ou suit immédiatement ce nœud.
+
+
+ Obtient le nœud qui suit immédiatement ce nœud.
+
+ qui suit immédiatement ce nœud, ou null s'il n'y en a pas.
+
+
+ Obtient le nœud qui précède immédiatement ce nœud.
+
+ précédent ou null s'il n'y en a pas.
+
+
+ Représente une collection de nœuds accessibles par nom ou index.
+
+
+ Obtient le nombre de nœuds dans le XmlNamedNodeMap.
+ Nombre de nœuds.
+
+
+ Fournit une prise en charge de l'itération de style « foreach » sur la collection de nœuds de XmlNamedNodeMap.
+ Objet énumérateur.
+
+
+ Récupère spécifié par son nom.
+ XmlNode avec le nom spécifié ou null si aucun nœud correspondant n'est trouvé.
+ Nom qualifié du nœud à récupérer.Il est comparé à la propriété du nœud correspondant.
+
+
+ Récupère un nœud avec les et correspondants.
+
+ avec le nom local et l'URI de l'espace de noms correspondants ou null si aucun nœud correspondant n'est trouvé.
+ Nom local du nœud à récupérer.
+ URI (Uniform Resource Identifier) de l'espace de noms du nœud à récupérer.
+
+
+ Récupère le nœud à l'index spécifié dans XmlNamedNodeMap.
+
+ à l'index spécifié.Si est inférieur à 0, ou encore supérieur ou égal à la propriété , null est retournée.
+ Position de l'index du nœud à récupérer de XmlNamedNodeMap.L'index est de base zéro ; par conséquent, l'index du premier nœud est 0 et l'index du dernier nœud est -1.
+
+
+ Supprime le nœud de XmlNamedNodeMap.
+ XmlNode supprimé de XmlNamedNodeMap ou null si aucun nœud correspondant n'est trouvé.
+ Nom qualifié du nœud à supprimer.Ce nom est comparé à la propriété du nœud correspondant.
+
+
+ Supprime un nœud avec les et correspondants.
+
+ supprimé ou null si aucun nœud correspondant n'est trouvé.
+ Nom local du nœud à supprimer.
+ URI de l'espace de noms du nœud à supprimer.
+
+
+ Ajoute un à l'aide de sa propriété .
+ Si remplace un nœud existant portant le même nom, l'ancien nœud est retourné ; sinon, null est retournée.
+ XmlNode à stocker dans XmlNamedNodeMap.Si un nœud portant ce nom est déjà présent dans la table, il est remplacé par le nouveau nœud.
+
+ a été créé à partir d'un différent de celui qui a créé XmlNamedNodeMap, ou bien XmlNamedNodeMap est en lecture seule.
+
+
+ Représente un nœud unique dans le document XML.
+
+
+ Ajoute le nœud spécifié à la fin de la liste des nœuds enfants de ce nœud.
+ Nœud ajouté.
+ Le nœud à ajouter.Tout le contenu du nœud à ajouter est déplacé dans l'emplacement spécifié.
+ Le type de ce nœud n'autorise pas les nœuds enfants possédant le type de nœud . est un ancêtre de ce nœud.
+
+ a été créé à partir d'un document différent de celui qui a créé ce nœud.Ce nœud est en lecture seule.
+
+
+ Obtient un contenant les attributs du nœud.
+ XmlAttributeCollection contenant les attributs du nœud.Si le nœud est de type XmlNodeType.Element, les attributs du nœud sont retournés.Sinon, cette propriété retourne null.
+
+
+ Obtient l'URI de base du nœud actuel.
+ Emplacement à partir duquel le nœud a été chargé ou String.Empty si le nœud n'a pas d'URI de base.
+
+
+ Obtient tous les nœuds enfants du nœud.
+ Objet contenant tous les nœuds enfants du nœud.En l'absence de nœuds enfants, cette propriété retourne un vide.
+
+
+ Crée un doublon du nœud en cas de substitution dans une classe dérivée.
+ Nœud cloné.
+ true pour cloner de manière récursive le sous-arbre sous le nœud spécifié ; false pour cloner uniquement le nœud lui-même.
+ Appel de cette méthode sur un type de nœud ne pouvant pas être cloné.
+
+
+ Obtient le premier enfant du nœud.
+ Premier enfant du nœud.Si le nœud n'existe pas, null est retournée.
+
+
+ Obtient un énumérateur qui itère les nœuds enfants du nœud actuel.
+ Objet qui permet d'effectuer des itérations au sein des nœuds enfants du nœud en cours.
+
+
+ Recherche la déclaration xmlns la plus proche du préfixe spécifié, qui se trouve dans la portée du nœud actuel et retourne l'URI de l'espace de noms dans la déclaration.
+ URI de l'espace de noms du préfixe spécifié.
+ Préfixe dont vous recherchez l'URI d'espace de noms.
+
+
+ Recherche la déclaration xmlns la plus proche de l'URI de l'espace de noms spécifié, qui se trouve dans la portée du nœud actuel et retourne le préfixe défini dans cette déclaration.
+ Préfixe de l'URI de l'espace de noms spécifié.
+ URI de l'espace de noms dont vous recherchez le préfixe.
+
+
+ Obtient une valeur indiquant si ce nœud possède des nœuds enfants.
+ true si le nœud a des nœuds enfants ; sinon, false.
+
+
+ Obtient ou définit les valeurs concaténées du nœud et de tous ses nœuds enfants.
+ Valeurs concaténées du nœud et de tous ses nœuds enfants.
+
+
+ Obtient ou définit le balisage représentant uniquement les nœuds enfants de ce nœud.
+ Balisage des nœuds enfants de ce nœud.RemarqueInnerXml ne retourne pas les attributs par défaut.
+ Définition de cette propriété sur un nœud ne pouvant pas avoir de nœuds enfants.
+ Le XML spécifié lors de la définition de cette propriété est incorrect.
+
+
+ Insère le nœud spécifié immédiatement après le nœud de référence spécifié.
+ Nœud inséré.
+ XmlNode à insérer.
+ XmlNode qui est le nœud de référence. est placé après .
+ Le type de ce nœud n'autorise pas les nœuds enfants possédant le type de nœud . est un ancêtre de ce nœud.
+
+ a été créé à partir d'un document différent de celui qui a créé ce nœud. n'est pas un enfant de ce nœud.Ce nœud est en lecture seule.
+
+
+ Insère le nœud spécifié immédiatement avant le nœud de référence spécifié.
+ Nœud inséré.
+ XmlNode à insérer.
+ XmlNode qui est le nœud de référence. est placé avant ce nœud.
+ Le type du nœud actuel n'autorise pas les nœuds enfants possédant le type de nœud . est un ancêtre de ce nœud.
+
+ a été créé à partir d'un document différent de celui qui a créé ce nœud. n'est pas un enfant de ce nœud.Ce nœud est en lecture seule.
+
+
+ Obtient une valeur indiquant si le nœud est en lecture seule.
+ true si le nœud est en lecture seule ; sinon, false.
+
+
+ Obtient le premier élément enfant avec le spécifié.
+ Premier correspondant au nom spécifié.Elle retourne une référence nulle (Nothing en Visual Basic) si aucune correspondance n'est trouvée.
+ Nom qualifié de l'élément à récupérer
+
+
+ Obtient le premier élément enfant avec le et le spécifiés.
+ Premier ayant les et correspondants..Elle retourne une référence nulle (Nothing en Visual Basic) si aucune correspondance n'est trouvée.
+ Le nom local de l'élément.
+ L'URI de l'espace de noms de l'élément.
+
+
+ Obtient le dernier enfant du nœud.
+ Dernier enfant du nœud.Si le nœud n'existe pas, null est retournée.
+
+
+ Obtient le nom local du nœud en cas de substitution dans une classe dérivée.
+ Nom du nœud dont le préfixe est supprimé.Par exemple, LocalName correspond à book pour l'élément <bk:book>.Le nom retourné dépend du du nœud : Type Nom Attribut Le nom local de l'attribut. CDATA #cdata-section Commentaire #comment Document #document DocumentFragment #document-fragment DocumentType ; Nom du type de document. Élément Le nom local de l'élément. Entité Nom de l'entité. EntityReference Nom de l'entité référencée. Notation Nom de la notation. ProcessingInstruction ; Cible de l'instruction de traitement. Texte #text Whitespace #whitespace SignificantWhitespace #significant-whitespace XmlDeclaration #xml-declaration
+
+
+ Obtient le nom qualifié du nœud, en cas de substitution dans une classe dérivée.
+ Nom qualifié du nœud.Le nom retourné dépend du du nœud :Type Nom Attribut Nom qualifié de l'attribut. CDATA #cdata-section Commentaire #comment Document #document DocumentFragment #document-fragment DocumentType ; Nom du type de document. Élément Nom qualifié de l'élément. Entité Nom de l'entité. EntityReference Nom de l'entité référencée. Notation Nom de la notation. ProcessingInstruction ; Cible de l'instruction de traitement. Texte #text Whitespace #whitespace SignificantWhitespace #significant-whitespace XmlDeclaration #xml-declaration
+
+
+ Obtient l'URI de l'espace de noms de ce nœud.
+ Espace de noms d'URI du nœud.En l'absence d'URI d'espace de noms, cette propriété retourne String.Empty.
+
+
+ Obtient le nœud qui suit immédiatement ce nœud.
+ XmlNode suivant.Si le nœud suivant n'existe pas, null est retournée.
+
+
+ Obtient le type du nœud actuel, en cas de substitution dans une classe dérivée.
+ Une des valeurs de .
+
+
+ Place tous les nœuds XmlText dans la profondeur du sous-arbre sous XmlNode dans un formulaire « normal », où seul le balisage (c'est-à-dire les balises, les commentaires, les instructions de traitement, les sections CDATA et les références d'entité) sépare les nœuds XmlText ; en d'autres termes, il n'existe pas de nœuds XmlText adjacents.
+
+
+ Obtient la marque contenant ce nœud et tous ses nœuds enfants.
+ Balisage contenant ce nœud et tous ses nœuds enfants.RemarqueOuterXml ne retourne pas les attributs par défaut.
+
+
+ Obtient le auquel ce nœud appartient.
+
+ auquel ce nœud appartient.Si le nœud est (NodeType est égal à XmlNodeType.Document), cette propriété retourne null.
+
+
+ Obtient le parent de ce nœud (pour les nœuds qui peuvent avoir des parents).
+ XmlNode représentant le parent du nœud actuel.Si un nœud vient d'être créé mais qu'il n'a pas encore été ajouté à l'arborescence, ou s'il a été supprimé de celle-ci, le parent est null.Pour tous les autres nœuds, la valeur retournée dépend du du nœud.Le tableau suivant décrit les différentes valeurs de retour possibles pour la propriété ParentNode.NodeType Valeur de retour de ParentNode Attribute, Document, DocumentFragment, Entity et Notation Retourne null ; ces nœuds n'ont pas de parents. CDATA Retourne l'élément ou la référence d'entité contenant la section CDATA. Commentaire Retourne l'élément, la référence d'entité, le type de document ou le document contenant le commentaire. DocumentType ; Retourne le nœud du document. Élément Retourne le nœud parent de l'élément.Si l'élément est le nœud racine de l'arborescence, le parent est le nœud du document.EntityReference Retourne l'élément, l'attribut ou la référence d'entité contenant la référence d'entité. ProcessingInstruction ; Retourne le document, l'élément, le type de document ou la référence d'entité contenant l'instruction de traitement. Texte Retourne l'élément parent, l'attribut ou la référence d'entité contenant le nœud de texte.
+
+
+ Obtient ou définit le préfixe de l'espace de noms de ce nœud.
+ Préfixe de l'espace de noms de ce nœud.Par exemple, Prefix équivaut à bk pour l'élément <bk:book>.En l'absence de préfixe, cette propriété retourne String.Empty.
+ Ce nœud est en lecture seule.
+ Le préfixe spécifié contient un caractère non valide.Le préfixe spécifié est incorrect.Le préfixe spécifié est "xml" et l'URI de l'espace de noms de ce nœud diffère de "http://www.w3.org/XML/1998/namespace".Le nœud est un attribut, le préfixe spécifié est "xmlns" et l'URI de l'espace de noms de ce nœud diffère de "http://www.w3.org/2000/xmlns/".Ce nœud est un attribut et le qualifiedName de ce nœud est "xmlns".
+
+
+ Ajoute le nœud spécifié au début de la liste des nœuds enfants de ce nœud.
+ Nœud ajouté.
+ Le nœud à ajouter.Tout le contenu du nœud à ajouter est déplacé dans l'emplacement spécifié.
+ Le type de ce nœud n'autorise pas les nœuds enfants possédant le type de nœud . est un ancêtre de ce nœud.
+
+ a été créé à partir d'un document différent de celui qui a créé ce nœud.Ce nœud est en lecture seule.
+
+
+ Obtient le nœud qui précède immédiatement ce nœud.
+ XmlNode précédent.Si le nœud précédent n'existe pas, null est retournée.
+
+
+ Obtient le nœud de texte qui précède immédiatement ce nœud.
+ retourne ;
+
+
+ Supprime tous les nœuds enfants et/ou d'attributs du nœud actuel.
+
+
+ Supprime le nœud enfant spécifié.
+ Nœud supprimé.
+ Nœud supprimé.
+
+ n'est pas un enfant de ce nœud.ou bien ce nœud est en lecture seule.
+
+
+ Remplace le nœud enfant par le nœud .
+ Nœud remplacé.
+ Nouveau nœud à insérer dans la liste enfant.
+ Nœud remplacé dans la liste.
+ Le type de ce nœud n'autorise pas les nœuds enfants possédant le type de nœud . est un ancêtre de ce nœud.
+
+ a été créé à partir d'un document différent de celui qui a créé ce nœud.Ce nœud est en lecture seule. n'est pas un enfant de ce nœud.
+
+
+ Teste si l'implémentation DOM implémente une fonctionnalité spécifique.
+ true si la fonctionnalité est implémentée dans la version spécifiée ; sinon, false.Le tableau suivant décrit les combinaisons qui retournent true.Fonctionnalité Version XML 1.0 XML 2.0
+ Nom de package de la fonctionnalité à tester.Ce nom ne respecte pas la casse.
+ Numéro de version du nom de package à tester.Si la version n'est pas spécifiée (null), la prise en charge de n'importe quelle version de la fonctionnalité entraîne le retour de la valeur true par la méthode.
+
+
+ Pour obtenir une description de ce membre, consultez .
+ Retourne un énumérateur pour la collection.
+
+
+ Obtient ou définit la valeur du nœud.
+ La valeur retournée dépend du du nœud : Type Valeur Attribut Valeur de l'attribut. CDATASection. Contenu de la section CDATA. Commentaire Contenu du commentaire. Document null. DocumentFragment null. DocumentType ; null. Élément null.Vous pouvez utiliser les propriétés ou pour accéder à la valeur du nœud d'élément.Entité null. EntityReference null. Notation null. ProcessingInstruction ; Contenu entier, à l'exclusion de la cible. Texte Contenu du nœud de texte. SignificantWhitespace Espaces blancs.Un espace blanc peut se composer de plusieurs espaces, retours chariots, changements de ligne ou tabulations.Whitespace Espaces blancs.Un espace blanc peut se composer de plusieurs espaces, retours chariots, changements de ligne ou tabulations.XmlDeclaration Contenu de la déclaration (c'est-à-dire tout ce qui se situe entre <?xml et ?>).
+ Définition de la valeur d'un nœud qui est en lecture seule.
+ Définition de la valeur d'un nœud qui n'est pas censé posséder de valeur (par exemple un nœud Element).
+
+
+ Enregistre tous les nœuds enfants du nœud dans le spécifié.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Enregistre le nœud actuel dans le spécifié, en cas de substitution dans une classe dérivée.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Spécifie le type de modification du nœud.
+
+
+ Une valeur de nœud est modifiée.
+
+
+ Un nœud est inséré dans l'arborescence.
+
+
+ Un nœud est supprimé de l'arborescence.
+
+
+ Fournit des données pour les événements , , , , et .
+
+
+ Initialise une nouvelle instance de la classe .
+
+ qui a déclenché l'événement.
+ Le parent ancien du qui a généré l'événement.
+ Le nouveau parent du qui a généré l'événement.
+ L'ancienne valeur du qui a généré l'événement.
+ La nouvelle valeur du qui a généré l'événement.
+
+ .
+
+
+ Obtient une valeur indiquant le type d'événement de modification du nœud qui se produit.
+ Valeur XmlNodeChangedAction décrivant l'événement de modification du nœud.Valeur XmlNodeChangedAction Description Insert Un nœud a été ou sera inséré. Enlever Un nœud a été ou sera supprimé. Modification Un nœud a été ou sera modifié. RemarqueLa valeur Action ne distingue pas le moment de l'exécution de l'action (avant ou après).Vous pouvez créer des gestionnaires d'événements distincts pour gérer les deux instances.
+
+
+ Obtient la valeur de une fois l'opération terminée.
+ Valeur de ParentNode une fois l'opération terminée.Cette propriété retourne null si le nœud est supprimé.RemarquePour les nœuds d'attribut, cette propriété retourne .
+
+
+ Obtient la nouvelle valeur du nœud.
+ Nouvelle valeur du nœud.Cette propriété retourne null si le nœud n'est ni un attribut ni un nœud de texte, ou si le nœud est supprimé.En cas d'appel dans un événement , NewValue retourne la valeur du nœud si la modification réussit.En cas d'appel dans un événement , NewValue retourne la valeur actuelle du nœud.
+
+
+ Obtient qui est ajouté, supprimé ou modifié.
+ XmlNode ajouté, supprimé ou modifié ; cette propriété ne retourne jamais null.
+
+
+ Obtient la valeur de avant le début de l'opération.
+ Valeur de ParentNode avant le début de l'opération.Cette propriété retourne null si le nœud n'a pas de parent.RemarquePour les nœuds d'attribut, cette propriété retourne .
+
+
+ Obtient la valeur d'origine du nœud.
+ Valeur d'origine du nœud.Cette propriété retourne null si le nœud n'est ni un attribut ni un nœud de texte, ou si le nœud est en cours d'insertion.En cas d'appel dans un événement , OldValue retourne la valeur actuelle du nœud qui sera remplacée si la modification réussit.En cas d'appel dans un événement , OldValue retourne la valeur du nœud avant la modification.
+
+
+ Représente la méthode qui gère les événements , , , , et .
+ Source de l'événement.
+
+ qui contient les données d'événement.
+
+
+ Représente une collection ordonnée de nœuds.
+
+
+ Initialise une nouvelle instance de la classe .
+
+
+ Obtient le nombre de nœuds dans XmlNodeList.
+ Nombre de nœuds dans le XmlNodeList.
+
+
+ Obtient un énumérateur qui itère au sein de la collection de nœuds.
+ Énumérateur utilisé pour itérer au sein de la collection de nœuds.
+
+
+ Récupère un nœud à l'index spécifié.
+
+ avec l'index spécifié dans la collection.Si est supérieur ou égal au nombre de nœuds de la liste, cet état retourne null.
+ Index de base zéro dans la liste de nœuds.
+
+
+ Obtient un nœud à l'index spécifié.
+
+ avec l'index spécifié dans la collection.Si l'index est supérieur ou égal au nombre de nœuds de la liste, cet état retourne null.
+ Index de base zéro dans la liste de nœuds.
+
+
+ Supprime les ressources dans la liste de nœuds en privé.
+
+
+ Libère toutes les ressources utilisées par la classe .
+
+
+ Représente une instruction de traitement, définie par le code XML pour conserver les informations spécifiques au processeur dans le texte du document.
+
+
+ Initialise une nouvelle instance de la classe .
+ Cible de l'instruction de traitement ; consultez la propriété .
+ Contenu de l'instruction ; consultez la propriété .
+ Document XML parent.
+
+
+ Crée un doublon de ce nœud.
+ Doublon du nœud.
+ true pour cloner de manière récursive le sous-arbre sous le nœud spécifié ; false pour cloner uniquement le nœud lui-même.
+
+
+ Obtient ou définit le contenu de l'instruction de traitement, à l'exclusion de la cible.
+ Contenu de l'instruction de traitement, à l'exclusion de la cible.
+
+
+ Obtient ou définit les valeurs concaténées du nœud et de tous ses enfants.
+ Valeurs concaténées du nœud et de tous ses enfants.
+
+
+ Obtient le nom local du nœud.
+ Pour les nœuds d'instruction de traitement, cette propriété retourne la cible de l'instruction de traitement.
+
+
+ Obtient le nom qualifié du nœud.
+ Pour les nœuds d'instruction de traitement, cette propriété retourne la cible de l'instruction de traitement.
+
+
+ Obtient le type du nœud actuel.
+ Pour les nœuds XmlProcessingInstruction, cette valeur est XmlNodeType.ProcessingInstruction.
+
+
+ Obtient la cible de l'instruction de traitement.
+ Cible de l'instruction de traitement.
+
+
+ Obtient ou définit la valeur du nœud.
+ Intégralité du contenu de l'instruction de traitement, à l'exclusion de la cible.
+ Node is read-only.
+
+
+ Enregistre les enfants du nœud dans le spécifié.Les nœuds ProcessingInstruction n'ont pas d'enfants, par conséquent, cette méthode est sans effet.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Enregistre le nœud dans le spécifié.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Représente un espace blanc entre le balisage d'un nœud de contenu mixte ou un espace blanc dans une portée xml:space= 'preserve'.Ceci est quelquefois appelé aussi espace blanc significatif.
+
+
+ Initialise une nouvelle instance de la classe .
+ Caractères d'espace blanc du nœud.
+ Objet .
+
+
+ Crée un doublon de ce nœud.
+ Nœud cloné.
+ true pour cloner de manière récursive le sous-arbre sous le nœud spécifié ; false pour cloner uniquement le nœud lui-même.Pour les nœuds d'espace blanc significatif, le nœud cloné comporte toujours la valeur des données, quelle que soit la valeur du paramètre.
+
+
+ Obtient le nom local du nœud.
+ Pour les nœuds XmlSignificantWhitespace, cette propriété retourne #significant-whitespace.
+
+
+ Obtient le nom qualifié du nœud.
+ Pour les nœuds XmlSignificantWhitespace, cette propriété retourne #significant-whitespace.
+
+
+ Obtient le type du nœud actuel.
+ Pour les nœuds XmlSignificantWhitespace, cette valeur est XmlNodeType.SignificantWhitespace.
+
+
+ Obtient le parent du nœud actuel.
+ Nœud parent du nœud actuel.
+
+
+ Obtient le nœud de texte qui précède immédiatement ce nœud.
+ retourne ;
+
+
+ Obtient ou définit la valeur du nœud.
+ Caractères d'espace blanc trouvés dans le nœud.
+ Affectation d'espaces blancs non valides à Value.
+
+
+ Enregistre les enfants du nœud dans le spécifié.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Enregistre le nœud dans le spécifié.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Représente le contenu texte d'un élément ou attribut.
+
+
+ Initialise une nouvelle instance de la classe .
+ Contenu du nœud ; consultez la propriété .
+ Document XML parent.
+
+
+ Crée un doublon de ce nœud.
+ Nœud cloné.
+ true pour cloner de manière récursive le sous-arbre sous le nœud spécifié ; false pour cloner uniquement le nœud lui-même.
+
+
+ Obtient le nom local du nœud.
+ Pour les nœuds de texte, cette propriété retourne #text.
+
+
+ Obtient le nom qualifié du nœud.
+ Pour les nœuds de texte, cette propriété retourne #text.
+
+
+ Obtient le type du nœud actuel.
+ Pour les nœuds de texte, cette valeur est XmlNodeType.Text.
+
+
+
+ Obtient le nœud de texte qui précède immédiatement ce nœud.
+ retourne ;
+
+
+ Fractionne le nœud en deux nœuds frères au niveau de l'offset spécifié ; ils sont conservés tous les deux dans l'arborescence.
+ Nouveau nœud.
+ Offset au niveau duquel diviser le nœud.
+
+
+ Obtient ou définit la valeur du nœud.
+ Contenu du nœud de texte.
+
+
+ Enregistre les enfants du nœud dans le spécifié.Les nœuds XmlText n'ayant pas d'enfants, cette méthode n'a pas d'effet.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Enregistre le nœud dans le spécifié.
+ XmlWriter dans lequel vous voulez enregistrer.
+
+
+ Représente un espace blanc dans un contenu d'élément.
+
+
+ Initialise une nouvelle instance de la classe .
+ Caractères d'espace blanc du nœud.
+ Objet .
+
+
+ Crée un doublon de ce nœud.
+ Nœud cloné.
+ true pour cloner de manière récursive le sous-arbre sous le nœud spécifié ; false pour cloner uniquement le nœud lui-même.Pour les nœuds d'espace blanc, le nœud cloné comporte toujours la valeur des données, quelle que soit la valeur du paramètre.
+
+
+ Obtient le nom local du nœud.
+ Pour les nœuds XmlWhitespace, cette propriété retourne #whitespace.
+
+
+ Obtient le nom qualifié du nœud.
+ Pour les nœuds XmlWhitespace, cette propriété retourne #whitespace.
+
+
+ Obtient le type du nœud.
+ Pour les nœuds XmlWhitespace, la valeur est .
+
+
+ Obtient le parent du nœud actuel.
+ Nœud parent du nœud actuel.
+
+
+ Obtient le nœud de texte qui précède immédiatement ce nœud.
+ retourne ;
+
+
+ Obtient ou définit la valeur du nœud.
+ Caractères d'espace blanc trouvés dans le nœud.
+ Affectation d'espaces blancs non valides à .
+
+
+ Enregistre les enfants du nœud dans le spécifié.
+
+ dans lequel vous voulez enregistrer.
+
+
+ Enregistre le nœud dans le spécifié.
+
+ dans lequel vous voulez enregistrer.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/it/System.Xml.XmlDocument.xml b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/it/System.Xml.XmlDocument.xml
new file mode 100644
index 0000000..5d2cffe
--- /dev/null
+++ b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/it/System.Xml.XmlDocument.xml
@@ -0,0 +1,1441 @@
+
+
+
+ System.Xml.XmlDocument
+
+
+
+ Rappresenta un attributo.I valori validi e predefiniti per l'attributo sono definiti in una DTD (Document Type Definition) o in uno schema.
+
+
+ Inizializza una nuova istanza della classe .
+ Prefisso dello spazio dei nomi.
+ Nome locale dell'attributo.
+ Uniform Resource Identifier (URI) dello spazio dei nomi.
+ Documento XML padre.
+
+
+ Aggiunge il nodo specificato alla fine dell'elenco dei nodi figlio del nodo corrente.
+ Oggetto aggiunto.
+ Oggetto da aggiungere.
+ Per questo tipo di nodi non sono consentiti elementi figlio di tipo . è un predecessore di questo nodo.
+ Il nodo è stato creato da un documento diverso da quello che ha creato il nodo corrente.Il nodo è di sola lettura.
+
+
+ Ottiene l'URI (Uniform Resource Identifier) di base del nodo.
+ Percorso da cui è stato caricato il nodo o String.Empty se il nodo non dispone di un URI di base.I nodi dell'attributo hanno lo stesso URI di base dell'elemento proprietario.Se il nodo di un attributo non dispone di un elemento proprietario, BaseURI restituirà String.Empty.
+
+
+ Crea un duplicato del nodo.
+ Nodo duplicato.
+ true per duplicare in modo ricorsivo il sottoalbero del nodo specificato, false per duplicare solo il nodo
+
+
+ Imposta i valori concatenati del nodo e di tutti i relativi elementi figlio.
+ Valori concatenati del nodo e di tutti i relativi elementi figlio.In caso di nodi attributo, questa proprietà ha la stessa funzionalità della proprietà .
+
+
+ Imposta il valore dell'attributo.
+ Valore dell'attributo.
+ Il formato del file XML specificato al momento dell'impostazione della proprietà non è corretto.
+
+
+ Inserisce il nodo specificato immediatamente dopo il nodo dei riferimenti indicato.
+ Oggetto inserito.
+ Oggetto da inserire.
+ Oggetto che rappresenta il nodo dei riferimenti.Il nodo specificato in è posizionato dopo il nodo .
+ Per questo tipo di nodi non sono consentiti elementi figlio di tipo . è un predecessore di questo nodo.
+ Il nodo è stato creato da un documento diverso da quello che ha creato il nodo corrente. non è un nodo figlio del nodo correnteIl nodo è di sola lettura.
+
+
+ Inserisce il nodo specificato immediatamente prima del nodo dei riferimenti indicato.
+ Oggetto inserito.
+ Oggetto da inserire.
+ Oggetto che rappresenta il nodo dei riferimenti.Il nodo specificato in viene posizionato prima del nodo corrente.
+ Per questo tipo di nodo non sono consentiti nodi figlio di tipo . è un predecessore di questo nodo.
+ Il nodo è stato creato da un documento diverso da quello che ha creato il nodo corrente. non è un nodo figlio del nodo correnteIl nodo è di sola lettura.
+
+
+ Ottiene il nome locale del nodo.
+ Nome del nodo attributo senza prefisso.Nell'esempio <book bk:genre= "'novel"'> descritto di seguito, il valore di LocalName per l'attributo è genre.
+
+
+ Ottiene il nome completo del nodo.
+ Nome completo del nodo attributo.
+
+
+ Ottiene l’URI dello spazio dei nomi del nodo.
+ URI dello spazio dei nomi del nodo.Se all'attributo non viene assegnato uno spazio dei nomi in modo esplicito, la proprietà restituirà String.Empty.
+
+
+ Ottiene il tipo di nodo corrente.
+ Il tipo dei nodi XmlAttribute è XmlNodeType.Attribute.
+
+
+ Ottiene l'oggetto a cui appartiene il nodo.
+ Documento XML a cui appartiene il nodo.
+
+
+ Ottiene l'oggetto a cui appartiene l'attributo.
+ XmlElement a cui appartiene l'attributo o null se l'attributo non fa parte di un XmlElement .
+
+
+ Ottiene l'elemento padre del nodo.Per i nodi XmlAttribute, la proprietà restituisce sempre null.
+ Per i nodi XmlAttribute, la proprietà restituisce sempre null.
+
+
+ Ottiene o imposta il prefisso dello spazio dei nomi del nodo.
+ Prefisso dello spazio dei nomi del nodo.Se non è presente un prefisso, questa proprietà restituirà String.Empty.
+ Il nodo è di sola lettura.
+ Il prefisso specificato contiene un carattere non valido.Il prefisso specificato non è corretto.L'URI dello spazio dei nomi del nodo è null.Il prefisso specificato è "xml" e l'URI dello spazio dei nomi del nodo è diverso da "http://www.w3.org/XML/1998/namespace".Il nodo è un attributo, il prefisso specificato è "xmlns" e l'URI dello spazio dei nomi è diverso da "http://www.w3.org/2000/xmlns/" (in lingua inglese).Il nodo è un attributo e il valore qualifiedName del nome è "xmlns" [Namespaces].
+
+
+ Aggiunge il nodo specificato all'inizio dell'elenco dei nodi figlio del nodo corrente.
+ Oggetto aggiunto.
+ Oggetto da aggiungere.Se si tratta di un oggetto , l'intero contenuto del frammento del documento viene spostato nell'elenco degli elementi figlio del nodo.
+ Per questo tipo di nodi non sono consentiti elementi figlio di tipo . è un predecessore di questo nodo.
+ Il nodo è stato creato da un documento diverso da quello che ha creato il nodo corrente.Il nodo è di sola lettura.
+
+
+ Rimuove il nodo figlio specificato.
+ Oggetto rimosso.
+ Oggetto da rimuovere.
+
+ non è un nodo figlio del nodo correnteoppure il nodo è di sola lettura.
+
+
+ Sostituisce il nodo figlio specificato con il nuovo nodo figlio specificato.
+ Oggetto sostituito.
+ Nuovo figlio.
+ Oggetto da sostituire.
+ Per questo tipo di nodi non sono consentiti elementi figlio di tipo . è un predecessore di questo nodo.
+ Il nodo è stato creato da un documento diverso da quello che ha creato il nodo corrente.Il nodo è di sola lettura. non è un nodo figlio del nodo corrente
+
+
+ Ottiene un valore che indica se il valore dell'attributo è stato impostato in modo esplicito.
+ true se all'attributo è stato assegnato in modo esplicito un valore nel documento dell'istanza originale, in caso contrario false.Il valore false indica che il valore dell'attributo proviene dalla DTD.
+
+
+ Ottiene o imposta il valore del nodo.
+ Il valore restituito dipende dalla proprietà del nodo.Per i nodi XmlAttribute, questa proprietà è il valore dell'attributo.
+ Il nodo è di sola lettura e viene chiamata un'operazione di impostazione.
+
+
+ Salva tutti gli elementi figlio del nodo nell'oggetto specificato.
+ XmlWriter nel quale si desidera eseguire il salvataggio.
+
+
+ Salva il nodo nell' specificato.
+ XmlWriter nel quale si desidera eseguire il salvataggio.
+
+
+ Rappresenta un insieme di attributi accessibili per nome o per indice.
+
+
+ Inserisce l'attributo specificato come ultimo nodo nell'insieme.
+ XmlAttribute da aggiungere all'insieme.
+ Oggetto da inserire.
+
+ è stato creato da un documento diverso da quello che ha creato questo insieme.
+
+
+ Copia tutti gli oggetti da questo insieme nella matrice specificata.
+ Matrice che rappresenta la destinazione degli oggetti copiati dall'insieme.
+ Indice della matrice da cui ha inizio la copia.
+
+
+ Inserisce l'attributo specificato immediatamente dopo l'attributo di riferimento indicato.
+ L'oggetto XmlAttribute da inserire nell'insieme.
+ Oggetto da inserire.
+
+ che rappresenta l'attributo dei riferimenti.Il nodo è posizionato dopo il nodo .
+
+ è stato creato da un documento diverso da quello che ha creato questo insiemeoppure non è un membro di questo insieme.
+
+
+ Inserisce l'attributo specificato immediatamente prima dell'attributo di riferimento indicato.
+ L'oggetto XmlAttribute da inserire nell'insieme.
+ Oggetto da inserire.
+
+ che rappresenta l'attributo dei riferimenti.L'oggetto viene collocato prima di .
+
+ è stato creato da un documento diverso da quello che ha creato questo insiemeoppure non è un membro di questo insieme.
+
+
+ Ottiene l'attributo con l'indice specificato.
+
+ in corrispondenza dell'indice specificato.
+ Indice dell'attributo.
+ L'indice passato è esterno all'intervallo.
+
+
+ Ottiene l'attributo con il nome specificato.
+ Oggetto con il nome specificato.Se l'attributo è inesistente, questa proprietà restituisce null.
+ Nome completo dell'attributo.
+
+
+ Ottiene l'attributo con il nome locale specificato e l'URI (Uniform Resource Identifier) dello spazio dei nomi.
+
+ con il nome locale e l'URI dello spazio dei nomi specificati.Se l'attributo è inesistente, questa proprietà restituisce null.
+ Nome locale dell'attributo.
+ URI dello spazio dei nomi dell'attributo.
+
+
+ Inserisce l'attributo specificato come primo nodo nell'insieme.
+ XmlAttribute aggiunto all'insieme.
+ Oggetto da inserire.
+
+
+ Rimuove l'attributo specificato dall'insieme.
+ Nodo rimosso oppure null, se non viene trovato nell'insieme.
+ La classe da rimuovere.
+
+
+ Rimuove tutti gli attributi dall'insieme.
+
+
+ Rimuove l'attributo che corrisponde all'indice specificato dall'insieme.
+ Restituisce null se non esistono attributi in corrispondenza dell'indice specificato.
+ Indice del nodo da rimuovere.Il primo nodo ha indice 0.
+
+
+ Aggiunge un utilizzando la relativa proprietà .
+ Se sostituisce un nodo esistente con lo stesso nome, viene restituito il nodo precedente. In caso contrario, viene restituito.
+ Nodo di attributi da memorizzare nell'insieme.Il nodo sarà successivamente accessibile utilizzando il nome del nodo.Se un nodo con tale nome è già presente nell'insieme, viene sostituito dal nuovo nodo. In caso contrario, il nodo viene aggiunto alla fine dell'insieme.
+
+ è stato creato da un diverso da quello che ha creato questo insieme.Questo insieme XmlAttributeCollection è di sola lettura.
+
+ è un oggetto che rappresenta già un attributo di un altro oggetto .Per riutilizzare gli attributi in altri elementi, è necessario duplicare gli oggetti XmlAttribute che si intende riutilizzare.
+
+
+ Per una descrizione di questo membro, vedere .
+ Matrice che rappresenta la destinazione degli oggetti copiati dall'insieme.
+ Indice della matrice da cui ha inizio la copia.
+
+
+ Per una descrizione di questo membro, vedere .
+ Restituisce un int contenente il conteggio degli attributi.
+
+
+ Per una descrizione di questo membro, vedere .
+ Restituisce true se l'insieme è sincronizzato.
+
+
+ Per una descrizione di questo membro, vedere .
+ Restituisce che rappresenta la radice dell'insieme.
+
+
+ Rappresenta una sezione CDATA.
+
+
+ Inizializza una nuova istanza della classe .
+
+ che contiene dati di tipo carattere.
+ Oggetto .
+
+
+ Crea un duplicato del nodo.
+ Nodo clonato.
+ true per clonare in modo ricorsivo il sottoalbero del nodo specificato; false per clonare solo il nodo.Dal momento che i nodi CDATA non dispongono di elementi figlio, indipendentemente dall'impostazione dei parametri, il nodo duplicato includerà sempre il contenuto dei dati.
+
+
+ Ottiene il nome locale del nodo.
+ Per i nodi CDATA, il nome locale è #cdata-section.
+
+
+ Ottiene il nome completo del nodo.
+ Per i nodi CDATA, il nome è #cdata-section.
+
+
+ Ottiene il tipo di nodo corrente.
+ Tipo di nodo.Nel caso di nodi CDATA, il valore è XmlNodeType.CDATA.
+
+
+
+ Ottiene il nodo di testo immediatamente precedente a quello corrente.
+ Restituisce .
+
+
+ Salva gli elementi figlio del nodo nell'oggetto specificato.
+ Oggetto XmlWriter in cui salvare.
+
+
+ Salva il nodo nell'oggetto specificato.
+ Oggetto XmlWriter in cui salvare.
+
+
+ Fornisce metodi di modifica del testo utilizzati da diverse classi.
+
+
+ Inizializza una nuova istanza della classe .
+ Stringa contenente dati di tipo carattere da aggiungere al documento.
+
+ per contenere dati di tipo carattere.
+
+
+ Aggiunge la stringa specificata alla fine dei dati di tipo carattere del nodo.
+ Stringa da inserire in quella esistente.
+
+
+ Contiene i dati del nodo.
+ Dati del nodo.
+
+
+ Rimuove un intervallo di caratteri dal nodo.
+ Posizione all'interno della stringa da cui iniziare l'eliminazione.
+ Numero di caratteri da eliminare.
+
+
+ Inserisce la stringa specificata nell'offset di caratteri indicato.
+ Posizione all'interno della stringa per inserire i dati della stringa specificati.
+ Dati della stringa da inserire nella stringa esistente.
+
+
+ Ottiene la lunghezza dei dati in caratteri.
+ Lunghezza in caratteri della stringa nella proprietà .La lunghezza può essere zero, vale a dire i nodi CharacterData possono essere vuoti.
+
+
+ Sostituisce il numero di caratteri specificato partendo dall'offset indicato con la stringa specificata.
+ Posizione all'interno della stringa da cui iniziare la sostituzione.
+ Numero di caratteri da sostituire.
+ Nuovi dati che sostituiscono i dati precedenti della stringa.
+
+
+ Recupera una sottostringa della stringa intera dall'intervallo specificato.
+ Sottostringa corrispondente all'intervallo specificato.
+ Posizione all'interno della stringa da cui iniziare il recupero.Un offset di zero indica che il punto iniziale è all'inizio dei dati.
+ Numero di caratteri da recuperare.
+
+
+ Ottiene o imposta il valore del nodo.
+ Valore del nodo.
+ Il nodo è di sola lettura.
+
+
+ Rappresenta il contenuto di un commento XML.
+
+
+ Inizializza una nuova istanza della classe .
+ Contenuto dell'elemento di commento.
+ Documento XML padre.
+
+
+ Crea un duplicato del nodo.
+ Nodo duplicato.
+ true per clonare in modo ricorsivo il sottoalbero del nodo specificato, false per clonare solo il nodo.Dal momento che i nodi di commento non dispongono di elementi figlio, il nodo duplicato includerà sempre il contenuto dei dati indipendentemente dall'impostazione dei parametri.
+
+
+ Ottiene il nome locale del nodo.
+ Nel caso di nodi di commento, il valore è #comment.
+
+
+ Ottiene il nome completo del nodo.
+ Nel caso di nodi di commento, il valore è #comment.
+
+
+ Ottiene il tipo di nodo corrente.
+ Nel caso di nodi di commento, il valore è XmlNodeType.Comment.
+
+
+ Salva tutti gli elementi figlio del nodo nell'oggetto specificato.Poiché i nodi di commento non contengono nodi figlio, questo metodo non ha alcun effetto.
+ XmlWriter nel quale si desidera eseguire il salvataggio.
+
+
+ Salva il nodo nell' specificato.
+ XmlWriter nel quale si desidera eseguire il salvataggio.
+
+
+ Rappresenta il nodo della dichiarazione XML: <?xml version='1.0' ...?>.
+
+
+ Inizializza una nuova istanza della classe .
+ Versione XML.Vedere la proprietà .
+ Schema di codifica. Vedere la proprietà .
+ Indica se il documento XML dipende da un DTD esterno. Vedere la proprietà .
+ Documento XML padre.
+
+
+ Crea un duplicato del nodo.
+ Nodo duplicato.
+ true per clonare in modo ricorsivo il sottoalbero del nodo specificato, false per clonare solo il nodo.Dal momento che i nodi XmlDeclaration non dispongono di elementi figlio, il nodo duplicato includerà sempre il contenuto dei dati indipendentemente dall'impostazione dei parametri.
+
+
+ Ottiene o imposta il livello di codifica del documento XML.
+ Nome della codifica di caratteri valida.Di seguito sono elencati i nomi delle codifiche di caratteri più comunemente supportate in XML:Categoria Nomi di codifica Unicode UTF-8, UTF-16 ISO 10646 ISO-10646-UCS-2, ISO-10646-UCS-4 ISO 8859 ISO-8859-n (dove "n" è una cifra da 1 a 9) JIS X-0208-1997 ISO-2022-JP, Shift_JIS, EUC-JP Questo valore è facoltativo.Se non viene impostato alcun valore, la proprietà restituirà String.Empty.Se non viene incluso alcun attributo di codifica, si presuppone la codifica UTF-8 quando il documento viene scritto o salvato.
+
+
+ Ottiene o imposta i valori concatenati di XmlDeclaration.
+ Valori concatenati di XmlDeclaration, ossia tutti i valori compresi tra <?xml e ?>.
+
+
+ Ottiene il nome locale del nodo.
+ Nel caso di nodi XmlDeclaration, il nome locale è xml.
+
+
+ Ottiene il nome completo del nodo.
+ Nel caso di nodi XmlDeclaration, il nome è xml.
+
+
+ Ottiene il tipo di nodo corrente.
+ Nel caso di nodi XmlDeclaration, il valore è XmlNodeType.XmlDeclaration.
+
+
+ Ottiene o imposta il valore dell'attributo autonomo.
+ I valori validi sono yes se tutte le dichiarazioni di entità richieste dal documento XML sono contenute all'interno del documento, no se è richiesta una DTD (Document Type Definition) esterna.Se nella dichiarazione XML non è presente alcun attributo autonomo, la proprietà restituisce String.Empty.
+
+
+ Ottiene o imposta il valore di XmlDeclaration.
+ Contenuto di XmlDeclaration, ossia tutti i valori compresi tra <?xml e ?>.
+
+
+ Ottiene la versione XML del documento.
+ Il valore è sempre 1.0.
+
+
+ Salva gli elementi figlio del nodo nell'oggetto specificato.Poiché i nodi XmlDeclaration non hanno elementi figlio, questo metodo non ha alcuna efficacia.
+ XmlWriter nel quale si desidera eseguire il salvataggio.
+
+
+ Salva il nodo nell' specificato.
+ XmlWriter nel quale si desidera eseguire il salvataggio.
+
+
+ Rappresenta un documento XML.Per altre informazioni, vedere la sezione Remarks.
+
+
+ Inizializza una nuova istanza della classe .
+
+
+ Inizializza una nuova istanza della classe XmlDocument con l'oggetto specificato.
+ Oggetto XmlImplementation da usare.
+
+
+ Inizializza una nuova istanza della classe XmlDocument con l'oggetto specificato.
+ Oggetto XmlNameTable da usare.
+
+
+ Ottiene l'URI di base del nodo corrente.
+ Percorso da cui è stato caricato il nodo.
+
+
+ Crea un duplicato del nodo.
+ Nodo XmlDocument clonato.
+ true per clonare in modo ricorsivo il sottoalbero del nodo specificato; false per clonare solo il nodo.
+
+
+ Crea un oggetto con la proprietà specificata.
+ Nuovo oggetto XmlAttribute.
+ Nome completo dell'attributo.Se il nome contiene i due punti, la proprietà riflette la parte del nome che precede i primi due punti e la proprietà la parte che li segue.La proprietà rimane vuota a meno che il prefisso non sia un prefisso incorporato riconosciuto, ad esempio xmlns.In questo caso, il valore di NamespaceURI è http://www.w3.org/2000/xmlns/.
+
+
+ Crea un oggetto con il nome completo e la proprietà specificati.
+ Nuovo oggetto XmlAttribute.
+ Nome completo dell'attributo.Se il nome contiene i due punti, la proprietà rifletterà la parte del nome che precede i due punti e la proprietà la parte che li segue.
+ URI dello spazio dei nomi dell'attributo.Se il nome completo include un prefisso xmlns, il parametro deve essere http://www.w3.org/2000/xmlns/.
+
+
+ Crea un oggetto con le proprietà , e specificate.
+ Nuovo oggetto XmlAttribute.
+ Prefisso dell'attributo, se presente.String.Empty e null sono equivalenti.
+ Nome locale dell'attributo.
+ URI dello spazio dei nomi dell'attributo, se presente.String.Empty e null sono equivalenti.Se è xmlns, il parametro deve essere http://www.w3.org/2000/xmlns/; in caso contrario, viene generata un'eccezione.
+
+
+ Crea un oggetto contenente i dati specificati.
+ Nuovo oggetto XmlCDataSection.
+ Contenuto del nuovo oggetto XmlCDataSection.
+
+
+ Crea un oggetto contenente i dati specificati.
+ Nuovo oggetto XmlComment.
+ Contenuto del nuovo oggetto XmlComment.
+
+
+ Crea un oggetto .
+ Nuovo oggetto XmlDocumentFragment.
+
+
+ Crea un elemento con il nome specificato.
+ Nuovo oggetto XmlElement.
+ Nome completo dell'elemento.Se il nome contiene i due punti, la proprietà riflette la parte del nome che precede i due punti e la proprietà la parte che li segue.Il nome completo non può includere un prefisso"xmlns".
+
+
+ Crea un oggetto con il nome completo e una proprietà .
+ Nuovo oggetto XmlElement.
+ Nome completo dell'elemento.Se il nome contiene i due punti, la proprietà rifletterà la parte del nome che precede i due punti e la proprietà la parte che li segue.Il nome completo non può includere un prefisso"xmlns".
+ URI dello spazio dei nomi dell'elemento.
+
+
+ Crea un elemento con le proprietà , e specificate.
+ Nuovo oggetto .
+ Prefisso del nuovo elemento, se presente.String.Empty e null sono equivalenti.
+ Nome locale del nuovo elemento.
+ URI dello spazio dei nomi del nuovo elemento, se presente.String.Empty e null sono equivalenti.
+
+
+ Crea un oggetto con il tipo di nodo e le proprietà e specificati.
+ Nuovo oggetto XmlNode.
+ Versione stringa dell'oggetto del nuovo nodo.Questo parametro deve essere uno dei valori elencati nella tabella seguente.
+ Nome completo del nuovo nodo.Se il nome contiene i due punti, viene analizzato nei componenti e .
+ URI dello spazio dei nomi del nuovo nodo.
+ The name was not provided and the XmlNodeType requires a name; or is not one of the strings listed below.
+
+
+ Crea un oggetto con le proprietà , e specificate.
+ Nuovo oggetto XmlNode.
+ XmlNodeType del nuovo nodo.
+ Nome completo del nuovo nodo.Se il nome contiene i due punti, viene analizzato nei componenti e .
+ URI dello spazio dei nomi del nuovo nodo.
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ Crea un oggetto con gli oggetti , , e specificati.
+ Nuovo oggetto XmlNode.
+ XmlNodeType del nuovo nodo.
+ Prefisso del nuovo nodo.
+ Nome locale del nuovo nodo.
+ URI dello spazio dei nomi del nuovo nodo.
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ Crea un oggetto con il nome e i dati specificati.
+ Nuovo oggetto XmlProcessingInstruction.
+ Nome dell'istruzione di elaborazione.
+ Dati per l'istruzione di elaborazione.
+
+
+ Crea un nodo .
+ Nuovo nodo XmlSignificantWhitespace.
+ Stringa che può contenere solo i caratteri "" " " " " e "	".
+
+
+ Crea un oggetto con il testo specificato.
+ Nuovo nodo XmlText.
+ Testo per il nodo Text.
+
+
+ Crea un nodo .
+ Nuovo nodo XmlWhitespace.
+ Stringa che può contenere solo i caratteri "" " " " " e "	".
+
+
+ Crea un nodo con i valori specificati.
+ Nuovo nodo XmlDeclaration.
+ La versione deve essere "1.0".
+ Valore dell'attributo di codifica.Si tratta della codifica usata quando si salva l'oggetto in un file o in un flusso; pertanto, deve essere impostata su una stringa supportata dalla classe , altrimenti non riesce.Se il valore è null o String.Empty, il metodo Save non scrive un attributo di codifica nella dichiarazione XML e quindi viene usata la codifica predefinita UTF-8.Nota: se l'oggetto XmlDocument viene salvato in o in , questo valore di codifica viene rimosso.Al suo posto viene usata la codifica di TextWriter o XmlTextWriter.In questo modo l'XML scritto potrà essere nuovamente letto con la codifica corretta.
+ Il valore deve essere "yes" o "no".Se il valore è null o String.Empty, il metodo Save non scrive un attributo autonomo nella dichiarazione XML.
+ The values of or are something other than the ones specified above.
+
+
+ Ottiene l'oggetto radice per il documento.
+ Oggetto XmlElement che rappresenta la radice dell'albero del documento XML.Se non esistono radici, viene restituito null.
+
+
+ Restituisce un oggetto contenente un elenco di tutti gli elementi discendenti che corrispondono alla proprietà specificata.
+ Oggetto contenente un elenco di tutti i nodi corrispondenti.Se nessun nodo corrisponde a , la raccolta restituita sarà vuota.
+ Nome completo di cui verificare la corrispondenza.Viene confrontato con la proprietà Name del nodo corrispondente.Il valore speciale "*" corrisponde a tutti i tag.
+
+
+ Restituisce un oggetto contenente un elenco di tutti gli elementi discendenti che corrispondono alle proprietà e specificate.
+ Oggetto contenente un elenco di tutti i nodi corrispondenti.Se nessun nodo corrisponde agli oggetti e specificati, la raccolta restituita sarà vuota.
+ LocalName di cui verificare la corrispondenza.Il valore speciale "*" corrisponde a tutti i tag.
+ NamespaceURI di cui verificare la corrispondenza.
+
+
+ Ottiene l'oggetto per il documento corrente.
+ Oggetto XmlImplementation per il documento corrente.
+
+
+ Importa un nodo da un altro documento al documento corrente.
+ Oggetto importato.
+ Nodo da importare.
+ true per eseguire una clonazione completa; in caso contrario, false.
+ Calling this method on a node type which cannot be imported.
+
+
+ Genera in tutti i casi.
+ Valori del nodo e di tutti i relativi elementi figlio.
+ In all cases.
+
+
+ Ottiene o imposta il markup che rappresenta gli elementi figlio del nodo corrente.
+ Markup degli elementi figlio del nodo corrente.
+ The XML specified when setting this property is not well-formed.
+
+
+ Ottiene un valore che indica se il nodo corrente è di sola lettura.
+ true se il nodo corrente è in sola lettura; in caso contrario, false.I nodi XmlDocument restituiscono sempre false.
+
+
+ Carica il documento XML dal flusso specificato.
+ Flusso che contiene il documento XML da caricare.
+ There is a load or parse error in the XML.In this case, a is raised.
+
+
+ Carica il documento XML dall'oggetto specificato.
+ Oggetto TextReader usato per inserire i dati XML nel documento.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ Carica il documento XML dall'oggetto specificato.
+ Oggetto XmlReader usato per inserire i dati XML nel documento.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ Carica il documento XML dalla stringa specificata.
+ Stringa che contiene il documento XML da caricare.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ Ottiene il nome locale del nodo.
+ Per i nodi XmlDocument, il nome locale è #document.
+
+
+ Ottiene il nome completo del nodo.
+ Per i nodi XmlDocument, il nome è #document.
+
+
+ Ottiene l'oggetto associato all'implementazione.
+ Oggetto XmlNameTable che consente di ottenere la versione atomizzata di una stringa all'interno del documento.
+
+
+ Si verifica quando l'oggetto di un nodo appartenente a questo documento è stato modificato.
+
+
+ Si verifica quando l'oggetto di un nodo appartenente a questo documento sta per essere modificato.
+
+
+ Si verifica quando un nodo appartenente al documento è stato inserito in un altro nodo.
+
+
+ Si verifica quando un nodo appartenente al documento sta per essere inserito in un altro nodo.
+
+
+ Si verifica quando un nodo appartenente al documento è stato rimosso dal relativo nodo padre.
+
+
+ Si verifica quando un nodo appartenente al documento sta per essere rimosso dal documento.
+
+
+ Ottiene il tipo di nodo corrente.
+ Tipo di nodo.Per i nodi XmlDocument, il valore è XmlNodeType.Document.
+
+
+ Ottiene l'oggetto a cui appartiene il nodo corrente.
+ Per i nodi XmlDocument, questa proprietà restituisce sempre null. La proprietà equivale a XmlNodeType.Document.
+
+
+ Ottiene il nodo padre del nodo, per i nodi che hanno elementi padre.
+ Restituisce sempre null.
+
+
+ Ottiene o imposta un valore che indica se preservare lo spazio vuoto nel contenuto dell'elemento.
+ true per preservare lo spazio vuoto; in caso contrario false.Il valore predefinito è false.
+
+
+ Crea un oggetto in base alle informazioni contenute in .Il lettore deve essere posizionato su un nodo o un attributo.
+ Nuovo oggetto XmlNode oppure null se non esistono altri nodi.
+ XML di origine
+ The reader is positioned on a node type that does not translate to a valid DOM node (for example, EndElement or EndEntity).
+
+
+ Salva il documento XML nel flusso specificato.
+ Flusso in cui salvare.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Salva il documento XML nell'oggetto specificato.
+ Oggetto TextWriter in cui salvare.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Salva il documento XML nell'oggetto specificato.
+ Oggetto XmlWriter in cui salvare.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Salva tutti gli elementi figlio del nodo XmlDocument nell'oggetto specificato.
+ Oggetto XmlWriter in cui salvare.
+
+
+ Salva il nodo XmlDocument nell'oggetto specificato.
+ Oggetto XmlWriter in cui salvare.
+
+
+ Rappresenta un oggetto semplice che si rivela utile per operazioni di inserimento nella struttura ad albero.
+
+
+ Inizializza una nuova istanza della classe .
+ Documento XML di origine del frammento.
+
+
+ Crea un duplicato del nodo.
+ Nodo duplicato.
+ true per clonare in modo ricorsivo il sottoalbero del nodo specificato, false per clonare solo il nodo.
+
+
+ Ottiene o imposta il markup che rappresenta gli elementi figlio del nodo.
+ Markup degli elementi figlio del nodo.
+ Il formato del file XML specificato al momento dell'impostazione della proprietà non è corretto.
+
+
+ Ottiene il nome locale del nodo.
+ Nel caso di nodi XmlDocumentFragment, il nome locale è #document-fragment.
+
+
+ Ottiene il nome completo del nodo.
+ Nel caso di XmlDocumentFragment, il nome è #document-fragment.
+
+
+ Ottiene il tipo di nodo corrente.
+ Nel caso di nodi XmlDocumentFragment, il valore è XmlNodeType.DocumentFragment.
+
+
+ Ottiene l'oggetto a cui appartiene il nodo.
+ XmlDocument cui appartiene il nodo.
+
+
+ Ottiene l'elemento padre del nodo, nel caso di nodi che dispongono di elementi padre.
+ Elemento padre del nodo.Nel caso di nodi XmlDocumentFragment, questa proprietà è sempre null.
+
+
+ Salva tutti gli elementi figlio del nodo nell'oggetto specificato.
+ XmlWriter nel quale si desidera eseguire il salvataggio.
+
+
+ Salva il nodo nell' specificato.
+ XmlWriter nel quale si desidera eseguire il salvataggio.
+
+
+ Rappresenta un elemento.
+
+
+ Inizializza una nuova istanza della classe .
+ Prefisso dello spazio dei nomi. Vedere la proprietà .
+ Nome locale. Vedere la proprietà .
+ URI dello spazio dei nomi. Vedere la proprietà .
+ Documento XML padre.
+
+
+ Ottiene un contenente l'elenco di attributi per il nodo.
+ Insieme contenente l'elenco di attributi per il nodo.
+
+
+ Crea un duplicato del nodo.
+ Nodo duplicato.
+ true per duplicare in modo ricorsivo il sottoalbero del nodo specificato, false per duplicare solo il nodo ed eventualmente anche i relativi attributi se il nodo è di tipo XmlElement.
+
+
+ Restituisce il valore per l'attributo con il nome specificato.
+ Valore dell'attributo specificato.Se non viene rilevato un attributo corrispondente o se l'attributo non dispone di un valore specificato o predefinito, viene restituita una stringa vuota.
+ Nome dell'attributo da recuperare.Si tratta di un nome completo.che viene confrontato con la proprietà Name del nodo corrispondente.
+
+
+ Restituisce il valore per l'attributo con il nome locale e l'URI dello spazio dei nomi specificati.
+ Valore dell'attributo specificato.Se non viene rilevato un attributo corrispondente o se l'attributo non dispone di un valore specificato o predefinito, viene restituita una stringa vuota.
+ Nome locale dell'attributo da recuperare.
+ URI dello spazio dei nomi dell'attributo da recuperare.
+
+
+ Restituisce XmlAttribute con il nome specificato.
+ XmlAttribute specificato o null se non viene rilevato un attributo corrispondente.
+ Nome dell'attributo da recuperare.Si tratta di un nome completo.che viene confrontato con la proprietà Name del nodo corrispondente.
+
+
+ Restituisce l'attributo con il nome locale e l'URI dello spazio dei nomi specificati.
+ XmlAttribute specificato o null se non viene rilevato un attributo corrispondente.
+ Nome locale dell'attributo.
+ URI dello spazio dei nomi dell'attributo.
+
+
+ Restituisce un oggetto contenente un elenco di tutti gli elementi discendenti che corrispondono al specificato.
+ Oggetto contenente un elenco di tutti i nodi corrispondenti.L'elenco è vuoto se non sono presenti nodi corrispondenti.
+ Tag del nome di cui verificare la corrispondenza.Si tratta di un nome completo.che viene confrontato con la proprietà Name del nodo corrispondente.L'asterisco (*) è un valore speciale che corrisponde a tutti i tag.
+
+
+ Restituisce un contenente un elenco di tutti gli elementi discendenti che corrispondono al e al specificati.
+ Oggetto contenente un elenco di tutti i nodi corrispondenti.L'elenco è vuoto se non sono presenti nodi corrispondenti.
+ Nome locale di cui verificare la corrispondenza.L'asterisco (*) è un valore speciale che corrisponde a tutti i tag.
+ URI dello spazio dei nomi da associare.
+
+
+ Determina se il nodo corrente dispone di un attributo con il nome specificato.
+ true se il nodo corrente dispone dell'attributo specificato, in caso contrario false.
+ Nome dell'attributo da individuare.Si tratta di un nome completo.che viene confrontato con la proprietà Name del nodo corrispondente.
+
+
+ Determina se il nodo corrente dispone di un attributo con il nome locale e l'URI dello spazio dei nomi specificati.
+ true se il nodo corrente dispone dell'attributo specificato, in caso contrario false.
+ Nome locale dell'attributo da individuare.
+ URI dello spazio dei nomi dell'attributo da individuare.
+
+
+ Ottiene un valore boolean che indica se il nodo corrente dispone di attributi.
+ true se il nodo corrente presenta degli attributi, in caso contrario false.
+
+
+ Ottiene o imposta i valori concatenati del nodo e di tutti i relativi elementi figlio.
+ Valori concatenati del nodo e di tutti i relativi elementi figlio.
+
+
+ Ottiene o imposta il markup che rappresenta solo gli elementi figlio del nodo.
+ Markup degli elementi figlio del nodo.
+ Il formato del file XML specificato al momento dell'impostazione della proprietà non è corretto.
+
+
+ Ottiene o imposta il formato dei tag dell'elemento.
+ Restituisce true se l'elemento deve essere serializzato nel formato tag breve "<item/>", false per il formato esteso "<item></item>".Se questa proprietà viene impostata su true, gli elementi figlio dell'elemento verranno rimossi e l'elemento verrà serializzato nel formato tag breve.Se impostata su false, il valore della proprietà verrà modificato indipendentemente dal fatto che l'elemento abbia o meno il contenuto. Se l'elemento è vuoto, verrà serializzato nel formato esteso.Questa proprietà è un'estensione Microsoft del modello DOM (Document Object Model).
+
+
+ Ottiene il nome locale del nodo corrente.
+ Nome del nodo corrente senza il prefisso.Il valore di LocalName per l'elemento <bk:book>, ad esempio, è book.
+
+
+ Ottiene il nome completo del nodo.
+ Nome completo del nodo.Per i nodi XmlElement, il nome del tag dell'elemento.
+
+
+ Ottiene l’URI dello spazio dei nomi del nodo.
+ URI dello spazio dei nomi del nodo.Se non vi è alcun URI dello spazio dei nomi, la proprietà restituisce String.Empty.
+
+
+ Ottiene il nodo immediatamente successivo all'elemento.
+ Nodo XmlNode immediatamente successivo all'elemento.
+
+
+ Ottiene il tipo di nodo corrente.
+ Tipo di nodo.Per i nodi XmlElement questo valore è XmlNodeType.Element.
+
+
+ Ottiene l'oggetto a cui appartiene il nodo.
+ XmlDocument a cui appartiene l'elemento.
+
+
+
+ Ottiene o imposta il prefisso dello spazio dei nomi del nodo.
+ Prefisso dello spazio dei nomi del nodo.Se non è presente un prefisso, questa proprietà restituirà String.Empty.
+ Il nodo è di sola lettura
+ Il prefisso specificato contiene un carattere non valido.Il prefisso specificato non è corretto.L'URI dello spazio dei nomi del nodo è null.Il prefisso specificato è "xml" e l'URI dello spazio dei nomi del nodo è diverso da http://www.w3.org/XML/1998/namespace.
+
+
+ Rimuove tutti gli attributi e gli elementi figlio del nodo corrente.Gli attributi predefiniti non vengono rimossi.
+
+
+ Rimuove dall'elemento tutti gli attributi specificati.Gli attributi predefiniti non vengono rimossi.
+
+
+ Rimuove un attributo in base al nome.
+ Nome dell'attributo da rimuovere. Si tratta di un nome completoche viene confrontato con la proprietà Name del nodo corrispondente.
+ Il nodo è di sola lettura.
+
+
+ Rimuove un attributo con il nome locale e l'URI dello spazio dei nomi specificati. Se l'attributo rimosso ha un valore predefinito, viene sostituito immediatamente.
+ Nome locale dell'attributo da rimuovere.
+ URI dello spazio dei nomi dell'attributo da rimuovere.
+ Il nodo è di sola lettura.
+
+
+ Rimuove dall'elemento il nodo dell'attributo con l'indice specificato. Se l'attributo rimosso ha un valore predefinito, viene sostituito immediatamente.
+ Nodo dell'attributo rimosso o null se non è presente un nodo a livello dell'indice specificato.
+ Indice del nodo da rimuovere.Il primo nodo ha indice 0.
+
+
+ Rimuove specificato dal nome locale e dall'URI dello spazio dei nomi. Se l'attributo rimosso ha un valore predefinito, viene sostituito immediatamente.
+ XmlAttribute rimosso o null se l'elemento XmlElement non dispone di un nodo di attributo corrispondente.
+ Nome locale dell'attributo.
+ URI dello spazio dei nomi dell'attributo.
+ Il nodo è di sola lettura.
+
+
+ Rimuove l'attributo specificato.
+ XmlAttribute rimosso o null se non è un nodo di attributo dell'elemento XmlElement.
+ Nodo XmlAttribute da rimuovere.Se l'attributo rimosso ha un valore predefinito, viene sostituito immediatamente.
+ Il nodo è di sola lettura.
+
+
+ Imposta il valore dell'attributo con il nome specificato.
+ Nome dell'attributo da creare o modificare.Si tratta di un nome completo.Se il nome contiene i due punti, viene analizzato nei componenti del nome locale e del prefisso.
+ Valore da impostare per l'attributo.
+ Il nome specificato contiene un carattere non valido.
+ Il nodo è di sola lettura.
+
+
+ Imposta il valore dell'attributo con il nome locale e l'URI dello spazio dei nomi specificati.
+ Valore dell'attributo.
+ Nome locale dell'attributo.
+ URI dello spazio dei nomi dell'attributo.
+ Valore da impostare per l'attributo.
+
+
+ Aggiunge l'oggetto specificato.
+ Oggetto XmlAttribute da aggiungere.
+ Nome locale dell'attributo.
+ URI dello spazio dei nomi dell'attributo.
+
+
+ Aggiunge l'oggetto specificato.
+ Se l'attributo sostituisce un attributo esistente con lo stesso nome, viene restituito XmlAttribute precedente, in caso contrario viene restituito null.
+ Nodo XmlAttribute da aggiungere all'insieme di attributi per l'elemento.
+ L'attributo specificato in è stato creato da un documento diverso da quello che ha creato il nodooppure il nodo è di sola lettura.
+ L'attributo specificato in è già attributo di un altro oggetto XmlElement.È necessario duplicare i nodi XmlAttribute in modo esplicito per riutilizzarli in altri oggetti XmlElement.
+
+
+ Salva tutti gli elementi figlio del nodo nell'oggetto specificato.
+ XmlWriter nel quale si desidera eseguire il salvataggio.
+
+
+ Salva il nodo corrente nell'oggetto specificato.
+ XmlWriter nel quale si desidera eseguire il salvataggio.
+
+
+ Definisce il contesto per un insieme di oggetti .
+
+
+ Inizializza una nuova istanza della classe .
+
+
+ Inizializza una nuova istanza della classe con la classe specificata.
+ Un oggetto .
+
+
+ Crea un nuovo oggetto .
+ Nuovo oggetto XmlDocument.
+
+
+ Verifica se l'implementazione DOM (Document Object Model) implementa una funzionalità specifica.
+ true se la funzionalità è implementata nella versione specificata, in caso contrario false.Nella tabella riportata di seguito vengono illustrate le combinazioni in base alle quali HasFeature restituisce true.strFeature strVersion XML 1.0 XML 2.0
+ Nome del package della funzionalità da verificare.Il nome non è soggetto alla distinzione tra maiuscole e minuscole.
+ Numero di versione del nome del package da verificare.Se la versione non è specificata (null), il supporto di qualsiasi versione della funzionalità induce il metodo a restituire true.
+
+
+ Ottiene il nodo immediatamente precedente o successivo a quello corrente.
+
+
+ Ottiene il nodo immediatamente successivo a quello corrente.
+
+ immediatamente successivo a quello corrente oppure null se non sono presenti altri nodi.
+
+
+ Ottiene il nodo immediatamente precedente a quello corrente.
+
+ precedente oppure null se non sono presenti altri nodi.
+
+
+ Rappresenta un insieme di nodi accessibili per nome o per indice.
+
+
+ Ottiene il numero di nodi nell'oggetto XmlNamedNodeMap.
+ Numero di nodi.
+
+
+ Fornisce supporto per l'iterazione di stile "foreach" nell'insieme di nodi in XmlNamedNodeMap.
+ Oggetto enumeratore.
+
+
+ Recupera un nodo specificato in base al nome.
+ Nodo XmlNode con il nome specificato o null se non viene rilevato un nodo corrispondente.
+ Nome completo del nodo da recuperare.Viene confrontato con la proprietà del nodo corrispondente.
+
+
+ Recupera un nodo con e corrispondenti.
+
+ con il nome locale e l'URI dello spazio dei nomi corrispondenti o null se non è stato rilevato un nodo corrispondente.
+ Nome locale del nodo da recuperare.
+ URI (Uniform Resource Identifier) dello spazio dei nomi del nodo da recuperare.
+
+
+ Recupera il nodo in corrispondenza dell'indice specificato in XmlNamedNodeMap.
+
+ in corrispondenza dell'indice specificato.Se è minore di 0 oppure maggiore o uguale alla proprietà , viene restituito null.
+ Posizione di indice del nodo da recuperare da XmlNamedNodeMap.Poiché l'indice è in base zero, l'indice del primo nodo è 0 e l'indice dell'ultimo nodo è uguale a -1.
+
+
+ Rimuove il nodo da XmlNamedNodeMap.
+ XmlNode rimosso da XmlNamedNodeMap o null se non è stato rilevato un nodo corrispondente.
+ Nome completo del nodo da recuperare.Il nome viene confrontato con la proprietà del nodo corrispondente.
+
+
+ Rimuove un nodo con i e corrispondenti.
+
+ rimosso o null se non è stato rilevato un nodo corrispondente.
+ Nome locale del nodo da rimuovere.
+ URI dello spazio dei nomi del nodo da rimuovere.
+
+
+ Aggiunge un oggetto utilizzando la relativa proprietà .
+ Se sostituisce un nodo esistente con lo stesso nome, verrà restituito il nodo precedente, in caso contrario verrà restituito null.
+ XmlNode da memorizzare in XmlNamedNodeMap.Se un nodo con tale nome è già presente nella mappa, verrà sostituito dal nuovo nodo.
+
+ è stato creato da un differente da quello che ha creato XmlNamedNodeMap oppure XmlNamedNodeMap è di sola lettura.
+
+
+ Rappresenta un singolo nodo nel documento XML.
+
+
+ Aggiunge il nodo specificato alla fine dell'elenco dei nodi figlio del nodo corrente.
+ Nodo aggiunto.
+ Nodo da aggiungere.L'intero contenuto del nodo da aggiungere viene spostato nel percorso specificato.
+ Per questo tipo di nodi non sono consentiti elementi figlio di tipo . è un predecessore di questo nodo.
+ Il nodo è stato creato da un documento diverso da quello che ha creato il nodo corrente.Il nodo è di sola lettura.
+
+
+ Ottiene un oggetto contenente gli attributi del nodo.
+ XmlAttributeCollection contenente gli attributi del nodo.Se il tipo di nodo è XmlNodeType.Element, vengono restituiti gli attributi del nodo.In caso contrario la proprietà restituisce null.
+
+
+ Ottiene l'URI di base del nodo corrente.
+ Percorso da cui è stato caricato il nodo o String.Empty se il nodo non dispone di un URI di base.
+
+
+ Ottiene tutti i nodi figlio del nodo.
+ Oggetto contenente tutti i nodi figlio del nodo.Se non sono presenti nodi figlio, la proprietà restituisce un oggetto vuoto.
+
+
+ Quando viene eseguito l'override in una classe derivata, crea un duplicato del nodo.
+ Nodo clonato.
+ true per clonare in modo ricorsivo il sottoalbero del nodo specificato; false per clonare solo il nodo.
+ Viene effettuata una chiamata al metodo su un tipo di nodo che non può essere duplicato.
+
+
+ Ottiene il primo elemento figlio del nodo.
+ Primo elemento figlio del nodo.Se non è presente tale nodo, viene restituito null.
+
+
+ Ottiene un enumeratore che scorre i nodi figlio nel nodo corrente.
+ Oggetto che può essere usato per scorrere i nodi figlio del nodo corrente.
+
+
+ Cerca la dichiarazione xmlns più vicina per il prefisso specificato nell'ambito del nodo corrente e restituisce l'URI dello spazio dei nomi in essa contenuto.
+ URI dello spazio dei nomi del prefisso specificato.
+ Prefisso di cui trovare l'URI dello spazio dei nomi.
+
+
+ Cerca la dichiarazione xmlns più vicina per l'URI dello spazio dei nomi specificato nell'ambito del nodo corrente e restituisce il prefisso in essa definito.
+ Prefisso per l'URI dello spazio specificato.
+ URI dello spazio dei nomi di cui trovare il prefisso.
+
+
+ Ottiene un valore che indica se il nodo dispone di nodi figlio.
+ true se il nodo presenta nodi figlio; in caso contrario, false.
+
+
+ Ottiene o imposta i valori concatenati del nodo e di tutti i relativi nodi figlio.
+ Valori concatenati del nodo e di tutti i relativi nodi figlio.
+
+
+ Ottiene o imposta il markup che rappresenta solo i nodi figlio del nodo.
+ Markup dei nodi figlio del nodo.NotaInnerXml non restituisce attributi predefiniti.
+ Viene impostata questa proprietà per un nodo che non può avere elementi figlio.
+ Il formato del file XML specificato al momento dell'impostazione della proprietà non è corretto.
+
+
+ Inserisce il nodo specificato immediatamente dopo il nodo dei riferimenti indicato.
+ Nodo da inserire.
+ Oggetto XmlNode da inserire.
+ Oggetto XmlNode che rappresenta il nodo di riferimento.Il nodo è posizionato dopo il nodo .
+ Per questo tipo di nodi non sono consentiti elementi figlio di tipo . è un predecessore di questo nodo.
+ Il nodo è stato creato da un documento diverso da quello che ha creato il nodo corrente. non è un nodo figlio del nodo correnteIl nodo è di sola lettura.
+
+
+ Inserisce il nodo specificato immediatamente prima del nodo dei riferimenti indicato.
+ Nodo da inserire.
+ Oggetto XmlNode da inserire.
+ Oggetto XmlNode che rappresenta il nodo di riferimento.Il nodo è posizionato prima del nodo corrente.
+ Per questo tipo di nodo non sono consentiti nodi figlio di tipo . è un predecessore di questo nodo.
+ Il nodo è stato creato da un documento diverso da quello che ha creato il nodo corrente. non è un nodo figlio del nodo correnteIl nodo è di sola lettura.
+
+
+ Ottiene un valore che indica se il nodo è di sola lettura.
+ true se il nodo è di sola lettura; in caso contrario, false.
+
+
+ Ottiene il primo elemento figlio con il valore specificato.
+ Primo oggetto il cui nome corrisponde a quello specificato. Restituisce un riferimento Null (Nothing in Visual Basic) se non esiste una corrispondenza.
+ Nome completo dell'elemento da recuperare.
+
+
+ Ottiene il primo elemento figlio con i valori e specificati.
+ Primo oggetto con e corrispondenti.. Restituisce un riferimento Null (Nothing in Visual Basic) se non esiste una corrispondenza.
+ Nome locale dell'elemento.
+ URI dello spazio dei nomi dell'elemento.
+
+
+ Ottiene l'ultimo elemento figlio del nodo.
+ Ultimo elemento figlio del nodo.Se non è presente tale nodo, viene restituito null.
+
+
+ Ottiene il nome locale del nodo, quando viene eseguito l'override in una classe derivata.
+ Nome del nodo senza prefisso.Ad esempio, il valore di LocalName per l'elemento <bk:book> è book.Il nome restituito dipende da del nodo: Tipo Nome Attributo Nome locale dell'attributo. CDATA #cdata-section Commento #comment Documento #document DocumentFragment #document-fragment DocumentType Nome del tipo di documento. Elemento Nome locale dell'elemento. Entità Nome dell'entità. EntityReference Nome dell'entità a cui si fa riferimento. Notation Nome della notazione. ProcessingInstruction Destinazione dell'istruzione di elaborazione. Text #text Whitespace #whitespace SignificantWhitespace #significant-whitespace XmlDeclaration #xml-declaration
+
+
+ Ottiene il nome completo del nodo quando viene eseguito l'override in una classe derivata.
+ Nome completo del nodo.Il nome restituito dipende da del nodo:Tipo Nome Attributo Nome completo dell'attributo. CDATA #cdata-section Commento #comment Documento #document DocumentFragment #document-fragment DocumentType Nome del tipo di documento. Elemento Nome completo dell'elemento. Entità Nome dell'entità. EntityReference Nome dell'entità a cui si fa riferimento. Notation Nome della notazione. ProcessingInstruction Destinazione dell'istruzione di elaborazione. Text #text Whitespace #whitespace SignificantWhitespace #significant-whitespace XmlDeclaration #xml-declaration
+
+
+ Ottiene l'URI dello spazio dei nomi del nodo.
+ URI dello spazio dei nomi del nodo.Se non è presente un URI dello spazio dei nomi, la proprietà restituisce String.Empty.
+
+
+ Ottiene il nodo immediatamente successivo a quello corrente.
+ Oggetto XmlNode successivo.Se non è presente un nodo successivo, viene restituito null.
+
+
+ Ottiene il tipo del nodo corrente quando viene eseguito l'override in una classe derivata.
+ Uno dei valori di .
+
+
+ Inserisce tutti i nodi XmlText nell'intero sottoalbero del nodo XmlNode corrente in un formato standard in cui tali nodi sono separati solo tramite markup, ovvero tag, commenti, istruzioni di elaborazione, sezioni CDATA e riferimenti a entità, pertanto, non vi sono nodi XmlText adiacenti.
+
+
+ Ottiene il markup che contiene questo nodo e tutti i relativi nodi figlio.
+ Markup che contiene il nodo e tutti i relativi nodi figlio.NotaOuterXml non restituisce attributi predefiniti.
+
+
+ Ottiene l'oggetto a cui appartiene il nodo.
+ Oggetto a cui appartiene il nodo.Se il nodo è un oggetto , ossia se NodeType equivale a XmlNodeType.Document, la proprietà restituisce null.
+
+
+ Ottiene l'elemento padre del nodo, nel caso di nodi che dispongono di elementi padre.
+ XmlNode che rappresenta l'elemento padre del nodo corrente.Se il nodo è stato appena creato e non ancora aggiunto all'albero oppure se è stato rimosso dall'albero, il valore che rappresenta il nodo padre è null.Per tutti gli altri nodi, il valore restituito dipende dalla proprietà del nodo. La tabella seguente contiene i possibili valori restituiti della proprietà ParentNode.NodeType Valore di ParentNode restituito Attribute, Document, DocumentFragment, Entity, Notation Restituisce null. Questi nodi non dispongono di elementi padre. CDATA Restituisce l'elemento o il riferimento all'entità contenente la sezione CDATA. Commento Restituisce l'elemento, il riferimento all'entità, il tipo di documento o il documento contenente il commento. DocumentType Restituisce il nodo documento. Elemento Restituisce il nodo padre dell'elemento.Se l'elemento è il nodo radice dell'albero, il nodo padre è il nodo documento.EntityReference Restituisce l'elemento, l'attributo o il riferimento all'entità contenente il riferimento all'entità. ProcessingInstruction Restituisce il documento, l'elemento, il tipo di documento o il riferimento all'entità contenente l'istruzione di elaborazione. Text Restituisce l'elemento, l'attributo o il riferimento all'entità padre contenente il nodo di testo.
+
+
+ Ottiene o imposta il prefisso dello spazio dei nomi del nodo.
+ Prefisso dello spazio dei nomi del nodo.Ad esempio, il valore di Prefix per l'elemento <bk:book> è bk.Se non è presente un prefisso, questa proprietà restituisce String.Empty.
+ Il nodo è di sola lettura.
+ Il prefisso specificato contiene un carattere non valido.Il prefisso specificato non è corretto.Il prefisso specificato è "xml" e l'URI dello spazio dei nomi del nodo è diverso da "http://www.w3.org/XML/1998/namespace" (informazioni in lingua inglese).Il nodo è un attributo, il prefisso specificato è "xmlns" e l'URI dello spazio dei nomi è diverso da "http://www.w3.org/2000/xmlns/" (informazioni in lingua inglese).Il nodo è un attributo e il suo nome completo è "xmlns".
+
+
+ Aggiunge il nodo specificato all'inizio dell'elenco dei nodi figlio del nodo corrente.
+ Nodo aggiunto.
+ Nodo da aggiungere.L'intero contenuto del nodo da aggiungere viene spostato nel percorso specificato.
+ Per questo tipo di nodi non sono consentiti elementi figlio di tipo . è un predecessore di questo nodo.
+ Il nodo è stato creato da un documento diverso da quello che ha creato il nodo corrente.Il nodo è di sola lettura.
+
+
+ Ottiene il nodo immediatamente precedente a quello corrente.
+ XmlNode precedente.In mancanza di nodi precedenti, viene restituito null.
+
+
+ Ottiene il nodo di testo immediatamente precedente a quello corrente.
+ Restituisce .
+
+
+ Rimuove tutti gli elementi figlio e/o gli attributi del nodo corrente.
+
+
+ Rimuove il nodo figlio specificato.
+ Nodo rimosso.
+ Nodo da rimuovere.
+
+ non è un nodo figlio del nodo correnteoppure il nodo è di sola lettura.
+
+
+ Sostituisce il nodo figlio con il nodo .
+ Nodo sostituito.
+ Nuovo nodo da inserire nell'elenco dei nodi figlio.
+ Nodo da sostituire nell'elenco.
+ Per questo tipo di nodi non sono consentiti elementi figlio di tipo . è un predecessore di questo nodo.
+ Il nodo è stato creato da un documento diverso da quello che ha creato il nodo corrente.Il nodo è di sola lettura. non è un nodo figlio del nodo corrente
+
+
+ Verifica se l'implementazione DOM implementa una funzionalità specifica.
+ true se la funzionalità è implementata nella versione specificata; in caso contrario, false.La tabella seguente illustra le combinazioni che restituiscono true.Funzionalità Versione XML 1.0 XML 2.0
+ Nome del pacchetto della funzionalità da verificare.Il nome non è soggetto alla distinzione tra maiuscole e minuscole.
+ Versione del nome del pacchetto da verificare.Se la versione non è specificata (null), il supporto di qualsiasi versione della funzionalità induce il metodo a restituire true.
+
+
+ Per una descrizione di questo membro, vedere .
+ Restituisce un enumeratore per la raccolta.
+
+
+ Ottiene o imposta il valore del nodo.
+ Il valore restituito dipende dalla proprietà del nodo: Tipo Valore Attributo Valore dell'attributo. CDATASection Contenuto della sezione CDATA. Commento Contenuto del commento. Documento null. DocumentFragment null. DocumentType null. Elemento null.È possibile utilizzare la proprietà o per accedere al valore del nodo elemento.Entità null. EntityReference null. Notation null. ProcessingInstruction Intero contenuto, ad eccezione della destinazione. Text Contenuto del nodo di testo. SignificantWhitespace Caratteri spazio vuoto.Gli spazi vuoti sono costituiti da uno o più caratteri spazio, ritorno a capo, avanzamento riga o tabulazione.Whitespace Caratteri spazio vuoto.Gli spazi vuoti sono costituiti da uno o più caratteri spazio, ritorno a capo, avanzamento riga o tabulazione.XmlDeclaration Contenuto della dichiarazione, ovvero tutti i valori compresi tra <?xml e ?>.
+ Viene impostato il valore di un nodo in sola lettura.
+ Viene impostato un valore per un nodo che non deve disporre di alcun valore, ad esempio un nodo Element.
+
+
+ Salva tutti i nodi figlio del nodo nell'oggetto specificato, quando viene eseguito l'override in una classe derivata.
+ Oggetto XmlWriter in cui salvare.
+
+
+ Salva il nodo corrente nell'oggetto specificato, quando viene eseguito l'override in una classe derivata.
+ Oggetto XmlWriter in cui salvare.
+
+
+ Specifica il tipo di modifica del nodo.
+
+
+ È stato modificato il valore di un nodo.
+
+
+ È stato inserito un nodo nella struttura ad albero.
+
+
+ È stato rimosso un nodo dalla struttura ad albero.
+
+
+ Fornisce dati per gli eventi , , , , e .
+
+
+ Inizializza una nuova istanza della classe .
+
+ che ha generato l'evento.
+ Precedente elemento padre dell'oggetto che ha generato l'evento.
+ Nuovo elemento padre dell'oggetto che ha generato l'evento.
+ Valore precedente dell'oggetto che ha generato l'evento.
+ Nuovo valore dell'oggetto che ha generato l'evento.
+ Campo .
+
+
+ Ottiene un valore che indica il tipo di evento di modifica del nodo in corso.
+ Valore XmlNodeChangedAction che descrive l'evento di modifica del nodo.Valore XmlNodeChangedAction Descrizione INS È stato inserito o verrà inserito un nodo. Rimozione È stato rimosso o verrà rimosso un nodo. Modifica È stato modificato o verrà modificato un nodo. NotaIl valore Action non consente di distinguere quando l'evento si è verificato (prima o dopo).È possibile creare gestori eventi diversi per gestire entrambe le istanze.
+
+
+ Ottiene il valore di dopo che l'operazione è stata completata.
+ Valore di ParentNode dopo che l'operazione è stata completata.Se il nodo viene rimosso, la proprietà restituirà null.NotaPer i nodi attributo la proprietà restituisce .
+
+
+ Ottiene il nuovo valore del nodo.
+ Nuovo valore del nodo.Questa proprietà restituisce null se il nodo non è un attributo né un nodo di testo oppure se il nodo viene rimosso.Se viene chiamato in un evento , NewValue restituisce il valore del nodo se la modifica ha esito positivo.Se viene chiamato in un evento , NewValue restituisce il valore corrente del nodo.
+
+
+ Ottiene il nodo che viene aggiunto, rimosso o modificato.
+ Nodo XmlNode che viene aggiunto, rimosso o modificato. La proprietà non restituisce mai null.
+
+
+ Ottiene il valore di prima dell'inizio dell'operazione.
+ Valore di ParentNode prima dell'inizio dell'operazione.Questa proprietà restituisce null se il nodo non dispone di un nodo padre.NotaPer i nodi attributo la proprietà restituisce .
+
+
+ Ottiene il valore originale del nodo.
+ Valore originale del nodo.Questa proprietà restituisce null se il nodo non è un attributo né un nodo di testo oppure se il nodo viene inserito.Se viene chiamato in un evento , OldValue restituisce il valore corrente del nodo che verrà sostituito se la modifica ha esito positivo.Se viene chiamato in un evento , OldValue restituisce il valore del nodo prima della modifica.
+
+
+ Rappresenta il metodo che gestisce gli eventi , , , , e .
+ Origine dell'evento.
+ Oggetto che contiene i dati dell'evento.
+
+
+ Rappresenta un insieme ordinato di nodi.
+
+
+ Inizializza una nuova istanza della classe .
+
+
+ Ottiene il numero di nodi nell'elenco XmlNodeList.
+ Numero di nodi nell'oggetto XmlNodeList.
+
+
+ Ottiene un enumeratore che consente di scorrere la raccolta di nodi.
+ Enumeratore che consente di scorrere la raccolta di nodi.
+
+
+ Recupera un nodo in corrispondenza dell'indice specificato.
+
+ con l'indice specificato nella raccolta.Se è maggiore o uguale al numero di nodi nell'elenco, viene restituito null.
+ Indice in base zero nell'elenco dei nodi.
+
+
+ Ottiene un nodo in corrispondenza dell'indice specificato.
+
+ con l'indice specificato nella raccolta.Se l'indice è maggiore o uguale al numero di nodi nell'elenco, viene restituito null.
+ Indice in base zero nell'elenco dei nodi.
+
+
+ Elimina le risorse nell'elenco di nodi privatamente.
+
+
+ Rilascia tutte le risorse utilizzate dalla classe .
+
+
+ Rappresenta un'istruzione di elaborazione, definita dal codice XML per mantenere le informazioni specifiche del processore nel testo del documento.
+
+
+ Inizializza una nuova istanza della classe .
+ Destinazione dell'istruzione di elaborazione; vedere la proprietà .
+ Contenuto dell'istruzione; vedere la proprietà .
+ Documento XML padre.
+
+
+ Crea un duplicato del nodo.
+ Nodo duplicato.
+ true per clonare in modo ricorsivo il sottoalbero del nodo specificato; false per clonare solo il nodo.
+
+
+ Ottiene o imposta il contenuto dell'istruzione di elaborazione, esclusa la destinazione.
+ Contenuto dell'istruzione di elaborazione, esclusa la destinazione.
+
+
+ Ottiene o imposta i valori concatenati del nodo e di tutti i relativi elementi figlio.
+ Valori concatenati del nodo e di tutti i relativi elementi figlio.
+
+
+ Ottiene il nome locale del nodo.
+ Per i nodi dell'istruzione di elaborazione, questa proprietà restituisce la destinazione dell'istruzione di elaborazione.
+
+
+ Ottiene il nome completo del nodo.
+ Per i nodi dell'istruzione di elaborazione, questa proprietà restituisce la destinazione dell'istruzione di elaborazione.
+
+
+ Ottiene il tipo di nodo corrente.
+ Per i nodi XmlProcessingInstruction, questo valore è XmlNodeType.ProcessingInstruction.
+
+
+ Ottiene la destinazione dell'istruzione di elaborazione.
+ Destinazione dell'istruzione di elaborazione.
+
+
+ Ottiene o imposta il valore del nodo.
+ Contenuto completo dell'istruzione di elaborazione, esclusa la destinazione.
+ Node is read-only.
+
+
+ Salva tutti gli elementi figlio del nodo nell'oggetto specificato.Poiché i nodi ProcessingInstruction non contengono nodi figlio, questo metodo non ha alcun effetto.
+ Oggetto XmlWriter in cui salvare.
+
+
+ Salva il nodo nell'oggetto specificato.
+ Oggetto XmlWriter in cui salvare.
+
+
+ Rappresenta uno spazio vuoto tra markup in un nodo a contenuto misto oppure uno spazio vuoto all'interno di un ambito xml:space='preserve'.È indicato anche come spazio vuoto significativo.
+
+
+ Inizializza una nuova istanza della classe .
+ Caratteri di spazio del nodo.
+ Oggetto .
+
+
+ Crea un duplicato del nodo.
+ Nodo clonato.
+ true per clonare in modo ricorsivo il sottoalbero del nodo specificato; false per clonare solo il nodo.Per i nodi spazi vuoti significativi, il nodo duplicato include sempre il valore indipendentemente all'impostazione dei parametri.
+
+
+ Ottiene il nome locale del nodo.
+ Per i nodi XmlSignificantWhitespace, questa proprietà restituisce #significant-whitespace.
+
+
+ Ottiene il nome completo del nodo.
+ Per i nodi XmlSignificantWhitespace, questa proprietà restituisce #significant-whitespace.
+
+
+ Ottiene il tipo di nodo corrente.
+ Per i nodi XmlSignificantWhitespace, il valore è XmlNodeType.SignificantWhitespace.
+
+
+ Ottiene l'elemento padre del nodo corrente.
+ Nodo padre del nodo corrente.
+
+
+ Ottiene il nodo di testo immediatamente precedente a quello corrente.
+ Restituisce .
+
+
+ Ottiene o imposta il valore del nodo.
+ Caratteri spazio vuoto individuati nel nodo.
+ Impostazione di Value su caratteri spazio vuoto non validi.
+
+
+ Salva tutti gli elementi figlio del nodo nell'oggetto specificato.
+ Oggetto XmlWriter in cui salvare.
+
+
+ Salva il nodo nell'oggetto specificato.
+ Oggetto XmlWriter in cui salvare.
+
+
+ Rappresenta il contenuto di testo di un elemento o attributo.
+
+
+ Inizializza una nuova istanza della classe .
+ Contenuto del nodo; vedere la proprietà .
+ Documento XML padre.
+
+
+ Crea un duplicato del nodo.
+ Nodo clonato.
+ true per clonare in modo ricorsivo il sottoalbero del nodo specificato; false per clonare solo il nodo.
+
+
+ Ottiene il nome locale del nodo.
+ Per i nodi di testo, questa proprietà restituisce #text.
+
+
+ Ottiene il nome completo del nodo.
+ Per i nodi di testo, questa proprietà restituisce #text.
+
+
+ Ottiene il tipo di nodo corrente.
+ Per i nodi di testo, il valore è XmlNodeType.Text.
+
+
+
+ Ottiene il nodo di testo immediatamente precedente a quello corrente.
+ Restituisce .
+
+
+ Divide il nodo in due nodi in corrispondenza dell'offset specificato, mantenendoli entrambi nell'albero come oggetti di pari livello.
+ Nuovo nodo.
+ Offset in corrispondenza del quale dividere il nodo.
+
+
+ Ottiene o imposta il valore del nodo.
+ Contenuto del nodo di testo.
+
+
+ Salva tutti gli elementi figlio del nodo nell'oggetto specificato.I nodi XmlText non hanno elementi figlio, perciò questo metodo non ha alcuna efficacia.
+ Oggetto XmlWriter in cui salvare.
+
+
+ Salva il nodo nell'oggetto specificato.
+ Oggetto XmlWriter in cui salvare.
+
+
+ Rappresenta uno spazio vuoto nel contenuto dell'elemento.
+
+
+ Inizializza una nuova istanza della classe .
+ Caratteri di spazio del nodo.
+ Oggetto .
+
+
+ Crea un duplicato del nodo.
+ Nodo clonato.
+ true per clonare in modo ricorsivo il sottoalbero del nodo specificato; false per clonare solo il nodo.Per i nodi spazi vuoti, il nodo duplicato include sempre il valore indipendentemente all'impostazione dei parametri.
+
+
+ Ottiene il nome locale del nodo.
+ Per i nodi XmlWhitespace, questa proprietà restituisce #whitespace.
+
+
+ Ottiene il nome completo del nodo.
+ Per i nodi XmlWhitespace, questa proprietà restituisce #whitespace.
+
+
+ Ottiene il tipo di nodo.
+ Per i nodi XmlWhitespace, il valore è .
+
+
+ Ottiene l'elemento padre del nodo corrente.
+ Nodo padre del nodo corrente.
+
+
+ Ottiene il nodo di testo immediatamente precedente a quello corrente.
+ Restituisce .
+
+
+ Ottiene o imposta il valore del nodo.
+ Caratteri spazio vuoto individuati nel nodo.
+ Impostazione di su caratteri spazio vuoto non validi.
+
+
+ Salva tutti gli elementi figlio del nodo nell'oggetto specificato.
+ Oggetto in cui salvare.
+
+
+ Salva il nodo nell'oggetto specificato.
+ Oggetto in cui salvare.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/ja/System.Xml.XmlDocument.xml b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/ja/System.Xml.XmlDocument.xml
new file mode 100644
index 0000000..af2ac29
--- /dev/null
+++ b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/ja/System.Xml.XmlDocument.xml
@@ -0,0 +1,1477 @@
+
+
+
+ System.Xml.XmlDocument
+
+
+
+ 属性を表します。属性に対する有効値および既定値は、文書型定義 (DTD : Document Type Definition) またはスキーマで定義されます。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+ 名前空間プレフィックス。
+ 属性のローカル名。
+ 名前空間 URI (Uniform Resource Identifier)。
+ 親 XML ドキュメント。
+
+
+ このノードの子ノードのリストの末尾に、指定したノードを追加します。
+ 追加された 。
+ 追加する 。
+ このノードは、 ノードの型の子ノードが許可されない型です。 がこのノードの先祖です。
+
+ は、このノードを作成したドキュメントとは異なるドキュメントから作成されました。このノードは読み取り専用です。
+
+
+ ノードのベース URI (Uniform Resource Identifier) を取得します。
+ ノードの読み込み元の場所。ノードにベース URI がない場合は String.Empty。属性ノードのベース URI は、その所有者要素と同じです。属性ノードに所有者要素がない場合、BaseURI は String.Empty を返します。
+
+
+ このノードの複製を作成します。
+ 複製されたノード。
+ 指定したノードの下にあるサブツリーのクローンを順次作成していく場合は true。指定したノードだけのクローンを作成する場合は false。
+
+
+ ノードとすべての子の連結された値を設定します。
+ ノードとすべての子の連結された値。属性ノードの場合、このプロパティは プロパティと同じ機能を持ちます。
+
+
+ 属性の値を設定します。
+ 属性値。
+ このプロパティを設定したときに指定した XML は、整形式ではありません。
+
+
+ 指定したノードを指定した参照ノードの直後に挿入します。
+ 挿入された 。
+ 挿入する 。
+ 参照ノードである 。 は、 の後に配置されます。
+ このノードは、 ノードの型の子ノードが許可されない型です。 がこのノードの先祖です。
+
+ は、このノードを作成したドキュメントとは異なるドキュメントから作成されました。 がこのノードの子ではありません。このノードは読み取り専用です。
+
+
+ 指定したノードを指定した参照ノードの直前に挿入します。
+ 挿入された 。
+ 挿入する 。
+ 参照ノードである 。 は、このノードの前に配置されます。
+ 現在のノードは、 ノードの型の子ノードが許可されない型です。 がこのノードの先祖です。
+
+ は、このノードを作成したドキュメントとは異なるドキュメントから作成されました。 がこのノードの子ではありません。このノードは読み取り専用です。
+
+
+ ノードのローカル名を取得します。
+ プリフィックスを削除した属性ノードの名前。次の例 <book bk:genre= 'novel'> では、属性の LocalName は genre です。
+
+
+ ノードの限定名を取得します。
+ 属性ノードの限定名。
+
+
+ このノードの名前空間 URI を取得します。
+ このノードの名前空間 URI。属性に明示的に名前空間が指定されていない場合、このプロパティは String.Empty を返します。
+
+
+ 現在のノードの種類を取得します。
+ XmlAttribute ノードのノード型は XmlNodeType.Attribute です。
+
+
+ このノードが属する を取得します。
+ このノードが所属する XML ドキュメント。
+
+
+ 属性が属する を取得します。
+ 属性が属している XmlElement。この属性が XmlElement の一部でない場合は null。
+
+
+ このノードの親を取得します。XmlAttribute ノードの場合、このプロパティは常に null を返します。
+ XmlAttribute ノードの場合、このプロパティは常に null を返します。
+
+
+ このノードの名前空間プリフィックスを取得または設定します。
+ このノードの名前空間プリフィックス。プリフィックスがない場合、このプロパティは String.Empty を返します。
+ このノードは読み取り専用です。
+ 指定したプレフィックスに無効な文字が含まれています。指定されたプリフィックスの書式が正しくありません。このノードの namespaceURI が null です。指定したプリフィックスが "xml" であり、このノードの namespaceURI が "http://www.w3.org/XML/1998/namespace" と異なっています。このノードが属性で、指定したプリフィックスが "xmlns" であり、このノードの namespaceURI が "http://www.w3.org/2000/xmlns/" と異なっています。このノードが属性で、このノードの qualifiedName が "xmlns" [Namespaces] です。
+
+
+ このノードの子ノードのリストの先頭に、指定したノードを追加します。
+ 追加された 。
+ 追加する 。そのノードが の場合は、ドキュメント フラグメントの内容全体がこのノードの子リストに移動されます。
+ このノードは、 ノードの型の子ノードが許可されない型です。 がこのノードの先祖です。
+
+ は、このノードを作成したドキュメントとは異なるドキュメントから作成されました。このノードは読み取り専用です。
+
+
+ 指定した子ノードを削除します。
+ 削除された 。
+ 削除する 。
+
+ がこのノードの子ではありません。または、このノードが読み取り専用です。
+
+
+ 指定した子ノードを、新たに指定された子ノードで置き換えます。
+ 置き換えられた 。
+ 新しい子 。
+ 置き換える 。
+ このノードは、 ノードの型の子ノードが許可されない型です。 がこのノードの先祖です。
+
+ は、このノードを作成したドキュメントとは異なるドキュメントから作成されました。このノードは読み取り専用です。 がこのノードの子ではありません。
+
+
+ 属性値が明示的に設定されたかどうかを示す値を取得します。
+ 元のインスタンス ドキュメントでこの属性に明示的に値が指定された場合は true。それ以外の場合は false。false の値は、属性の値が DTD に由来していることを示します。
+
+
+ ノードの値を取得または設定します。
+ 返される値は、ノードの によって異なります。XmlAttribute ノードの場合、このプロパティは属性の値です。
+ ノードが読み取り専用であり、set 操作が呼び出されます。
+
+
+ ノードのすべての子を、指定した に保存します。
+ 保存先の XmlWriter。
+
+
+ 指定した にノードを保存します。
+ 保存先の XmlWriter。
+
+
+ 名前またはインデックスによってアクセスできる属性のコレクションを表します。
+
+
+ 指定した属性をコレクション内の最後のノードとして挿入します。
+ コレクションの末尾に追加する XmlAttribute。
+ 挿入する 。
+ このコレクションを作成したドキュメントと異なるドキュメントから が作成されました。
+
+
+ このコレクション内のすべての オブジェクトを、指定した配列にコピーします。
+ このコレクションからコピーされたオブジェクトのコピー先の配列。
+ 配列内のコピー開始位置を示すインデックス。
+
+
+ 指定した属性を、指定した参照属性の直後に挿入します。
+ コレクションに挿入する XmlAttribute。
+ 挿入する 。
+ 参照属性である 。 は、 の後に配置されます。
+ このコレクションを作成したドキュメントと異なるドキュメントから が作成されました。または、 がこのコレクションのメンバーではありません。
+
+
+ 指定した属性を、指定した参照属性の直前に挿入します。
+ コレクションに挿入する XmlAttribute。
+ 挿入する 。
+ 参照属性である 。 は の前に配置されます。
+ このコレクションを作成したドキュメントと異なるドキュメントから が作成されました。または、 がこのコレクションのメンバーではありません。
+
+
+ 指定したインデックスの属性を取得します。
+ 指定されたインデックスにある 。
+ 属性のインデックス。
+ 範囲外に渡されるインデックス。
+
+
+ 指定した名前の属性を取得します。
+ 指定した名前を持つ 。属性の名前が存在しない場合、このプロパティは null を返します。
+ 属性の限定名。
+
+
+ 指定したローカル名および名前空間 URI (Uniform Resource Identifier) の属性を取得します。
+ 指定したローカル名および名前空間 URI の 。属性の名前が存在しない場合、このプロパティは null を返します。
+ 属性のローカル名。
+ 属性の名前空間 URI。
+
+
+ 指定した属性をコレクション内の最初のノードとして挿入します。
+ コレクションに追加する XmlAttribute。
+ 挿入する 。
+
+
+ 指定した属性をコレクションから削除します。
+ 削除されたノード。ノードがコレクション内で見つからない場合は null。
+ 削除する 。
+
+
+ コレクションからすべての属性を削除します。
+
+
+ コレクション内の指定したインデックスに対応する属性を削除します。
+ 指定したインデックスに属性がない場合、null が返されます。
+ 削除するノードのインデックス。最初のノードのインデックスは 0 です。
+
+
+
+ プロパティを使用して を追加します。
+
+ によって同じ名前の既存のノードが置換される場合は、古いノードが返されます。それ以外の場合は、追加されたノードが返されます。
+ このコレクションに格納する属性ノード。このノードは、ノードの名前を使用すると後からアクセスできます。その名前のノードが既にコレクションに存在している場合は、新しいノードと置き換えられます。それ以外の場合は、ノードがコレクションの末尾に追加されます。
+ このコレクションを作成した XML ドキュメントと異なる から が作成されました。この XmlAttributeCollection は読み取り専用です。
+
+ は、既に別の オブジェクトの属性である です。その他の要素の属性を再利用するには、再利用する XmlAttribute オブジェクトのクローンを作成する必要があります。
+
+
+ このメンバーの説明については、 のトピックを参照してください。
+ このコレクションからコピーされたオブジェクトのコピー先の配列。
+ 配列内のコピー開始位置を示すインデックス。
+
+
+ このメンバーの説明については、 のトピックを参照してください。
+ 属性の数が格納されている int を返します。
+
+
+ このメンバーの説明については、 のトピックを参照してください。
+ コレクションの同期がとられている場合は true を返します。
+
+
+ このメンバーの説明については、 のトピックを参照してください。
+ コレクションのルートである を返します。
+
+
+ CDATA セクションを表します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+ 文字データを格納している 。
+
+ オブジェクト。
+
+
+ このノードの複製を作成します。
+ クローンとして作成されたノード。
+ 指定したノードの下にあるサブツリーのクローンを順次作成していく場合は true。指定したノードだけのクローンを作成する場合は false。CDATA ノードには子がないため、パラメーターの設定に関係なく、クローンとして作成されたノードには常にデータ コンテンツが含まれます。
+
+
+ ノードのローカル名を取得します。
+ CDATA ノードの場合、ローカル名は #cdata-section です。
+
+
+ ノードの限定名を取得します。
+ CDATA ノードの場合、名前は #cdata-section です。
+
+
+ 現在のノードの種類を取得します。
+ ノード型。CDATA ノードの場合、値は XmlNodeType.CDATA です。
+
+
+
+ このノードの直前にあるテキスト ノードを取得します。
+
+ を返します。
+
+
+ ノードの子を、指定した に保存します。
+ 保存先の XmlWriter。
+
+
+ 指定した にノードを保存します。
+ 保存先の XmlWriter。
+
+
+ 複数のクラスで使用する、テキスト操作メソッドを提供します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+ ドキュメントに追加される文字データが格納されている文字列。
+ 文字データを格納する 。
+
+
+ 指定した文字列をノードの文字データの末尾に追加します。
+ 既存の文字列に挿入する文字列。
+
+
+ ノードのデータを格納します。
+ ノードのデータ。
+
+
+ ノードから文字の範囲を削除します。
+ 削除を開始する、文字列内の位置。
+ 削除する文字数。
+
+
+ 指定した文字オフセット位置に指定した文字列を挿入します。
+ 指定した文字列データを挿入する、文字列内の位置。
+ 既存の文字列に挿入される文字列データ。
+
+
+ 文字単位でデータの長さを取得します。
+
+ プロパティに格納されている文字列の長さ (文字単位)。長さは 0、つまり CharacterData ノードが空の場合があります。
+
+
+ 指定したオフセットを開始位置として、指定した数の文字を指定した文字列に置き換えます。
+ 置換を開始する、文字列内の位置。
+ 置換する文字数。
+ 古い文字列データを置換する新しいデータ。
+
+
+ 指定した範囲から、完全な文字列の部分文字列を取得します。
+ 指定した範囲に対応している部分文字列。
+ 取得を開始する、文字列内の位置。オフセットが 0 の場合は、データの先頭が開始点になることを示します。
+ 取得する文字数。
+
+
+ ノードの値を取得または設定します。
+ ノードの値。
+ ノードが読み取り専用です。
+
+
+ XML コメントの内容を表します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+ コメント要素の内容。
+ 親 XML ドキュメント。
+
+
+ このノードの複製を作成します。
+ クローンとして作成されたノード。
+ 指定したノードの下にあるサブツリーのクローンを順次作成していく場合は true。指定したノードだけのクローンを作成する場合は false。コメント ノードには子がないため、パラメーターの設定に関係なく、クローンとして作成されたノードには、常にテキスト コンテンツが含まれます。
+
+
+ ノードのローカル名を取得します。
+ コメント ノードの場合、この値は #comment です。
+
+
+ ノードの限定名を取得します。
+ コメント ノードの場合、この値は #comment です。
+
+
+ 現在のノードの種類を取得します。
+ コメント ノードの場合、この値は XmlNodeType.Comment です。
+
+
+ ノードのすべての子を、指定した に保存します。コメント ノードには子がないため、このメソッドによる影響はありません。
+ 保存先の XmlWriter。
+
+
+ 指定した にノードを保存します。
+ 保存先の XmlWriter。
+
+
+ XML 宣言ノード <?xml version='1.0' ...?> を表します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+ XML バージョン。 プロパティのトピックを参照してください。
+ エンコーディング スキーム。 プロパティのトピックを参照してください。
+ XML ドキュメントが外部 DTD に依存するかどうかを示します。 プロパティのトピックを参照してください。
+ 親 XML ドキュメント。
+
+
+ このノードの複製を作成します。
+ クローンとして作成されたノード。
+ 指定したノードの下にあるサブツリーのクローンを順次作成していく場合は true。指定したノードだけのクローンを作成する場合は false。XmlDeclaration ノードには子がないため、パラメーターの設定に関係なく、クローンとして作成されたノードには、常にデータ値が含まれます。
+
+
+ XML ドキュメントのエンコーディング レベルを取得または設定します。
+ 有効な文字エンコーディング名。通常サポートされている XML の文字エンコーディング名を次に示します。[カテゴリ]エンコーディング名UnicodeUTF-8、UTF-16ISO 10646ISO-10646-UCS-2、ISO-10646-UCS-4ISO 8859ISO-8859-n ("n" は 1 から 9 までの数字)JIS X-0208-1997ISO-2022-JP、Shift_JIS、EUC-JPこの値は省略可能です。値が設定されていない場合は、このプロパティが String.Empty を返します。エンコーディング属性が含まれていない場合は、ドキュメントが書き込まれたり保存されるときに、UTF-8 エンコーディングであると見なされます。
+
+
+ XmlDeclaration の連結している値を取得または設定します。
+ XmlDeclaration の連結している値。つまり <?xml と ?> の間のすべての値。
+
+
+ ノードのローカル名を取得します。
+ XmlDeclaration ノードの場合、ローカル名は xml です。
+
+
+ ノードの限定名を取得します。
+ XmlDeclaration ノードの場合、名前は xml です。
+
+
+ 現在のノードの種類を取得します。
+ XmlDeclaration ノードの場合、この値は XmlNodeType.XmlDeclaration です。
+
+
+ スタンドアロン属性の値を取得または設定します。
+ XML ドキュメントで必要なすべてのエンティティ宣言がドキュメント内に格納されている場合、有効値は yes です。外部の文書型宣言 (DTD : Document Type Definition) が必要な場合は no です。XML 宣言内にスタンドアロン属性が存在しない場合、このプロパティは String.Empty を返します。
+
+
+ XmlDeclaration の値を取得または設定します。
+ XmlDeclaration の内容。つまり <?xml と ?> の間のすべて。
+
+
+ ドキュメントの XML バージョンを取得します。
+ 値は常に 1.0 です。
+
+
+ ノードの子を、指定した に保存します。XmlDeclaration ノードには子がないため、このメソッドによる影響はありません。
+ 保存先の XmlWriter。
+
+
+ 指定した にノードを保存します。
+ 保存先の XmlWriter。
+
+
+ XML ドキュメントを表します。詳細については、「Remarks」を参照してください。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+
+
+ 指定した XmlDocument を使用して、 クラスの新しいインスタンスを初期化します。
+ 使用する XmlImplementation。
+
+
+ 指定した XmlDocument を使用して、 クラスの新しいインスタンスを初期化します。
+ 使用する XmlNameTable。
+
+
+ 現在のノードのベース URI を取得します。
+ 読み込まれたノードの読み込み元の場所。
+
+
+ このノードの複製を作成します。
+ クローンとして作成された XmlDocument ノード。
+ 指定したノードの下にあるサブツリーのクローンを順次作成していく場合は true。指定したノードだけのクローンを作成する場合は false。
+
+
+ 指定した を使用して を作成します。
+ 新しい XmlAttribute。
+ 属性の限定名。名前にコロンが含まれている場合は、名前のうち最初のコロンの前にある部分が プロパティに反映され、最初のコロンの後ろの部分が プロパティに反映されます。プリフィックスが xmlns などの認識された組み込みプリフィックスでない限り、 は空のままです。この場合、NamespaceURI の値は http://www.w3.org/2000/xmlns/ です。
+
+
+ 指定した限定名と を使用して を作成します。
+ 新しい XmlAttribute。
+ 属性の限定名。名前にコロンが含まれている場合は、名前のうちコロンの前にある部分が プロパティに反映され、コロンの後ろの部分が プロパティに反映されます。
+ 属性の namespaceURI。限定名に xmlns というプリフィックスが含まれている場合、このパラメーターは http://www.w3.org/2000/xmlns/ である必要があります。
+
+
+ 指定した 、、および を使用して、 を作成します。
+ 新しい XmlAttribute。
+ 属性のプリフィックス (存在する場合)。String.Empty と null は等価です。
+ 属性のローカル名。
+ 属性の名前空間 URI (存在する場合)。String.Empty と null は等価です。 が xmlns の場合、このパラメーターは http://www.w3.org/2000/xmlns/ である必要があります。それ以外の場合は、例外がスローされます。
+
+
+ 指定されたデータを格納している を作成します。
+ 新しい XmlCDataSection。
+ 新しい XmlCDataSection の内容。
+
+
+ 指定されたデータを格納している を作成します。
+ 新しい XmlComment。
+ 新しい XmlComment の内容。
+
+
+
+ を作成します。
+ 新しい XmlDocumentFragment。
+
+
+ 指定した名前を使用して要素を作成します。
+ 新しい XmlElement。
+ 要素の限定名。名前にコロンが含まれている場合は、名前のうちコロンの前にある部分が プロパティに反映され、コロンの後ろの部分が プロパティに反映されます。限定名に 'xmlns' というプリフィックスを含めることはできません。
+
+
+ 限定名と を使用して を作成します。
+ 新しい XmlElement。
+ 要素の限定名。名前にコロンが含まれている場合は、名前のうちコロンの前にある部分が プロパティに反映され、コロンの後ろの部分が プロパティに反映されます。限定名に 'xmlns' というプリフィックスを含めることはできません。
+ 要素の名前空間 URI。
+
+
+ 指定した 、、および を使用して、要素を作成します。
+ 新しい 。
+ 新しい要素のプリフィックス (存在する場合)。String.Empty と null は等価です。
+ 新しい要素のローカル名。
+ 新しい要素の名前空間 URI (存在する場合)。String.Empty と null は等価です。
+
+
+ 指定したノード型、、および を使用して、 を作成します。
+ 新しい XmlNode。
+ 新しいノードの の文字列バージョン。このパラメーターは、次の表に示す一覧の値のいずれかである必要があります。
+ 新しいノードの限定名。名前にコロンが含まれている場合は、解析結果は コンポーネントと コンポーネントになります。
+ 新しいノードの名前空間 URI。
+ The name was not provided and the XmlNodeType requires a name; or is not one of the strings listed below.
+
+
+ 指定した 、、および を使用して、 を作成します。
+ 新しい XmlNode。
+ 新しいノードの XmlNodeType。
+ 新しいノードの限定名。名前にコロンが含まれている場合は、解析結果は コンポーネントと コンポーネントになります。
+ 新しいノードの名前空間 URI。
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ 指定した 、、、および を使用して、 を作成します。
+ 新しい XmlNode。
+ 新しいノードの XmlNodeType。
+ 新しいノードのプリフィックス。
+ 新しいノードのローカル名。
+ 新しいノードの名前空間 URI。
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ 指定した名前とデータを使用して を作成します。
+ 新しい XmlProcessingInstruction。
+ 処理命令の名前。
+ 処理命令のデータ。
+
+
+
+ ノードを作成します。
+ 新しい XmlSignificantWhitespace ノード。
+ 文字列には、、 、 、および 	 の文字だけを含める必要があります。
+
+
+ 指定したテキストを使用して、 を作成します。
+ 新しい XmlText ノード。
+ Text ノードのテキスト。
+
+
+
+ ノードを作成します。
+ 新しい XmlWhitespace ノード。
+ 文字列には、、 、 、および 	 の文字だけを含める必要があります。
+
+
+ 指定した値を使用して、 ノードを作成します。
+ 新しい XmlDeclaration ノード。
+ バージョンは "1.0" にする必要があります。
+ エンコーディング属性の値。これは、 をファイルまたはストリームに保存するときに使用するエンコーディングです。したがって、 クラスでサポートされる文字列に設定する必要があります。それ以外の場合、 は失敗します。この値が null または String.Empty の場合は、Save メソッドが XML 宣言にエンコーディング属性を書き込まないため、既定のエンコーディング UTF-8 が使用されます。メモ : XmlDocument が または に保存される場合、このエンコーディング値は破棄されます。代わりに、TextWriter または XmlTextWriter のエンコーディングが使用されます。これにより、正しいエンコーディングを使用して、書き込まれた XML を読み戻すことができます。
+ この値は、"yes" または "no" のいずれかにする必要があります。この値が null または String.Empty の場合、Save メソッドは XML 宣言にスタンドアロン属性を書き込みません。
+ The values of or are something other than the ones specified above.
+
+
+ ドキュメントのルート を取得します。
+ XML ドキュメント ツリーのルートを表す XmlElement。ルートが存在しない場合は、null が返されます。
+
+
+ 指定した に一致するすべての子孫の要素のリストを格納している を返します。
+ 一致しているすべてのノードのリストを格納している 。 と一致するノードがない場合、返されるコレクションは空になります。
+ 一致する限定名。一致するノードの Name プロパティに一致します。特殊値の "*" は、すべてのタグに一致します。
+
+
+ 指定した および に一致するすべての子孫の要素のリストを格納している を返します。
+ 一致しているすべてのノードのリストを格納している 。指定した および と一致するノードがない場合、返されるコレクションは空になります。
+ 一致する LocalName。特殊値の "*" は、すべてのタグに一致します。
+ 一致する NamespaceURI。
+
+
+ 現在のドキュメントの オブジェクトを取得します。
+ 現在のドキュメントの XmlImplementation オブジェクト。
+
+
+ 別のドキュメントから現在のドキュメントにノードをインポートします。
+ インポートされた 。
+ インポートしているノード。
+ 詳細クローンを実行する場合は true。それ以外の場合は false。
+ Calling this method on a node type which cannot be imported.
+
+
+ 常に をスローします。
+ ノードとそのすべての子ノードの値。
+ In all cases.
+
+
+ 現在のノードの子を表すマークアップを取得または設定します。
+ 現在のノードの子のマークアップ。
+ The XML specified when setting this property is not well-formed.
+
+
+ 現在のノードが読み取り専用かどうかを示す値を取得します。
+ 現在のノードが読み取り専用の場合は true。それ以外の場合は false。XmlDocument ノードは常に false を返します。
+
+
+ 指定したストリームから XML ドキュメントを読み込みます。
+ 読み込む XML ドキュメントが含まれているストリーム。
+ There is a load or parse error in the XML.In this case, a is raised.
+
+
+ 指定した から XML ドキュメントを読み込みます。
+ XML データをドキュメントに送るために使用する TextReader。
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ 指定した から XML ドキュメントを読み込みます。
+ XML データをドキュメントに送るために使用する XmlReader。
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ 指定した文字列から XML ドキュメントを読み込みます。
+ 読み込む XML ドキュメントを格納している文字列。
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ ノードのローカル名を取得します。
+ XmlDocument ノードの場合、ローカル名は #document です。
+
+
+ ノードの限定名を取得します。
+ XmlDocument ノードの場合、名前は #document です。
+
+
+ この実装に関連付けられている を取得します。
+ ドキュメント内の最小単位に分割された文字列を取得できる XmlNameTable。
+
+
+ このドキュメントに属するノードの が変更されると発生します。
+
+
+ このドキュメントに属するノードの が変更される直前に発生します。
+
+
+ このドキュメントに属するノードが別のノードに挿入されると発生します。
+
+
+ このドキュメントに属するノードが別のノードに挿入される直前に発生します。
+
+
+ このドキュメントに属するノードが親から削除されると発生します。
+
+
+ このドキュメントに属するノードがドキュメントから削除される直前に発生します。
+
+
+ 現在のノードの種類を取得します。
+ ノード型。XmlDocument ノードの場合、この値は XmlNodeType.Document です。
+
+
+ 現在のノードが属する を取得します。
+ XmlDocument ノード ( が XmlNodeType.Document に等しい) の場合、このプロパティは常に null を返します。
+
+
+ このノードの親ノード (親を持つノードの場合) を取得します。
+ 常に null を返します。
+
+
+ 要素のコンテンツにある空白を保存するかどうかを示す値を取得または設定します。
+ 空白を保存する場合は true。それ以外の場合は false。既定値は、false です。
+
+
+
+ 内の情報に基づいて、 オブジェクトを作成します。リーダーは、ノードまたは属性に配置されている必要があります。
+ 新しい XmlNode。ノードがそれ以上存在しない場合は null。
+ XML ソース。
+ The reader is positioned on a node type that does not translate to a valid DOM node (for example, EndElement or EndEntity).
+
+
+ 指定したストリームに XML ドキュメントを保存します。
+ 保存先のストリーム。
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ 指定した に XML ドキュメントを保存します。
+ 保存先の TextWriter。
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ 指定した に XML ドキュメントを保存します。
+ 保存先の XmlWriter。
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ 指定した に XmlDocument ノードのすべての子を保存します。
+ 保存先の XmlWriter。
+
+
+ 指定した に XmlDocument ノードを保存します。
+ 保存先の XmlWriter。
+
+
+ ツリー挿入操作に使用できる、簡易オブジェクトを表します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+ フラグメントのソースである XML ドキュメント。
+
+
+ このノードの複製を作成します。
+ クローンとして作成されたノード。
+ 指定したノードの下にあるサブツリーのクローンを順次作成していく場合は true。指定したノードだけのクローンを作成する場合は false。
+
+
+ このノードの子を表すマークアップを取得または設定します。
+ このノードの子のマークアップ。
+ このプロパティを設定したときに指定した XML は、整形式ではありません。
+
+
+ ノードのローカル名を取得します。
+ XmlDocumentFragment ノードの場合、ローカル名は #document-fragment です。
+
+
+ ノードの限定名を取得します。
+ XmlDocumentFragment の場合、名前は #document-fragment です。
+
+
+ 現在のノードの種類を取得します。
+ XmlDocumentFragment ノードの場合、この値は XmlNodeType.DocumentFragment です。
+
+
+ このノードが属する を取得します。
+ このノードが属する XmlDocument。
+
+
+ このノードの親 (親を持つノードの場合) を取得します。
+ このノードの親。XmlDocumentFragment ノードの場合、このプロパティは常に null です。
+
+
+ ノードのすべての子を、指定した に保存します。
+ 保存先の XmlWriter。
+
+
+ 指定した にノードを保存します。
+ 保存先の XmlWriter。
+
+
+ 要素を表します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+ 名前空間プリフィックス。 プロパティのトピックを参照してください。
+ ローカル名。 プロパティのトピックを参照してください。
+ 名前空間 URI。 プロパティのトピックを参照してください。
+ 親 XML ドキュメント。
+
+
+ このノードの属性のリストを格納している を取得します。
+ このノードの属性のリストを格納している 。
+
+
+ このノードの複製を作成します。
+ クローンとして作成されたノード。
+ 指定したノードの下にあるサブツリーのクローンを再帰的に作成する場合は true。指定したノードだけ (および、そのノードが XmlElement の場合はその属性) のクローンを作成する場合は false。
+
+
+ 指定した名前の属性の値を返します。
+ 指定した属性の値。一致する属性が見つからない場合、属性に指定した値または既定値がない場合は、空の文字列を返します。
+ 取得する属性の名前。これは限定名です。一致するノードの Name プロパティに一致します。
+
+
+ 指定したローカル名および名前空間 URI の属性の値を返します。
+ 指定した属性の値。一致する属性が見つからない場合、属性に指定した値または既定値がない場合は、空の文字列を返します。
+ 取得する属性のローカル名。
+ 取得する属性の名前空間 URI。
+
+
+ 指定した名前の XmlAttribute を返します。
+ 指定した XmlAttribute。一致する属性が見つからなかった場合は null。
+ 取得する属性の名前。これは限定名です。一致するノードの Name プロパティに一致します。
+
+
+ 指定したローカル名および名前空間 URI の を返します。
+ 指定した XmlAttribute。一致する属性が見つからなかった場合は null。
+ 属性のローカル名。
+ 属性の名前空間 URI。
+
+
+ 指定した に一致するすべての子孫の要素のリストを格納している を返します。
+ 一致しているすべてのノードのリストを格納している 。リストが表示され、一致するノードがない場合は空です。
+ 一致する名前タグ。これは限定名です。一致するノードの Name プロパティに一致します。アスタリスク (*) は、すべてのタグに一致する特殊値です。
+
+
+ 指定した および に一致するすべての子孫の要素のリストを格納している を返します。
+ 一致しているすべてのノードのリストを格納している 。リストが表示され、一致するノードがない場合は空です。
+ 一致するローカル名。アスタリスク (*) は、すべてのタグに一致する特殊値です。
+ 一致する名前空間 URI。
+
+
+ 現在のノードに指定した名前の属性があるかどうかを確認します。
+ 現在のノードに指定した属性がある場合は true。それ以外の場合は false。
+ 検索する属性の名前。これは限定名です。一致するノードの Name プロパティに一致します。
+
+
+ 指定したローカル名および名前空間 URI の属性が現在のノードにあるかどうかを確認します。
+ 現在のノードに指定した属性がある場合は true。それ以外の場合は false。
+ 検索する属性のローカル名。
+ 検索する属性の名前空間 URI。
+
+
+ 現在のノードが属性を持っているかどうかを示す boolean 値を取得します。
+ 現在のノードが属性を持っている場合は true。それ以外の場合は false。
+
+
+ ノードとそのすべての子の連結している値を取得または設定します。
+ ノードとすべての子の連結された値。
+
+
+ このノードの子だけを表すマークアップを取得または設定します。
+ このノードの子のマークアップ。
+ このプロパティを設定したときに指定した XML は、整形式ではありません。
+
+
+ 要素のタグ形式を取得または設定します。
+ 要素が短いタグ形式 "<item/>" でシリアル化される場合は true を返します。長い形式 "<item></item>" の場合は false を返します。このプロパティを設定する場合、true に設定すると、要素の子が削除され、要素は短いタグ形式でシリアル化されます。false に設定した場合は、要素に内容があるかどうかにかかわらず、プロパティの値は変更されます。要素が空の場合は、長い形式でシリアル化されます。このプロパティは、DOM (Document Object Model) に対する Microsoft 拡張機能です。
+
+
+ 現在のノードのローカル名を取得します。
+ プリフィックスを削除した現在のノードの名前。たとえば、LocalName は要素 <bk:book> の book です。
+
+
+ ノードの限定名を取得します。
+ ノードの限定名。XmlElement ノードの場合、これは要素のタグ名です。
+
+
+ このノードの名前空間 URI を取得します。
+ このノードの名前空間 URI。名前空間 URI がない場合、このプロパティは String.Empty を返します。
+
+
+ この要素の直後の を取得します。
+ この要素の直後の XmlNode。
+
+
+ 現在のノードの種類を取得します。
+ ノード型。XmlElement ノードの場合、この値は XmlNodeType.Element です。
+
+
+ このノードが属する を取得します。
+ この要素が属する XmlDocument。
+
+
+
+ このノードの名前空間プリフィックスを取得または設定します。
+ このノードの名前空間プリフィックス。プリフィックスがない場合、このプロパティは String.Empty を返します。
+ このノードは読み取り専用です。
+ 指定したプレフィックスに無効な文字が含まれています。指定されたプリフィックスの書式が正しくありません。このノードの namespaceURI が null です。指定したプリフィックスが "xml" で、このノードの namespaceURI が http://www.w3.org/XML/1998/namespace と異なっています。
+
+
+ 現在のノードのすべての指定した属性および子を削除します。既定の属性は削除されません。
+
+
+ 要素からすべての指定した属性を削除します。既定の属性は削除されません。
+
+
+ 名前によって属性を削除します。
+ 削除する属性の名前。これは限定名です。一致するノードの Name プロパティに一致します。
+ ノードが読み取り専用です。
+
+
+ 指定したローカル名および名前空間 URI の属性を削除します。削除された属性に既定値がある場合は、すぐに置き換えられます。
+ 削除する属性のローカル名。
+ 削除する属性の名前空間 URI。
+ ノードが読み取り専用です。
+
+
+ 指定したインデックスの属性ノードを要素から削除します。削除された属性に既定値がある場合は、すぐに置き換えられます。
+ 削除された属性ノード。指定したインデックス位置にノードがない場合は null。
+ 削除するノードのインデックス。最初のノードのインデックスは 0 です。
+
+
+ ローカル名および名前空間 URI で指定された を削除します。削除された属性に既定値がある場合は、すぐに置き換えられます。
+ 削除された XmlAttribute。XmlElement に一致する属性ノードがない場合は null。
+ 属性のローカル名。
+ 属性の名前空間 URI。
+ このノードは読み取り専用です。
+
+
+ 指定した を削除します。
+ 削除された XmlAttribute。 が XmlElement の属性ノードでない場合は null。
+ 削除する XmlAttribute ノード。削除された属性に既定値がある場合は、すぐに置き換えられます。
+ このノードは読み取り専用です。
+
+
+ 指定した名前の属性の値を設定します。
+ 作成または変更する属性の名前。これは限定名です。名前にコロンが含まれている場合、その名前はプリフィックスとローカル名コンポーネントに解析されます。
+ 属性に設定する値。
+ 指定した名前に無効な文字が含まれています。
+ ノードが読み取り専用です。
+
+
+ 指定したローカル名および名前空間 URI の属性の値を設定します。
+ 属性値。
+ 属性のローカル名。
+ 属性の名前空間 URI。
+ 属性に設定する値。
+
+
+ 指定した を追加します。
+ 追加する XmlAttribute。
+ 属性のローカル名。
+ 属性の名前空間 URI。
+
+
+ 指定した を追加します。
+ 属性によって同じ名前の既存の属性が置換される場合は、古い XmlAttribute が返されます。それ以外の場合は、null が返されます。
+ この要素の属性コレクションに追加する XmlAttribute ノード。
+
+ は、このノードを作成したドキュメントとは異なるドキュメントから作成されました。または、このノードが読み取り専用です。
+
+ は、既に別の XmlElement オブジェクトの属性になっています。XmlAttribute ノードのクローンを明示的に作成し、それらのクローンを他の XmlElement オブジェクトで再利用する必要があります。
+
+
+ ノードのすべての子を、指定した に保存します。
+ 保存先の XmlWriter。
+
+
+ 指定した に現在のノードを保存します。
+ 保存先の XmlWriter。
+
+
+
+ オブジェクトのセットのコンテキストを定義します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+
+
+
+ を指定して、 クラスの新しいインスタンスを初期化します。
+
+ オブジェクト。
+
+
+ 新しい を作成します。
+ 新しい XmlDocument オブジェクト。
+
+
+ DOM (Document Object Model) 実装が特定の機能を実装するかどうかをテストします。
+ 指定したバージョンでその機能が実装される場合は true。それ以外の場合は false。HasFeature が true を返す組み合わせを次の表に示します。strFeaturestrVersionXML1.0XML2.0
+ テスト対象の機能のパッケージ名。この名前は大文字と小文字を区別しません。
+ これは、テストする対象のパッケージ名のバージョン番号です。バージョンを指定しない場合 (null)、機能のいずれかのバージョンがサポートされていれば、このメソッドは true を返します。
+
+
+ このノードの直前または直後のノードを取得します。
+
+
+ このノードの直後のノードを取得します。
+ このノードの直後の 。直後のノードが存在しない場合は null。
+
+
+ このノードの直前のノードを取得します。
+ 直前の 。直前のノードが存在しない場合は null。
+
+
+ 名前またはインデックスによってアクセスできるノードのコレクションを表します。
+
+
+ XmlNamedNodeMap 内のノードの数を取得します。
+ ノードの数。
+
+
+ XmlNamedNodeMap 内のノードのコレクションに対する "foreach" スタイルの反復をサポートします。
+ 列挙子オブジェクト。
+
+
+ 名前で指定した を取得します。
+ 指定した名前の XmlNode。一致するノードが見つからない場合は null。
+ 取得するノードの限定名。一致するノードの プロパティに一致します。
+
+
+ 一致する および を持つノードを取得します。
+ 一致するローカル名および名前空間 URI を持つ 。一致するノードが見つからなかった場合は null。
+ 取得するノードのローカル名。
+ 取得するノードの名前空間 URI (Uniform Resource Identifier)。
+
+
+ XmlNamedNodeMap 内の指定したインデックス位置にあるノードを取得します。
+ 指定されたインデックスにある 。 が 0 未満か、 プロパティ以上の場合は、null が返されます。
+ XmlNamedNodeMap から取得するノードのインデックス位置。インデックスは 0 から始まるため、最初のノードのインデックスは 0 で、最後のノードのインデックスは -1 になります。
+
+
+ ノードを XmlNamedNodeMap から削除します。
+ この XmlNamedNodeMap から削除した XmlNode。一致するノードが見つからなかった場合は null。
+ 削除するノードの限定名。名前は、一致するノードの プロパティに一致します。
+
+
+ 一致する および を持つノードを削除します。
+ 削除した 。一致するノードが見つからなかった場合は null。
+ 削除するノードのローカル名。
+ 削除するノードの名前空間 URI。
+
+
+
+ をその プロパティを使用して追加します。
+
+ によって同じ名前の既存のノードが置換される場合、古いノードが返されます。それ以外の場合は null が返されます。
+ XmlNamedNodeMap に格納する XmlNode。その名前のノードが既にマップに存在している場合は、新しいノードに置き換えられます。
+ XmlNamedNodeMap を作成したものとは異なる から が作成されました。または、XmlNamedNodeMap が読み取り専用です。
+
+
+ XML ドキュメント内の単一のノードを表します。
+
+
+ このノードの子ノードのリストの末尾に、指定したノードを追加します。
+ 追加されたノード。
+ 追加するノード。追加するノードのすべての内容が、指定した場所に移動します。
+ このノードは、 ノードの型の子ノードが許可されない型です。 がこのノードの先祖です。
+
+ は、このノードを作成したドキュメントとは異なるドキュメントから作成されました。このノードは読み取り専用です。
+
+
+ このノードの属性を格納している を取得します。
+ ノードの属性を格納している XmlAttributeCollection。XmlNodeType.Element 型のノードの場合は、ノードの属性が返されます。それ以外の場合は、null を返します。
+
+
+ 現在のノードのベース URI を取得します。
+ ノードの読み込み元の場所。ノードにベース URI がない場合は String.Empty。
+
+
+ ノードのすべての子ノードを取得します。
+ ノードのすべての子ノードを格納しているオブジェクト。子ノードがない場合、このプロパティは空の を返します。
+
+
+ 派生クラスでオーバーライドされた場合は、ノードの複製を作成します。
+ クローンとして作成されたノード。
+ 指定したノードの下にあるサブツリーのクローンを順次作成していく場合は true。指定したノードだけのクローンを作成する場合は false。
+ クローンを作成できないノード型でこのメソッドを呼び出しています。
+
+
+ ノードの最初の子を取得します。
+ ノードの最初の子。そのようなノードがない場合は、null が返されます。
+
+
+ 現在のノード内の子ノードを反復処理する列挙子を取得します。
+ 現在のノードの子ノードを反復処理するために使用できる オブジェクト。
+
+
+ 現在のノードのスコープ内にある指定したプレフィックスに対する最も近い xmlns 宣言を検索し、宣言内の名前空間 URI を返します。
+ 指定したプリフィックスの名前空間 URI。
+ 検索対象の名前空間 URI を持つプレフィックス。
+
+
+ 現在のノードのスコープ内にある指定した名前空間 URI に対する最も近い xmlns 宣言を検索し、宣言で定義されているプレフィックスを返します。
+ 指定した名前空間 URI のプリフィックス。
+ 検索対象のプリフィックスを持つ名前空間 URI。
+
+
+ このノードに子ノードがあるかどうかを示す値を取得します。
+ ノードが子ノードを持っている場合は true。それ以外の場合は false。
+
+
+ ノードとそのすべての子の連結された値を取得または設定します。
+ ノードとそのすべての子の連結された値。
+
+
+ このノードの子ノードだけを表すマークアップを取得または設定します。
+ このノードの子ノードのマークアップ。メモInnerXml は既定の属性を返しません。
+ 子ノードを持つことができないノードでこのプロパティを設定します。
+ このプロパティを設定したときに指定した XML は、整形式ではありません。
+
+
+ 指定したノードを指定した参照ノードの直後に挿入します。
+ 挿入されるノード。
+ 挿入する XmlNode。
+ 参照ノードである XmlNode。 は、 の後に配置されます。
+ このノードは、 ノードの型の子ノードが許可されない型です。 がこのノードの先祖です。
+
+ は、このノードを作成したドキュメントとは異なるドキュメントから作成されました。 がこのノードの子ではありません。このノードは読み取り専用です。
+
+
+ 指定したノードを指定した参照ノードの直前に挿入します。
+ 挿入されるノード。
+ 挿入する XmlNode。
+ 参照ノードである XmlNode。 は、このノードの前に配置されます。
+ 現在のノードは、 ノードの型の子ノードが許可されない型です。 がこのノードの先祖です。
+
+ は、このノードを作成したドキュメントとは異なるドキュメントから作成されました。 がこのノードの子ではありません。このノードは読み取り専用です。
+
+
+ ノードが読み取り専用かどうかを示す値を取得します。
+ ノードが読み取り専用の場合は true。それ以外の場合は false。
+
+
+ 指定した の最初の子要素を取得します。
+ 指定した名前と一致する最初の 。一致するものがない場合は、null 参照 (Visual Basic の場合は Nothing) が返されます。
+ 取得する要素の限定名。
+
+
+ 指定した および の最初の子要素を取得します。
+
+ および が一致する最初の 。.一致するものがない場合は、null 参照 (Visual Basic の場合は Nothing) が返されます。
+ 要素のローカル名。
+ 要素の名前空間 URI。
+
+
+ ノードの最後の子を取得します。
+ ノードの最後の子。そのようなノードがない場合は、null が返されます。
+
+
+ 派生クラスでオーバーライドされた場合は、ノードのローカル名を取得します。
+ プリフィックスが削除されたノードの名前。たとえば、LocalName は要素 <bk:book> の book です。返される名前は、ノードの によって異なります。種類名前属性属性のローカル名。CDATA#cdata-sectionコメント#commentDocument#documentDocumentFragment#document-fragmentDocumentTypeドキュメントの種類の名前。要素要素のローカル名。Entityエンティティの名前。EntityReference参照されたエンティティの名前。Notation表記名。ProcessingInstruction処理命令の対象。Text#textWhitespace#whitespaceSignificantWhitespace#significant-whitespaceXmlDeclaration#xml-declaration
+
+
+ 派生クラスでオーバーライドされた場合は、ノードの修飾名を取得します。
+ ノードの限定名。返される名前は、ノードの によって異なります。種類名前属性属性の限定名。CDATA#cdata-sectionコメント#commentDocument#documentDocumentFragment#document-fragmentDocumentTypeドキュメントの種類の名前。要素要素の限定名。Entityエンティティの名前。EntityReference参照されたエンティティの名前。Notation表記名。ProcessingInstruction処理命令の対象。Text#textWhitespace#whitespaceSignificantWhitespace#significant-whitespaceXmlDeclaration#xml-declaration
+
+
+ このノードの名前空間 URI を取得します。
+ このノードの名前空間 URI。名前空間 URI がない場合、このプロパティは String.Empty を返します。
+
+
+ このノードの直後のノードを取得します。
+ 次の XmlNode。次のノードがない場合は、null が返されます。
+
+
+ 派生クラスでオーバーライドされている場合は、現在のノードの型を取得します。
+
+ 値のいずれか。
+
+
+ この XmlNode の一番下のサブツリーまで含め、すべての XmlText ノードをマークアップ (タグ、コメント、処理命令、CDATA セクション、およびエンティティ参照) だけが XmlText ノードを区分する "通常の" 書式にします。したがって、隣接する XmlText ノードはありません。
+
+
+ このノードとそのすべての子ノードを格納しているマークアップを取得します。
+ このノードとそのすべての子ノードを格納しているマークアップ。メモOuterXml は既定の属性を返しません。
+
+
+ このノードが属する を取得します。
+ このノードが属する 。ノードが (NodeType が XmlNodeType.Document と等しい) の場合、このプロパティは null を返します。
+
+
+ このノードの親 (親を持つノードの場合) を取得します。
+ 現在のノードの親である XmlNode。ノードが作成された直後でまだツリーに追加されていない場合、またはツリーから削除された場合、親は null です。他のすべてのノードについては、返される値はノードの によって異なります。ParentNode プロパティの有効な戻り値を次の表に示します。ノード型ParentNode の戻り値。Attribute、Document、DocumentFragment、Entity、Notationnull を返します。これらのノードには親がありません。CDATACDATA セクションを含む要素またはエンティティ参照を返します。コメントコメントを含む要素、エンティティ参照、ドキュメントの種類、またはドキュメントを返します。DocumentTypeドキュメント ノードを返します。要素要素の親ノードを返します。要素がツリーにおいてルート ノードである場合、親はドキュメント ノードです。EntityReferenceエンティティ参照を含む要素、属性、またはエンティティ参照を返します。ProcessingInstruction処理命令を含むドキュメント、要素、ドキュメントの種類、またはエンティティ参照を返します。Textテキスト ノードを含む親要素、属性、またはエンティティ参照を返します。
+
+
+ このノードの名前空間プリフィックスを取得または設定します。
+ このノードの名前空間プリフィックス。たとえば、プリフィックスは要素 <bk:book> の bk です。プリフィックスがない場合、このプロパティは String.Empty を返します。
+ このノードは読み取り専用です。
+ 指定したプレフィックスに無効な文字が含まれています。指定されたプリフィックスの書式が正しくありません。指定したプリフィックスが "xml" であり、このノードの namespaceURI が "http://www.w3.org/XML/1998/namespace" と異なっています。このノードが属性で、指定したプリフィックスが "xmlns" で、このノードの namespaceURI が "http://www.w3.org/2000/xmlns/ " と異なります。このノードが属性で、このノードの qualifiedName が "xmlns" です。
+
+
+ このノードの子ノードのリストの先頭に、指定したノードを追加します。
+ 追加されたノード。
+ 追加するノード。追加するノードのすべての内容が、指定した場所に移動します。
+ このノードは、 ノードの型の子ノードが許可されない型です。 がこのノードの先祖です。
+
+ は、このノードを作成したドキュメントとは異なるドキュメントから作成されました。このノードは読み取り専用です。
+
+
+ このノードの直前のノードを取得します。
+ 直前の XmlNode。直前のノードがない場合は、null が返されます。
+
+
+ このノードの直前にあるテキスト ノードを取得します。
+
+ を返します。
+
+
+ 現在のノードのすべての子ノードと属性の両方、またはそのいずれかを削除します。
+
+
+ 指定した子ノードを削除します。
+ 削除されたノード。
+ 削除されるノード。
+
+ がこのノードの子ではありません。または、このノードが読み取り専用です。
+
+
+ 子ノード を ノードに置き換えます。
+ 置き換えられたノード。
+ 子リストに入れる新しいノード。
+ リスト内の置換されるノード。
+ このノードは、 ノードの型の子ノードが許可されない型です。 がこのノードの先祖です。
+
+ は、このノードを作成したドキュメントとは異なるドキュメントから作成されました。このノードは読み取り専用です。 がこのノードの子ではありません。
+
+
+ DOM 実装が特定の機能を実装するかどうかをテストします。
+ 指定したバージョンでその機能が実装される場合は true。それ以外の場合は false。true を返す組み合わせを次の表に示します。機能バージョンXML1.0 XML2.0
+ テスト対象の機能のパッケージ名。この名前は大文字と小文字を区別しません。
+ テストする対象のパッケージ名のバージョン番号。バージョンを指定しない場合、つまりバージョンが null の場合は、いずれかのバージョンの機能がサポートされていれば、メソッドは true を返します。
+
+
+ このメンバーの説明については、 のトピックを参照してください。
+ コレクションの列挙子を返します。
+
+
+ ノードの値を取得または設定します。
+ 返される値は、ノードの によって異なります。種類値属性属性の値。CDATASectionCDATA セクションの内容。コメントコメントの内容。Document null. DocumentFragment null. DocumentType null. 要素 null. プロパティまたは プロパティを使用すると、要素ノードの値にアクセスできます。Entity null. EntityReference null. Notation null. ProcessingInstructionターゲットを含まない全体の内容。Textテキスト ノードの内容。SignificantWhitespace空白文字。空白は、1 つ以上の空白文字、キャリッジ リターン、ライン フィード、またはタブによって構成できます。Whitespace空白文字。空白は、1 つ以上の空白文字、キャリッジ リターン、ライン フィード、またはタブによって構成できます。XmlDeclaration宣言の内容。つまり <?xml と ?> の間のすべて。
+ 読み取り専用のノードの値を設定します。
+ 値がないと想定されているノード (Element ノードなど) の値を設定します。
+
+
+ 派生クラスでオーバーライドされた場合は、指定した にノードのすべての子ノードを保存します。
+ 保存先の XmlWriter。
+
+
+ 派生クラスでオーバーライドされた場合は、指定した に現在のノードを保存します。
+ 保存先の XmlWriter。
+
+
+ ノード変更の型を指定します。
+
+
+ ノード値が変更されています。
+
+
+ ノードがツリーに挿入されています。
+
+
+ ノードがツリーから削除されています。
+
+
+
+ 、、、、、 の各イベントのデータを提供します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+ イベントを生成した 。
+ イベントを生成した の以前の親 。
+ イベントを生成した の新しい親 。
+ イベントを生成した の以前の値。
+ イベントを生成した の新しい値。
+
+ 。
+
+
+ 発生しているノード変更イベントの型を示す値を取得します。
+ ノード変更イベントを記述する XmlNodeChangedAction 値。XmlNodeChangedAction 値説明Insertノードが挿入されたか、これから挿入されます。削除ノードが削除されたか、これから削除されます。変更ノードが変更されたか、これから変更されます。メモAction 値は、イベントがいつ発生したか、つまり発生前であるか発生後であるかを区別しません。イベント ハンドラーを個別に作成して、両方のインスタンスを処理できます。
+
+
+ 操作を完了した後の の値を取得します。
+ 操作を完了した後の ParentNode の値。ノードが削除されている場合、このプロパティは null を返します。メモ属性ノードの場合、このプロパティは を返します。
+
+
+ ノードの新しい値を取得します。
+ ノードの新しい値。ノードが属性ノードでもテキスト ノードでもない場合、またはノードが削除されている場合、このプロパティは null を返します。 イベントで呼び出された場合、NewValue は変更が成功したときにノードの値を返します。 イベントで呼び出された場合、NewValue はノードの現在の値を返します。
+
+
+ 追加、削除、または変更されている を取得します。
+ 追加、削除、または変更されている XmlNode。このプロパティは null を返しません。
+
+
+ 操作を開始する前の の値を取得します。
+ 操作を開始する前の ParentNode の値。ノードに親がなかった場合、このプロパティは null を返します。メモ属性ノードの場合、このプロパティは を返します。
+
+
+ ノードの元の値を取得します。
+ ノードの元の値。ノードが属性ノードでもテキスト ノードでもない場合、またはノードが挿入されている場合、このプロパティは null を返します。 イベントで呼び出された場合、OldValue は変更が成功したときに置き換えられるノードの現在の値を返します。 イベントで呼び出された場合、OldValue は変更前のノードの値を返します。
+
+
+
+ 、、、、、および のイベントを処理するメソッドを表します。
+ イベントのソース。
+ イベント データを格納している 。
+
+
+ 順序の付いたノードのコレクションを表します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+
+
+ XmlNodeList 内のノードの数を取得します。
+ XmlNodeList に含まれるノードの数。
+
+
+ ノードを反復処理する列挙子を取得します。
+ ノードのコレクションを反復処理するために使用される列挙子。
+
+
+ 指定したインデックス位置にあるノードを取得します。
+ コレクション内の指定したインデックスに関連付けられている 。 がリスト内のノード数以上の場合は、null を返します。
+ ノードのリストの 0 から始まるインデックス番号。
+
+
+ 指定したインデックス位置にあるノードを取得します。
+ コレクション内の指定したインデックスに関連付けられている 。インデックスがリスト内のノード数以上の場合は、null を返します。
+ ノードのリストの 0 から始まるインデックス番号。
+
+
+ ノード リスト内のリソースをプライベートに破棄します。
+
+
+
+ クラスによって使用されているすべてのリソースを解放します。
+
+
+ XML がプロセッサ固有の情報をドキュメントのテキストに保持するために定義する処理命令を表します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+ 処理命令の対象。 プロパティに関するトピックを参照してください。
+ 命令の内容。 プロパティに関するトピックを参照してください。
+ 親 XML ドキュメント。
+
+
+ このノードの複製を作成します。
+ 複製されたノード。
+
+指定したノードの下にあるサブツリーのクローンを順次作成していく場合は true。指定したノードだけのクローンを作成する場合は false。
+
+
+ 対象を含まない、処理命令の内容を取得または設定します。
+ 対象を含まない、処理命令の内容。
+
+
+ ノードとそのすべての子の連結している値を取得または設定します。
+ ノードとすべての子の連結された値。
+
+
+ ノードのローカル名を取得します。
+ 処理命令ノードの場合、このプロパティは処理命令の対象を返します。
+
+
+ ノードの限定名を取得します。
+ 処理命令ノードの場合、このプロパティは処理命令の対象を返します。
+
+
+ 現在のノードの種類を取得します。
+ XmlProcessingInstruction ノードの場合、この値は XmlNodeType.ProcessingInstruction です。
+
+
+ 処理命令の対象を取得します。
+ 処理命令の対象。
+
+
+ ノードの値を取得または設定します。
+ 対象を含まない処理命令の全内容。
+ Node is read-only.
+
+
+ ノードのすべての子を、指定した に保存します。ProcessingInstruction ノードには子がないため、このメソッドによる影響はありません。
+ 保存先の XmlWriter。
+
+
+ 指定した にノードを保存します。
+ 保存先の XmlWriter。
+
+
+ 混合コンテンツ ノードのマークアップ間にある空白、または xml:space= 'preserve' スコープ内の空白を表します。これは有意の空白とも呼ばれます。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+ ノードの空白文字。
+
+ オブジェクト。
+
+
+ このノードの複製を作成します。
+ クローンとして作成されたノード。
+ 指定したノードの下にあるサブツリーのクローンを順次作成していく場合は true。指定したノードだけのクローンを作成する場合は false。有意の空白ノードの場合、クローンとして作成されたノードには、パラメーターの設定に関係なく、常にデータ値が含まれます。
+
+
+ ノードのローカル名を取得します。
+ XmlSignificantWhitespace ノードの場合、このプロパティは #significant-whitespace を返します。
+
+
+ ノードの限定名を取得します。
+ XmlSignificantWhitespace ノードの場合、このプロパティは #significant-whitespace を返します。
+
+
+ 現在のノードの種類を取得します。
+ XmlSignificantWhitespace ノードの場合、この値は XmlNodeType.SignificantWhitespace です。
+
+
+ 現在のノードの親を取得します。
+ 現在のノードの 親ノード。
+
+
+ このノードの直前にあるテキスト ノードを取得します。
+
+ を返します。
+
+
+ ノードの値を取得または設定します。
+ ノードで検出された空白文字。
+ Value が無効な空白文字に設定されています。
+
+
+ ノードのすべての子を、指定した に保存します。
+ 保存先の XmlWriter。
+
+
+ 指定した にノードを保存します。
+ 保存先の XmlWriter。
+
+
+ 要素または属性のテキストの内容を表します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+ ノードの内容。 プロパティに関するトピックを参照してください。
+ 親 XML ドキュメント。
+
+
+ このノードの複製を作成します。
+ クローンとして作成されたノード。
+ 指定したノードの下にあるサブツリーのクローンを順次作成していく場合は true。指定したノードだけのクローンを作成する場合は false。
+
+
+ ノードのローカル名を取得します。
+ テキスト ノードの場合、このプロパティは #text を返します。
+
+
+ ノードの限定名を取得します。
+ テキスト ノードの場合、このプロパティは #text を返します。
+
+
+ 現在のノードの種類を取得します。
+ テキスト ノードの場合、この値は XmlNodeType.Text です。
+
+
+
+ このノードの直前にあるテキスト ノードを取得します。
+
+ を返します。
+
+
+ 指定したオフセット位置でノードを 2 つのノードに分割し、両方とも兄弟としてツリーに保持します。
+ 新しいノード。
+ ノードを分割する位置のオフセット。
+
+
+ ノードの値を取得または設定します。
+ テキスト ノードの内容。
+
+
+ ノードのすべての子を、指定した に保存します。XmlText ノードには子がないため、このメソッドによる影響はありません。
+ 保存先の XmlWriter。
+
+
+ 指定した にノードを保存します。
+ 保存先の XmlWriter。
+
+
+ 要素の内容の中にある空白を表します。
+
+
+
+ クラスの新しいインスタンスを初期化します。
+ ノードの空白文字。
+
+ オブジェクト。
+
+
+ このノードの複製を作成します。
+ クローンとして作成されたノード。
+ 指定したノードの下にあるサブツリーのクローンを順次作成していく場合は true。指定したノードだけのクローンを作成する場合は false。空白ノードの場合、クローンとして作成されたノードには、パラメーターの設定に関係なく、常にデータ値が含まれます。
+
+
+ ノードのローカル名を取得します。
+ XmlWhitespace ノードの場合、このプロパティは #whitespace を返します。
+
+
+ ノードの限定名を取得します。
+ XmlWhitespace ノードの場合、このプロパティは #whitespace を返します。
+
+
+ ノードの種類を取得します。
+ XmlWhitespace ノードの場合、値は です。
+
+
+ 現在のノードの親を取得します。
+ 現在のノードの 親ノード。
+
+
+ このノードの直前にあるテキスト ノードを取得します。
+
+ を返します。
+
+
+ ノードの値を取得または設定します。
+ ノードで検出された空白文字。
+
+ が無効な空白文字に設定されています。
+
+
+ ノードのすべての子を、指定した に保存します。
+ 保存先の 。
+
+
+ 指定した にノードを保存します。
+ 保存先の 。
+
+
+
\ No newline at end of file
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/ko/System.Xml.XmlDocument.xml b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/ko/System.Xml.XmlDocument.xml
new file mode 100644
index 0000000..080efb9
--- /dev/null
+++ b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/ko/System.Xml.XmlDocument.xml
@@ -0,0 +1,1464 @@
+
+
+
+ System.Xml.XmlDocument
+
+
+
+ 특성을 나타냅니다.특성에 대해 유효한 값과 기본값은 DTD(문서 형식 정의) 또는 스키마에 정의됩니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+ 네임스페이스 접두사입니다.
+ 특성의 로컬 이름입니다.
+ 네임스페이스 URI(Uniform Resource Identifier)입니다.
+ 부모 XML 문서입니다.
+
+
+ 지정된 노드를 이 노드의 자식 노드 목록 끝에 추가합니다.
+ 추가된 입니다.
+ 추가할 입니다.
+ 이 노드가 노드 형식의 자식 노드를 허용하지 않는 형식을 가지는 경우가 이 노드의 상위 노드일 경우
+ 이 노드를 만든 문서가 아닌 다른 문서에서 를 만든 경우이 노드가 읽기 전용인 경우
+
+
+ 노드의 기본 URI(Uniform Resource Identifier)를 가져옵니다.
+ 노드가 로드된 위치이거나 노드에 기본 URI가 없으면 String.Empty입니다.Attribute 노드의 기본 URI는 해당 노드의 소유자 요소의 기본 URI와 같습니다.Attribute 노드에 소유자 요소가 없으면, BaseURI가 String.Empty를 반환합니다.
+
+
+ 이 노드의 복제본을 만듭니다.
+ 복제 노드입니다.
+ 지정된 노드 아래의 하위 트리를 재귀적으로 복제하려면 true이고, 노드 자체만 복제하려면 false입니다.
+
+
+ 노드와 모든 자식의 연결된 값을 설정합니다.
+ 노드와 모든 자식의 연결된 값입니다.Attribute 노드의 경우, 이 속성의 기능은 속성의 기능과 같습니다.
+
+
+ 특성 값을 설정합니다.
+ 특성 값입니다.
+ 이 속성을 설정할 때 지정한 XML이 제대로 구성되지 않은 경우
+
+
+ 지정된 노드를 지정된 참조 노드 바로 다음에 삽입합니다.
+ 삽입된 입니다.
+ 삽입할 입니다.
+ 참조 노드인 입니다.는 다음에 있습니다.
+ 이 노드가 노드 형식의 자식 노드를 허용하지 않는 형식을 가지는 경우가 이 노드의 상위 노드일 경우
+ 이 노드를 만든 문서가 아닌 다른 문서에서 를 만든 경우가 이 노드의 자식이 아닌 경우이 노드가 읽기 전용인 경우
+
+
+ 지정된 노드를 지정된 참조 노드 바로 앞에 삽입합니다.
+ 삽입된 입니다.
+ 삽입할 입니다.
+ 참조 노드인 입니다.이 노드 앞에 가 있습니다.
+ 현재 노드가 노드 형식의 자식 노드를 허용하지 않는 형식인 경우가 이 노드의 상위 노드일 경우
+ 이 노드를 만든 문서가 아닌 다른 문서에서 를 만든 경우가 이 노드의 자식이 아닌 경우이 노드가 읽기 전용인 경우
+
+
+ 노드의 로컬 이름을 가져옵니다.
+ 접두사가 제거된 Attribute 노드의 이름입니다.다음 예제 <book bk:genre= 'novel'>에서 특성의 LocalName은 genre입니다.
+
+
+ 노드의 정규화된 이름을 가져옵니다.
+ Attribute 노드의 정규화된 이름입니다.
+
+
+ 이 노드의 네임스페이스 URI를 가져옵니다.
+ 이 노드의 네임스페이스 URI입니다.해당 특성에 네임스페이스가 명시적으로 부여되지 않으면, 이 속성은 String.Empty를 반환합니다.
+
+
+ 현재 노드의 형식을 가져옵니다.
+ XmlAttribute 노드의 노드 형식은 XmlNodeType.Attribute입니다.
+
+
+ 이 노드가 속한 를 가져옵니다.
+ 이 노드가 속하는 XML 문서입니다.
+
+
+ 특성이 속한 를 가져옵니다.
+ 해당 특성이 속한 XmlElement이거나, 이 특성이 XmlElement의 일부가 아닌 경우 null입니다.
+
+
+ 이 노드의 부모 노드를 가져옵니다.XmlAttribute 노드의 경우, 이 속성은 항상 null을 반환합니다.
+ XmlAttribute 노드의 경우, 이 속성은 항상 null을 반환합니다.
+
+
+ 이 노드의 네임스페이스 접두사를 가져오거나 설정합니다.
+ 이 노드의 네임스페이스 접두사입니다.접두사가 없으면, 이 속성은 String.Empty를 반환합니다.
+ 이 노드가 읽기 전용인 경우
+ 지정된 접두사에 잘못된 문자가 있는 경우지정된 접두사가 잘못된 경우이 노드의 namespaceURI가 null인 경우지정된 접두사는 "xml"이고, 이 노드의 namespaceURI가 "http://www.w3.org/XML/1998/namespace"와 다른 경우이 노드가 특성이고, 지정된 접두사가 "xmlns"이며, 이 노드의 namespaceURI가 "http://www.w3.org/2000/xmlns/"와 다른 경우이 노드가 특성이고 이 노드의 qualifiedName이 "xmlns" [Namespaces]인 경우
+
+
+ 지정된 노드를 이 노드의 자식 노드 목록 앞에 추가합니다.
+ 추가된 입니다.
+ 추가할 입니다.일 경우 문서 단편의 전체 내용이 이 노드의 자식 목록으로 이동합니다.
+ 이 노드가 노드 형식의 자식 노드를 허용하지 않는 형식을 가지는 경우가 이 노드의 상위 노드일 경우
+ 이 노드를 만든 문서가 아닌 다른 문서에서 를 만든 경우이 노드가 읽기 전용인 경우
+
+
+ 지정된 자식 노드를 제거합니다.
+ 제거된 입니다.
+ 제거할 입니다.
+
+ 가 이 노드의 자식이 아닌 경우이 노드가 읽기 전용인 경우
+
+
+ 지정된 자식 노드를 지정된 새 자식 노드로 바꿉니다.
+ 바꾼 입니다.
+ 새 자식 입니다.
+ 바꿀 입니다.
+ 이 노드가 노드 형식의 자식 노드를 허용하지 않는 형식을 가지는 경우가 이 노드의 상위 노드일 경우
+ 이 노드를 만든 문서가 아닌 다른 문서에서 를 만든 경우이 노드가 읽기 전용인 경우가 이 노드의 자식이 아닌 경우
+
+
+ 특성 값이 명시적으로 설정되었는지 여부를 나타내는 값을 가져옵니다.
+ 원본 인스턴스 문서에서 이 특성에 값이 명시적으로 부여되었으면 true이고, 그렇지 않으면 false입니다.false 값은 해당 특성 값을 DTD에서 가져왔음을 나타냅니다.
+
+
+ 노드의 값을 가져오거나 설정합니다.
+ 반환되는 값은 노드의 에 따라 달라집니다.XmlAttribute 노드의 경우, 이 속성은 특성 값입니다.
+ 노드가 읽기 전용인데 set 작업이 호출된 경우
+
+
+ 지정된 에 노드의 모든 자식을 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 지정된 에 노드를 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 이름이나 인덱스로 액세스할 수 있는 특성의 컬렉션을 나타냅니다.
+
+
+ 지정된 특성을 컬렉션의 마지막 노드로 삽입합니다.
+ 컬렉션에 추가할 XmlAttribute입니다.
+ 삽입할 입니다.
+ 이 컬렉션을 만든 문서와 다른 문서에서 를 만든 경우
+
+
+ 모든 개체를 이 컬렉션에서 지정된 배열로 복사합니다.
+ 이 컬렉션에서 복사된 개체의 대상인 배열입니다.
+ 복사를 시작할 배열의 인덱스입니다.
+
+
+ 지정된 특성을 지정된 참조 특성 바로 뒤에 삽입합니다.
+ 컬렉션에 삽입할 XmlAttribute입니다.
+ 삽입할 입니다.
+ 참조 특성인 입니다.는 뒤에 삽입됩니다.
+ 이 컬렉션을 만든 문서와 다른 문서에서 를 만든 경우또는 가 이 컬렉션의 멤버가 아닌 경우
+
+
+ 지정된 특성을 지정된 참조 특성 바로 앞에 삽입합니다.
+ 컬렉션에 삽입할 XmlAttribute입니다.
+ 삽입할 입니다.
+ 참조 특성인 입니다.는 앞에 삽입됩니다.
+ 이 컬렉션을 만든 문서와 다른 문서에서 를 만든 경우또는 가 이 컬렉션의 멤버가 아닌 경우
+
+
+ 지정된 인덱스가 있는 특성을 가져옵니다.
+ 지정된 인덱스에 있는 입니다.
+ 특성의 인덱스입니다.
+ 전달된 인덱스가 범위를 벗어납니다.
+
+
+ 지정된 이름이 있는 특성을 가져옵니다.
+ 지정된 이름을 가진 입니다.특성이 없는 경우 이 속성은 null을 반환합니다.
+ 특성의 정규화된 이름입니다.
+
+
+ 지정된 로컬 이름이나 네임스페이스 URI(Uniform Resource Identifier)가 있는 특성을 가져옵니다.
+ 지정된 로컬 이름이나 네임스페이스 URI가 있는 입니다.특성이 없는 경우 이 속성은 null을 반환합니다.
+ 특성의 로컬 이름입니다.
+ 특성의 네임스페이스 URI입니다.
+
+
+ 지정된 특성을 컬렉션의 첫 노드로 삽입합니다.
+ 컬렉션에 추가된 XmlAttribute입니다.
+ 삽입할 입니다.
+
+
+ 컬렉션에서 지정된 특성을 제거합니다.
+ 제거된 노드이거나 컬렉션에 없는 경우 null입니다.
+ 제거할 입니다.
+
+
+ 컬렉션에서 모든 특성을 제거합니다.
+
+
+ 컬렉션에서 지정된 인덱스에 해당하는 특성을 제거합니다.
+ 지정된 인덱스에 특성이 없으면 null입니다.
+ 제거할 노드의 인덱스입니다.첫 번째 노드의 인덱스는 0입니다.
+
+
+ 해당 속성을 사용하여 를 추가합니다.
+
+ 가 기존 노드를 같은 이름으로 바꾸면 이전 노드가 반환되고, 그렇지 않으면 추가된 노드가 반환됩니다.
+ 이 컬렉션에 저장할 Attribute 노드입니다.노드 이름을 사용하여 나중에 노드에 액세스할 수 있습니다.컬렉션에 해당 이름의 노드가 이미 있으면 새 노드로 바뀌고, 그렇지 않으면 노드가 컬렉션 끝에 추가됩니다.
+ 이 컬렉션을 만든 문서와 다른 에서 를 만든 경우이 XmlAttributeCollection이 읽기 전용인 경우
+
+ 가 이미 다른 개체의 특성인 인 경우.다른 요소에서 특성을 다시 사용하려면 다시 사용할 XmlAttribute 개체를 복제해야 합니다.
+
+
+ 이 멤버에 대한 설명은 를 참조하십시오.
+ 이 컬렉션에서 복사된 개체의 대상인 배열입니다.
+ 복사를 시작할 배열의 인덱스입니다.
+
+
+ 이 멤버에 대한 설명은 를 참조하십시오.
+ 특성의 수가 포함된 int를 반환합니다.
+
+
+ 이 멤버에 대한 설명은 를 참조하십시오.
+ 컬렉션이 동기화되면 true를 반환합니다.
+
+
+ 이 멤버에 대한 설명은 를 참조하십시오.
+ 컬렉션의 루트인 를 반환합니다.
+
+
+ CDATA 섹션을 나타냅니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+ 문자 데이터가 포함된 입니다.
+
+ 개체
+
+
+ 이 노드의 복제본을 만듭니다.
+ 복제된 노드입니다.
+ 지정된 노드 아래의 하위 트리를 재귀적으로 복제하려면 true이고, 노드 자체만 복제하려면 false입니다.CDATA 노드에는 자식이 없으므로 복제된 노드는 매개 변수 설정에 상관 없이 항상 데이터 내용을 포함하게 됩니다.
+
+
+ 노드의 로컬 이름을 가져옵니다.
+ CDATA 노드의 경우 로컬 이름은 #cdata-section입니다.
+
+
+ 노드의 정규화된 이름을 가져옵니다.
+ CDATA 노드의 경우 이 이름은 #cdata-section입니다.
+
+
+ 현재 노드의 형식을 가져옵니다.
+ 노드 형식입니다.CDATA 노드의 경우 이 값은 XmlNodeType.CDATA입니다.
+
+
+
+ 이 노드 바로 앞에 있는 텍스트 노드를 가져옵니다.
+
+ 를 반환합니다.
+
+
+ 지정된 에 노드의 자식을 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 지정된 에 노드를 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 일부 클래스에서 사용하는 텍스트 조작 메서드를 제공합니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+ 문서에 추가할 문자 데이터가 포함된 문자열입니다.
+ 문자 데이터를 포함하기 위한 입니다.
+
+
+ 지정한 문자열을 노드의 문자 데이터 끝에 추가합니다.
+ 기존 문자열에 삽입할 문자열입니다.
+
+
+ 노드의 데이터가 포함됩니다.
+ 노드의 데이터입니다.
+
+
+ 노드에서 문자 범위를 제거합니다.
+ 삭제를 시작할 문자열 내의 위치입니다.
+ 삭제할 문자의 수입니다.
+
+
+ 지정된 문자 오프셋에 지정된 문자열을 삽입합니다.
+ 제공된 문자열 데이터를 삽입할 문자열 내의 위치입니다.
+ 기존 문자열에 삽입할 문자열 데이터입니다.
+
+
+ 데이터의 길이(문자 수)를 가져옵니다.
+
+ 속성의 문자열 길이(문자 수)입니다.이 길이는 0일 수 있습니다. 즉, CharacterData 노드가 비어 있을 수 있습니다.
+
+
+ 지정된 오프셋에서 시작하여 지정된 수의 문자를 지정된 문자열로 교체합니다.
+ 교체를 시작할 문자열 내의 위치입니다.
+ 교체할 문자 수입니다.
+ 기존 문자열 데이터를 대체하는 새 데이터입니다.
+
+
+ 지정된 범위에서 전체 문자열의 부분 문자열을 검색합니다.
+ 지정된 범위에 해당하는 부분 문자열입니다.
+ 검색을 시작할 문자열 내의 위치입니다.오프셋이 0이면 시작 위치가 데이터의 시작 부분임을 나타냅니다.
+ 검색할 문자 수입니다.
+
+
+ 노드의 값을 가져오거나 설정합니다.
+ 노드의 값입니다.
+ 노드가 읽기 전용인 경우
+
+
+ XML 주석의 내용을 나타냅니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+ 주석 요소의 콘텐츠입니다.
+ 부모 XML 문서입니다.
+
+
+ 이 노드의 복제본을 만듭니다.
+ 복제된 노드입니다.
+ 지정된 노드 아래의 하위 트리를 재귀적으로 복제하려면 true이고, 노드 자체만 복제하려면 false입니다.Comment 노드에는 자식이 없으므로 복제된 노드는 매개 변수 설정에 상관 없이 항상 텍스트 내용을 포함합니다.
+
+
+ 노드의 로컬 이름을 가져옵니다.
+ Comment 노드의 경우 이 값은 #comment입니다.
+
+
+ 노드의 정규화된 이름을 가져옵니다.
+ Comment 노드의 경우 이 값은 #comment입니다.
+
+
+ 현재 노드의 형식을 가져옵니다.
+ Comment 노드의 경우 이 값은 XmlNodeType.Comment입니다.
+
+
+ 지정된 에 노드의 모든 자식을 저장합니다.Comment 노드에 자식이 없으므로 이 메서드는 아무런 영향을 주지 않습니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 지정된 에 노드를 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ XmlDeclaration 노드(<?xml version='1.0' ...?>)를 나타냅니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+ XML 버전입니다. 속성을 참조하십시오.
+ 인코딩 체계입니다. 속성을 참조하십시오.
+ XML 문서가 외부 DTD에 따라 달라지는지 여부를 나타냅니다. 속성을 참조하십시오.
+ 부모 XML 문서입니다.
+
+
+ 이 노드의 복제본을 만듭니다.
+ 복제된 노드입니다.
+ 지정된 노드 아래의 하위 트리를 재귀적으로 복제하려면 true이고, 노드 자체만 복제하려면 false입니다.XmlDeclaration 노드에는 자식이 없으므로 복제된 노드는 매개 변수 설정에 상관 없이 항상 데이터 값을 포함합니다.
+
+
+ XML 문서의 인코딩 수준을 가져오거나 설정합니다.
+ 올바른 문자 인코딩 이름입니다.다음은 가장 일반적으로 지원되는 XML 문자 인코딩 이름입니다.범주 인코딩 이름 유니코드(Unicode) UTF-8, UTF-16 ISO 10646 ISO-10646-UCS-2, ISO-10646-UCS-4 ISO 8859 ISO-8859-n(여기서 "n"은 1에서 9 사이의 숫자임) JIS X-0208-1997 ISO-2022-JP, Shift_JIS, EUC-JP 이 값은 선택 사항입니다.값이 설정되지 않으면 이 속성은 String.Empty를 반환합니다.인코딩 속성이 포함되지 않으면 문서를 쓰거나 저장할 때 UTF-8 인코딩을 가정합니다.
+
+
+ XmlDeclaration의 연결된 값을 가져오거나 설정합니다.
+ XmlDeclaration의 연결된 값 즉, <?xml과 ?> 사이의 모든 내용입니다.
+
+
+ 노드의 로컬 이름을 가져옵니다.
+ XmlDeclaration 노드의 경우 이 이름은 xml입니다.
+
+
+ 노드의 정규화된 이름을 가져옵니다.
+ XmlDeclaration 노드의 경우 이 이름은 xml입니다.
+
+
+ 현재 노드의 형식을 가져옵니다.
+ XmlDeclaration 노드의 경우 이 값은 XmlNodeType.XmlDeclaration입니다.
+
+
+ 독립형 특성의 값을 가져오거나 설정합니다.
+ 유효한 값은 XML 문서에서 필요로 하는 모든 엔터티 선언이 문서 내에 포함되는 경우에는 yes이고, 외부 DTD(문서 형식 정의)를 필요로 하는 경우에는 no입니다.XML 선언에 독립형 특성이 없으면 이 속성은 String.Empty를 반환합니다.
+
+
+ XmlDeclaration의 값을 가져오거나 설정합니다.
+ XmlDeclaration의 내용 즉, <?xml과 ?> 사이의 모든 내용입니다.
+
+
+ XML 버전의 문서를 가져옵니다.
+ 값은 항상 1.0입니다.
+
+
+ 지정된 에 노드의 자식을 저장합니다.XmlDeclaration 노드에 자식이 없으므로 이 메서드는 아무런 영향을 주지 않습니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 지정된 에 노드를 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ XML 문서를 나타냅니다.자세한 내용은 Remarks 섹션을 참조하세요.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+
+
+ 지정된 XmlDocument를 사용하여 클래스의 새 인스턴스를 초기화합니다.
+ 사용할 XmlImplementation입니다.
+
+
+ 지정된 XmlDocument를 사용하여 클래스의 새 인스턴스를 초기화합니다.
+ 사용할 XmlNameTable입니다.
+
+
+ 현재 노드의 기본 URI를 가져옵니다.
+ 노드를 로드한 위치입니다.
+
+
+ 이 노드의 복제본을 만듭니다.
+ 복제된 XmlDocument 노드입니다.
+ 지정된 노드 아래의 하위 트리를 재귀적으로 복제하려면 true이고, 노드 자체만 복제하려면 false입니다.
+
+
+ 지정된 을 가진 를 만듭니다.
+ 새 XmlAttribute입니다.
+ 특성의 정규화된 이름입니다.이름에 콜론이 포함되어 있는 경우, 속성은 첫 번째 콜론 앞의 이름 부분을 반영하고 속성은 첫 번째 콜론 뒤의 이름 부분을 반영합니다.접두사가 xmlns같은 인식된 기본 제공되는 접두사가 아닌 경우 는 비어 있습니다.이 경우 NamespaceURI의 값은 http://www.w3.org/2000/xmlns/입니다.
+
+
+ 지정된 정규화된 이름과 가 있는 를 만듭니다.
+ 새 XmlAttribute입니다.
+ 특성의 정규화된 이름입니다.이름에 콜론이 포함되어 있는 경우, 속성은 콜론 앞의 이름 부분을 반영하고 속성은 콜론 뒤의 이름 부분을 반영합니다.
+ 특성의 네임스페이스 URI입니다.정규화된 이름에 xmlns 접두사가 포함된 경우 이 매개 변수는 http://www.w3.org/2000/xmlns/가 됩니다.
+
+
+ 지정된 , 및 가 있는 를 만듭니다.
+ 새 XmlAttribute입니다.
+ 특성의 접두사입니다.String.Empty와 null은 같습니다.
+ 특성의 로컬 이름입니다.
+ 특성의 네임스페이스 URI입니다.String.Empty와 null은 같습니다.가 xmlns일 경우 이 매개 변수는 http://www.w3.org/2000/xmlns/이어야 합니다. 그렇지 않으면 예외가 throw됩니다.
+
+
+ 지정된 데이터가 포함된 를 만듭니다.
+ 새 XmlCDataSection입니다.
+ 새 XmlCDataSection의 콘텐츠입니다.
+
+
+ 지정된 데이터가 포함된 를 만듭니다.
+ 새 XmlComment입니다.
+ 새 XmlComment의 콘텐츠입니다.
+
+
+
+ 를 만듭니다.
+ 새 XmlDocumentFragment입니다.
+
+
+ 지정된 이름을 가진 요소를 만듭니다.
+ 새 XmlElement입니다.
+ 요소의 정규화된 이름입니다.이름에 콜론이 포함되어 있는 경우 속성은 콜론 앞의 이름 부분을 반영하고 속성은 콜론 뒤의 이름 부분을 반영합니다.정규화된 이름에는 'xmlns'라는 접두사가 포함될 수 없습니다.
+
+
+ 정규화된 이름과 를 가진 를 만듭니다.
+ 새 XmlElement입니다.
+ 요소의 정규화된 이름입니다.이름에 콜론이 포함되어 있는 경우, 속성은 콜론 앞의 이름 부분을 반영하고 속성은 콜론 뒤의 이름 부분을 반영합니다.정규화된 이름에는 'xmlns'라는 접두사가 포함될 수 없습니다.
+ 요소의 네임스페이스 URI입니다.
+
+
+ 지정된 , 및 가 있는 요소를 만듭니다.
+ 새 입니다.
+ 새 요소의 접두사입니다.String.Empty와 null은 같습니다.
+ 새 요소의 로컬 이름입니다.
+ 새 요소의 네임스페이스 URI입니다.String.Empty와 null은 같습니다.
+
+
+ 지정된 노드 형식, 및 가 있는 를 만듭니다.
+ 새 XmlNode입니다.
+ 새 노드의 문자열 버전입니다.이 매개 변수는 아래 테이블에 나열된 값 중 하나여야 합니다.
+ 새 노드의 정규화된 이름입니다.이름에 콜론이 포함된 경우에는 및 구성 요소로 구문 분석됩니다.
+ 새 노드의 네임스페이스 URI입니다.
+ The name was not provided and the XmlNodeType requires a name; or is not one of the strings listed below.
+
+
+ 지정된 , 및 가 있는 를 만듭니다.
+ 새 XmlNode입니다.
+ 새 노드의 XmlNodeType입니다.
+ 새 노드의 정규화된 이름입니다.이름에 콜론이 포함되어 있으면 및 구성 요소로 구문 분석됩니다.
+ 새 노드의 네임스페이스 URI입니다.
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ 지정된 , , 및 가 있는 를 만듭니다.
+ 새 XmlNode입니다.
+ 새 노드의 XmlNodeType입니다.
+ 새 노드의 접두사입니다.
+ 새 노드의 지역 이름입니다.
+ 새 노드의 네임스페이스 URI입니다.
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ 지정된 이름과 데이터가 있는 을 만듭니다.
+ 새 XmlProcessingInstruction입니다.
+ 처리 명령의 이름입니다.
+ 처리 명령의 데이터입니다.
+
+
+
+ 노드를 만듭니다.
+ 새 XmlSignificantWhitespace 노드입니다.
+ 문자열에는  및 	 문자만 포함되어야 합니다.
+
+
+ 지정된 텍스트가 있는 를 만듭니다.
+ 새 XmlText 노드입니다.
+ Text 노드의 텍스트입니다.
+
+
+
+ 노드를 만듭니다.
+ 새 XmlWhitespace 노드입니다.
+ 문자열에는  및 	 문자만 포함되어야 합니다.
+
+
+ 지정된 값이 있는 노드를 만듭니다.
+ 새 XmlDeclaration 노드입니다.
+ 버전은 "1.0"이어야 합니다.
+ 인코딩 특성 값입니다.를 파일이나 스트림으로 저장할 경우 사용하는 인코딩입니다. 그러므로 클래스에서 지원하는 문자열로 설정되어야 합니다. 그렇지 않으면 이 실패합니다.null 또는 String.Empty일 경우 Save 메서드에서 인코딩 특성을 XML 선언에 기록하지 않으므로 기본 인코딩인 UTF-8을 사용하게 됩니다.참고: XmlDocument를 나 로 저장하면 이 인코딩 값이 삭제됩니다.대신 TextWriter 또는 XmlTextWriter의 인코딩을 사용합니다.그러면 기록된 XML을 올바른 인코딩을 사용하여 다시 읽을 수 있습니다.
+ 값은 "Yes" 또는 "No"여야 합니다.값이 null이나 String.Empty일 경우에는 Save 메서드에서 독립형 특성을 XML 선언에 기록하지 않습니다.
+ The values of or are something other than the ones specified above.
+
+
+ 문서의 루트 를 가져옵니다.
+ XML 문서 트리의 루트를 나타내는 XmlElement입니다.루트가 없으면 null이 반환됩니다.
+
+
+ 지정된 과 일치하는 모든 하위 요소의 목록이 포함된 를 반환합니다.
+ 일치하는 모든 노드 목록이 포함된 입니다.과 일치하는 노드가 없으면 빈 컬렉션이 반환됩니다.
+ 일치시킬 정규화된 이름입니다.일치하는 노드의 Name 속성과 일치합니다.특수 값 "*"은 모든 태그와 일치합니다.
+
+
+ 지정된 및 와 일치하는 모든 하위 요소의 목록이 포함된 를 반환합니다.
+ 일치하는 모든 노드 목록이 포함된 입니다.지정된 및 와 일치하는 노드가 없으면 빈 컬렉션이 반환됩니다.
+ 일치시킬 LocalName입니다.특수 값 "*"은 모든 태그와 일치합니다.
+ 일치시킬 NamespaceURI입니다.
+
+
+ 현재 문서에 대한 개체를 가져옵니다.
+ 현재 문서에 대한 XmlImplementation 개체입니다.
+
+
+ 다른 문서에서 현재 문서로 노드를 가져옵니다.
+ 가져온 입니다.
+ 가져올 노드입니다.
+ 전체 복제를 수행하려면 true이고, 그렇지 않으면 false입니다.
+ Calling this method on a node type which cannot be imported.
+
+
+ 모든 경우에 을 throw합니다.
+ 노드와 모든 자식 노드의 값입니다.
+ In all cases.
+
+
+ 현재 노드의 자식을 나타내는 태그를 가져오거나 설정합니다.
+ 현재 노드의 자식을 나타내는 태그입니다.
+ The XML specified when setting this property is not well-formed.
+
+
+ 현재 노드가 읽기 전용인지를 나타내는 값을 가져옵니다.
+ 현재 노드가 읽기 전용이면 true이고, 그렇지 않으면 false입니다.XmlDocument 노드에서는 항상 false를 반환합니다.
+
+
+ 지정된 스트림에서 XML 문서를 로드합니다.
+ 로드할 XML 문서가 포함된 스트림입니다.
+ There is a load or parse error in the XML.In this case, a is raised.
+
+
+ 지정된 에서 XML 문서를 로드합니다.
+ XML 데이터를 문서에 제공하기 위해 사용하는 TextReader입니다.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ 지정된 에서 XML 문서를 로드합니다.
+ XML 데이터를 문서에 제공하기 위해 사용하는 XmlReader입니다.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ 지정된 문자열에서 XML 문서를 로드합니다.
+ 로드할 XML 문서가 포함된 문자열입니다.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ 노드의 로컬 이름을 가져옵니다.
+ XmlDocument 노드의 경우 로컬 이름이 #document가 됩니다.
+
+
+ 노드의 정규화된 이름을 가져옵니다.
+ XmlDocument 노드의 경우 이름이 #document가 됩니다.
+
+
+ 이 구현과 관련된 을 가져옵니다.
+ 문서 내에서 원자화된 버전의 문자열을 가져올 수 있게 해주는 XmlNameTable입니다.
+
+
+ 이 문서에 속하는 노드의 가 변경된 경우에 발생합니다.
+
+
+ 이 문서에 속하는 노드의 를 변경할 경우에 발생합니다.
+
+
+ 이 문서에 속하는 노드를 다른 노드에 삽입한 경우에 발생합니다.
+
+
+ 이 문서에 속하는 노드를 다른 노드에 삽입할 경우에 발생합니다.
+
+
+ 이 문서에 속하는 노드를 부모에서 제거한 경우에 발생합니다.
+
+
+ 이 문서에 속하는 노드를 문서에서 제거할 경우에 발생합니다.
+
+
+ 현재 노드의 형식을 가져옵니다.
+ 노드 형식입니다.XmlDocument 노드의 경우 이 값은 XmlNodeType.Document가 됩니다.
+
+
+ 현재 노드가 속하는 를 가져옵니다.
+ XmlDocument 노드(이 XmlNodeType.Document)의 경우 이 속성에서는 항상 null을 반환합니다.
+
+
+ 부모가 있을 수 있는 노드의 경우 이 노드의 부모 노드를 가져옵니다.
+ 항상 null를 반환합니다.
+
+
+ 요소 콘텐츠에서 공백을 유지할지를 나타내는 값을 가져오거나 설정합니다.
+ 공백을 유지하려면 true이고, 그렇지 않으면 false입니다.기본값은 false입니다.
+
+
+
+ 의 내용을 기준으로 개체를 만듭니다.판독기는 노드나 특성에 위치해야 합니다.
+ 새 XmlNode이거나 더 이상 노드가 없으면 null입니다.
+ XML 소스입니다.
+ The reader is positioned on a node type that does not translate to a valid DOM node (for example, EndElement or EndEntity).
+
+
+ XML 문서를 지정된 스트림에 저장합니다.
+ 저장할 스트림입니다.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ XML 문서를 지정된 에 저장합니다.
+ 저장할 대상 TextWriter입니다.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ XML 문서를 지정된 에 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ XmlDocument 노드의 모든 자식을 지정된 에 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ XmlDocument 노드를 지정된 에 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 트리 삽입 작업에 유용한 경량의 개체를 나타냅니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+ 조각의 소스인 XML 문서입니다.
+
+
+ 이 노드의 복제본을 만듭니다.
+ 복제된 노드입니다.
+ 지정된 노드 아래의 하위 트리를 재귀적으로 복제하려면 true이고, 노드 자체만 복제하려면 false입니다.
+
+
+ 이 노드의 자식을 나타내는 태그를 가져오거나 설정합니다.
+ 이 노드의 자식을 나타내는 태그입니다.
+ 이 속성을 설정할 때 지정한 XML이 제대로 구성되지 않은 경우
+
+
+ 노드의 로컬 이름을 가져옵니다.
+ XmlDocumentFragment 노드의 경우 이 이름은 #document-fragment입니다.
+
+
+ 노드의 정규화된 이름을 가져옵니다.
+ XmlDocumentFragment의 경우 이 이름은 #document-fragment입니다.
+
+
+ 현재 노드의 형식을 가져옵니다.
+ XmlDocumentFragment 노드의 경우 이 값은 XmlNodeType.DocumentFragment입니다.
+
+
+ 이 노드가 속한 를 가져옵니다.
+ 이 노드가 속한 XmlDocument입니다.
+
+
+ 부모를 가질 수 있는 노드의 경우 이 노드의 부모를 가져옵니다.
+ 이 노드의 부모입니다.XmlDocumentFragment 노드의 경우 이 속성은 항상 null입니다.
+
+
+ 지정된 에 노드의 모든 자식을 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 지정된 에 노드를 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 요소를 나타냅니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+ 네임스페이스 접두사입니다. 속성을 참조하십시오.
+ 로컬 이름입니다. 속성을 참조하십시오.
+ 네임스페이스 URI입니다. 속성을 참조하십시오.
+ 부모 XML 문서입니다.
+
+
+ 이 노드의 특성 목록이 포함된 을 가져옵니다.
+ 이 노드의 특성 목록이 포함된 입니다.
+
+
+ 이 노드의 복제본을 만듭니다.
+ 복제된 노드입니다.
+ 지정한 노드의 하위 트리를 재귀적으로 복제하려면 true이고, 노드만(노드가 XmlElement일 경우에는 특성 포함)복제하려면 false입니다.
+
+
+ 지정된 이름을 가진 특성의 값을 반환합니다.
+ 지정된 특성의 값을 반환합니다.일치하는 특성이 없거나 해당 특성에 지정된 값이나 기본값이 없는 경우에는 빈 문자열이 반환됩니다.
+ 검색할 특성의 이름입니다.이것은 정규화된 이름입니다.일치하는 노드의 Name 속성과 일치합니다.
+
+
+ 지정된 로컬 이름과 네임스페이스 URI를 갖고 있는 특성의 값을 반환합니다.
+ 지정된 특성의 값을 반환합니다.일치하는 특성이 없거나 해당 특성에 지정된 값이나 기본값이 없는 경우에는 빈 문자열이 반환됩니다.
+ 검색할 특성의 로컬 이름입니다.
+ 검색할 특성의 네임스페이스 URI입니다.
+
+
+ 지정된 이름의 XmlAttribute를 반환합니다.
+ 지정된 XmlAttribute이거나 일치하는 특성이 없는 경우에는 null입니다.
+ 검색할 특성의 이름입니다.이것은 정규화된 이름입니다.일치하는 노드의 Name 속성과 일치합니다.
+
+
+ 지정된 로컬 이름과 네임스페이스 URI를 갖고 있는 를 반환합니다.
+ 지정된 XmlAttribute이거나 일치하는 특성이 없는 경우에는 null입니다.
+ 특성의 로컬 이름입니다.
+ 특성의 네임스페이스 URI입니다.
+
+
+ 지정된 과 일치하는 모든 하위 요소의 목록이 포함된 를 반환합니다.
+ 일치하는 모든 노드 목록이 포함된 입니다.일치하는 노드가 없으면 목록이 비어 있습니다.
+ 일치시킬 이름 태그입니다.이것은 정규화된 이름입니다.일치하는 노드의 Name 속성과 일치합니다.별표(*)는 모든 태그와 일치하는 특수 값입니다.
+
+
+ 지정된 및 와 일치하는 모든 하위 요소의 목록이 포함된 를 반환합니다.
+ 일치하는 모든 노드 목록이 포함된 입니다.일치하는 노드가 없으면 목록이 비어 있습니다.
+ 일치시킬 로컬 이름입니다.별표(*)는 모든 태그와 일치하는 특수 값입니다.
+ 일치시킬 네임스페이스 URI입니다.
+
+
+ 현재 노드에 지정된 이름을 가진 특성이 있는지 확인합니다.
+ 현재 노드에 지정된 특성이 있으면 true이고, 그렇지 않으면 false입니다.
+ 찾을 특성의 이름입니다.이것은 정규화된 이름입니다.일치하는 노드의 Name 속성과 일치합니다.
+
+
+ 현재 노드에 지정된 로컬 이름과 네임스페이스 URI를 갖고 있는 특성이 있는지 확인합니다.
+ 현재 노드에 지정된 특성이 있으면 true이고, 그렇지 않으면 false입니다.
+ 찾을 특성의 로컬 이름입니다.
+ 찾을 특성의 네임스페이스 URI입니다.
+
+
+ 현재 노드에 특성이 있는지 여부를 나타내는 boolean 값을 가져옵니다.
+ 현재 노드에 특성이 있으면 true이고, 그렇지 않으면 false입니다.
+
+
+ 노드와 모든 자식의 연결된 값을 가져오거나 설정합니다.
+ 노드와 모든 자식의 연결된 값입니다.
+
+
+ 이 노드의 자식을 나타내는 태그를 가져오거나 설정합니다.
+ 이 노드의 자식을 나타내는 태그입니다.
+ 이 속성을 설정할 때 지정한 XML이 제대로 구성되지 않은 경우
+
+
+ 요소의 태그 형식을 가져오거나 설정합니다.
+ 요소를 짧은 태그 형식 "<item/>"으로 serialize할 경우 true를 반환하고, 긴 형식 "<item></item>"으로 serialize할 경우 false를 반환합니다.이 속성을 설정할 때 true로 설정하면 요소의 자식이 제거되고 요소는 짧은 태그 형식으로 serialize됩니다.false로 설정하면 요소에 내용이 있는지 여부와 상관없이 속성 값이 변경되고, 요소가 비었으면 긴 형식으로 serialize됩니다.이 속성은 DOM(문서 개체 모델)에 대한 Microsoft 확장입니다.
+
+
+ 현재 노드의 로컬 이름을 가져옵니다.
+ 접두사를 제거한 현재 노드의 이름입니다.예를 들어, <bk:book> 요소에서 LocalName은 book입니다.
+
+
+ 노드의 정규화된 이름을 가져옵니다.
+ 노드의 정규화된 이름입니다.XmlElement 노드의 경우에는 요소의 태그 이름입니다.
+
+
+ 이 노드의 네임스페이스 URI를 가져옵니다.
+ 이 노드의 네임스페이스 URI입니다.네임스페이스 URI가 없으면, 이 속성은 String.Empty를 반환합니다.
+
+
+ 이 요소 바로 다음에 오는 를 가져옵니다.
+ 이 요소 바로 다음에 오는 XmlNode입니다.
+
+
+ 현재 노드의 형식을 가져옵니다.
+ 노드 형식입니다.XmlElement 노드의 경우 이 값은 XmlNodeType.Element입니다.
+
+
+ 이 노드가 속한 를 가져옵니다.
+ 이 요소가 속한 XmlDocument입니다.
+
+
+
+ 이 노드의 네임스페이스 접두사를 가져오거나 설정합니다.
+ 이 노드의 네임스페이스 접두사입니다.접두사가 없으면, 이 속성은 String.Empty를 반환합니다.
+ 이 노드가 읽기 전용인 경우
+ 지정된 접두사에 잘못된 문자가 있는 경우지정된 접두사가 잘못된 경우이 노드의 namespaceURI가 null인 경우지정된 접두사는 "xml"이고 이 노드의 namespaceURI가 http://www.w3.org/XML/1998/namespace와 다른 경우
+
+
+ 현재 노드의 지정된 특성 및 자식을 모두 제거합니다.기본 특성은 제거되지 않습니다.
+
+
+ 요소에서 지정된 모든 특성을 제거합니다.기본 특성은 제거되지 않습니다.
+
+
+ 이름별로 특성을 제거합니다.
+ 제거할 특성의 이름입니다. 이것은 정규화된 이름으로,일치하는 노드의 Name 속성과 일치합니다.
+ 노드가 읽기 전용인 경우
+
+
+ 지정된 로컬 이름과 네임스페이스 URI를 갖고 있는 특성을 제거합니다. (제거한 특성에 기본값이 있으면 바로 대체됩니다.)
+ 제거할 특성의 로컬 이름입니다.
+ 제거할 특성의 네임스페이스 URI입니다.
+ 노드가 읽기 전용인 경우
+
+
+ 지정된 인덱스를 갖고 있는 Attribute 노드를 요소에서 제거합니다. (제거한 특성에 기본값이 있으면 바로 대체됩니다.)
+ 제거한 Attribute 노드이거나, 지정한 인덱스에 노드가 없는 경우에는 null입니다.
+ 제거할 노드의 인덱스입니다.첫 번째 노드의 인덱스는 0입니다.
+
+
+ 로컬 이름과 네임스페이스 URI로 지정한 를 제거합니다. (제거한 특성에 기본값이 있으면 바로 대체됩니다.)
+ 제거한 XmlAttribute이거나 XmlElement에 일치하는 Attribute 노드가 없으면 null입니다.
+ 특성의 로컬 이름입니다.
+ 특성의 네임스페이스 URI입니다.
+ 이 노드가 읽기 전용인 경우
+
+
+ 지정된 을 제거합니다.
+ 제거한 XmlAttribute이거나, 이 XmlElement의 Attribute 노드가 아닐 경우에는 null입니다.
+ 제거할 XmlAttribute 노드입니다.제거한 특성에 기본값이 있으면 바로 대체됩니다.
+ 이 노드가 읽기 전용인 경우
+
+
+ 지정된 이름을 가진 특성의 값을 설정합니다.
+ 만들거나 변경할 특성의 이름입니다.이것은 정규화된 이름입니다.이름에 콜론이 포함되어 있으면 접두사와 로컬 이름 구성 요소로 구문 분석됩니다.
+ 특성에 설정할 값입니다.
+ 지정된 이름에 잘못된 문자가 있는 경우
+ 노드가 읽기 전용인 경우
+
+
+ 지정된 로컬 이름과 네임스페이스 URI를 갖고 있는 특성의 값을 설정합니다.
+ 특성 값입니다.
+ 특성의 로컬 이름입니다.
+ 특성의 네임스페이스 URI입니다.
+ 특성에 설정할 값입니다.
+
+
+ 지정된 를 추가합니다.
+ 추가할 XmlAttribute입니다.
+ 특성의 로컬 이름입니다.
+ 특성의 네임스페이스 URI입니다.
+
+
+ 지정된 를 추가합니다.
+ 특성이 같은 이름을 가진 기존 특성을 대체할 경우 이전 XmlAttribute가 반환됩니다. 그렇지 않으면 null이 반환됩니다.
+ 이 요소의 특성 컬렉션에 추가할 XmlAttribute 노드입니다.
+ 이 노드를 만든 문서와 다른 문서에서 를 만들었거나이 노드가 읽기 전용인 경우
+
+ 가 이미 다른 XmlElement 개체의 특성인 경우.다른 XmlElement 개체에서 다시 사용하려면 명시적으로 XmlAttribute 노드를 복제해야 합니다.
+
+
+ 지정된 에 노드의 모든 자식을 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 현재 노드를 지정된 에 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+
+ 개체 집합에 대한 컨텍스트를 정의합니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+
+
+ 지정된 을 사용하여 클래스의 새 인스턴스를 초기화합니다.
+
+ 개체
+
+
+ 새 를 만듭니다.
+ 새 XmlDocument 개체입니다.
+
+
+ DOM(문서 개체 모델)을 구현할 때 특정 기능을 구현하는지 여부를 테스트합니다.
+ 지정된 버전에 기능이 구현되면 true이고, 그렇지 않으면 false입니다.다음 표에서는 HasFeature가 true를 반환하도록 하는 조합을 보여 줍니다.strFeature strVersion XML 1.0 XML 2.0
+ 테스트할 기능의 패키지 이름입니다.대/소문자를 구분하지 않습니다.
+ 이것은 테스트할 패키지 이름의 버전 번호입니다.버전이 지정되지 않은 경우(null) 아무 기능 버전이나 지원하도록 하면 메서드가 true를 반환합니다.
+
+
+ 이 노드 바로 앞이나 뒤에 있는 노드를 가져옵니다.
+
+
+ 이 노드 바로 다음에 오는 노드를 가져옵니다.
+ 이 노드 바로 뒤에 있는 이거나, 노드가 없으면 null입니다.
+
+
+ 이 노드 바로 앞에 있는 노드를 가져옵니다.
+ 앞에 있는 이거나, 노드가 없으면 null입니다.
+
+
+ 이름이나 인덱스로 액세스할 수 있는 노드의 컬렉션을 나타냅니다.
+
+
+ XmlNamedNodeMap의 노드 수를 가져옵니다.
+ 노드 수입니다.
+
+
+ XmlNamedNodeMap의 노드 컬렉션에 대한 "foreach" 스타일 반복 지원을 제공합니다.
+ 열거자 개체입니다.
+
+
+ 이름으로 지정된 를 검색합니다.
+ 지정된 이름을 가진 XmlNode이거나, 일치하는 노드가 없으면 null입니다.
+ 검색할 노드의 정규화된 이름입니다.일치하는 노드의 속성과 일치합니다.
+
+
+ 일치하는 및 를 갖고 있는 노드를 검색합니다.
+ 일치하는 로컬 이름과 네임스페이스 URI를 갖고 있는 이거나, 일치하는 노드가 없는 경우에는 null입니다.
+ 검색할 노드의 로컬 이름입니다.
+ 검색할 노드의 네임스페이스 URI(Uniform Resource Identifier)입니다.
+
+
+ XmlNamedNodeMap의 지정된 인덱스에서 노드를 검색합니다.
+ 지정된 인덱스에 있는 입니다.가 0보다 작거나 속성보다 크거나 같을 경우에는 null이 반환됩니다.
+ XmlNamedNodeMap에서 검색할 노드의 인덱스 위치입니다.인덱스는 0부터 시작하므로 첫 번째 노드의 인덱스는 0이고 마지막 노드의 인덱스는 -1입니다.
+
+
+ XmlNamedNodeMap에서 노드를 제거합니다.
+ 이 XmlNamedNodeMap에서 제거한 XmlNode이거나, 일치하는 노드가 없는 경우에는 null입니다.
+ 제거할 노드의 정규화된 이름입니다.일치하는 노드의 속성과 이름을 일치시킵니다.
+
+
+ 일치하는 및 를 갖고 있는 노드를 제거합니다.
+ 제거한 이거나, 일치하는 노드가 없는 경우에는 null입니다.
+ 제거할 노드의 로컬 이름입니다.
+ 제거할 노드의 네임스페이스 URI입니다.
+
+
+ 해당하는 속성을 사용하여 를 추가합니다.
+
+ 에서 같은 이름을 가진 기존 노드를 대체할 경우 이전 노드가 반환되고, 그렇지 않으면 null이 반환됩니다.
+ XmlNamedNodeMap에 저장할 XmlNode입니다.해당하는 이름의 노드가 이미 맵에 있을 경우에는 새 노드로 대체됩니다.
+ XmlNamedNodeMap을 만든 문서가 아니라 다른 에서 를 만들었거나 XmlNamedNodeMap이 읽기 전용인 경우
+
+
+ XML 문서의 단일 노드를 나타냅니다.
+
+
+ 지정된 노드를 이 노드의 자식 노드 목록 끝에 추가합니다.
+ 추가한 노드입니다.
+ 추가할 노드입니다.지정된 위치로 이동하는, 추가할 노드의 모든 콘텐츠입니다.
+ 이 노드가 노드 형식의 자식 노드를 허용하지 않는 형식을 가지는 경우가 이 노드의 상위 노드일 경우
+ 이 노드를 만든 문서가 아닌 다른 문서에서 를 만든 경우이 노드가 읽기 전용인 경우
+
+
+ 이 노드의 특성이 포함된 을 가져옵니다.
+ 노드의 특성을 포함하는 XmlAttributeCollection입니다.노드가 XmlNodeType.Element 형식일 경우 노드의 특성이 반환됩니다.그렇지 않은 경우 null을 반환합니다.
+
+
+ 현재 노드의 기본 URI를 가져옵니다.
+ 노드가 로드된 위치이거나 노드에 기본 URI가 없으면 String.Empty입니다.
+
+
+ 노드의 모든 자식을 가져옵니다.
+ 노드의 모든 자식을 포함하는 개체입니다.자식 노드가 없으면 이 속성은 빈 를 반환합니다.
+
+
+ 파생 클래스에서 재정의한 경우 노드를 복제합니다.
+ 복제된 노드입니다.
+ 지정된 노드 아래의 하위 트리를 재귀적으로 복제하려면 true이고, 노드 자체만 복제하려면 false입니다.
+ 복제할 수 없는 노드 형식에 이 메서드를 호출하는 경우
+
+
+ 노드의 첫 번째 자식을 가져옵니다.
+ 노드의 첫 번째 자식입니다.이러한 노드가 없으면, null이 반환됩니다.
+
+
+ 현재 노드에서 자식 노드를 반복하는 열거자를 가져옵니다.
+ 현재 노드에서 하위 노드를 반복하는 데 사용할 수 있는 개체입니다.
+
+
+ 현재 노드의 범위에 있는 지정된 접두사에 대해 가장 가까운 xmlns 선언을 조회하여 선언의 네임스페이스 URI를 반환합니다.
+ 지정된 접두사의 네임스페이스 URI입니다.
+ 찾으려는 네임스페이스 URI가 있는 접두사입니다.
+
+
+ 현재 노드의 범위에 있는 지정된 네임스페이스 URI에 대해 가장 가까운 xmlns 선언을 조회하여 해당 선언에 정의된 접두사를 반환합니다.
+ 지정된 네임스페이스 URI의 접두사입니다.
+ 찾으려는 접두사를 가진 네임스페이스 URI입니다.
+
+
+ 이 노드에 자식 노드가 있는지를 나타내는 값을 가져옵니다.
+ 현재 노드에 자식 노드가 있으면 true이고, 그렇지 않으면 false입니다.
+
+
+ 노드와 모든 자식 노드의 연결된 값을 가져오거나 설정합니다.
+ 노드와 모든 자식 노드의 연결된 값입니다.
+
+
+ 이 노드의 자식 노드를 나타내는 태그를 가져오거나 설정합니다.
+ 이 노드의 자식 노드를 나타내는 태그입니다.참고InnerXml은 기본 특성을 반환하지 않습니다.
+ 자식 노드를 가질 수 없는 노드에 대해 이 속성을 설정하는 경우
+ 이 속성을 설정할 때 지정한 XML이 제대로 구성되지 않은 경우
+
+
+ 지정된 노드를 지정된 참조 노드 바로 다음에 삽입합니다.
+ 삽입할 노드입니다.
+ 삽입할 XmlNode입니다.
+ 참조 노드인 XmlNode입니다.는 다음에 있습니다.
+ 이 노드가 노드 형식의 자식 노드를 허용하지 않는 형식을 가지는 경우가 이 노드의 상위 노드일 경우
+ 이 노드를 만든 문서가 아닌 다른 문서에서 를 만든 경우가 이 노드의 자식이 아닌 경우이 노드가 읽기 전용인 경우
+
+
+ 지정된 노드를 지정된 참조 노드 바로 앞에 삽입합니다.
+ 삽입할 노드입니다.
+ 삽입할 XmlNode입니다.
+ 참조 노드인 XmlNode입니다.이 노드 앞에 가 있습니다.
+ 현재 노드가 노드 형식의 자식 노드를 허용하지 않는 형식인 경우가 이 노드의 상위 노드일 경우
+ 이 노드를 만든 문서가 아닌 다른 문서에서 를 만든 경우가 이 노드의 자식이 아닌 경우이 노드가 읽기 전용인 경우
+
+
+ 노드가 읽기 전용인지를 나타내는 값을 가져옵니다.
+ 노드가 읽기 전용이면 true이고, 그렇지 않으면 false입니다.
+
+
+ 지정된 을 가진 첫 번째 자식 요소를 가져옵니다.
+ 지정된 이름과 일치하는 첫 번째 입니다.일치되는 항목이 없으면 null 참조(Visual Basic의 경우 Nothing)를 반환합니다.
+ 검색할 요소의 정규화된 이름입니다.
+
+
+ 지정된 과 를 갖고 있는 첫 번째 자식 요소를 가져옵니다.
+ 일치하는 과 를 갖고 있는 첫 번째 입니다..일치되는 항목이 없으면 null 참조(Visual Basic의 경우 Nothing)를 반환합니다.
+ 요소의 로컬 이름입니다.
+ 요소의 네임스페이스 URI입니다.
+
+
+ 노드의 마지막 자식을 가져옵니다.
+ 노드의 마지막 자식입니다.이러한 노드가 없으면, null이 반환됩니다.
+
+
+ 파생 클래스에서 재정의되면 노드의 로컬 이름을 가져옵니다.
+ 접두사를 제거한 노드의 이름입니다.예를 들어, <bk:book> 요소에서 LocalName은 book입니다.반환되는 이름은 다음과 같이 노드의 에 따라 달라집니다. 형식 이름 특성 특성의 로컬 이름입니다. CDATA #cdata-section 주석 #comment 문서 #document DocumentFragment #document-fragment DocumentType 문서 형식 이름입니다. 요소 요소의 로컬 이름입니다. 엔터티 엔터티의 이름입니다. EntityReference 참조된 엔터티의 이름입니다. Notation 표기법 이름입니다. ProcessingInstruction 처리 명령의 대상입니다. Text #text Whitespace #whitespace SignificantWhitespace #significant-whitespace XmlDeclaration #xml-declaration
+
+
+ 파생 클래스에서 재정의되면 노드의 정규화된 이름을 가져옵니다.
+ 노드의 정규화된 이름입니다.반환되는 이름은 다음과 같이 노드의 에 따라 달라집니다.형식 이름 특성 특성의 정규화된 이름입니다. CDATA #cdata-section 주석 #comment 문서 #document DocumentFragment #document-fragment DocumentType 문서 형식 이름입니다. 요소 요소의 정규화된 이름입니다. 엔터티 엔터티의 이름입니다. EntityReference 참조된 엔터티의 이름입니다. Notation 표기법 이름입니다. ProcessingInstruction 처리 명령의 대상입니다. Text #text Whitespace #whitespace SignificantWhitespace #significant-whitespace XmlDeclaration #xml-declaration
+
+
+ 이 노드의 네임스페이스 URI를 가져옵니다.
+ 이 노드의 네임스페이스 URI입니다.네임스페이스 URI가 없으면, 이 속성은 String.Empty를 반환합니다.
+
+
+ 이 노드 바로 다음에 오는 노드를 가져옵니다.
+ 다음 XmlNode입니다.다음 노드가 없으면 null이 반환됩니다.
+
+
+ 파생 클래스에서 재정의되면 현재 노드의 형식을 가져옵니다.
+
+ 값 중 하나입니다.
+
+
+ 이 XmlNode 아래 전체 수준의 하위 트리에 있는 모든 XmlText 노드를 태그(즉, 태그, 주석, 처리 명령, CDATA 섹션 및 엔터티 참조)만이 XmlText 노드를 구분하는, 인접한 XmlText 노드가 없는 "정상적인" 폼에 넣습니다.
+
+
+ 이 노드와 모든 자식 노드를 포함하는 태그를 가져옵니다.
+ 이 노드와 모든 자식 노드를 포함하는 태그입니다.참고OuterXml은 기본 특성을 반환하지 않습니다.
+
+
+ 이 노드가 속한 를 가져옵니다.
+ 이 노드가 속한 입니다.노드가 (NodeType이 XmlNodeType.Document와 같음)일 경우 이 속성에서는 null을 반환합니다.
+
+
+ 부모를 가질 수 있는 노드의 경우 이 노드의 부모를 가져옵니다.
+ 현재 노드의 부모인 XmlNode입니다.노드를 만들고 트리에 추가하지 않은 경우나 트리에서 노드를 제거한 경우 부모는 null입니다.다른 모든 노드의 경우에는 노드의 에 따라 반환되는 값이 달라집니다.다음 표에서는 ParentNode 속성에 대해 가능한 반환 값을 설명합니다.노드 형식 ParentNode의 값을 반환합니다. Attribute, Document, DocumentFragment, Entity, Notation null을 반환합니다. 이 노드에는 부모가 없습니다. CDATA CDATA 섹션이 포함된 요소나 엔터티 참조를 반환합니다. 주석 주석이 포함된 요소, 엔터티 참조, 문서 형식 또는 문서를 반환합니다. DocumentType Document 노드를 반환합니다. 요소 요소의 부모 노드를 반환합니다.요소가 트리의 루트 노드일 경우 부모는 문서 노드입니다.EntityReference 엔터티 참조가 포함된 요소, 특성 또는 엔터티 참조를 반환합니다. ProcessingInstruction 처리 명령이 포함된 문서, 요소, 문서 형식 또는 엔터티 참조를 반환합니다. Text Text 노드가 포함된 부모 요소, 특성 또는 엔터티 참조를 반환합니다.
+
+
+ 이 노드의 네임스페이스 접두사를 가져오거나 설정합니다.
+ 이 노드의 네임스페이스 접두사입니다.예를 들어, <bk:book> 요소에서 Prefix는 bk입니다.접두사가 없으면, 이 속성은 String.Empty를 반환합니다.
+ 이 노드가 읽기 전용인 경우
+ 지정된 접두사에 잘못된 문자가 있는 경우지정된 접두사가 잘못된 경우지정된 접두사는 "xml"이고, 이 노드의 namespaceURI가 "http://www.w3.org/XML/1998/namespace"와 다른 경우이 노드가 특성이고, 지정된 접두사가 "xmlns"이며, 이 노드의 namespaceURI가 "http://www.w3.org/2000/xmlns/ "와다른 경우이 노드가 특성이고 이 노드의 qualifiedName이 "xmlns"인 경우
+
+
+ 지정된 노드를 이 노드의 자식 노드 목록 앞에 추가합니다.
+ 추가한 노드입니다.
+ 추가할 노드입니다.지정된 위치로 이동하는, 추가할 노드의 모든 콘텐츠입니다.
+ 이 노드가 노드 형식의 자식 노드를 허용하지 않는 형식을 가지는 경우가 이 노드의 상위 노드일 경우
+ 이 노드를 만든 문서가 아닌 다른 문서에서 를 만든 경우이 노드가 읽기 전용인 경우
+
+
+ 이 노드 바로 앞에 있는 노드를 가져옵니다.
+ 앞에 있는 XmlNode입니다.앞에 노드가 없으면 null이 반환됩니다.
+
+
+ 이 노드 바로 앞에 있는 텍스트 노드를 가져옵니다.
+
+ 를 반환합니다.
+
+
+ 현재 노드의 모든 자식 노드 및/또는 특성을 제거합니다.
+
+
+ 지정된 자식 노드를 제거합니다.
+ 제거한 노드입니다.
+ 제거할 노드입니다.
+
+ 가 이 노드의 자식이 아닌 경우이 노드가 읽기 전용인 경우
+
+
+
+ 자식 노드를 노드로 대체합니다.
+ 대체한 노드입니다.
+ 자식 목록에 삽입할 새 노드입니다.
+ 목록에서 대체할 노드입니다.
+ 이 노드가 노드 형식의 자식 노드를 허용하지 않는 형식을 가지는 경우가 이 노드의 상위 노드일 경우
+ 이 노드를 만든 문서가 아닌 다른 문서에서 를 만든 경우이 노드가 읽기 전용인 경우가 이 노드의 자식이 아닌 경우
+
+
+ DOM 구현에서 특정 기능을 구현하는지 테스트합니다.
+ 지정된 버전에 기능이 구현되면 true이고, 그렇지 않으면 false입니다.다음 표에서는 true를 반환하는 조합을 설명합니다.기능 버전 XML 1.0 XML 2.0
+ 테스트할 기능의 패키지 이름입니다.대/소문자를 구분하지 않습니다.
+ 테스트할 패키지 이름의 버전 번호입니다.버전을 지정하지 않을 경우(null), 모든 버전의 기능을 지원하면 메서드에서 true를 반환합니다.
+
+
+ 이 멤버에 대한 설명은 를 참조하십시오.
+ 컬렉션에 대한 열거자를 반환합니다.
+
+
+ 노드의 값을 가져오거나 설정합니다.
+ 노드의 에 따라 반환되는 값이 달라집니다. 형식 값 특성 특성 값입니다. CDATASection CDATA 섹션의 콘텐츠입니다. 주석 주석의 콘텐츠입니다. 문서 null. DocumentFragment null. DocumentType null. 요소 null. 또는 속성을 사용하여 Element 노드의 값에 액세스할 수 있습니다.엔터티 null. EntityReference null. Notation null. ProcessingInstruction 대상을 제외한 전체 콘텐츠입니다. Text 텍스트 노드의 내용입니다. SignificantWhitespace 공백 문자입니다.공백은 하나 이상의 스페이스 문자, 캐리지 리턴, 줄 바꿈 또는 탭 등으로 구성될 수 있습니다.Whitespace 공백 문자입니다.공백은 하나 이상의 스페이스 문자, 캐리지 리턴, 줄 바꿈 또는 탭 등으로 구성될 수 있습니다.XmlDeclaration 선언(즉, <?xml과 ?> 사이의 모든 것)의 콘텐츠입니다.
+ 읽기 전용인 노드의 값을 설정하는 경우
+ 값이 없어야 하는 노드의 값을 설정하는 경우(예: Element 노드)
+
+
+ 파생 클래스에서 재정의된 경우 노드의 모든 자식 노드를 지정된 에 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 파생 클래스에서 재정의된 경우 현재 노드를 지정된 에 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 노드 변경 형식을 지정합니다.
+
+
+ 노드 값이 변경됩니다.
+
+
+ 노드가 트리에 삽입됩니다.
+
+
+ 노드가 트리에서 제거됩니다.
+
+
+
+ , , , , 및 이벤트에 대한 데이터를 제공합니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+ 이벤트를 생성한 입니다.
+ 이벤트를 생성한 의 이전 부모 입니다.
+ 이벤트를 생성한 의 새 부모 입니다.
+ 이벤트를 생성한 의 이전 값입니다.
+ 이벤트를 생성한 의 새 값입니다.
+
+
+
+
+
+ 발생할 노드 변경 이벤트 형식을 나타내는 값을 가져옵니다.
+ 노드 변경 이벤트를 설명하는 XmlNodeChangedAction 값입니다.XmlNodeChangedAction 값 설명 Insert 노드를 삽입했거나 삽입합니다. 제거 노드를 제거했거나 제거합니다. 변경 노드를 변경했거나 변경합니다. 참고이벤트가 발생한 시점(전후) 사이에 Action 값이 달라지지 않습니다.별도의 이벤트 처리기를 만들어 두 인스턴스를 모두 처리할 수 있습니다.
+
+
+ 작업을 완료한 후 의 값을 가져옵니다.
+ 작업을 완료한 후 ParentNode의 값입니다.노드를 제거할 경우 이 속성에서 null을 반환합니다.참고Attribute 노드의 경우, 이 속성은 를 반환합니다.
+
+
+ 노드의 새 값을 가져옵니다.
+ 노드의 새 값입니다.노드가 특성이나 텍스트 노드가 아니거나, 노드가 제거되고 있는 경우에 이 속성은 null을 반환합니다. 이벤트에서 호출되었을 경우, 변경이 성공적이면 NewValue가 노드 값을 반환합니다. 이벤트에서 호출되었을 경우에는 NewValue가 노드의 현재 값을 반환합니다.
+
+
+ 추가, 제거 또는 변경할 를 가져옵니다.
+ 추가, 제거 또는 변경할 XmlNode입니다. 이 속성에서는 null을 반환하지 않습니다.
+
+
+ 작업을 시작하기 전에 의 값을 가져옵니다.
+ 작업을 시작하기 전 ParentNode의 값입니다.노드에 부모가 없으면 이 속성은 null을 반환합니다.참고Attribute 노드의 경우, 이 속성은 를 반환합니다.
+
+
+ 노드의 원래 값을 가져옵니다.
+ 노드의 원래 값입니다.노드가 특성이나 텍스트 노드가 아니거나, 노드가 삽입되고 있는 경우에 이 속성은 null을 반환합니다. 이벤트에서 호출되었을 경우, 변경이 성공적이면 OldValue가 교체될 노드의 현재 값을 반환합니다. 이벤트에서 호출되었을 경우에는 OldValue가 변경 전 노드 값을 반환합니다.
+
+
+
+ , , , , 및 이벤트를 처리하는 메서드를 나타냅니다.
+ 이벤트 소스입니다.
+ 이벤트 데이터가 포함된 입니다.
+
+
+ 노드의 정렬된 컬렉션을 나타냅니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+
+
+ XmlNodeList에서 노드의 수를 가져옵니다.
+ XmlNodeList의 노드 수입니다.
+
+
+ 노드의 컬렉션을 반복하는 열거자를 가져옵니다.
+ 노드의 컬렉션 전체에서 반복하는 데 사용되는 열거자입니다.
+
+
+ 특정 인덱스에서 노드를 검색합니다.
+ 컬렉션에서 지정된 인덱스의 입니다.가 목록의 노드 수보다 크거나 같은 경우 null을 반환합니다.
+ 노드 목록에 대한 0부터 시작하는 인덱스입니다.
+
+
+ 특정 인덱스에서 노드를 가져옵니다.
+ 컬렉션에서 지정된 인덱스의 입니다.인덱스가 목록의 노드 수보다 크거나 같은 경우 null을 반환합니다.
+ 노드 목록에 대한 0부터 시작하는 인덱스입니다.
+
+
+ 노드 목록에서 개인적으로 리소스를 삭제합니다.
+
+
+
+ 클래스에서 사용하는 모든 리소스를 해제합니다.
+
+
+ 문서의 텍스트에 있는 프로세스 관련 정보를 유지하기 위해 정의된 XML 처리 명령을 나타냅니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+ 처리 명령의 대상입니다. 속성을 참조하세요.
+ 처리 명령의 콘텐츠입니다. 속성을 참조하세요.
+ 부모 XML 문서입니다.
+
+
+ 이 노드의 복제본을 만듭니다.
+ 복제 노드입니다.
+
+ 지정된 노드 아래의 하위 트리를 재귀적으로 복제하려면 true이고, 노드 자체만 복제하려면 false입니다.
+
+
+ 처리 명령의 콘텐츠를 가져오거나 설정합니다. 처리 명령의 대상은 제외됩니다.
+ 처리 명령의 대상을 제외한 처리 명령의 콘텐츠입니다.
+
+
+ 노드와 모든 자식의 연결된 값을 가져오거나 설정합니다.
+ 노드와 모든 자식의 연결된 값입니다.
+
+
+ 노드의 로컬 이름을 가져옵니다.
+ processinginstruction 노드의 경우, 이 속성은 처리 명령의 대상을 반환합니다.
+
+
+ 노드의 정규화된 이름을 가져옵니다.
+ processinginstruction 노드의 경우, 이 속성은 처리 명령의 대상을 반환합니다.
+
+
+ 현재 노드의 형식을 가져옵니다.
+ XmlProcessingInstruction 노드인 경우 이 값은 XmlNodeType.ProcessingInstruction입니다.
+
+
+ 처리 명령의 대상을 가져옵니다.
+ 처리 명령의 대상입니다.
+
+
+ 노드의 값을 가져오거나 설정합니다.
+ 처리 명령의 대상을 제외한 처리 명령의 전체 콘텐츠입니다.
+ Node is read-only.
+
+
+ 지정된 에 노드의 모든 자식을 저장합니다.ProcessingInstruction 노드는 자식을 가지지 않습니다. 따라서 이 메서드에서는 아무 작업도 수행되지 않습니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 지정된 에 노드를 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 혼합된 내용 노드의 태그 사이에 있는 공백이나 xml:space= 'preserve' 범위 내에 있는 공백을 나타냅니다.이러한 공백을 유효 공백이라고도 합니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+ 노드의 공백 문자입니다.
+
+ 개체
+
+
+ 이 노드의 복제본을 만듭니다.
+ 복제된 노드입니다.
+ 지정된 노드 아래의 하위 트리를 재귀적으로 복제하려면 true이고, 노드 자체만 복제하려면 false입니다.유효 공백 노드의 경우 복제된 노드에는 항상 매개 변수 설정과 상관 없이 데이터 값이 포함됩니다.
+
+
+ 노드의 로컬 이름을 가져옵니다.
+ XmlSignificantWhitespace 노드의 경우 이 속성은 #significant-whitespace를 반환합니다.
+
+
+ 노드의 정규화된 이름을 가져옵니다.
+ XmlSignificantWhitespace 노드의 경우 이 속성은 #significant-whitespace를 반환합니다.
+
+
+ 현재 노드의 형식을 가져옵니다.
+ XmlSignificantWhitespace 노드의 경우 이 값은 XmlNodeType.SignificantWhitespace입니다.
+
+
+ 현재 노드의 부모를 가져옵니다.
+ 현재 노드의 부모 노드입니다.
+
+
+ 이 노드 바로 앞에 있는 텍스트 노드를 가져옵니다.
+
+ 를 반환합니다.
+
+
+ 노드의 값을 가져오거나 설정합니다.
+ 노드에 있는 공백 문자입니다.
+ Value를 잘못된 공백 문자로 설정하는 경우
+
+
+ 지정된 에 노드의 모든 자식을 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 지정된 에 노드를 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 요소나 특성의 텍스트 콘텐츠를 나타냅니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+ 노드의 내용입니다. 속성을 참조하십시오.
+ 부모 XML 문서입니다.
+
+
+ 이 노드의 복제본을 만듭니다.
+ 복제된 노드입니다.
+ 지정된 노드 아래의 하위 트리를 재귀적으로 복제하려면 true이고, 노드 자체만 복제하려면 false입니다.
+
+
+ 노드의 로컬 이름을 가져옵니다.
+ text 노드의 경우 이 속성은 #text를 반환합니다.
+
+
+ 노드의 정규화된 이름을 가져옵니다.
+ text 노드의 경우 이 속성은 #text를 반환합니다.
+
+
+ 현재 노드의 형식을 가져옵니다.
+ 텍스트 노드의 경우 이 값은 XmlNodeType.Text입니다.
+
+
+
+ 이 노드 바로 앞에 있는 텍스트 노드를 가져옵니다.
+
+ 를 반환합니다.
+
+
+ 지정된 오프셋으로 노드 하나를 두 개로 분할합니다. 트리에 있는 이 두 노드는 형제 노드로 유지됩니다.
+ 새 노드입니다.
+ 노드를 분할하는 오프셋입니다.
+
+
+ 노드의 값을 가져오거나 설정합니다.
+ 텍스트 노드의 내용입니다.
+
+
+ 지정된 에 노드의 모든 자식을 저장합니다.XmlText 노드는 자식이 없으므로 이 메서드는 어떠한 영향도 끼치지 않습니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 지정된 에 노드를 저장합니다.
+ 저장할 대상 XmlWriter입니다.
+
+
+ 요소 내용에 있는 공백을 나타냅니다.
+
+
+
+ 클래스의 새 인스턴스를 초기화합니다.
+ 노드의 공백 문자입니다.
+
+ 개체
+
+
+ 이 노드의 복제본을 만듭니다.
+ 복제된 노드입니다.
+ 지정된 노드 아래의 하위 트리를 재귀적으로 복제하려면 true이고, 노드 자체만 복제하려면 false입니다.문서 형식 노드의 경우 복제된 노드에는 항상 매개 변수 설정과 상관없이 하위 트리가 포함됩니다.
+
+
+ 노드의 로컬 이름을 가져옵니다.
+ XmlWhitespace 노드의 경우 이 속성은 #whitespace를 반환합니다.
+
+
+ 노드의 정규화된 이름을 가져옵니다.
+ XmlWhitespace 노드의 경우 이 속성은 #whitespace를 반환합니다.
+
+
+ 노드의 형식을 가져옵니다.
+ XmlWhitespace 노드의 경우 이 값은 입니다.
+
+
+ 현재 노드의 부모를 가져옵니다.
+ 현재 노드의 부모 노드입니다.
+
+
+ 이 노드 바로 앞에 있는 텍스트 노드를 가져옵니다.
+
+ 를 반환합니다.
+
+
+ 노드의 값을 가져오거나 설정합니다.
+ 노드에 있는 공백 문자입니다.
+
+ 를 잘못된 공백 문자로 설정하는 경우
+
+
+ 지정된 에 노드의 모든 자식을 저장합니다.
+ 저장할 대상 입니다.
+
+
+ 지정된 에 노드를 저장합니다.
+ 저장할 대상 입니다.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/ru/System.Xml.XmlDocument.xml b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/ru/System.Xml.XmlDocument.xml
new file mode 100644
index 0000000..d4d3e31
--- /dev/null
+++ b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/ru/System.Xml.XmlDocument.xml
@@ -0,0 +1,1431 @@
+
+
+
+ System.Xml.XmlDocument
+
+
+
+ Представляет атрибут.Допустимые значения атрибута и его значения по умолчанию определены в определении DTD или схеме.
+
+
+ Инициализирует новый экземпляр класса .
+ Префикс пространства имен.
+ Локальное имя атрибута.
+ Универсальный код ресурса (URI) пространства имен.
+ Родительский XML-документ.
+
+
+ Добавляет указанный узел в конец списка дочерних узов данного узела.
+ Добавленный узел .
+ Добавляемый объект .
+ Данный узел относится к типу, который не допускает дочерних узлов типа .Узел является предком данного узла.
+ Узел был создан из другого документа, отличного от документа, из которого был создан этот узел.Этот узел доступен только для чтения.
+
+
+ Получает базовый URI узла.
+ Место, из которого был загружен узел, или String.Empty, если базовый URI узела отсутствует.Узлам атрибутов присвоен базовый URI владеющего ими элемента.Если у атрибута нет элемента-владельца, свойство BaseURI возвращает значение String.Empty.
+
+
+ Создает дубликат этого узела.
+ Дублирующийся узел.
+ Значение true для рекурсивного клонирования поддерева указанного узла; значение false для клонирования только самого узла
+
+
+ Задает последовательно соединенные значения узла и его дочерних узлов.
+ Последовательно соединенные значения узела и его дочерних узов.Для узлов атрибутов это свойство теми же функциями, что и свойство .
+
+
+ Задает значение атрибута.
+ Значение атрибута.
+ При задании этого свойства указан код XML с неправильным форматом.
+
+
+ Вставляет заданный узел сразу после указанного узела ссылки.
+ Вставленный узел .
+ Вставляемый объект .
+ узелом ссылки является . располагается после .
+ Данный узел относится к типу, который не допускает дочерних узлов типа .Узел является предком данного узла.
+ Узел был создан из другого документа, отличного от документа, из которого был создан этот узел.Узел не является дочерним для этого узла.Этот узел доступен только для чтения.
+
+
+ Вставляет заданный узел сразу перед указанным узелом ссылки.
+ Вставленный узел .
+ Вставляемый объект .
+ узелом ссылки является . размещен перед данным узелом.
+ Текущий узел относится к типу, который не допускает дочерних узлов типа .Узел является предком данного узла.
+ Узел был создан из другого документа, отличного от документа, из которого был создан этот узел.Узел не является дочерним для этого узла.Этот узел доступен только для чтения.
+
+
+ Возвращает локальное имя узела.
+ Имя узла атрибута с удаленным префиксом.В примере тега <book bk:genre= 'novel'> значение LocalName атрибута равно genre.
+
+
+ Возвращает проверенное имя узла.
+ Полное имя узла атрибута.
+
+
+ Возвращает URI пространства имен данного узела.
+ URI пространства имен данного узла.Если атрибут не задан в пространстве имен явным образом, данное свойство возвращает значение String.Empty.
+
+
+ Получает тип текущего узла.
+ Узлы XmlAttribute относятся к типу XmlNodeType.Attribute.
+
+
+ Возвращает класс , которому принадлежит данный узел.
+ XML документ, которому принадлежит данный узел.
+
+
+ Получает элемент , которому принадлежит атрибут.
+ Элемент XmlElement, которому принадлежит атрибут или значение null, если данный атрибут не является частью какого-либо элемента XmlElement.
+
+
+ Получает родительский узел данного узла.Для узлов XmlAttribute это свойство всегда возвращает значение null.
+ Для узлов XmlAttribute это свойство всегда возвращает значение null.
+
+
+ Возвращает или задает префикс пространства имен данного узла.
+ Префикс пространства имен данного узла.Если префикс отсутствует, данное свойство возвращает String.Empty.
+ Этот узел доступен только для чтения.
+ Заданный префикс содержит недопустимый символ.Указан префикс неправильного формата.Код URI пространства имен для данного узла равен значению null.Задан префикс "xml", и код URI пространства имен отличается от значения "http://www.w3.org/XML/1998/namespace".Данный узел является атрибутом, задан префикс "xmlns", и URI пространства имен этого узла отличается от значения "http://www.w3.org/2000/xmlns/".Данный узел является атрибутом, и его полное имя — "xmlns" [пространства имен].
+
+
+ Добавляет указанный узел в начало списка дочерних узов данного узела.
+ Добавленный узел .
+ Добавляемый объект .Для узлов все содержимое фрагмента документа перемещается в дочерний список данного узла.
+ Данный узел относится к типу, который не допускает дочерних узлов типа .Узел является предком данного узла.
+ Узел был создан из другого документа, отличного от документа, из которого был создан этот узел.Этот узел доступен только для чтения.
+
+
+ Удаляет указанный дочерний узел.
+ Удаленный узел .
+ Удаляемый объект .
+ Узел не является дочерним для этого узла.Или этот узел доступен только для чтения.
+
+
+ Заменяет указанный дочерний узел заданным новым дочерним узлом.
+ Замененный узел .
+ Новый дочерний узел .
+ Объект для замены.
+ Данный узел относится к типу, который не допускает дочерних узлов типа .Узел является предком данного узла.
+ Узел был создан из другого документа, отличного от документа, из которого был создан этот узел.Этот узел доступен только для чтения.Узел не является дочерним для этого узла.
+
+
+ Получает значение, указывающее, было ли явно задано значение атрибута.
+ Значение true, если для атрибута было явно задано значение в исходном экземпляре документа; в противном случае — значение false.Значение false указывает, что значение атрибута происходит из определения DTD.
+
+
+ Возвращает или задает значение узела.
+ Возвращаемое значение зависит от значения свойства узла.Для узлов XmlAttribute значение это свойства равно значению атрибута.
+ Вызвана операция set для узла, доступного только для чтения.
+
+
+ Сохраняет все дочерние узлы в заданном классе .
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Сохраняет узел в заданном .
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Представляет коллекцию атрибутов, к которым можно получить доступ по имени или по индексу.
+
+
+ Вставляет указанный атрибут как последний узел коллекции.
+ XmlAttribute, который требуется добавить в коллекцию.
+ Вставляемый объект .
+
+ был создан из документа, отличающегося от того, который создал данную коллекцию.
+
+
+ Копирует объекты из этой коллекции в заданный массив.
+ Массив, который является конечным массивом для объектов, копируемых из коллекции.
+ Индекс массива, с которого начинается копирование.
+
+
+ Вставляет указанный атрибут непосредственно после заданного атрибута ссылки.
+ Класс XmlAttribute, вставляемый в коллекцию.
+ Вставляемый объект .
+ Объект , являющийся атрибутом ссылки. располагается после .
+
+ был создан из документа, отличающегося от того, который создал данную коллекцию.Или не является членом данной коллекции.
+
+
+ Вставляет указанный атрибут непосредственно перед заданным атрибутом ссылки.
+ Класс XmlAttribute, вставляемый в коллекцию.
+ Вставляемый объект .
+ Объект , являющийся атрибутом ссылки.Элемент помещается перед элементом .
+
+ был создан из документа, отличающегося от того, который создал данную коллекцию.Или не является членом данной коллекции.
+
+
+ Получает атрибут с указанным индексом.
+ Объект с указанным индексом.
+ Индекс атрибута.
+ Переданное значение индекса находится за пределами диапазона.
+
+
+ Получает атрибут с заданным именем.
+ Объект с заданным именем.Если атрибут не существует, это свойство возвращает значение null.
+ Проверенное имя атрибута.
+
+
+ Возвращает атрибут с заданным локальным именем и URI пространства имен.
+ Параметр с заданным локальным именем и URI пространства имен.Если атрибут не существует, это свойство возвращает значение null.
+ Локальное имя атрибута.
+ URI пространства имен атрибута.
+
+
+ Вставляет указанный атрибут как первый узел коллекции.
+ Атрибут XmlAttribute, добавленный в коллекцию.
+ Вставляемый объект .
+
+
+ Удаляет указанный атрибут из коллекции.
+ узел удален или равен null, если он не найден в коллекции.
+ Удаляемый объект .
+
+
+ Удаляет все атрибуты из коллекции.
+
+
+ Удаляет из коллекции атрибут, соответствующий указанному индексу.
+ Возвращает значение null, если по указанному индексу атрибут отсутствует.
+ Индекс удаляемого узла.Первый узел имеет индекс 0.
+
+
+ Добавляет узел с помощью свойства
+ Если узел заменяет существующий узел с таким же именем, то возвращается старый узел; в противном случае возвращается добавленный узел.
+ узел атрибута, предназначенный для помещения в коллекцию.Позже узел будет доступен по своему имени.Если узел с таким именем уже присутствует в коллекции, он замещается новым; в противном случае узел добавляется в конец коллекции.
+
+ был создан из , отличающегося от того, который создал данную коллекцию.Этот объект XmlAttributeCollection доступен только для чтения.
+
+ представляет собой , который уже является атрибутом другого объекта .Для повторного использования атрибутов в других элементах необходимо клонировать объекты XmlAttribute, которые требуется повторно использовать.
+
+
+ Описание этого члена см. в разделе .
+ Массив, который является конечным массивом для объектов, копируемых из коллекции.
+ Индекс массива, с которого начинается копирование.
+
+
+ Описание этого члена см. в разделе .
+ Возвращает значение типа int, содержащее число атрибутов.
+
+
+ Описание этого члена см. в разделе .
+ Возвращает значение true, если коллекция синхронизирована.
+
+
+ Описание этого члена см. в разделе .
+ Возвращает объект , который является корнем коллекции.
+
+
+ Представляет раздел CDATA.
+
+
+ Инициализирует новый экземпляр класса .
+ Объект , содержащий знаковые данные.
+ Объект .
+
+
+ Создает дубликат этого узла.
+ Точная копия узла.
+ trueдля рекурсивного создания точной копии поддерева указанного узла; false для создания точной копии самого узла.Поскольку узлы CDATA не имеют дочерних узлов, независимо от настройки параметра точная копия узла всегда будет включать содержимое данных.
+
+
+ Возвращает локальное имя узла.
+ узлы CDATA имеют локальное имя #cdata-section.
+
+
+ Возвращает полное имя узла.
+ узлы CDATA имеют локальное имя #cdata-section.
+
+
+ Получает тип текущего узла.
+ Тип узла.Для узлов CDATA значение равно XmlNodeType.CDATA.
+
+
+
+ Возвращает текстовый узел, которому предшествует этого узла.
+ Возвращает .
+
+
+ Сохраняет дочерний узел этого узела в заданном классе .
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Сохраняет узел в заданном .
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Обеспечивает методы обработки текста, которые используются несколькими классами.
+
+
+ Инициализирует новый экземпляр класса .
+ Строка, содержащая символьные данные, которые необходимо добавить в документ.
+ Объект , который должен содержать символьные данные.
+
+
+ Добавляет заданную строку в конец знаковых данных узла.
+ Строка, вставляемая в существующую строку.
+
+
+ Содержит данные узла.
+ Данные текущего узла.
+
+
+ Удаляет диапазон знаков из узла.
+ Позиция в строке, с которой начинается удаление.
+ Число символов для удаления.
+
+
+ Вставляет заданную строку со смещением в указанное число знаков.
+ Позиция в строке для вставки предлагаемых данных строки.
+ Данные строки, вставляемые в существующую строку.
+
+
+ Возвращает длину данных в знаках.
+ Длина строки в знаках в свойстве .Длина может быть равна нулю, то есть узлы CharacterData могут быть пустыми.
+
+
+ Замещает заданное количество знаков, начиная с указанного смещения в заданной строке.
+ Позиция в строке, с которой начинается замещение.
+ Число знаков для замещения.
+ Новые данные, заменяющие старые данные строки.
+
+
+ Возвращает подстроку полной строки из заданного диапазона.
+ Подстрока, соответствующая указанному диапазону.
+ Позиция в строке, с которой начинается извлечение.Нулевое смещение означает, что началом данных является начальная пиксель.
+ Число извлекаемых знаков.
+
+
+ Возвращает или задает значение узела.
+ Значение узела.
+ Узел доступен только для чтения.
+
+
+ Представляет содержимое XML-комментария.
+
+
+ Инициализирует новый экземпляр класса .
+ Содержимое элемента комментария.
+ Родительский XML-документ.
+
+
+ Создает дубликат этого узела.
+ Точная копия узела.
+ Значение true для рекурсивного создания точной копии поддерева указанного узела; false только для создания точной копии самого узела.Поскольку узлы комментариев не имеют дочерних узлов, точная копия узла всегда включает текстовое содержимое независимо от значения параметра.
+
+
+ Возвращает локальное имя узела.
+ Для узлов комментариев значение — #comment.
+
+
+ Возвращает проверенное имя узла.
+ Для узлов комментариев значение — #comment.
+
+
+ Получает тип текущего узла.
+ Для узлов комментариев значение — XmlNodeType.Comment.
+
+
+ Сохраняет все дочерние узлы в заданном классе .Поскольку у узлов комментариев отсутствуют дочерние узлы, этот метод не работает.
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Сохраняет узел в заданном .
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Представляет узел объявления XML <?xml version='1.0'...?>.
+
+
+ Инициализирует новый экземпляр класса .
+ Версия XML, см. свойство .
+ Схема кодирования, см. свойство .
+ Указывает наличие зависимости XML-документа от внешнего DTD; см. свойство .
+ Родительский XML-документ.
+
+
+ Создает дубликат этого узела.
+ Точная копия узела.
+ Значение true для рекурсивного создания точной копии поддерева указанного узела; false только для создания точной копии самого узела.Поскольку узлы XmlDeclaration не имеют дочерних узлов, точная копия узла всегда включает значение данных независимо от значения параметра.
+
+
+ Получает или задает уровень кодировки XML-документа.
+ Допустимое имя кодировки знаков.Ниже см. чаще всего поддерживаемые имена кодировок знаков для XML.Категория Имена кодировок Юникод UTF-8, UTF-16 ISO 10646 ISO-10646-UCS-2, ISO-10646-UCS-4 ISO 8859 ISO-8859-n (где "n" — цифра от 1 до 9) JIS X-0208-1997 ISO-2022-JP, Shift_JIS, EUC-JP Это необязательный параметр.Если значение не задано, это свойство возвращает String.Empty.Если атрибут кодировки не включен, предполагается использование кодировки UTF-8 при записи или сохранении документа.
+
+
+ Получает или задает сцепленные значения для XmlDeclaration.
+ Сцепленные значения XmlDeclaration (то есть любое значение между <?xml и ?>).
+
+
+ Возвращает локальное имя узела.
+ Для узлов XmlDeclaration локальное имя — xml.
+
+
+ Возвращает проверенное имя узла.
+ Для узлов XmlDeclaration имя — xml.
+
+
+ Получает тип текущего узла.
+ Для узлов XmlDeclaration это значение — XmlNodeType.XmlDeclaration.
+
+
+ Получает или задает значение отдельного атрибута.
+ Действительными значениями являются значения yes, если все объявления сущности, требующиеся для XML-документа, содержатся в документе, или значения no, если требуется внешнее DTD.Если отдельный атрибут отсутствует в объявлении XML, это свойство возвращает String.Empty.
+
+
+ Получает или задает значение XmlDeclaration.
+ Содержимое узла XmlDeclaration (то есть любое значение между <?xml и ?>).
+
+
+ Получает XML-версию документа.
+ Это значение всегда равно 1.0.
+
+
+ Сохраняет дочерний узел этого узела в заданном классе .Поскольку у узлов XmlDeclaration отсутствуют дочерние узлы, этот метод не работает.
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Сохраняет узел в заданном .
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Представляет XML-документ.Дополнительные сведения см. в разделе Remarks.
+
+
+ Инициализирует новый экземпляр класса .
+
+
+ Инициализирует новый экземпляр класса XmlDocument указанным значением .
+ Используемый XmlImplementation.
+
+
+ Инициализирует новый экземпляр класса XmlDocument указанным значением .
+ Используемый XmlNameTable.
+
+
+ Возвращает базовый URI текущего узла.
+ Расположение, из которого загружен узел.
+
+
+ Создает дубликат этого узла.
+ Клонированный узел XmlDocument.
+ Значение true для рекурсивного клонирования поддерева указанного узла; значение false для клонирования только самого узла.
+
+
+ Создает объект с указанным .
+ Новый объект XmlAttribute.
+ Полное имя атрибута.Если имя содержит двоеточие, свойство отражает часть имени, предшествующую ему, а свойство — ту часть, которая следует за первым двоеточием.Свойство остается пустым, если префикс не является распознаваемым встроенным префиксом, например xmlns.В этом случае NamespaceURI имеет значение http://www.w3.org/2000/xmlns/.
+
+
+ Создает с помощью указанного полного имени и .
+ Новый объект XmlAttribute.
+ Полное имя атрибута.Если имя содержит двоеточие, свойство отражает часть имени, предшествующую ему, а свойство — ту часть, которая следует за двоеточием.
+ URI пространства имен атрибута.Если полное имя содержит префикс xmlns, то этот параметр должен иметь значение http://www.w3.org/2000/xmlns/.
+
+
+ Создает объект с помощью указанных значений , и .
+ Новый объект XmlAttribute.
+ Префикс атрибута (если имеется).String.Empty равно значению null.
+ Локальное имя атрибута.
+ URI пространства имен атрибута (если имеется).String.Empty равно значению null.Если значение параметра равно xmlns, этот параметр должен иметь значение http://www.w3.org/2000/xmlns/. В противном случае создается исключение.
+
+
+ Создает объект , содержащий указанные данные.
+ Новый объект XmlCDataSection.
+ Содержимое нового класса XmlCDataSection.
+
+
+ Создает объект , содержащий указанные данные.
+ Новый объект XmlComment.
+ Содержимое нового класса XmlComment.
+
+
+ Создает объект .
+ Новый объект XmlDocumentFragment.
+
+
+ Создает элемент с указанным именем.
+ Новый объект XmlElement.
+ Полное имя элемента.Если имя содержит двоеточие, свойство отражает часть имени, предшествующую ему, а свойство — ту часть, которая следует за двоеточием.Полное имя не может содержать префикс "xmlns".
+
+
+ Создает с помощью полного имени и .
+ Новый объект XmlElement.
+ Полное имя элемента.Если имя содержит двоеточие, свойство отражает часть имени, предшествующую ему, а свойство — ту часть, которая следует за двоеточием.Полное имя не может содержать префикс "xmlns".
+ Универсальный код ресурса (URI) пространства имен элемента.
+
+
+ Создает элемент с помощью указанных , и .
+ Новый объект .
+ Префикс нового элемента (если имеется).String.Empty равно значению null.
+ Локальное имя нового элемента.
+ URI пространства имен нового элемента (если имеется).String.Empty равно значению null.
+
+
+ Создает с помощью указанного типа узла, а также свойств и .
+ Новый объект XmlNode.
+ Строковая версия типа нового узла.Этот параметр должен принимать одно из значений, перечисленных в следующей таблице.
+ Полное имя нового узла.Если имя содержит двоеточие, оно разбивается на компоненты и .
+ URI пространства имен нового узла.
+ The name was not provided and the XmlNodeType requires a name; or is not one of the strings listed below.
+
+
+ Создает объект с помощью указанных значений , и .
+ Новый объект XmlNode.
+ Тип XmlNodeType нового узла.
+ Полное имя нового узла.Если имя содержит двоеточие, оно разбивается на компоненты и .
+ URI пространства имен нового узла.
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ Создает объект с помощью указанных типов , , и .
+ Новый объект XmlNode.
+ Тип XmlNodeType нового узла.
+ Префикс нового узла.
+ Локальное имя нового узла.
+ URI пространства имен нового узла.
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ Создает с помощью указанного имени и данных.
+ Новый объект XmlProcessingInstruction.
+ Имя инструкции по обработке.
+ Данные для инструкции обработки.
+
+
+ Создает узел .
+ Новый узел XmlSignificantWhitespace.
+ Строка должна содержать только следующие символы:  и 	
+
+
+ Создает объект с указанным текстом.
+ Новый узел XmlText.
+ Текст для узла Text.
+
+
+ Создает узел .
+ Новый узел XmlWhitespace.
+ Строка должна содержать только следующие символы:  и 	
+
+
+ Создает узел с указанными значениями.
+ Новый узел XmlDeclaration.
+ Номер версии должен быть равен 1.0.
+ Значение атрибута кодировки.Эта кодировка используется при сохранении в файле или потоке, поэтому она должна быть задана как строка, поддерживаемая классом . В противном случае в работе возникает сбой.Если она имеет значение null или String.Empty, метод Save не записывает атрибут кодировки в объявление XML и используется кодировка UTF-8, заданная по умолчанию.Примечание. Если XmlDocument сохранен в или , это значение кодировки не учитывается.Вместо нее используется кодировка TextWriter или XmlTextWriter.Таким образом обеспечивается возможность чтения записанного XML в правильной кодировке.
+ Значение должно быть равно "yes" или "no".Если значение равно null или String.Empty, метод Save не записывает в объявление XML отдельный атрибут.
+ The values of or are something other than the ones specified above.
+
+
+ Возвращает корень для документа.
+ Объект XmlElement, представляющий корень дерева XML-документов.Если корень не существует, возвращается значение null.
+
+
+ Возвращает значение , содержащее список всех элементов-потомков, соответствующих указанному имени .
+ Класс , содержащий список всех соответствующих узлов.Если ни один из узлов не соответствует , возвращаемая коллекция будет пустой.
+ Сопоставляемое полное имя.Оно противопоставляется свойству Name соответствующего узла.Специальное значение "*" соответствует всем тегам.
+
+
+ Возвращает , содержащий список всех элементов-потомков, соответствующих указанным значениям и .
+ Класс , содержащий список всех соответствующих узлов.Если ни один из узлов не соответствует указанным параметрам и , возвращаемая коллекция будет пустой.
+ Сопоставляемый параметр LocalName.Специальное значение "*" соответствует всем тегам.
+ Сопоставляемый параметр NamespaceURI.
+
+
+ Возвращает объект для текущего документа.
+ Объект XmlImplementation для текущего документа.
+
+
+ Импортирует в текущий документ узел из другого документа.
+ Импортированный .
+ Импортируемый узел.
+ Значение true — выполняется полное точное клонирование; в противном случае — false.
+ Calling this method on a node type which cannot be imported.
+
+
+ Во всех случаях вызывает исключение .
+ Значения узла и всех его дочерних узлов.
+ In all cases.
+
+
+ Возвращает или задает разметку, отражающую дочерние узлы текущего узла.
+ Разметка дочерних узлов текущего узла.
+ The XML specified when setting this property is not well-formed.
+
+
+ Возвращает значение, определяющее, доступен ли текущий узел только для чтения.
+ Значение true, если текущий узел доступен только для чтения; в противном случае — значение false.Узлы XmlDocument всегда возвращают значение false.
+
+
+ Загружает XML-документ из указанного потока.
+ Поток, содержащий загружаемый документ XML.
+ There is a load or parse error in the XML.In this case, a is raised.
+
+
+ Загружает XML-документ из указанного .
+ TextReader, используемый для передачи данных XML в документ.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ Загружает XML-документ из указанного .
+ XmlReader, используемый для передачи данных XML в документ.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ Загружает XML-документ из указанной строки.
+ Строка, содержащая загружаемый XML-документ.
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ Возвращает локальное имя узла.
+ Для узлов XmlDocument локальное имя равно #document.
+
+
+ Возвращает полное имя узла.
+ Для узлов XmlDocument имя равно #document.
+
+
+ Возвращает класс , связанный с данной реализацией.
+ Класс XmlNameTable, позволяющий получить атомизированную версию строки в документе.
+
+
+ Возникает при изменении свойства узла, принадлежащего данному документу.
+
+
+ Возникает при намерении изменить свойство узла, принадлежащего данному документу.
+
+
+ Возникает после вставки узла, принадлежащего данному документу, в другой узел.
+
+
+ Возникает перед вставкой узла, принадлежащего данному документу, в другой узел.
+
+
+ Возникает после удаления узла, принадлежащего данному документу, из родительского узла.
+
+
+ Возникает перед удалением узла из документа.
+
+
+ Возвращает тип текущего узла.
+ Тип узла.Для узлов XmlDocument это значение равно XmlNodeType.Document.
+
+
+ Возвращает , к которому принадлежит текущий узел.
+ Для узлов XmlDocument ( имеет значение XmlNodeType.Document) это свойство всегда возвращает значение null.
+
+
+ Возвращает родительский узел для данного узла (только узлов, у которых они могут быть).
+ Всегда возвращает значение null.
+
+
+ Возвращает или задает значение, определяющее, будут ли сохранены знаки-разделители в содержимом элемента.
+ Значение true, если знак-разделитель будет сохранен; в противном случае — значение false.Значение по умолчанию — false.
+
+
+ Создает объект на основе данных из .Средство чтения должно быть позиционировано на узел или атрибут.
+ Новый XmlNode или значение null, если больше узлов не существует.
+ Источник XML
+ The reader is positioned on a node type that does not translate to a valid DOM node (for example, EndElement or EndEntity).
+
+
+ Сохраняет XML-документ в указанном потоке.
+ Поток, в который будет выполняться сохранение.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Сохраняет XML-документ в указанном .
+ Объект TextWriter, в котором необходимо выполнить сохранение.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Сохраняет XML-документ в указанном .
+ Объект XmlWriter, в котором необходимо выполнить сохранение.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Сохраняет все дочерние узлы узла XmlDocument в заданном .
+ Объект XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Сохраняет узел XmlDocument в заданном .
+ Объект XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Представляет простой объект, полезный для операций вставки дерева.
+
+
+ Инициализирует новый экземпляр класса .
+ XML-документ, являющийся источником фрагмента.
+
+
+ Создает дубликат этого узела.
+ Точная копия узела.
+ Значение true для рекурсивного создания точной копии поддерева указанного узела; false только для создания точной копии самого узела.
+
+
+ Получает или задает разметку, представляющую дочерние узлы этого узла.
+ Разметка дочерних узлов этого узла.
+ При задании этого свойства указан код XML с неправильным форматом.
+
+
+ Возвращает локальное имя узела.
+ Для узлов XmlDocumentFragment локальное имя — #document-fragment.
+
+
+ Возвращает проверенное имя узла.
+ Для XmlDocumentFragment имя — #document-fragment.
+
+
+ Получает тип текущего узла.
+ Для узлов XmlDocumentFragment это значение равно XmlNodeType.DocumentFragment.
+
+
+ Возвращает класс , которому принадлежит данный узел.
+ XmlDocument, к которому принадлежит данный узел.
+
+
+ Возвращает родительский узел для данного узела (только для тех узов, которые могут их иметь).
+ Родительский узел этого узла.Для узлов XmlDocumentFragment это свойство всегда имеет значение null.
+
+
+ Сохраняет все дочерние узлы в заданном классе .
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Сохраняет узел в заданном .
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Представляет элемент.
+
+
+ Инициализирует новый экземпляр класса .
+ Префикс пространства имен, см. свойство .
+ Локальное имя, см. свойство .
+ Универсальный код ресурса пространства имен, см. свойство .
+ Родительский XML-документ.
+
+
+ Получает объект , содержащий список атрибутов для этого узла.
+ Коллекция , содержащая список атрибутов для этого узла.
+
+
+ Создает дубликат этого узела.
+ Точная копия узела.
+ Значение true для рекурсивного создания точной копии поддерева указанного узла; значение false только для создания точной копии самого узла (и его атрибутов, если узел является объектом XmlElement).
+
+
+ Возвращает значение атрибута с указанным именем.
+ Значение указанного атрибута.Возвращается пустая строка, если соответствующий атрибут не найден или если атрибут не имеет заданного значения или значения по умолчанию.
+ Имя извлекаемого атрибута.Это полное имя.Оно противопоставляется свойству Name соответствующего узела.
+
+
+ Возвращает значение атрибута с заданным локальным именем и URI пространства имен.
+ Значение указанного атрибута.Возвращается пустая строка, если соответствующий атрибут не найден или если атрибут не имеет заданного значения или значения по умолчанию.
+ Локальное имя получаемого атрибута.
+ URI пространства имен получаемого атрибута.
+
+
+ Возвращает XmlAttribute с заданным именем.
+ Значение XmlAttribute или null, если соответствующий атрибут не найден.
+ Имя извлекаемого атрибута.Это полное имя.Оно противопоставляется свойству Name соответствующего узела.
+
+
+ Возвращает объект с заданным локальным именем и URI пространства имен.
+ Значение XmlAttribute или null, если соответствующий атрибут не найден.
+ Локальное имя атрибута.
+ URI пространства имен атрибута.
+
+
+ Возвращает , содержащий список всех элементов-потомков, соответствующих указанному свойству .
+ Класс , содержащий список всех соответствующих узов.Список пуст, если отсутствуют узлы сопоставления.
+ Сопоставляемый тег name.Это полное имя.Оно противопоставляется свойству Name соответствующего узела.Звездочка "*" является специальным значением, соответствующим всем тегам.
+
+
+ Возвращает , содержащий список всех элементов-потомков, соответствующих указанным свойствам и .
+ Класс , содержащий список всех соответствующих узов.Список пуст, если отсутствуют узлы сопоставления.
+ Сопоставляемое локальное имя.Звездочка "*" является специальным значением, соответствующим всем тегам.
+ Сопоставляемый URI пространства имен.
+
+
+ Определяет наличие у текущего узла атрибута с заданным именем.
+ Значение true, если у текущего узла имеется заданный атрибут; в противном случае — значение false.
+ Имя искомого атрибута.Это полное имя.Оно противопоставляется свойству Name соответствующего узела.
+
+
+ Определяет наличие у текущего узла атрибута с заданным локальным именем и URI пространства имен.
+ Значение true, если у текущего узла имеется заданный атрибут; в противном случае — значение false.
+ Локальное имя искомого атрибута.
+ URI пространства имен искомого атрибута.
+
+
+ Получает значение boolean, указывающее наличие у текущего узла каких-либо атрибутов.
+ Значение true, если текущий узел содержит атрибуты; в противном случае — false.
+
+
+ Получает или задает сцепленные значения узла и всех его дочерних узлов.
+ Последовательно соединенные значения узела и его дочерних узов.
+
+
+ Получает или задает разметку, представляющую только дочерние узлы этого узла.
+ Разметка дочерних узлов этого узла.
+ При задании этого свойства указан код XML с неправильным форматом.
+
+
+ Получает или задает формат тега элемента.
+ Возвращает значение true, если элемент должен быть сериализован в тег с коротким форматом "<item/>"; в противном случае — значение false для тега с длинным форматом "<item></item>".Если значение true при задании этого свойства, дочерние элементы этого элемента удаляются и элемент сериализуется в тег с коротким форматом.Если задано значение false, значение свойства изменяется (независимо от наличия в элементе содержимого); если элемент пустой, он сериализуется в тег с длинным форматом.Это свойство является расширением Майкрософт для модели DOM.
+
+
+ Получает локальное имя текущего узела.
+ Имя текущего узла с удаленным префиксом.Например, LocalName — это книга для элемента <bk:book>.
+
+
+ Возвращает проверенное имя узла.
+ Проверенное имя узела.Для узлов XmlElement это имя тега элемента.
+
+
+ Возвращает URI пространства имен данного узела.
+ URI пространства имен данного узла.Если URI пространства имен отсутствует, возвращается String.Empty.
+
+
+ Получает объект , следующий сразу за этим элементом.
+ Объект XmlNode, следующий сразу за этим элементом.
+
+
+ Получает тип текущего узла.
+ Тип узла.Для узлов XmlElement это значение — XmlNodeType.Element.
+
+
+ Возвращает класс , которому принадлежит данный узел.
+ Объект XmlDocument, которому принадлежит этот элемент.
+
+
+
+ Возвращает или задает префикс пространства имен данного узла.
+ Префикс пространства имен данного узла.Если префикс отсутствует, данное свойство возвращает String.Empty.
+ Этот узел доступен только для чтения.
+ Заданный префикс содержит недопустимый символ.Указан префикс неправильного формата.Код URI пространства имен для данного узла равен значению null.Заданный префикс — "xml", и URI пространства имен этого узла отличается от пространства имен http://www.w3.org/XML/1998/namespace.
+
+
+ Удаляет все заданные атрибуты и дочерние узлы текущего узла.Атрибуты, используемые по умолчанию, не удаляются.
+
+
+ Удаляет все заданные атрибуты из элемента.Атрибуты, используемые по умолчанию, не удаляются.
+
+
+ Удаляет атрибут по имени.
+ Имя удаляемого атрибута. Это полное имя.Оно противопоставляется свойству Name соответствующего узела.
+ узел доступен только для чтения.
+
+
+ Удаляет атрибут с заданным локальным именем и URI пространства имен. (Если удаленный атрибут имеет значение по умолчанию, он немедленно заменяется).
+ Локальное имя удаляемого атрибута.
+ URI пространства имен удаляемого атрибута.
+ узел доступен только для чтения.
+
+
+ Удаляет из элемента узел атрибутов с указанным индексом. (Если удаленный атрибут имеет значение по умолчанию, он немедленно заменяется).
+ Узел атрибутов удален, или значение null, если в указанном индексе узел отсутствует.
+ Индекс удаляемого узла.Первый узел имеет индекс 0.
+
+
+ Удаляет объект , заданный локальным именем и URI пространства имен. (Если удаленный атрибут имеет значение по умолчанию, он немедленно заменяется).
+ Удаленный объект XmlAttribute или значение null, если в элементе XmlElement отсутствует соответствующий узел атрибутов.
+ Локальное имя атрибута.
+ URI пространства имен атрибута.
+ Этот узел доступен только для чтения.
+
+
+ Удаляет указанный объект .
+ Удаленный объект XmlAttribute или значение null, если не является узлом атрибутов XmlElement.
+ Удаляемый узел XmlAttribute.Если удаленный атрибут имеет значение по умолчанию, он немедленно заменяется.
+ Этот узел доступен только для чтения.
+
+
+ Задает значение атрибута с указанным именем.
+ Имя создаваемого или изменяемого атрибута.Это полное имя.Если имя содержит двоеточие, оно разбивается на префикс и локальное имя.
+ Задаваемое значение атрибута.
+ Заданное имя содержит недопустимый символ.
+ узел доступен только для чтения.
+
+
+ Задает значение атрибута с заданным локальным именем и URI пространства имен.
+ Значение атрибута.
+ Локальное имя атрибута.
+ URI пространства имен атрибута.
+ Задаваемое значение атрибута.
+
+
+ Добавляет заданный объект .
+ Добавляемый объект XmlAttribute.
+ Локальное имя атрибута.
+ URI пространства имен атрибута.
+
+
+ Добавляет заданный объект .
+ Если атрибут заменяет существующий атрибут с таким же именем, возвращается старый узел XmlAttribute; в противном случае возвращается значение null.
+ Узел XmlAttribute для добавления в коллекцию атрибутов этого элемента.
+ Узел был создан из другого документа, отличного от документа, из которого был создан этот узел.Или этот узел доступен только для чтения.
+ Узел уже является атрибутом другого объекта XmlElement.Необходимо явно создать точную копию узлов XmlAttribute для их повторного использования в других объектах XmlElement.
+
+
+ Сохраняет все дочерние узлы в заданном классе .
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Сохраняет текущий узел в заданный объект .
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Определяет контекст набора объектов .
+
+
+ Инициализирует новый экземпляр класса .
+
+
+ Инициализирует новый экземпляр класса указанной таблицей .
+ Объект .
+
+
+ Создает новый объект .
+ Новый объект XmlDocument.
+
+
+ Проверяет, реализована ли в реализации модели DOM определенный компонент.
+ Значение true, если в указанной версии средство реализовано; в противном случае — false.В следующей таблице перечислены сочетания, которые приводят к возвращению методом HasFeature значения true.strFeature strVersion XML 1.0 XML 2.0
+ Имя пакета проверяемого средства.Это имя не учитывает регистр.
+ Это номер версии проверяемого имени пакета.Если версия не указана (null), поддержка любой версии компонента приводит к возвращению методом значения true.
+
+
+ Получает узел, непосредственно предшествующий данному узлу или следующий сразу же за ним.
+
+
+ Возвращает узел, следующий сразу за данным узелом.
+ Узел , следующий сразу после этого узла, или значение null, если он не существует.
+
+
+ Возвращает узел, непосредственно предшествующий данному узелу.
+ Предшествующий узел или значение null, если он не существует.
+
+
+ Представляет коллекцию узлов, доступ к которым можно получить по имени или по индексу.
+
+
+ Получает число узлов в объекте XmlNamedNodeMap.
+ Число узлов.
+
+
+ Обеспечивает поддержку итерации стиля "foreach" для коллекции узлов в объекте XmlNamedNodeMap.
+ Объект перечислителя.
+
+
+ Получает объект , указанный по имени.
+ Объект XmlNode с указанным именем или значение null, если соответствующий узел не найден.
+ Полное имя получаемого узла.Оно противопоставляется свойству соответствующего узела.
+
+
+ Получает узел с соответствующими свойствами и .
+ Объект с соответствующим локальным именем и URI пространства имен или возвращается значение null, если соответствующий узел не найден.
+ Локальное имя получаемого узла.
+ Универсальный код ресурса (URI) пространства имен получаемого узла.
+
+
+ Получает узел по указанному индексу в XmlNamedNodeMap.
+ Объект с указанным индексом.Если значение меньше 0 либо больше или равно значению свойства , возвращается значение null.
+ Позиция индекса узла, получаемого из XmlNamedNodeMap.Индекс начинается с нуля, поэтому первым узлом в индексе является 0, а последним — -1.
+
+
+ Удаляет узел из XmlNamedNodeMap.
+ Объект XmlNode удален из этого объекта XmlNamedNodeMap, или возвращается значение null, если соответствующий узел не найден.
+ Полное имя удаляемого узла.Имя сопоставляется со свойством соответствующего узла.
+
+
+ Удаляет узел с соответствующими объектами и .
+ Объект удален, или возвращается значение null, если соответствующий узел не найден.
+ Локальное имя удаляемого узла.
+ URI пространства имен удаляемого узла.
+
+
+ Добавляет объект с помощью свойства .
+ Если узел заменяет существующий узел с таким же именем, возвращается старый узел; в противном случае возвращается значение null.
+ Объект XmlNode для хранения в XmlNamedNodeMap.Если узел с таким именем уже существует в сопоставлении, он заменяется новым.
+ Узел был создан из другого объекта , отличного от объекта, из которого был создан объект XmlNamedNodeMap; или объект XmlNamedNodeMap доступен только для чтения.
+
+
+ Предоставляет отдельный узел в XML-документе.
+
+
+ Добавляет указанный узел в конец списка дочерних узлов данного узла.
+ Добавленный узел.
+ Добавляемый узел.Все содержимое узла, которое должно быть добавлено, перемещается в указанное расположение.
+ Данный узел относится к типу, который не допускает дочерних узлов типа .Узел является предком данного узла.
+ Узел был создан из другого документа, отличного от документа, из которого был создан этот узел.Этот узел доступен только для чтения.
+
+
+ Возвращает класс , содержащий атрибуты данного узла.
+ Класс XmlAttributeCollection, содержащий атрибуты узла.Для узлов типа XmlNodeType.Element происходит возвращение атрибутов.В противном случае это свойство возвращает значение null.
+
+
+ Возвращает базовый URI текущего узла.
+ Место, из которого был загружен узел, или String.Empty, если базовый URI узла отсутствует.
+
+
+ Возвращает все дочерние узлы данного узла.
+ Объект, содержащий все дочерние узлы узла.Если дочерние узлы отсутствуют, это свойство возвращает пустой .
+
+
+ Когда переопределено в производном классе, создает дубликат узла.
+ Точная копия узла.
+ trueдля рекурсивного создания точной копии поддерева указанного узла; false для создания точной копии самого узла.
+ Вызов этого метода для типа узла, для которого не может быть создана точная копия.
+
+
+ Возвращает первый дочерний узел данного узла.
+ Первый дочерний узел данного узла.Если такой узел отсутствует, возвращается значение null.
+
+
+ Вернуть перечислитель, выполняющий перебор дочерних узлов текущего узла.
+ Объект , который можно использовать для итерации дочерних узлов в текущем узле.
+
+
+ Ищет наиболее точное объявление xmlns для заданного префикса, принадлежащего ограниченной области действия текущего узла, и возвращает универсальный код ресурса (URI) пространства имен в объявлении.
+ URI пространства имен указанного префикса.
+ Префикс, универсальный код ресурса (URI) пространства имен которого нужно найти.
+
+
+ Ищет наиболее точное объявление xmlns для универсального кода ресурса (URI) пространства имен, принадлежащего области действия текущего узла, и возвращает префикс, определенный в этом объявлении.
+ Префикс для указанного URI пространства имен.
+ URI пространства имен, префикс которого нужно найти.
+
+
+ Возвращает значение, свидетельствующее о наличии дочерних узлов у текущего узла.
+ Значение true, если узел имеет дочерние узлы; в противном случае — значение false.
+
+
+ Возвращает или задает связанные значения узла и всех его дочерних узлов.
+ Связанные значения узла и всех его дочерних узлов.
+
+
+ Возвращает или задает разметку, отражающую только дочерние узлы данного узла.
+ Разметка дочерних узлов данного узла.ПримечаниеInnerXml не возвращает атрибуты, используемые по умолчанию.
+ Установка этого свойства на узле, который не может иметь дочерних узлов.
+ При задании этого свойства указан код XML с неправильным форматом.
+
+
+ Вставляет заданный узел сразу после указанного узла ссылки.
+ Вставляемый узел.
+ Вставляемый объект XmlNode.
+ узелом ссылки является XmlNode. располагается после .
+ Данный узел относится к типу, который не допускает дочерних узлов типа .Узел является предком данного узла.
+ Узел был создан из другого документа, отличного от документа, из которого был создан этот узел.Узел не является дочерним для этого узла.Этот узел доступен только для чтения.
+
+
+ Вставляет заданный узел сразу перед указанным узлом ссылки.
+ Вставляемый узел.
+ Вставляемый объект XmlNode.
+ узелом ссылки является XmlNode. размещен перед данным узелом.
+ Текущий узел относится к типу, который не допускает дочерних узлов типа .Узел является предком данного узла.
+ Узел был создан из другого документа, отличного от документа, из которого был создан этот узел.Узел не является дочерним для этого узла.Этот узел доступен только для чтения.
+
+
+ Возвращает значение, определяющее, доступен ли узел только для чтения.
+ Значение true, если узел доступен только для чтения; в противном случае — false.
+
+
+ Возвращает первый дочерний элемент с помощью указанного свойства .
+ Первый объект , соответствующий указанному имени.Если совпадения нет, он возвращает пустую ссылку (Nothing в Visual Basic).
+ Проверенное имя загружаемого элемента.
+
+
+ Возвращает первый дочерний элемент с помощью указанного свойства и .
+ Первый объект с соответствующими параметрами и ..Если совпадения нет, он возвращает пустую ссылку (Nothing в Visual Basic).
+ Локальное имя элемента.
+ Пространство имен URI элемента.
+
+
+ Возвращает последний дочерний узел данного узла.
+ Последний дочерний узел данного узла.Если такой узел отсутствует, возвращается значение null.
+
+
+ При переопределении в производном классе возвращает локальное имя узла.
+ Имя узла с удаленным префиксом.Например, LocalName — это книга для элемента <bk:book>.Возвращаемое имя зависит от значения свойства узла. Тип Имя Атрибут Локальное имя атрибута. CDATA #cdata-section Комментарий #comment Document #document DocumentFragment #document-fragment DocumentType; Имя типа документа. Элемент Локальное имя элемента. Сущность Имя сущности. EntityReference Имя сущности, на которую существует ссылка. Notation Имя представления. ProcessingInstruction; Конечное приложение инструкции обработки. Text #text Whitespace #whitespace SignificantWhitespace #significant-whitespace XmlDeclaration #xml-declaration
+
+
+ При переопределении в производном классе возвращает полное имя узла.
+ Полное имя узла.Возвращаемое имя зависит от значения свойства узла.Тип Имя Атрибут Полное имя атрибута. CDATA #cdata-section Комментарий #comment Document #document DocumentFragment #document-fragment DocumentType; Имя типа документа. Элемент Полное имя элемента. Сущность Имя сущности. EntityReference Имя сущности, на которую существует ссылка. Notation Имя представления. ProcessingInstruction; Конечное приложение инструкции обработки. Text #text Whitespace #whitespace SignificantWhitespace #significant-whitespace XmlDeclaration #xml-declaration
+
+
+ Возвращает URI пространства имен данного узла.
+ URI пространства имен данного узла.Если URI пространства имен отсутствует, возвращает String.Empty.
+
+
+ Возвращает узел, следующий сразу за данным узлом.
+ Следующий XmlNode.Если следующий узел отсутствует, возвращается значение null.
+
+
+ При переопределении в производном классе возвращает тип текущего узла.
+ Одно из значений .
+
+
+ Помещает все узлы XmlText на максимальную глубину поддерева, расположенного под данным узлом XmlNode, в обычную форму, где узлы XmlText разделяются только разметкой (теги, примечания, комментарии, инструкции по обработке, разделы CDATA и ссылки на сущности). Смежные узлы XmlText отсутствуют.
+
+
+ Возвращает разметку, содержащую данный узел и все его дочерние узлы.
+ Разметка, содержащая данный узел и все его дочерние узлы.ПримечаниеOuterXml не возвращает атрибуты, используемые по умолчанию.
+
+
+ Возвращает класс , которому принадлежит данный узел.
+
+ , к которому принадлежит данный узел.Если узел является объектом (NodeType равен XmlNodeType.Document), это свойство возвращает значение null.
+
+
+ Возвращает родительский узел для данного узла (только для тех узлов, которые могут иметь родительские узлы).
+ XmlNode, являющийся родительским узлом текущего узла.Если узел уже создан, но еще не добавлен в дерево или, если узел был из дерева удален, родительский узел равен null.Для всех других узлов возвращаемое значение зависит от свойства узла.В следующей таблице для свойства ParentNode описаны возможные возвращаемые значения.NodeType Возвращаемое значение параметра ParentNode Attribute, Document, DocumentFragment, Entity, Notation Возвращает значение null; эти узлы не имеют родительских узлов. CDATA Возвращает ссылку на сущность или элемент, содержащую раздел CDATA. Комментарий Возвращает элемент, ссылку на сущность, тип документа или документ, содержащий комментарий. DocumentType; Возвращает узел документа. Элемент Возвращает родительский узел элемента.Если элемент является корневым узлом дерева, родительский узел служит узлом документа.EntityReference Возвращает элемент, атрибут или ссылку на сущность, содержащую ссылку на сущность. ProcessingInstruction; Возвращает документ, элемент, тип документа или ссылку на сущность, содержащую инструкцию обработки. Text Возвращает родительский элемент, атрибут или ссылку на сущность, содержащую текстовый узел.
+
+
+ Возвращает или задает префикс пространства имен данного узла.
+ Префикс пространства имен данного узла.Например, Prefix — это книга для элемента <bk:book>.Если префикс отсутствует, данное свойство возвращает String.Empty.
+ Этот узел доступен только для чтения.
+ Заданный префикс содержит недопустимый символ.Указан префикс неправильного формата.Указан префикс "xml", а URI пространства имен данного узла отличается от "http://www.w3.org/XML/1998/namespace".Данный узел является атрибутом, указан префикс "xmlns", а URI пространства имен данного узла отличается от "http://www.w3.org/2000/xmlns".Данный узел является атрибутом, полное имя данного узла — "xmlns".
+
+
+ Добавляет указанный узел в начало списка дочерних узлов данного узла.
+ Добавленный узел.
+ Добавляемый узел.Все содержимое узла, которое должно быть добавлено, перемещается в указанное расположение.
+ Данный узел относится к типу, который не допускает дочерних узлов типа .Узел является предком данного узла.
+ Узел был создан из другого документа, отличного от документа, из которого был создан этот узел.Этот узел доступен только для чтения.
+
+
+ Возвращает узел, непосредственно предшествующий данному узлу.
+ Предшествующий XmlNode.Если предшествующий узел отсутствует, возвращается значение null.
+
+
+ Возвращает текстовый узел, которому предшествует этого узла.
+ Возвращает .
+
+
+ Удаляет все дочерние узлы и (или) атрибуты текущего узла.
+
+
+ Удаляет указанный дочерний узел.
+ Удаленный узел.
+ Удаленный узел.
+ Узел не является дочерним для этого узла.Или этот узел доступен только для чтения.
+
+
+ Заменяет дочерний узел на узел .
+ Замененный узел.
+ Новый узел для помещения в список дочерних элементов.
+ Замененный узел в списке.
+ Данный узел относится к типу, который не допускает дочерних узлов типа .Узел является предком данного узла.
+ Узел был создан из другого документа, отличного от документа, из которого был создан этот узел.Этот узел доступен только для чтения.Узел не является дочерним для этого узла.
+
+
+ Проверяет, присутствует ли указанное средство в реализации DOM.
+ Значение true, если в указанной версии средство реализовано; в противном случае — false.В следующей таблице перечислены сочетания, возвращающие значение true.Функция Версия XML 1.0 XML 2.0
+ Имя пакета проверяемого средства.Это имя не учитывает регистр.
+ Номер версии проверяемого средства.Если версия не указана (null), поддержка любой версии средства заставляет метод вернуть значение true.
+
+
+ Описание этого члена см. в разделе .
+ Возвращает перечислитель для коллекции.
+
+
+ Возвращает или задает значение узла.
+ Возвращаемое значение зависит от значения свойства узла. Тип Значение Атрибут Значение атрибута. CDATASection. Содержимое раздела CDATA. Комментарий Содержимое комментария. Document null. DocumentFragment null. DocumentType; null. Элемент null.Для доступа к значению узла элемента можно использовать свойство или .Сущность null. EntityReference null. Notation null. ProcessingInstruction; Все содержимое, исключая назначение. Text Содержимое текстового узла. SignificantWhitespace Символы-разделители.Символы-разделители могут включать один или более символов пробела, возврата каретки, перевода строки или табуляции.Whitespace Символы-разделители.Символы-разделители могут включать один или более символов пробела, возврата каретки, перевода строки или табуляции.XmlDeclaration Содержимое объявления (между <?xml и ?>).
+ Установка значения узла, доступного только для чтения.
+ Установка значения узла, который не должен иметь значения (например, узла элемента).
+
+
+ Сохраняет все дочерние узлы данного узла в указанном при переопределении в производном классе.
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Сохраняет текущий узел в указанном при переопределении в производном классе.
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Задает тип изменения узла.
+
+
+ Изменяется значение узла.
+
+
+ Узел вставляется в дерево.
+
+
+ Узел удаляется из дерева.
+
+
+ Предоставляет данные для событий , , , , и .
+
+
+ Инициализирует новый экземпляр класса .
+ Объект , создавший событие.
+ Старый родительский узел узла , создавшего событие.
+ Новый родительский узел узла , создавшего событие.
+ Старое значение узла , создавшего событие.
+ Новое значение узла , создавшего событие.
+
+ .
+
+
+ Получает значение, указывающее тип происходящего события изменения узла.
+ Значение XmlNodeChangedAction, описывающее событие изменения узла.Значение XmlNodeChangedAction Описание Insert Узел был или будет вставлен. Удалить Узел был или будет удален. Изменение Узел был или будет изменен. ПримечаниеЗначение Action не различает, когда событие возникло (до или после).Можно создать отдельные обработчики событий для обработки обоих экземпляров.
+
+
+ Получает значение после завершения операции.
+ Значение ParentNode после завершения операции.Это свойство возвращает значение null, если узел удаляется.ПримечаниеДля узлов атрибутов это свойство возвращает .
+
+
+ Получает новое значение узла.
+ Новое значение узла.Это свойство возвращает значение null, если узел не является ни атрибутом, ни текстовым узлом или если узел удаляется.При вызове в событии объект NewValue возвращает значение узла в случае успешного изменения.При вызове в событии объект NewValue возвращает текущее значение узла.
+
+
+ Получает добавляемый, удаляемый или изменяемый объект .
+ Добавляемый, удаляемый или изменяемый объект XmlNode; это свойство никогда не возвращает значение null.
+
+
+ Получает значение до начала операции.
+ Значение ParentNode до начала операции.Это свойство возвращает значение null, если у узла отсутствует родительский узел.ПримечаниеДля узлов атрибутов это свойство возвращает .
+
+
+ Получает исходное значение узла.
+ Исходное значение узла.Это свойство возвращает значение null, если узел не является ни атрибутом, ни текстовым узлом или если узел вставляется.При вызове в событии объект OldValue возвращает текущее значение узла, который будет заменен в случае успешного изменения.При вызове в событии объект OldValue возвращает значение узла до изменения.
+
+
+ Представляет метод, обрабатывающий события , , , , и .
+ Источник события.
+ Объект , содержащий данные события.
+
+
+ Представляет упорядоченную коллекцию узлов.
+
+
+ Инициализирует новый экземпляр класса .
+
+
+ Получает число узлов в объекте XmlNodeList.
+ Число узлов в объекте XmlNodeList.
+
+
+ Получает перечислитель, выполняющий итерацию коллекции узлов.
+ Перечислитель, который используется для итерации коллекции узлов.
+
+
+ Извлекает узел по заданному индексу.
+
+ с указанным индексом в коллекции.Если значение параметра больше или равно числу узлов в списке, возвращается значение null.
+ Отсчитываемый от нуля индекс в списке узлов.
+
+
+ Получает узел по заданному индексу.
+
+ с указанным индексом в коллекции.Если значение индекса больше или равно числу узлов в списке, возвращается значение null.
+ Отсчитываемый от нуля индекс в списке узлов.
+
+
+ Закрыто освобождает ресурсы в списке узлов.
+
+
+ Освобождает все ресурсы, используемые классом .
+
+
+ Представляет инструкцию по обработке, которая определяется в XML для хранения в тексте документа сведений, относящихся к обработчику.
+
+
+ Инициализирует новый экземпляр класса .
+ Целевой объект инструкции по обработке; см. описание свойства .
+ Содержимое инструкции; см. описание свойства .
+ Родительский XML-документ.
+
+
+ Создает дубликат этого узла.
+ Узел-дубликат.
+
+ Значение true для рекурсивного создания клона поддерева указанного узла; false только для создания клона самого узла.
+
+
+ Возвращает или задает содержимое инструкции по обработке, исключая цель.
+ Содержимое инструкции по обработке, исключая цель.
+
+
+ Возвращает или задает сцепленные значения узла и всех его дочерних узлов.
+ Последовательно соединенные значения узла и его дочерних узлов.
+
+
+ Возвращает локальное имя узла.
+ Для узлов инструкций по обработке это свойство возвращает цель инструкции по обработке.
+
+
+ Возвращает полное имя узла.
+ Для узлов инструкций по обработке это свойство возвращает цель инструкции по обработке.
+
+
+ Получает тип текущего узла.
+ Для узлов XmlProcessingInstruction это значение равно XmlNodeType.ProcessingInstruction.
+
+
+ Получает цель инструкции по обработке.
+ Цель инструкции по обработке.
+
+
+ Возвращает или задает значение узла.
+ Все содержимое инструкции по обработке, исключая цель.
+ Node is read-only.
+
+
+ Сохраняет все дочерние узлы в заданном классе .У узлов ProcessingInstruction отсутствуют дочерние узлы, поэтому этот метод не выполняет никаких действий.
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Сохраняет узел в заданном .
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Представляет пробел между элементами разметки в смешанном узле содержимого или пробел в области xml:space= 'preserve'.Он также называется значащим пробелом.
+
+
+ Инициализирует новый экземпляр класса .
+ Пробелы узла.
+ Объект .
+
+
+ Создает дубликат этого узла.
+ Точная копия узла.
+ trueдля рекурсивного создания точной копии поддерева указанного узла; false для создания точной копии самого узла.Для узлов значащих пробелов точная копия узла всегда включает значение данных независимо от значения параметра.
+
+
+ Возвращает локальное имя узла.
+ Для узлов XmlSignificantWhitespace это свойство возвращает значение #significant-whitespace.
+
+
+ Возвращает полное имя узла.
+ Для узлов XmlSignificantWhitespace это свойство возвращает значение #significant-whitespace.
+
+
+ Получает тип текущего узла.
+ Для узлов XmlSignificantWhitespace это значение — XmlNodeType.SignificantWhitespace.
+
+
+ Возвращает родительский узел текущего узла.
+ Родительский узел текущего узла.
+
+
+ Возвращает текстовый узел, которому предшествует этого узла.
+ Возвращает .
+
+
+ Возвращает или задает значение узла.
+ Пробелы, найденные в узле.
+ Задание значения Value как недопустимые пробелы.
+
+
+ Сохраняет все дочерние узлы в заданном классе .
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Сохраняет узел в заданном .
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Представляет текстовое содержимое элемента или атрибута.
+
+
+ Инициализирует новый экземпляр класса .
+ Содержимое узла см. в свойстве .
+ Родительский XML-документ.
+
+
+ Создает дубликат этого узла.
+ Точная копия узла.
+ trueдля рекурсивного создания точной копии поддерева указанного узла; false для создания точной копии самого узла.
+
+
+ Возвращает локальное имя узла.
+ Для текстовых узлов это свойство возвращает #text.
+
+
+ Возвращает полное имя узла.
+ Для текстовых узлов это свойство возвращает #text.
+
+
+ Получает тип текущего узла.
+ Для текстовых узлов это значение — XmlNodeType.Text.
+
+
+
+ Возвращает текстовый узел, которому предшествует этого узла.
+ Возвращает .
+
+
+ Разделяет узел на два узла с указанным смещением, сохраняя их в дереве как узлы одного уровня.
+ Новый узел.
+ Смещение для разделения узла.
+
+
+ Возвращает или задает значение узла.
+ Содержимое текстового узла.
+
+
+ Сохраняет все дочерние узлы в заданном классе .У узлов XmlText отсутствуют дочерние узлы, поэтому этот метод не работает.
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Сохраняет узел в заданном .
+ XmlWriter, в котором необходимо выполнить сохранение.
+
+
+ Представляет пробел в содержимом элемента.
+
+
+ Инициализирует новый экземпляр класса .
+ Пробелы узла.
+ Объект .
+
+
+ Создает дубликат этого узла.
+ Точная копия узла.
+ trueдля рекурсивного создания точной копии поддерева указанного узла; false для создания точной копии самого узла.Для узлов пробелов точная копия узла всегда включает значение данных независимо от значения параметра.
+
+
+ Возвращает локальное имя узла.
+ Для узлов XmlWhitespace это свойство возвращает значение #whitespace.
+
+
+ Возвращает полное имя узла.
+ Для узлов XmlWhitespace это свойство возвращает значение #whitespace.
+
+
+ Возвращает тип узла.
+ Для узлов XmlWhitespace значение — .
+
+
+ Возвращает родительский узел текущего узла.
+ Родительский узел текущего узла.
+
+
+ Возвращает текстовый узел, которому предшествует этого узла.
+ Возвращает .
+
+
+ Возвращает или задает значение узла.
+ Пробелы, найденные в узле.
+ Задание значения как недопустимые пробелы.
+
+
+ Сохраняет все дочерние узлы в заданном классе .
+
+ , в котором необходимо выполнить сохранение.
+
+
+ Сохраняет узел в заданном .
+
+ , в котором необходимо выполнить сохранение.
+
+
+
\ No newline at end of file
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/zh-hans/System.Xml.XmlDocument.xml b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/zh-hans/System.Xml.XmlDocument.xml
new file mode 100644
index 0000000..ea86ee5
--- /dev/null
+++ b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/zh-hans/System.Xml.XmlDocument.xml
@@ -0,0 +1,1456 @@
+
+
+
+ System.Xml.XmlDocument
+
+
+
+ 表示一个特性。此特性的有效值和默认值在文档类型定义 (DTD) 或架构中进行定义。
+
+
+ 初始化 类的新实例。
+ 命名空间前缀。
+ 属性的本地名称。
+ 命名空间统一资源标识符 (URI)。
+ 父 XML 文档。
+
+
+ 将指定的节点添加到该节点的子节点列表的末尾。
+ 已添加的 。
+ 要相加的 。
+ 此节点的类型不允许 节点类型的子节点。 是此节点的上级节点。
+
+ 是从不同于创建此节点的文档创建的。该节点是只读的。
+
+
+ 获取节点的基统一资源标识符 (URI)。
+ 从其加载节点的位置;如果节点没有基 URI,则为 String.Empty。特性节点与它们的所有者元素具有相同的基 URI。如果特性节点没有所有者元素,则 BaseURI 返回 String.Empty。
+
+
+ 创建此节点的一个副本。
+ 重复的节点。
+ 如果为 true,则以递归方式克隆指定节点下的子树;如果为 false,则只克隆节点本身。
+
+
+ 设置节点及其所有子级的串联值。
+ 节点及其所有子级的串联值。对于特性节点,此属性与 属性具有相同的功能。
+
+
+ 设置属性的值。
+ 特性值。
+ 设置此属性时指定的 XML 的格式不合式。
+
+
+ 将指定的节点紧接着插入指定的引用节点之后。
+ 已插入的 。
+ 要插入的 。
+
+ ,它是引用节点。 放置在 之后。
+ 此节点的类型不允许 节点类型的子节点。 是此节点的上级节点。
+
+ 是从不同于创建此节点的文档创建的。 不是此节点的子级。该节点是只读的。
+
+
+ 将指定的节点紧接着插入指定的引用节点之前。
+ 已插入的 。
+ 要插入的 。
+
+ ,它是引用节点。 放置在该节点之前。
+ 当前节点的类型不允许 节点类型的子节点。 是此节点的上级节点。
+
+ 是从不同于创建此节点的文档创建的。 不是此节点的子级。该节点是只读的。
+
+
+ 获取节点的本地名称。
+ 移除了前缀的特性节点的名称。在下面的 <book bk:genre= 'novel'> 示例中,特性的 LocalName 是 genre。
+
+
+ 获取节点的限定名。
+ 特性节点的限定名。
+
+
+ 获取该节点的命名空间 URI。
+ 该节点的命名空间 URI。如果没有显式地为特性指定一个命名空间,则此属性返回 String.Empty。
+
+
+ 获取当前节点的类型。
+ XmlAttribute 节点的节点类型是 XmlNodeType.Attribute。
+
+
+ 获取该节点所属的 。
+ 此节点从属的 XML 文档。
+
+
+ 获取该特性所属的 。
+ 该特性所属的 XmlElement;如果该特性不是 XmlElement 的一部分,则为 null。
+
+
+ 获取该节点的父级。对于 XmlAttribute 节点,该属性总是返回 null。
+ 对于 XmlAttribute 节点,该属性总是返回 null。
+
+
+ 获取或设置该节点的命名空间前缀。
+ 该节点的命名空间前缀。如果没有前缀,则该属性返回 String.Empty。
+ 该节点是只读的。
+ 指定的前缀包含无效字符。指定的前缀格式不正确。该节点的 namespaceURI 为 null。指定的前缀为“xml”,而该节点的 namespaceURI 与“http://www.w3.org/XML/1998/namespace”不同。该节点是一个特性,指定的前缀为“xmlns”,并且该节点的 namespaceURI 与“http://www.w3.org/2000/xmlns/”不同。该节点是一个特性,并且该节点的 qualifiedName 是“xmlns”[Namespaces]。
+
+
+ 将指定的节点添加到该节点的子节点列表的开头。
+ 已添加的 。
+ 要相加的 。如果它是一个 ,则会将文档片段的全部内容移动到该节点的子列表中。
+ 此节点的类型不允许 节点类型的子节点。 是此节点的上级节点。
+
+ 是从不同于创建此节点的文档创建的。该节点是只读的。
+
+
+ 移除指定的子节点。
+ 已移除的 。
+ 要移除的 。
+
+ 不是此节点的子级。或者此节点是只读的。
+
+
+ 用指定的新子节点替换指定的子节点。
+ 被替换的 。
+ 新的子 。
+ 要替换的 。
+ 此节点的类型不允许 节点类型的子节点。 是此节点的上级节点。
+
+ 是从不同于创建此节点的文档创建的。该节点是只读的。 不是此节点的子级。
+
+
+ 获取一个值,该值指示是否显式设置了特性值。
+ 如果在原始实例文档中显式地为该特性给定一个值,则为 true;否则为 false。false 值指示该特性的值来自 DTD。
+
+
+ 获取或设置节点的值。
+ 返回的值取决于节点的 。对于 XmlAttribute 节点,此属性是特性的值。
+ 该节点是只读节点,但调用了设置操作。
+
+
+ 将节点的所有子级保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 将节点保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 表示可以按名称或索引访问的特性的集合。
+
+
+ 将指定的特性插入集合,并将其作为集合中的最后一个节点。
+ 追加到集合的 XmlAttribute。
+ 要插入的 。
+
+ 是从创建此集合的文档之外的另一个文档创建的。
+
+
+ 从该集合中将所有 对象复制到给定数组。
+ 从该集合向其中复制对象的数组。
+ array 中复制开始处的索引。
+
+
+ 将指定特性直接插入到指定引用特性之后。
+ 要插入到集合中的 XmlAttribute。
+ 要插入的 。
+
+ ,它是引用特性。 放置在 之后。
+
+ 是从创建此集合的文档之外的另一个文档创建的。或者, 不是此集合的成员。
+
+
+ 将指定特性直接插入到指定引用特性之前。
+ 要插入到集合中的 XmlAttribute。
+ 要插入的 。
+
+ ,它是引用特性。 放置在 之前。
+
+ 是从创建此集合的文档之外的另一个文档创建的。或者, 不是此集合的成员。
+
+
+ 获取具有指定索引的特性。
+ 位于指定索引处的 。
+ 属性的索引。
+ 正在传递的索引超出范围。
+
+
+ 获取具有指定名称的特性。
+ 具有指定名称的 。如果此特性不存在,则此属性返回 null。
+ 属性的限定名。
+
+
+ 获取具有指定的本地名称和命名空间唯一资源标识符 (URI) 的特性。
+ 具有指定的本地名称和命名空间 URI 的 。如果此特性不存在,则此属性返回 null。
+ 属性的本地名称。
+ 属性的命名空间 URI。
+
+
+ 将指定特性插入集合中,并将其作为集合的第一个节点。
+ 添加到集合中的 XmlAttribute。
+ 要插入的 。
+
+
+ 从集合中移除指定的特性。
+ 移除的节点,或者,如果在集合中找不到此节点,则为 null。
+ 要移除的 。
+
+
+ 从集合中移除所有特性。
+
+
+ 从集合中移除与指定的索引对应的特性。
+ 如果在指定索引处没有特性,则返回 null。
+ 要移除的节点的索引。第一个节点的索引为 0。
+
+
+ 使用 属性添加
+ 如果 替换具有相同名称的现有节点,则返回旧节点;否则返回新添加的节点。
+ 要存储在此集合中的特性节点。以后可以使用节点的名称访问该节点。如果集合中已存在具有该名称的节点,则用新的进行替换;否则,将把该节点追加到集合的末尾。
+
+ 是从创建此集合的文档之外的另一个 创建的。此 XmlAttributeCollection 为只读。
+
+ 是 ,后者已经是另一个 对象的特性。若要在其他元素中重新使用特性,必须克隆想重新使用的 XmlAttribute 对象。
+
+
+ 有关此成员的说明,请参见 。
+ 从该集合向其中复制对象的数组。
+ array 中复制开始处的索引。
+
+
+ 有关此成员的说明,请参见 。
+ 返回包含特性计数的 int。
+
+
+ 有关此成员的说明,请参见 。
+ 如果集合已同步,则返回 true。
+
+
+ 有关此成员的说明,请参见 。
+ 返回作为集合的根的 。
+
+
+ 表示 CDATA 节。
+
+
+ 初始化 类的新实例。
+ 包含字符数据的 。
+
+ 对象。
+
+
+ 创建此节点的副本。
+ 克隆的节点。
+ true to recursively clone the subtree under the specified node; false to clone only the node itself.由于 CDATA 节点没有子级,因此不管参数的设置如何,克隆的节点都将始终包含数据内容。
+
+
+ 获取节点的本地名称。
+ 对于 CDATA 节点,本地名称是 #cdata-section。
+
+
+ 获取节点的限定名称。
+ 对于 CDATA 节点,该名称为 #cdata-section。
+
+
+ 获取当前节点的类型。
+ 节点类型。对于 CDATA 节点,该值是 XmlNodeType.CDATA。
+
+
+
+ 获取紧接在该节点之前的文本节点。
+ 返回 。
+
+
+ 将节点的子级保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 将节点保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 提供多个类使用的文本操作方法。
+
+
+ 初始化 类的新实例。
+ 包含要添加到文档中的字符数据的字符串。
+ 用于包含字符数据的 。
+
+
+ 将指定的字符串追加到节点的字符数据的结尾。
+ 要插入现有字符串的字符串。
+
+
+ 包含节点的数据。
+ 节点的数据。
+
+
+ 从节点移除一组字符。
+ 字符串中开始进行删除的位置。
+ 要删除的字符数。
+
+
+ 从指定的字符偏移量开始插入指定的字符串。
+ 字符串中插入所提供字符串数据的位置。
+ 要插入现有字符串的字符串数据。
+
+
+ 获取数据的长度(以字符为单位)。
+
+ 属性中字符串的长度(以字符为单位)。长度可能为零;也就是说 CharacterData 节点可能是空的。
+
+
+ 从指定的偏移量开始用指定的字符串替换指定数目的字符。
+ 字符串中要开始替换的位置。
+ 要替换的字符数。
+ 替换旧字符串数据的新数据。
+
+
+ 在指定的范围内检索完整字符串的子字符串。
+ 对应于指定范围的子字符串。
+ 字符串中开始检索的位置。偏移量为零指示起始点在数据的开始处。
+ 要检索的字符数。
+
+
+ 获取或设置节点的值。
+ 节点的值。
+ 节点是只读的。
+
+
+ 表示 XML 注释的内容。
+
+
+ 初始化 类的新实例。
+ 注释元素的内容。
+ 父 XML 文档。
+
+
+ 创建此节点的一个副本。
+ 克隆的节点。
+ 如果为 true,则递归地克隆指定节点下的子树;如果为 false,则只克隆该节点本身。由于注释节点没有子级,因此克隆的节点始终包含文本内容,而不管参数的设置如何。
+
+
+ 获取节点的本地名称。
+ 对于注释节点,该值为 #comment。
+
+
+ 获取节点的限定名。
+ 对于注释节点,该值为 #comment。
+
+
+ 获取当前节点的类型。
+ 对于注释节点,该值为 XmlNodeType.Comment。
+
+
+ 将节点的所有子级保存到指定的 中。因为注释节点没有子级,所以此方法不会产生任何效果。
+ 要保存到其中的 XmlWriter。
+
+
+ 将节点保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 表示 XML 声明节点:<?xml version='1.0'...?>。
+
+
+ 初始化 类的新实例。
+ XML 版本,请参见 属性。
+ 编码方案,请参见 属性。
+ 指示 XML 文档是否取决于外部 DTD,请参见 属性。
+ 父 XML 文档。
+
+
+ 创建此节点的一个副本。
+ 克隆的节点。
+ 如果为 true,则递归地克隆指定节点下的子树;如果为 false,则只克隆该节点本身。由于 XmlDeclaration 节点没有子级,因此克隆的节点始终包含数据值,而不管参数的设置如何。
+
+
+ 获取或设置 XML 文档的编码级别。
+ 有效的字符编码名称。受到最广泛支持的 XML 字符编码名称如下:类别编码名UnicodeUTF-8、UTF-16ISO 10646ISO-10646-UCS-2、ISO-10646-UCS-4ISO 8859ISO-8859-n(其中“n”表示从 1 到 9 的数字)JIS X-0208-1997ISO-2022-JP、Shift_JIS、EUC-JP此值是可选的。如果未设置值,该属性将返回 String.Empty。如果未包含编码特性,则在写出或保存文档时将假定为 UTF-8 编码。
+
+
+ 获取或设置 XmlDeclaration 的连接的值。
+ XmlDeclaration 的连接的值(即 <?xml 和 ?> 之间的每一个字符)。
+
+
+ 获取节点的本地名称。
+ 对于 XmlDeclaration 节点,本地名称为 xml。
+
+
+ 获取节点的限定名。
+ 对于 XmlDeclaration 节点,该名称为 xml。
+
+
+ 获取当前节点的类型。
+ 对于 XmlDeclaration 节点,该值为 XmlNodeType.XmlDeclaration。
+
+
+ 获取或设置独立特性的值。
+ 如果 XML 文档所需要的所有实体声明都包含在文档内,则有效值为 yes,或者如果需要外部文档类型定义 (DTD),则为 no。如果 XML 声明中没有独立特性,该属性将返回 String.Empty。
+
+
+ 获取或设置 XmlDeclaration 的值。
+ XmlDeclaration 的内容(即 <?xml 和 ?> 之间的每一个字符)。
+
+
+ 获取文档的 XML 版本。
+ 该值始终为 1.0。
+
+
+ 将节点的子级保存到指定的 中。由于 XmlDeclaration 节点没有子级,因此该方法无效。
+ 要保存到其中的 XmlWriter。
+
+
+ 将节点保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 表示 XML 文档。有关更多信息,请参见Remarks一节。
+
+
+ 初始化 类的新实例。
+
+
+ 使用指定的 XmlDocument 初始化 类的新实例。
+ 要使用的 XmlImplementation。
+
+
+ 使用指定的 XmlDocument 初始化 类的新实例。
+ 要使用的 XmlNameTable。
+
+
+ 获取当前节点的基 URI。
+ 从其加载节点的位置。
+
+
+ 创建此节点的副本。
+ 克隆的 XmlDocument 节点。
+ 若要递归地克隆指定节点下的子树,则为 true;若仅克隆节点本身,则为 false。
+
+
+ 创建具有指定 的 。
+ 新的 XmlAttribute。
+ 属性的限定名称。如果名称包含冒号,则 属性反映名称中第一个冒号之前的部分, 属性反映名称中第一个冒号之后的部分。 保持为空,除非该前缀是一个可识别的内置前缀,例如 xmlns。在这种情况下,NamespaceURI 具有值 http://www.w3.org/2000/xmlns/。
+
+
+ 创建具有指定限定名和 的 。
+ 新的 XmlAttribute。
+ 属性的限定名称。如果名称包含冒号,则 属性将反映名称中位于冒号前的部分,而 属性将反映名称中位于冒号后的部分。
+ 属性的 namespaceURI。如果限定名称包含前缀 xmlns,则该参数必须是 http://www.w3.org/2000/xmlns/。
+
+
+ 创建一个具有指定的 、 和 的 。
+ 新的 XmlAttribute。
+ 属性的前缀(如果有的话)。String.Empty 与 null 等效。
+ 属性的本地名称。
+ 属性的命名空间 URI(如果有的话)。String.Empty 与 null 等效。如果 为 xmlns,则该参数必须是 http://www.w3.org/2000/xmlns/;否则将引发异常。
+
+
+ 创建包含指定数据的 。
+ 新的 XmlCDataSection。
+ 新 XmlCDataSection 的内容。
+
+
+ 创建包含指定数据的 。
+ 新的 XmlComment。
+ 新 XmlComment 的内容。
+
+
+ 创建一个 。
+ 新的 XmlDocumentFragment。
+
+
+ 创建具有指定名称的元素。
+ 新的 XmlElement。
+ 元素的限定名。如果名称包含冒号,则 属性反映名称中位于冒号之前的部分, 属性反映名称中位于冒号之后的部分。限定名称不能包含“xmlns”前缀。
+
+
+ 创建具有限定名和 的 。
+ 新的 XmlElement。
+ 元素的限定名。如果名称包含冒号,则 属性将反映名称中位于冒号前的部分,而 属性将反映名称中位于冒号后的部分。限定名称不能包含“xmlns”前缀。
+ 元素的命名空间 URI。
+
+
+ 创建具有指定 、 和 的元素。
+ 新的 。
+ 新元素的前缀(如果有的话)。String.Empty 与 null 等效。
+ 新元素的本地名称。
+ 新元素的命名空间 URI(如果有的话)。String.Empty 与 null 等效。
+
+
+ 创建具有指定的节点类型、 和 的 。
+ 新的 XmlNode。
+ 新节点的 的字符串版本。该参数必须是下表中列出的值之一。
+ 新节点的限定名称。如果名称包含一个冒号,则将它解析为 和 两部分。
+ 新节点的命名空间 URI。
+ The name was not provided and the XmlNodeType requires a name; or is not one of the strings listed below.
+
+
+ 创建一个具有指定的 、 和 的 。
+ 新的 XmlNode。
+ 新节点的 XmlNodeType。
+ 新节点的限定名称。如果名称包含一个冒号,则将其解析为 和 两部分。
+ 新节点的命名空间 URI。
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ 创建一个具有指定的、、 和 的 。
+ 新的 XmlNode。
+ 新节点的 XmlNodeType。
+ 新节点的前缀。
+ 新节点的本地名称。
+ 新节点的命名空间 URI。
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ 创建一个具有指定名称和数据的 。
+ 新的 XmlProcessingInstruction。
+ 处理指令的名称。
+ 处理指令的数据。
+
+
+ 创建一个 节点。
+ 一个新的 XmlSignificantWhitespace 节点。
+ 此字符串必须只包含下列字符:;
;
 和 	;
+
+
+ 创建具有指定文本的 。
+ 新的 XmlText 节点。
+ Text 节点的文本。
+
+
+ 创建一个 节点。
+ 一个新的 XmlWhitespace 节点。
+ 此字符串必须只包含下列字符:;
;
 和 	;
+
+
+ 创建一个具有指定值的 节点。
+ 新的 XmlDeclaration 节点。
+ 版本必须为“1.0”。
+ 编码属性的值。这是当将 保存到文件或流时使用的编码方式;因此必须将其设置为 类支持的字符串,否则 失败。如果这是 null 或 String.Empty,则 Save 方法不在 XML 声明上写出编码方式特性,因此将使用默认的编码方式 UTF-8。注意:如果将 XmlDocument 保存到 或 ,则放弃该编码值。而改用 TextWriter 或 XmlTextWriter 的编码方式。这会确保可以使用正确的编码读回写出的 XML。
+ 该值必须是“yes”或“no”。如果这是 null 或 String.Empty,Save 方法不在 XML 声明上写出独立特性。
+ The values of or are something other than the ones specified above.
+
+
+ 获取文档的根 。
+ 表示 XML 文档树的根的 XmlElement。如果不存在根,则返回 null。
+
+
+ 返回一个 ,它包含与指定 匹配的所有子代元素的列表。
+
+ ,包含所有匹配节点的列表。如果没有任何节点与 匹配,则返回的集合将为空。
+ 要匹配的限定名称。它针对匹配节点的 Name 属性进行匹配。特殊值“*”匹配所有标记。
+
+
+ 返回一个 ,它包含与指定 和 匹配的所有子代元素的列表。
+
+ ,包含所有匹配节点的列表。如果没有任何节点与指定的 和 匹配,则返回的集合将为空。
+ 要匹配的 LocalName。特殊值“*”匹配所有标记。
+ 要匹配的 NamespaceURI。
+
+
+ 获取当前文档的 对象。
+ 当前文档的 XmlImplementation 对象。
+
+
+ 将节点从另一个文档导入到当前文档。
+ 导入的 。
+ 正在被导入的节点。
+ 如果执行深层克隆,则为 true;否则为 false。
+ Calling this method on a node type which cannot be imported.
+
+
+ 在所有情况下引发 。
+ 节点及其所有子节点的值。
+ In all cases.
+
+
+ 获取或设置表示当前节点的子级的标记。
+ 当前节点的子级的标记。
+ The XML specified when setting this property is not well-formed.
+
+
+ 获取一个值,该值指示当前节点是否是只读的。
+ 如果当前节点为只读,则为 true;否则为 false。XmlDocument 节点始终返回 false。
+
+
+ 从指定的流加载 XML 文档。
+ 包含要加载的 XML 文档的流。
+ There is a load or parse error in the XML.In this case, a is raised.
+
+
+ 从指定的 加载 XML 文档。
+ 用于将 XML 数据输送到文档中的 TextReader。
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ 从指定的 加载 XML 文档。
+ 用于将 XML 数据输送到文档中的 XmlReader。
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ 从指定的字符串加载 XML 文档。
+ 包含要加载的 XML 文档的字符串。
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ 获取节点的本地名称。
+ 对于 XmlDocument 节点,本地名称是 #document。
+
+
+ 获取节点的限定名称。
+ 对于 XmlDocument 节点,该名称是 #document。
+
+
+ 获取与此实现关联的 。
+ XmlNameTable,它使您能够获取该文档中字符串的原子化版本。
+
+
+ 当属于该文档的节点的 已被更改时发生。
+
+
+ 当属于该文档的节点的 将被更改时发生。
+
+
+ 当属于该文档的节点已被插入另一个节点时发生。
+
+
+ 当属于该文档的节点将被插入另一个节点时发生。
+
+
+ 当属于该文档的节点已从其父级中移除时发生。
+
+
+ 当属于该文档的节点将从文档中移除时发生。
+
+
+ 获取当前节点的类型。
+ 节点类型。对于 XmlDocument 节点,该值是 XmlNodeType.Document。
+
+
+ 获取当前节点所属的 。
+ 对于 XmlDocument 节点( 等于 XmlNodeType.Document),该属性总是返回 null。
+
+
+ 获取该节点的父节点(针对可以拥有父级的节点)。
+ 始终返回 null。
+
+
+ 获取或设置一个值,该值指示是否在元素内容中保留空白区域。
+ true 表示保留空白;否则为 false。默认值为 false。
+
+
+ 根据 中的信息创建一个 对象。读取器必须定位在节点或属性上。
+ 新的 XmlNode;如果不存在其他节点,则为 null。
+ XML 源
+ The reader is positioned on a node type that does not translate to a valid DOM node (for example, EndElement or EndEntity).
+
+
+ 将 XML 文档保存到指定的流。
+ 要保存到其中的流。
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ 将 XML 文档保存到指定的 。
+ 要保存到其中的 TextWriter。
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ 将 XML 文档保存到指定的 。
+ 要保存到其中的 XmlWriter。
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ 将 XmlDocument 节点的所有子级保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 将 XmlDocument 节点保存到指定的 。
+ 要保存到其中的 XmlWriter。
+
+
+ 表示对树插入操作有用的轻量对象。
+
+
+ 初始化 类的新实例。
+ 为片段源的 XML 文档。
+
+
+ 创建此节点的一个副本。
+ 克隆的节点。
+ 如果为 true,则递归地克隆指定节点下的子树;如果为 false,则只克隆该节点本身。
+
+
+ 获取或设置表示此节点子级的标记。
+ 该节点子级的标记。
+ 设置此属性时指定的 XML 的格式不合式。
+
+
+ 获取节点的本地名称。
+ 对于 XmlDocumentFragment 节点,本地名称为 #document-fragment。
+
+
+ 获取节点的限定名。
+ 对于 XmlDocumentFragment 节点,该名称为 #document-fragment。
+
+
+ 获取当前节点的类型。
+ 对于 XmlDocumentFragment 节点,该值是 XmlNodeType.DocumentFragment。
+
+
+ 获取该节点所属的 。
+ 该节点所属的 XmlDocument。
+
+
+ 获取该节点(对于可以具有父级的节点)的父级。
+ 该节点的父级。对于 XmlDocumentFragment 节点,该属性总是 null。
+
+
+ 将节点的所有子级保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 将节点保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 表示一个元素。
+
+
+ 初始化 类的新实例。
+ 命名空间前缀,请参见 属性。
+ 本地名称,请参见 属性。
+ 命名空间 URI,请参见 属性。
+ 父 XML 文档。
+
+
+ 获取包含该节点特性列表的 。
+ 包含该节点特性列表的 。
+
+
+ 创建此节点的一个副本。
+ 克隆的节点。
+ 如果为 true,则递归地克隆指定节点下的子树;如果为 false,则只克隆该节点本身(如果该节点是一个 XmlElement,还克隆其特性)。
+
+
+ 返回具有指定名称的特性的值。
+ 指定属性 (Attribute) 的值。如果未找到匹配特性,或者如果此特性没有指定值或默认值,则返回空字符串。
+ 要检索的特性的名称。这是限定名。它针对匹配节点的 Name 属性进行匹配。
+
+
+ 返回具有指定本地名称和命名空间 URI 的特性的值。
+ 指定属性 (Attribute) 的值。如果未找到匹配特性,或者如果此特性没有指定值或默认值,则返回空字符串。
+ 要检索的特性的本地名称。
+ 要检索的特性的命名空间 URI。
+
+
+ 返回具有指定名称的 XmlAttribute。
+ 指定的 XmlAttribute;如果未找到匹配特性,则为 null。
+ 要检索的特性的名称。这是限定名。它针对匹配节点的 Name 属性进行匹配。
+
+
+ 返回具有指定本地名称和命名空间 URI 的 。
+ 指定的 XmlAttribute;如果未找到匹配特性,则为 null。
+ 属性的本地名称。
+ 属性的命名空间 URI。
+
+
+ 返回一个 ,它包含与指定 匹配的所有子代元素的列表。
+
+ ,包含所有匹配节点的列表。此外,如果不存在匹配节点,该列表为空。
+ 要匹配的名称标记。这是限定名。它针对匹配节点的 Name 属性进行匹配。星号 (*) 是一个匹配所有标记的特殊值。
+
+
+ 返回一个 ,它包含与指定 和 匹配的所有子代元素的列表。
+
+ ,包含所有匹配节点的列表。此外,如果不存在匹配节点,该列表为空。
+ 要匹配的本地名称。星号 (*) 是一个匹配所有标记的特殊值。
+ 要匹配的命名空间 URI。
+
+
+ 确定当前节点是否具有带有指定名称的特性。
+ 如果当前节点具有指定的特性,则为 true;否则为 false。
+ 要查找的特性的名称。这是限定名。它针对匹配节点的 Name 属性进行匹配。
+
+
+ 确定当前节点是否具有带有指定本地名称和命名空间 URI 的特性。
+ 如果当前节点具有指定的特性,则为 true;否则为 false。
+ 要查找的特性的本地名称。
+ 要查找的特性的命名空间 URI。
+
+
+ 获取一个 boolean 值,该值指示当前节点是否有任何特性。
+ 如果当前节点具有属性,则为 true;否则为 false。
+
+
+ 获取或设置节点及其所有子级的串联值。
+ 节点及其所有子级的串联值。
+
+
+ 获取或设置只表示此节点子级的标记。
+ 该节点子级的标记。
+ 设置此属性时指定的 XML 的格式不合式。
+
+
+ 获取或设置元素的标记格式。
+ 如果以短标记格式“<item/>”序列化元素,则返回 true;如果以长格式“<item></item>”序列化元素,则为 false。当设置该属性时,如果设置为 true,则移除该元素的子级并以短标记格式序列化该元素。如果设置为 false,则更改该属性的值(不管该元素是否具有内容);如果该元素为空,则以长格式对其进行序列化。该属性是文档对象模型 (DOM) 的 Microsoft 扩展。
+
+
+ 获取当前节点的本地名称。
+ 移除了前缀的当前节点的名称。例如,对于元素 <bk:book>,LocalName 是 book。
+
+
+ 获取节点的限定名。
+ 节点的限定名。对于 XmlElement 节点,这是该元素的标记名。
+
+
+ 获取该节点的命名空间 URI。
+ 该节点的命名空间 URI。如果没有命名空间 URI,则此属性返回 String.Empty。
+
+
+ 获取紧接在该元素后面的 。
+ 紧接在该元素后面的 XmlNode。
+
+
+ 获取当前节点的类型。
+ 节点类型。对于 XmlElement 节点,该值是 XmlNodeType.Element。
+
+
+ 获取该节点所属的 。
+ 该元素所属的 XmlDocument。
+
+
+
+ 获取或设置该节点的命名空间前缀。
+ 该节点的命名空间前缀。如果没有前缀,则该属性返回 String.Empty。
+ 此节点是只读的
+ 指定的前缀包含无效字符。指定的前缀格式不正确。该节点的 namespaceURI 为 null。指定的前缀为“xml”,而该节点的 namespaceURI 与 http://www.w3.org/XML/1998/namespace 不同。
+
+
+ 移除当前节点的所有指定特性和子级。不移除默认特性。
+
+
+ 从元素移除所有指定的特性。不移除默认特性。
+
+
+ 按名称移除特性。
+ 要移除的特性的名称。这是限定名。它针对匹配节点的 Name 属性进行匹配。
+ 节点是只读的。
+
+
+ 移除具有指定本地名称和命名空间 URI 的特性。(如果移除的特性有一个默认值,则立即予以替换)。
+ 要移除的特性的本地名称。
+ 要移除的特性的命名空间 URI。
+ 节点是只读的。
+
+
+ 从元素中移除具有指定索引的特性节点。(如果移除的特性有一个默认值,则立即予以替换)。
+ 移除的特性节点;如果在给定索引位置没有节点,则为 null。
+ 要移除的节点的索引。第一个节点的索引为 0。
+
+
+ 移除由本地名称和命名空间 URI 指定的 。(如果移除的特性有一个默认值,则立即予以替换)。
+ 移除的 XmlAttribute;如果 XmlElement 不具有匹配的特性节点,则为 null。
+ 属性的本地名称。
+ 属性的命名空间 URI。
+ 该节点是只读的。
+
+
+ 移除指定的 。
+ 移除的 XmlAttribute;如果 不是 XmlElement 的特性节点,则为 null。
+ 要移除的 XmlAttribute 节点。如果移除的特性具有默认值,则立即替换它。
+ 该节点是只读的。
+
+
+ 设置具有指定名称的特性的值。
+ 要创建或更改的特性的名称。这是限定名。如果该名称包含一个冒号,则将其解析为前缀和本地名称两个部分。
+ 要为此特性设置的值。
+ 指定的名称包含无效字符。
+ 节点是只读的。
+
+
+ 设置具有指定本地名称和命名空间 URI 的特性的值。
+ 特性值。
+ 属性的本地名称。
+ 属性的命名空间 URI。
+ 要为此特性设置的值。
+
+
+ 添加指定的 。
+ 要相加的 XmlAttribute。
+ 属性的本地名称。
+ 属性的命名空间 URI。
+
+
+ 添加指定的 。
+ 如果该特性替换同名现有特性,则返回旧 XmlAttribute;否则返回 null。
+ 要添加到该元素的特性集合的 XmlAttribute 节点。
+
+ 是从不同于创建此节点的文档创建的。或者此节点是只读的。
+
+ 已经是另一个 XmlElement 对象的特性。您必须显式克隆 XmlAttribute 节点以在其他 XmlElement 对象中重用它们。
+
+
+ 将节点的所有子级保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 将当前节点保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 为一组 对象定义上下文。
+
+
+ 初始化 类的新实例。
+
+
+ 用指定的 初始化 类的新实例。
+
+ 对象。
+
+
+ 创建一个新的 。
+ 新的 XmlDocument 对象。
+
+
+ 测试文档对象模型 (DOM) 实现是否实现某个特定的功能。
+ 如果指定的版本中实现了该功能,则为 true;否则为 false。下表显示导致 HasFeature 返回 true 的组合。strFeaturestrVersionXML1.0XML2.0
+ 要测试的功能的软件包名称。该名称不区分大小写。
+ 这是要测试的软件包名称的版本号。如果不指定版本 (null),则支持该功能的任何版本会导致方法返回 true。
+
+
+ 获取紧靠该节点(之前或之后)的节点。
+
+
+ 获取紧接在该节点之后的节点。
+ 紧随该节点之后的 ,或者如果不存在,则为 null。
+
+
+ 获取紧接在该节点之前的节点。
+ 前面的 ,如果不存在,则为 null。
+
+
+ 表示可以通过名称或索引访问的节点的集合。
+
+
+ 获取 XmlNamedNodeMap 中的节点数。
+ 节点数。
+
+
+ 提供对 XmlNamedNodeMap 中节点集合上“foreach”样式迭代的支持。
+ 枚举器对象。
+
+
+ 检索通过名称指定的 。
+ 具有指定名称的 XmlNode;如果未找到匹配节点,则为 null。
+ 要检索节点的限定名。它针对匹配节点的 属性进行匹配。
+
+
+ 检索具有匹配的 和 的节点。
+ 具有匹配的本地名称和命名空间 URI 的 ;如果未找到匹配节点,则为 null。
+ 要检索的节点的本地名称。
+ 要检索的节点的命名空间统一资源标识符 (URI)。
+
+
+ 检索位于 XmlNamedNodeMap 中指定索引处的节点。
+ 位于指定索引处的 。如果 小于 0 或大于等于 属性,则返回 null。
+ 要从 XmlNamedNodeMap 中检索的节点的索引位置。索引是从零开始的;因此第一个节点的索引是 0,最后一个节点的索引是 -1。
+
+
+ 从 XmlNamedNodeMap 中移除节点。
+ 从此 XmlNamedNodeMap 中移除的 XmlNode;如果未找到匹配的节点,则为 null。
+ 要移除的节点的限定名。该名称针对匹配节点的 属性进行匹配。
+
+
+ 移除具有匹配的 和 的节点。
+ 移除的 ;如果未找到匹配的节点,则为 null。
+ 要移除的节点的本地名称。
+ 要移除的节点的命名空间 URI。
+
+
+ 使用其 属性添加 。
+ 如果 替换具有相同名称的现有节点,则返回旧节点;否则返回 null。
+ 要存储在 XmlNamedNodeMap 中的 XmlNode。如果具有该名称的节点已存在于映射中,则用新节点将其替换。
+
+ 是从不同于创建此 XmlNamedNodeMap 的 创建的;或者 XmlNamedNodeMap 是只读的。
+
+
+ 表示 XML 文档中的单个节点。
+
+
+ 将指定的节点添加到该节点的子节点列表的末尾。
+ 添加的节点。
+ 要添加的节点。要添加的节点的全部内容会移动到指定位置。
+ 此节点的类型不允许 节点类型的子节点。 是此节点的上级节点。
+
+ 是从不同于创建此节点的文档创建的。该节点是只读的。
+
+
+ 获取一个 ,它包含该节点的特性。
+ 一个 XmlAttributeCollection,它包含该节点的特性。如果节点为 XmlNodeType.Element 类型,则返回该节点的属性。对于其他类型的单元格,此属性返回 null。
+
+
+ 获取当前节点的基 URI。
+ 从其加载节点的位置;如果节点没有基 URI,则为 String.Empty。
+
+
+ 获取节点的所有子节点。
+ 一个包含节点的所有子节点的对象。如果没有子节点,该属性返回空 。
+
+
+ 当在派生类中被重写时,创建该节点的副本。
+ 克隆的节点。
+ true to recursively clone the subtree under the specified node; false to clone only the node itself.
+ 在不能被克隆的节点类型上调用该方法。
+
+
+ 获取节点的第一个子级。
+ 节点的第一个子级。如果没有这样的节点,则返回 null。
+
+
+ 获取循环访问当前节点中子节点的枚举。
+ 一个 对象,可用于循环访问当前节点中的子节点。
+
+
+ 查找当前节点范围内离给定的前缀最近的 xmlns 声明,并返回声明中的命名空间 URI。
+ 指定前缀的命名空间 URI。
+ 你想查找的命名空间 URI 的前缀。
+
+
+ 查找当前节点范围内离给定的命名空间 URI 最近的 xmlns 声明,并返回声明中定义的前缀。
+ 指定的命名空间 URI 的前缀。
+ 要查找其前缀的命名空间 URI。
+
+
+ 获取一个值,该值指示此节点是否有任何子节点。
+ 如果节点具有子节点,则为 true;否则为 false。
+
+
+ 获取或设置节点及其所有子节点的串连值。
+ 节点及其所有子节点的串连值。
+
+
+ 获取或设置仅表示该节点的子节点的标记。
+ 该节点的子节点的标记。说明InnerXml 不返回默认特性。
+ 在不能具有子节点的节点上设置该属性。
+ 设置此属性时指定的 XML 的格式不合式。
+
+
+ 将指定的节点紧接着插入指定的引用节点之后。
+ 插入的节点。
+ 要插入的 XmlNode。
+ XmlNode,它是引用节点。 放置在 之后。
+ 此节点的类型不允许 节点类型的子节点。 是此节点的上级节点。
+
+ 是从不同于创建此节点的文档创建的。 不是此节点的子级。该节点是只读的。
+
+
+ 将指定的节点紧接着插入指定的引用节点之前。
+ 插入的节点。
+ 要插入的 XmlNode。
+ XmlNode,它是引用节点。 放置在该节点之前。
+ 当前节点的类型不允许 节点类型的子节点。 是此节点的上级节点。
+
+ 是从不同于创建此节点的文档创建的。 不是此节点的子级。该节点是只读的。
+
+
+ 获取指示节点是否只读的值。
+ 如果节点是只读的,则为 true;否则为 false。
+
+
+ 获取具有指定 的第一个子元素。
+ 与指定名称匹配的第一个 。如果没有匹配项,则它返回空引用(在 Visual Basic 中为 Nothing)。
+ 要检索的元素的限定名。
+
+
+ 获取具有指定 和 的第一个子元素。
+ 具有匹配的 和 的第一个 。.如果没有匹配项,则它返回空引用(在 Visual Basic 中为 Nothing)。
+ 元素的本地名称。
+ 元素的命名空间 URI。
+
+
+ 获取节点的最后一个子级。
+ 节点的最后一个子级。如果没有这样的节点,则返回 null。
+
+
+ 当在派生类中被重写时,获取节点的本地名称。
+ 移除了前缀的节点的名称。例如,对于元素 <bk:book>,LocalName 是 book。返回的名称取决于节点的 :类型名称特性属性的本地名称。CDATA#cdata-section注释#commentDocument#documentDocumentFragment#document-fragmentDocumentType文档类型名称。元素元素的本地名称。实体实体的名称。EntityReference引用的实体的名称。Notation表示法名称。ProcessingInstruction处理指令的目标。Text#textWhitespace#whitespaceSignificantWhitespace#significant-whitespaceXmlDeclaration#xml-declaration
+
+
+ 当在派生类中被重写时,获取节点的限定名称。
+ 节点的限定名称。返回的名称取决于节点的 :类型名称特性属性的限定名称。CDATA#cdata-section注释#commentDocument#documentDocumentFragment#document-fragmentDocumentType文档类型名称。元素元素的限定名。实体实体的名称。EntityReference引用的实体的名称。Notation表示法名称。ProcessingInstruction处理指令的目标。Text#textWhitespace#whitespaceSignificantWhitespace#significant-whitespaceXmlDeclaration#xml-declaration
+
+
+ 获取该节点的命名空间 URI。
+ 该节点的命名空间 URI。如果没有命名空间 URI,则此属性返回 String.Empty。
+
+
+ 获取紧接在该节点之后的节点。
+ 下一个 XmlNode。如果没有下一个节点,则返回 null。
+
+
+ 当在派生类中被重写时,获取当前节点的类型。
+
+ 值之一。
+
+
+ 将此 XmlNode 下子树完全深度中的所有 XmlText 节点都转换成“正常”形式,在这种形式中只有标记(即标记、注释、处理指令、CDATA 节和实体引用)分隔 XmlText 节点,也就是说,没有相邻的 XmlText 节点。
+
+
+ 获取包含此节点及其所有子节点的标记。
+ 包含此节点及其所有子节点的标记。说明OuterXml 不返回默认特性。
+
+
+ 获取该节点所属的 。
+ 该节点所属的 。如果该节点是一个 (NodeType 等于 XmlNodeType.Document),则此属性返回 null。
+
+
+ 获取该节点的父级(针对可以拥有父级的节点)。
+ 为当前节点父级的 XmlNode。如果节点刚刚创建还未添加到树中,或如果已从树中移除了节点,则父级为 null。对于所有其他节点,返回的值取决于节点的 。下表描述 ParentNode 属性可能的返回值。NodeTypeParentNode 的返回值Attribute、Document、DocumentFragment、Entity、Notation返回 null;这些节点不具有父级。CDATA返回包含 CDATA 节的元素或实体引用。注释返回包含注释的元素、实体引用、文档类型或文档。DocumentType返回文档节点。元素返回该元素的父节点。如果该元素是树中的根节点,则父级是文档节点。EntityReference返回包含该实体引用的元素、特性或实体引用。ProcessingInstruction返回包含该处理指令的文档、元素、文档类型或实体引用。Text返回包含该文本节点的父元素、特性或实体引用。
+
+
+ 获取或设置该节点的命名空间前缀。
+ 该节点的命名空间前缀。例如,对于元素 <bk:book>,Prefix 是 bk。如果没有前缀,则该属性返回 String.Empty。
+ 该节点是只读的。
+ 指定的前缀包含无效字符。指定的前缀格式不正确。指定的前缀为“xml”,而该节点的 namespaceURI 与“http://www.w3.org/XML/1998/namespace”不同。该节点是一个特性,指定的前缀为“xmlns”,并且该节点的 namespaceURI 与“http://www.w3.org/2000/xmlns/”不同。该节点是一个特性,而该节点的 qualifiedName 是“xmlns”。
+
+
+ 将指定的节点添加到该节点的子节点列表的开头。
+ 添加的节点。
+ 要添加的节点。要添加的节点的全部内容会移动到指定位置。
+ 此节点的类型不允许 节点类型的子节点。 是此节点的上级节点。
+
+ 是从不同于创建此节点的文档创建的。该节点是只读的。
+
+
+ 获取紧接在该节点之前的节点。
+ 前一个 XmlNode。如果前面没有节点,则返回 null。
+
+
+ 获取紧接在该节点之前的文本节点。
+ 返回 。
+
+
+ 移除当前节点的所有子节点和/或属性。
+
+
+ 移除指定的子节点。
+ 已移除的节点。
+ 正在被移除的节点。
+
+ 不是此节点的子级。或者此节点是只读的。
+
+
+ 用 节点替换子节点 。
+ 被替换的节点。
+ 要放入子列表的新节点。
+ 列表中正在被替换的节点。
+ 此节点的类型不允许 节点类型的子节点。 是此节点的上级节点。
+
+ 是从不同于创建此节点的文档创建的。该节点是只读的。 不是此节点的子级。
+
+
+ 测试 DOM 实现是否实现特定的功能。
+ 如果指定的版本中实现了该功能,则为 true;否则为 false。下表描述返回 true 的组合。功能版本XML1.0 XML2.0
+ 要测试的功能的程序包名称。该名称不区分大小写。
+ 要测试的程序包名称的版本号。如果不指定版本 (null),则支持该功能的任何版本会导致方法返回 true。
+
+
+ 有关此成员的说明,请参见 。
+ 返回集合的枚举数。
+
+
+ 获取或设置节点的值。
+ 返回的值取决于节点的 。类型值特性属性的值。CDATASectionCDATA 节的内容。注释注释的内容。Document null. DocumentFragment null. DocumentType null. 元素 null.您可以使用 或 属性访问元素节点的值。实体 null. EntityReference null. Notation null. ProcessingInstruction全部内容(不包括指令目标)。Text文本节点的内容。SignificantWhitespace空格字符。空白可由一个或多个空格字符、回车符、换行符或制表符组成。Whitespace空格字符。空白可由一个或多个空格字符、回车符、换行符或制表符组成。XmlDeclaration声明的内容(即在 <?xml 和 ?> 之间的所有内容)。
+ 设置只读节点的值。
+ 设置不允许具有值的节点(例如 Element 节点)的值。
+
+
+ 当在派生类中被重写时,该节点的所有子节点会保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 当在派生类中被重写时,将当前节点保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 指定节点更改的类型。
+
+
+ 正在更改节点值。
+
+
+ 正在将节点插入树中。
+
+
+ 正在从树中移除节点。
+
+
+ 提供以下事件的数据:、、、、 和 。
+
+
+ 初始化 类的新实例。
+ 生成了该事件的 。
+ 生成了该事件的 的旧父级 。
+ 生成了该事件的 的新父级 。
+ 生成了该事件的 的旧值。
+ 生成了该事件的 的新值。
+
+ 。
+
+
+ 获取一个值,该值指示正在发生哪种类型的节点更改事件。
+ 描述节点更改事件的 XmlNodeChangedAction 值。XmlNodeChangedAction 值说明Insert已插入或将插入节点。移除已移除或将移除节点。更改已更改或将更改节点。说明Action 值不区分事件何时发生(之前或之后)。您可以创建单独的事件处理程序来处理两种情况。
+
+
+ 获取操作完成后 的值。
+ 操作完成后 ParentNode 的值。如果节点正被移除,此属性返回 null。说明对于特性节点,此属性返回 。
+
+
+ 获取节点的新值。
+ 节点的新值。如果节点既不是特性节点也不是文本节点,或者节点要被移除,则此属性将返回 null。如果在 事件中调用 NewValue,则在更改成功后返回节点的值。如果在 事件中调用 NewValue,将返回节点的当前值。
+
+
+ 获取正被添加、移除或更改的 。
+ 正被添加、移除或更改的 XmlNode;此属性从不返回 null。
+
+
+ 获取操作开始前的 的值。
+ 操作开始前 ParentNode 的值。如果节点不具有父级,则此属性返回 null。说明对于特性节点,此属性返回 。
+
+
+ 获取节点的原始值。
+ 节点的原始值。如果节点既不是特性节点也不是文本节点,或者节点要被插入,此属性将返回 null。如果在 事件中调用 OldValue,则在更改成功后返回将被替换的节点的当前值。如果在 事件中调用 OldValue,则将返回更改前节点的值。
+
+
+ 表示处理 、、、、 和 事件的方法。
+ 事件源。
+ 包含事件数据的 。
+
+
+ 表示排序的节点集合。
+
+
+ 初始化 类的新实例。
+
+
+ 获取 XmlNodeList 中的节点数。
+ XmlNodeList 中的节点数。
+
+
+ 获取一个循环访问其集合节点的枚举数。
+ 用于循环访问节点集合的枚举器。
+
+
+ 检索给定索引处的节点。
+
+ 与集合中的指定索引.如果 大于或等于列表中的节点数,则这返回 null。
+ 节点列表中从零开始的索引。
+
+
+ 获取给定索引处的节点。
+
+ 与集合中的指定索引.如果 index 大于或等于列表中的节点数,则这返回 null。
+ 节点列表中从零开始的索引。
+
+
+ 私下释放节点列表里的资源。
+
+
+ 释放 类使用的所有资源。
+
+
+ 表示一条处理指令,XML 定义该处理指令以将处理器特定的信息保存在文档的文本中。
+
+
+ 初始化 类的新实例。
+ 处理指令的目标;请参见 属性。
+ 指令的内容;请参见 属性。
+ 父 XML 文档。
+
+
+ 创建此节点的副本。
+ 重复节点。
+ 若要递归地克隆指定节点下的子树,则为 true;若仅克隆节点本身,则为 false。
+
+
+ 获取或设置处理指令的内容(目标除外)。
+ 处理指令的内容(目标除外)。
+
+
+ 获取或设置节点及其所有子级的串连值。
+ 节点及其所有子级的串连值。
+
+
+ 获取节点的本地名称。
+ 对于处理指令节点,此属性返回处理指令的目标。
+
+
+ 获取节点的限定名称。
+ 对于处理指令节点,此属性返回处理指令的目标。
+
+
+ 获取当前节点的类型。
+ 对于 XmlProcessingInstruction 节点,该值是 XmlNodeType.ProcessingInstruction。
+
+
+ 获取处理指令的目标。
+ 处理指令的目标。
+
+
+ 获取或设置节点的值。
+ 处理指令的全部内容(目标除外)。
+ Node is read-only.
+
+
+ 将节点的所有子级保存到指定的 中。因为 ProcessingInstruction 节点不具有子级,所以此方法无效。
+ 要保存到其中的 XmlWriter。
+
+
+ 将节点保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 表示在混合内容节点中标记之间的空白或 xml:space= 'preserve' 范围内的空白。这也称为有效空白。
+
+
+ 初始化 类的新实例。
+ 节点中的空白字符。
+
+ 对象。
+
+
+ 创建此节点的副本。
+ 克隆的节点。
+ true to recursively clone the subtree under the specified node; false to clone only the node itself.对于重要的空白节点,克隆的节点将始终包含数据值,而不管参数的设置如何。
+
+
+ 获取节点的本地名称。
+ 对于 XmlSignificantWhitespace 节点,此属性返回 #significant-whitespace。
+
+
+ 获取节点的限定名称。
+ 对于 XmlSignificantWhitespace 节点,此属性返回 #significant-whitespace。
+
+
+ 获取当前节点的类型。
+ 对于 XmlSignificantWhitespace 节点,该值是 XmlNodeType.SignificantWhitespace。
+
+
+ 获取当前节点的父节点。
+ 当前节点的 父节点。
+
+
+ 获取紧接在该节点之前的文本节点。
+ 返回 。
+
+
+ 获取或设置节点的值。
+ 在节点中找到空白字符。
+ 将 Value 设置为无效空白字符。
+
+
+ 将节点的所有子级保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 将节点保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 表示元素或属性的文本内容。
+
+
+ 初始化 类的新实例。
+ 节点的内容,请参见 属性。
+ 父 XML 文档。
+
+
+ 创建此节点的副本。
+ 克隆的节点。
+ true to recursively clone the subtree under the specified node; false to clone only the node itself.
+
+
+ 获取节点的本地名称。
+ 对于文本节点,此属性返回 #text。
+
+
+ 获取节点的限定名称。
+ 对于文本节点,此属性返回 #text。
+
+
+ 获取当前节点的类型。
+ 对于文本节点,该值是 XmlNodeType.Text。
+
+
+
+ 获取紧接在该节点之前的文本节点。
+ 返回 。
+
+
+ 在指定的偏移点将该节点拆分为两个节点,并使树中的这两个节点成为同级。
+ 新的节点。
+ 拆分节点的偏移点。
+
+
+ 获取或设置节点的值。
+ 文本节点的内容。
+
+
+ 将节点的所有子级保存到指定的 中。由于 XmlText 节点没有子级,因此该方法无效。
+ 要保存到其中的 XmlWriter。
+
+
+ 将节点保存到指定的 中。
+ 要保存到其中的 XmlWriter。
+
+
+ 表示元素内容中的空白。
+
+
+ 初始化 类的新实例。
+ 节点中的空白字符。
+
+ 对象。
+
+
+ 创建此节点的副本。
+ 克隆的节点。
+ true to recursively clone the subtree under the specified node; false to clone only the node itself.对于空白节点,克隆的节点将始终包含数据值,而不管参数的设置如何。
+
+
+ 获取节点的本地名称。
+ 对于 XmlWhitespace 节点,此属性返回 #whitespace。
+
+
+ 获取节点的限定名称。
+ 对于 XmlWhitespace 节点,此属性返回 #whitespace。
+
+
+ 获取节点的类型。
+ 对于 XmlWhitespace 节点,该值为 。
+
+
+ 获取当前节点的父节点。
+ 当前节点的 父节点。
+
+
+ 获取紧接在该节点之前的文本节点。
+ 返回 。
+
+
+ 获取或设置节点的值。
+ 在节点中找到空白字符。
+ 将 设置为无效空白字符。
+
+
+ 将节点的所有子级保存到指定的 中。
+ 要保存到其中的 。
+
+
+ 将节点保存到指定的 中。
+ 要保存到其中的 。
+
+
+
\ No newline at end of file
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/zh-hant/System.Xml.XmlDocument.xml b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/zh-hant/System.Xml.XmlDocument.xml
new file mode 100644
index 0000000..c1c894a
--- /dev/null
+++ b/packages/System.Xml.XmlDocument.4.3.0/ref/netstandard1.3/zh-hant/System.Xml.XmlDocument.xml
@@ -0,0 +1,1456 @@
+
+
+
+ System.Xml.XmlDocument
+
+
+
+ 表示屬性 (Attribute)。屬性的有效和預設值是在文件類型定義 (DTD) 或結構描述中定義。
+
+
+ 初始化 類別的新執行個體。
+ 命名空間前置字元。
+ 屬性的區域名稱。
+ 命名空間的統一資源識別元 (URI)。
+ 父代 XML 文件。
+
+
+ 將指定的節點加入至這個節點之子節點清單的結尾。
+ 所加入的 。
+ 要相加的 。
+ 這個節點的型別不允許 節點型別的子節點。 是這個節點的上階。
+
+ 由不同於建立這個節點的另一份文件所建立。這個節點是唯讀的。
+
+
+ 取得節點的基底統一資源識別元 (URI)。
+ 載入節點的來源位置;如果節點沒有基底 URI,則為 String.Empty。屬性節點的基底 URI 與其擁有人項目的相同。如果屬性節點沒有擁有人項目,BaseURI 會傳回 String.Empty。
+
+
+ 建立這個節點的複本。
+ 複製的節點。
+ 若要在指定的節點下遞迴地複製子樹狀結構,則為 true,若只要複製節點本身,則為 false。
+
+
+ 設定節點的串連值和其所有的子節點。
+ 節點的串連值和其所有的子節點。在屬性節點方面,這個屬性的功能與 屬性相同。
+
+
+ 設定屬性值。
+ 屬性值。
+ 在設定語式不正確的屬性時所指定的 XML。
+
+
+ 在指定的參考節點之後,立即插入指定的節點。
+ 所插入的 。
+ 要插入的 。
+
+ 為參考節點。 會置於 之後。
+ 這個節點的型別不允許 節點型別的子節點。 是這個節點的上階。
+
+ 由不同於建立這個節點的另一份文件所建立。 不是這個節點的子節點。這個節點是唯讀的。
+
+
+ 在指定的參考節點之前,立即插入指定的節點。
+ 所插入的 。
+ 要插入的 。
+
+ 為參考節點。 會置於這個節點之前。
+ 目前這種型別的節點不允許 節點型別的子節點。 是這個節點的上階。
+
+ 由不同於建立這個節點的另一份文件所建立。 不是這個節點的子節點。這個節點是唯讀的。
+
+
+ 取得節點的區域名稱。
+ 已移除前置詞的屬性節點名稱。在以下範例 <book bk:genre= 'novel'> 中,屬性的 LocalName 為 genre。
+
+
+ 取得節點的完整名稱。
+ 屬性節點的限定名稱 (Qualified Name)。
+
+
+ 取得這個節點的命名空間 URI。
+ 這個節點的命名空間 URI。如果屬性並未明確指定命名空間,這個屬性會傳回 String.Empty。
+
+
+ 取得目前節點的型別。
+ XmlAttribute 節點的節點型別是 XmlNodeType.Attribute。
+
+
+ 取得這個節點所屬的 。
+ 這個節點所屬的 XML 文件。
+
+
+ 取得屬性所屬的 。
+ 屬性所屬的 XmlElement;如果這個屬性不是 XmlElement 的一部分,則為 null。
+
+
+ 取得這個節點的父代 (Parent)。對於 XmlAttribute 節點,這個屬性永遠傳回 null。
+ 對於 XmlAttribute 節點,這個屬性永遠傳回 null。
+
+
+ 取得或設定這個節點的命名空間前置詞。
+ 這個節點的命名空間前置詞。如果沒有前置詞,則這個屬性傳回 String.Empty。
+ 這個節點是唯讀的。
+ 指定的前置詞包含無效的字元。指定的前置詞不正確。這個節點的 namespaceURI 為 null。指定的前置詞為 "xml",而這個節點的 namespaceURI 與 "http://www.w3.org/XML/1998/namespace" 不同。這個節點是一個屬性,指定的前置詞為 "xmlns",而這個節點的 namespaceURI 與 "http://www.w3.org/2000/xmlns/" 不同。這個節點是一個屬性,其 qualifiedName 為 "xmlns" [Namespaces]。
+
+
+ 將指定的節點加入至這個節點之子節點清單的開頭。
+ 所加入的 。
+ 要相加的 。如果是 ,則文件片段的整個內容都會移入這個節點的子節點清單中。
+ 這個節點的型別不允許 節點型別的子節點。 是這個節點的上階。
+
+ 由不同於建立這個節點的另一份文件所建立。這個節點是唯讀的。
+
+
+ 移除指定的子節點。
+ 所移除的 。
+ 要移除的 。
+
+ 不是這個節點的子節點。或者這個節點是唯讀的。
+
+
+ 用指定的新子節點取代指定的子節點。
+ 所取代的 。
+ 新的子 。
+ 要取代的 。
+ 這個節點的型別不允許 節點型別的子節點。 是這個節點的上階。
+
+ 由不同於建立這個節點的另一份文件所建立。這個節點是唯讀的。 不是這個節點的子節點。
+
+
+ 取得值,表示是否明確設定屬性值。
+ 如果在原始執行個體文件中明確指定了這個屬性的值,則為 true,否則為 false。false 值指示屬性的值是來自 DTD。
+
+
+ 取得或設定節點的值。
+ 傳回值需視節點的 而定。至於 XmlAttribute 節點,這個屬性 (Property) 是屬性 (Attribute) 的值。
+ 節點為唯讀,並會呼叫設定作業。
+
+
+ 將節點的所有子系儲存到指定的 。
+ 要儲存的目的 XmlWriter。
+
+
+ 將節點儲存至指定的 。
+ 要儲存的目的 XmlWriter。
+
+
+ 表示可用名稱或索引存取的屬性 (Attribute) 集合。
+
+
+ 插入指定的屬性做為集合的最後一個節點。
+ XmlAttribute,要附加到集合中。
+ 要插入的 。
+
+ 由不同於建立這個集合的另一個文件所建立。
+
+
+ 從這個集合中複製所有 物件至指定的陣列中。
+ 陣列,是從這個集合所複製的物件的目的端。
+ 在複製開始的所在陣列中的索引。
+
+
+ 在指定的參考屬性之後,立即插入指定的屬性。
+ 要插入至集合的 XmlAttribute。
+ 要插入的 。
+
+ 是參考屬性。 會置於 之後。
+
+ 由不同於建立這個集合的另一個文件所建立。或者 並非這個集合的成員。
+
+
+ 在指定的參考屬性之前,立即插入指定的屬性。
+ 要插入至集合的 XmlAttribute。
+ 要插入的 。
+
+ 是參考屬性。 會置於 之前。
+
+ 由不同於建立這個集合的另一個文件所建立。或者 並非這個集合的成員。
+
+
+ 取得具有指定索引的屬性。
+ 在指定索引處的 。
+ 屬性的索引。
+ 傳入的索引超出範圍。
+
+
+ 取得具有指定名稱的屬性。
+ 具有指定名稱的 。如果屬性 (attribute) 不存在,這個屬性 (property) 會傳回 null。
+ 屬性的限定名稱 (Qualified Name)。
+
+
+ 取得指定的區域名稱和命名空間統一資源識別元 (URI) 之屬性。
+ 具有指定的區域名稱和命名空間 URI 的 。如果屬性 (attribute) 不存在,這個屬性 (property) 會傳回 null。
+ 屬性的區域名稱。
+ 屬性的命名空間 URI。
+
+
+ 插入指定的屬性做為集合的第一個節點。
+ 要加入至集合中的 XmlAttribute。
+ 要插入的 。
+
+
+ 從集合中移除指定的屬性。
+ 這個節點將會移除,如果集合中找不到這個節點,則為 null。
+ 要移除的 。
+
+
+ 從集合移除所有的屬性。
+
+
+ 從集合中移除對應指定索引的屬性。
+ 如果在指定的索引處並無屬性,則傳回 null。
+ 要移除的節點的索引。第一個節點的索引為 0。
+
+
+ 使用其 屬性加入 。
+ 如果 取代同名的現有節點,則傳回舊節點;否則傳回所加入的節點。
+ 儲存在這個集合中的屬性節點。這個節點稍後可用節點名稱來存取。如果集合中已經有這個名稱的節點,它將會被新的節點取代;否則,這個節點就會附加在集合的結尾。
+
+ 由不同於建立這個集合的另一個 所建立。這個 XmlAttributeCollection 是唯讀的。
+
+ 是已經成為另一個 物件屬性的 。若要重複使用其他項目中的屬性,您必須複製 (Clone) 想要重複使用的 XmlAttribute 物件。
+
+
+ 如需這個成員的說明,請參閱 。
+ 陣列,是從這個集合所複製的物件的目的端。
+ 在複製開始的所在陣列中的索引。
+
+
+ 如需這個成員的說明,請參閱 。
+ 傳回包含屬性計數的 int。
+
+
+ 如需這個成員的說明,請參閱 。
+ 如果已同步處理集合,則傳回 true。
+
+
+ 如需這個成員的說明,請參閱 。
+ 傳回 ,它是集合的根。
+
+
+ 表示 CDATA 區段。
+
+
+ 初始化 類別的新執行個體。
+ 包含字元資料的 。
+
+ 物件
+
+
+ 建立這個節點的複本。
+ 複製的節點。
+ 若要在指定的節點下遞迴地複製子樹狀結構,則為 true,若只要複製節點本身,則為 false。因為 CDATA 節點沒有子系,所以無論參數設定為何,所複製的節點永遠會包含資料內容。
+
+
+ 取得節點的區域名稱。
+ 對於 CDATA 節點,其區域名稱為 #cdata-section。
+
+
+ 取得節點的限定名稱。
+ 對於 CDATA 節點,其名稱為 #cdata-section。
+
+
+ 取得目前節點的類型。
+ 節點類型。對於 CDATA 節點,其值為 XmlNodeType.CDATA。
+
+
+
+ 取得這個節點的前置文字節點。
+ 傳回 。
+
+
+ 將節點的子系儲存至指定的 。
+ 要儲存的目的 XmlWriter。
+
+
+ 將節點儲存至指定的 。
+ 要儲存的目的 XmlWriter。
+
+
+ 提供許多類別使用的文字管理方法。
+
+
+ 初始化 類別的新執行個體。
+ 字串,包含要加入至文件的字元資料。
+ 要包含字元資料的 。
+
+
+ 將指定的字串附加至節點字元資料的結尾。
+ 要插入現有字串中的字串。
+
+
+ 包含節點的資料。
+ 節點的資料。
+
+
+ 從節點移除字元範圍。
+ 字串中要開始刪除的位置。
+ 要刪除的字元數。
+
+
+ 在指定的字元位移處插入指定的字串。
+ 字串中要插入提供的字串資料的位置。
+ 要插入現有字串中的字串資料。
+
+
+ 取得資料的長度,以字元為單位。
+
+ 屬性中字串的長度 (以字元為單位)。長度可能是零,也就是 CharacterData 節點可能是空的。
+
+
+ 從指定的位移處開始,以指定的字串取代指定的字元數。
+ 字串中要開始取代的位置。
+ 要取代的字元數。
+ 取代舊字串資料的新資料。
+
+
+ 從指定的範圍擷取完整字串中的一個子字串。
+ 對應至指定範圍的子字串。
+ 字串中要開始擷取的位置。零位移指示起點就在資料的開頭。
+ 要擷取的字元數。
+
+
+ 取得或設定節點的值。
+ 節點的值。
+ 節點是唯讀的。
+
+
+ 表示 XML 註解的內容。
+
+
+ 初始化 類別的新執行個體。
+ 註解項目的內容。
+ 父代 XML 文件。
+
+
+ 建立這個節點的複本。
+ 複製的節點。
+ 若要在指定的節點下遞迴地複製子樹狀結構,則為 true,若只要複製節點本身,則為 false。因為註解節點沒有子系,所以無論參數設定為何,所複製的節點永遠會包含文字內容。
+
+
+ 取得節點的區域名稱。
+ 對於註解節點,其值為 #comment。
+
+
+ 取得節點的完整名稱。
+ 對於註解節點,其值為 #comment。
+
+
+ 取得目前節點的型別。
+ 對於註解節點,其值為 XmlNodeType.Comment。
+
+
+ 將節點的所有子系儲存到指定的 。因為註解節點沒有子系,所以這個方法不會有任何效果。
+ 要儲存的目的 XmlWriter。
+
+
+ 將節點儲存至指定的 。
+ 要儲存的目的 XmlWriter。
+
+
+ 表示 XML 宣告節點 <?xml version='1.0'...?>。
+
+
+ 初始化 類別的新執行個體。
+ XML 版本;請參閱 屬性。
+ 編碼配置;請參閱 屬性。
+ 表示 XML 文件是否取決於外部 DTD;請參閱 屬性。
+ 父代 XML 文件。
+
+
+ 建立這個節點的複本。
+ 複製的節點。
+ 若要在指定的節點下遞迴地複製子樹狀結構,則為 true,若只要複製節點本身,則為 false。因為 XmlDeclaration 節點沒有子系,所以無論參數設定為何,所複製的節點永遠會包含資料值。
+
+
+ 取得或設定 XML 文件的編碼方式層級。
+ 有效的字元編碼名稱。最常支援的 XML 字元編碼名稱如下:分類編碼名稱UnicodeUTF-8、UTF-16ISO 10646ISO-10646-UCS-2, ISO-10646-UCS-4ISO 8859ISO-8859-n (其中 "n" 可以是 1 到 9 的數字)JIS X-0208-1997ISO-2022-JP, Shift_JIS, EUC-JP這個值是選擇性的。如果沒有設定值,這個屬性會傳回 String.Empty。如果未包含編碼方式屬性,在文件被寫入或儲存時會假設為 UTF-8 編碼方式。
+
+
+ 取得或設定 XmlDeclaration 的串聯值。
+ XmlDeclaration 的結合值 (亦即,介於 <?xml 與 ?> 之間的所有內容)。
+
+
+ 取得節點的區域名稱。
+ 對於 XmlDeclaration 節點,其區域名稱為 xml。
+
+
+ 取得節點的完整名稱。
+ 對於 XmlDeclaration 節點,其名稱為 xml。
+
+
+ 取得目前節點的型別。
+ 如果是 XmlDeclaration 節點,則這個值會是 XmlNodeType.XmlDeclaration。
+
+
+ 取得或設定獨立屬性的值。
+ 如果 XML 文件所需的所有實體宣告都包含在文件中,其有效值為 yes;如果需要外部文件類型定義 (DTD),則有效值為 no。如果在 XML 宣告中沒有獨立屬性,這個屬性會傳回 String.Empty。
+
+
+ 取得或設定 XmlDeclaration 的值。
+ XmlDeclaration 的內容 (亦即,介於 <?xml 與 ?> 之間的所有資料)。
+
+
+ 取得文件的 XML 版本。
+ 這個值一定是 1.0。
+
+
+ 將節點的子系儲存至指定的 。因為 XmlDeclaration 節點並沒有子系,所以這個方法不會有任何效果。
+ 要儲存的目的 XmlWriter。
+
+
+ 將節點儲存至指定的 。
+ 要儲存的目的 XmlWriter。
+
+
+ 表示 XML 文件。如需詳細資訊,請參閱 Remarks 一節。
+
+
+ 初始化 類別的新執行個體。
+
+
+ 使用指定的 XmlDocument 初始化 類別的新執行個體。
+ 要使用的 XmlImplementation。
+
+
+ 使用指定的 XmlDocument 初始化 類別的新執行個體。
+ 要使用的 XmlNameTable。
+
+
+ 取得目前節點的基底 (Base) URI。
+ 節點載入的位置。
+
+
+ 建立這個節點的複本。
+ 複製的 XmlDocument 節點。
+ 若要在指定的節點下遞迴地複製子樹狀結構,則為 true;若只要複製節點本身,則為 false。
+
+
+ 建立具有指定 的 。
+ 新的 XmlAttribute。
+ 屬性的限定名稱 (Qualified Name)。如果名稱包含冒號, 屬性會反映第一個冒號之前的名稱部分,而 屬性會反映第一個冒號之後的名稱部分。除非前置詞能夠辨認為內建前置詞 (例如 xmlns),否則 會保持空白。在此案例中,NamespaceURI 的值為 http://www.w3.org/2000/xmlns/。
+
+
+ 建立具有指定限定名稱和 的 。
+ 新的 XmlAttribute。
+ 屬性的限定名稱 (Qualified Name)。如果名稱包含冒號, 屬性會反映冒號前面的名稱部分,而 屬性會反映冒號後面的名稱部分。
+ 屬性的命名空間 URI。如果限定名稱包含 xmlns 前置詞,這個參數必須是 http://www.w3.org/2000/xmlns/。
+
+
+ 建立具有指定 、 和 的 。
+ 新的 XmlAttribute。
+ 屬性的前置詞 (如有此項)。String.Empty 與 null 相等。
+ 屬性的本機名稱。
+ 屬性的命名空間 URI (如有此項)。String.Empty 與 null 相等。如果 為 xmlns,這個參數必須是 http://www.w3.org/2000/xmlns/,否則會擲回例外狀況。
+
+
+ 建立包含指定資料的 。
+ 新的 XmlCDataSection。
+ 新 XmlCDataSection 的內容。
+
+
+ 建立包含指定資料的 。
+ 新的 XmlComment。
+ 新 XmlComment 的內容。
+
+
+ 建立 。
+ 新的 XmlDocumentFragment。
+
+
+ 建立具有指定名稱的項目。
+ 新的 XmlElement。
+ 項目的限定名稱。如果名稱包含冒號, 屬性會反映冒號之前的名稱部分,而 屬性會反映冒號之後的名稱部分。限定名稱不能包含 'xmlns' 前置詞。
+
+
+ 建立具有限定名稱和 的 。
+ 新的 XmlElement。
+ 項目的限定名稱。如果名稱包含冒號, 屬性會反映冒號前面的名稱部分,而 屬性會反映冒號後面的名稱部分。限定名稱不能包含 'xmlns' 前置詞。
+ 項目的命名空間 URI。
+
+
+ 建立具有指定之 、 和 的元素。
+ 新的 。
+ 新項目的前置詞 (如有此項)。String.Empty 與 null 相等。
+ 新項目的本機名稱。
+ 新項目的命名空間 URI (如有此項)。String.Empty 與 null 相等。
+
+
+ 建立具有指定節點類型、 和 的 。
+ 新的 XmlNode。
+ 新節點的 的字串版本。這個參數必須是下表中所列的其中一個值。
+ 新節點的限定名稱。如果名稱包含冒號,將會剖析為 和 元件。
+ 新節點的命名空間 URI。
+ The name was not provided and the XmlNodeType requires a name; or is not one of the strings listed below.
+
+
+ 建立具有指定的 、 和 的 。
+ 新的 XmlNode。
+ 新節點的 XmlNodeType。
+ 新節點的限定名稱。如果名稱包含冒號,將會剖析為 和 元件。
+ 新節點的命名空間 URI。
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ 建立具有指定之 、、 和 的 。
+ 新的 XmlNode。
+ 新節點的 XmlNodeType。
+ 新節點的前置詞。
+ 新節點的區域名稱。
+ 新節點的命名空間 URI。
+ The name was not provided and the XmlNodeType requires a name.
+
+
+ 建立具有指定名稱和資料的 。
+ 新的 XmlProcessingInstruction。
+ 處理指示的名稱。
+ 處理指示的資料。
+
+
+ 建立 節點。
+ 一個新的 XmlSignificantWhitespace 節點。
+ 字串必須只包含下列字元 、 、 和 	
+
+
+ 建立具有指定文字的 。
+ 新的 XmlText 節點。
+ Text 節點的文字。
+
+
+ 建立 節點。
+ 新的 XmlWhitespace 節點。
+ 字串必須只包含下列字元 、 、 和 	
+
+
+ 建立具有指定值的 節點。
+ 新的 XmlDeclaration 節點。
+ 版本必須是 "1.0"。
+ 編碼屬性的值。這是在您將 儲存至檔案或資料流時使用的編碼方式,因此,必須設定為 類別支援的字串,否則 會失敗。如果這是 null 或 String.Empty,Save 方法不會在 XML 宣告上寫入編碼屬性,因此會使用預設編碼方式 UTF-8。注意:如果 XmlDocument 儲存至 或 ,則會捨棄這個編碼值。改用 TextWriter 或 XmlTextWriter 的編碼方式。這可以確保寫出的 XML 可以使用正碼的編碼方式讀回。
+ 值必須為「是」或「否」。如果這是 null 或 String.Empty,Save 方法不會在 XML 宣告上寫入獨立屬性。
+ The values of or are something other than the ones specified above.
+
+
+ 取得文件的根 。
+ 表示 XML 文件樹狀結構之根的 XmlElement。如果有根,會傳回 null。
+
+
+ 傳回 ,其中包含符合指定 之所有子代 (Descendant) 項目的清單。
+
+ ,包含所有符合節點的清單。如果沒有節點符合 ,就會傳回空的集合。
+ 要相符的限定名稱。它會與符合節點的 Name 屬性比對。特殊值 "*" 與所有標記相符。
+
+
+ 傳回 ,其中包含符合指定之 和 的所有子代元素的清單。
+
+ ,包含所有符合節點的清單。如果沒有節點符合指定的 及 ,就會傳回空的集合。
+ 要相符的 LocalName。特殊值 "*" 與所有標記相符。
+ 要比對的 NamespaceURI。
+
+
+ 取得目前文件的 物件。
+ 目前文件的 XmlImplementation 物件。
+
+
+ 從其他文件匯入節點至目前的文件。
+ 匯入的 。
+ 匯入的節點。
+ true 以執行深層複製;否則為 false。
+ Calling this method on a node type which cannot be imported.
+
+
+ 在所有情況下都擲回 。
+ 節點和其所有子節點的值。
+ In all cases.
+
+
+ 取得或設定表示目前節點子系的標記。
+ 目前節點子系的標記。
+ The XML specified when setting this property is not well-formed.
+
+
+ 取得值,指示目前節點是否為唯讀。
+ 如果目前節點為唯讀,則為 true;否則為 false。XmlDocument 節點永遠傳回 false。
+
+
+ 從指定的資料流載入 XML 文件。
+ 包含要載入之 XML 文件的資料流。
+ There is a load or parse error in the XML.In this case, a is raised.
+
+
+ 從指定的 載入 XML 文件。
+ 用於將 XML 資料送入文件中的 TextReader。
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ 從指定的 載入 XML 文件。
+ 用於將 XML 資料送入文件中的 XmlReader。
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ 從指定的字串載入 XML 文件。
+ 包含要載入之 XML 文件的字串。
+ There is a load or parse error in the XML.In this case, the document remains empty.
+
+
+ 取得節點的區域名稱。
+ 對於 XmlDocument 節點,區域名稱為 #document。
+
+
+ 取得節點的限定名稱。
+ 對於 XmlDocument 節點,名稱為 #document。
+
+
+ 取得與這個實作關聯的 。
+ XmlNameTable,可讓您取得文件中字串之擷取版本。
+
+
+ 發生於屬於這份文件之節點的 變更時。
+
+
+ 發生於屬於這份文件之節點的 即將變更時。
+
+
+ 發生於屬於這份文件的節點插入另一個節點時。
+
+
+ 發生於屬於這份文件的節點將要插入另一個節點時。
+
+
+ 發生於屬於這份文件的節點從其父代 (Parent) 移除時。
+
+
+ 發生於屬於這份文件的節點即將從文件中移除時。
+
+
+ 取得目前節點的類型。
+ 節點類型。對於 XmlDocument 節點,此值為 XmlNodeType.Document。
+
+
+ 取得目前節點所屬的 。
+ 對於 XmlDocument 節點 ( 等於 XmlNodeType.Document),此屬性一律會傳回 null。
+
+
+ 取得這個節點的父節點 (針對可以具有父代的節點而言)。
+ 一律傳回 null。
+
+
+ 取得或設定值,指出是否要保留項目內容中的空白字元。
+ 若要保留空白字元,則為 true;否則為 false。預設為 false。
+
+
+ 根據 中的資訊建立一個 物件。讀取器必須定位在節點或屬性上。
+ 新的 XmlNode;如果沒有其他節點,則為 null。
+ XML 來源。
+ The reader is positioned on a node type that does not translate to a valid DOM node (for example, EndElement or EndEntity).
+
+
+ 將 XML 文件儲存至指定的資料流。
+ 要在其中儲存的資料流。
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ 將 XML 文件儲存至指定的 。
+ 要儲存的目標 TextWriter。
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ 將 XML 文件儲存至指定的 。
+ 要儲存的目標 XmlWriter。
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ 將 XmlDocument 節點的所有子系儲存到指定的 。
+ 要儲存的目標 XmlWriter。
+
+
+ 將 XmlDocument 節點儲存至指定的 。
+ 要儲存的目標 XmlWriter。
+
+
+ 表示適用於樹狀結構插入作業的輕量物件。
+
+
+ 初始化 類別的新執行個體。
+ 片段來源的 XML 文件。
+
+
+ 建立這個節點的複本。
+ 複製的節點。
+ 若要在指定的節點下遞迴地複製子樹狀結構,則為 true,若只要複製節點本身,則為 false。
+
+
+ 取得或設定表示這個節點的子節點的標記。
+ 這個節點的子節點的標記。
+ 在設定語式不正確的屬性時所指定的 XML。
+
+
+ 取得節點的區域名稱。
+ 對於 XmlDocumentFragment 節點,其區域名稱為 #document-fragment。
+
+
+ 取得節點的完整名稱。
+ 對於 XmlDocumentFragment,其名稱為 #document-fragment。
+
+
+ 取得目前節點的型別。
+ 對於 XmlDocumentFragment 節點,其值為 XmlNodeType.DocumentFragment。
+
+
+ 取得這個節點所屬的 。
+ 這個節點所屬的 XmlDocument。
+
+
+ 取得這個節點的父代 (對於具有父代的節點而言)。
+ 這個節點的父代。對於 XmlDocumentFragment 節點,這個屬性必定為 null。
+
+
+ 將節點的所有子系儲存到指定的 。
+ 要儲存的目的 XmlWriter。
+
+
+ 將節點儲存至指定的 。
+ 要儲存的目的 XmlWriter。
+
+
+ 表示項目。
+
+
+ 初始化 類別的新執行個體。
+ 命名空間前置字元;請參閱 屬性。
+ 本機名稱;請參閱 屬性。
+ 命名空間 URI;請參閱 屬性。
+ 父代 XML 文件。
+
+
+ 取得包含這個節點之屬性 (Attribute) 清單的 。
+
+ ,包含這個節點的屬性清單。
+
+
+ 建立這個節點的複本。
+ 複製的節點。
+ true 會遞迴複製 (Clone) 指定節點下的子樹狀結構;false 只會複製節點本身 (如果節點是 XmlElement,還包含其屬性)。
+
+
+ 傳回具有指定名稱之屬性的值。
+ 指定的屬性值。如果找不到相符的屬性,或者屬性沒有指定的或預設的值,會傳回空字串。
+ 要擷取的屬性的名稱。這是限定名稱。它會與符合節點的 Name 屬性相符。
+
+
+ 傳回具有指定區域名稱和命名空間 URI 之屬性的值。
+ 指定的屬性值。如果找不到相符的屬性,或者屬性沒有指定的或預設的值,會傳回空字串。
+ 要擷取的屬性的區域名稱。
+ 要擷取的屬性的命名空間 URI。
+
+
+ 傳回具有指定名稱的 XmlAttribute。
+ 指定的 XmlAttribute;如果找不到相符的屬性,則為 null。
+ 要擷取的屬性的名稱。這是限定名稱。它會與符合節點的 Name 屬性相符。
+
+
+ 傳回具有指定區域名稱和命名空間 URI 的 。
+ 指定的 XmlAttribute;如果找不到相符的屬性,則為 null。
+ 屬性的區域名稱。
+ 屬性的命名空間 URI。
+
+
+ 傳回 ,其中包含符合指定之 的所有子代項目清單。
+
+ ,包含所有符合節點的清單。如果沒有符合的節點,清單是空的。
+ 要相符的名稱標記。這是限定名稱。它會與符合節點的 Name 屬性相符。星號 (*) 是與所有標記相符的特殊值。
+
+
+ 傳回 ,其中包含與指定的 和 相符之所有子代項目清單。
+
+ ,包含所有符合節點的清單。如果沒有符合的節點,清單是空的。
+ 要相符的區域名稱。星號 (*) 是與所有標記相符的特殊值。
+ 要相符的命名空間 URI。
+
+
+ 判斷目前的節點是否有具有指定名稱的屬性。
+ 如果目前節點有指定的屬性,則為 true,否則為 false。
+ 要尋找的屬性的名稱。這是限定名稱。它會與符合節點的 Name 屬性相符。
+
+
+ 判斷目前的節點是否有具有指定區域名稱和命名空間 URI 的屬性。
+ 如果目前節點有指定的屬性,則為 true,否則為 false。
+ 要尋找的屬性的區域名稱。
+ 要尋找的屬性的命名空間 URI。
+
+
+ 取得 boolean 值,表示目前節點是否有屬性。
+ 如果目前節點擁有屬性,則為 true,否則為 false。
+
+
+ 取得或設定節點的串連值和其所有的子節點。
+ 節點的串連值和其所有的子節點。
+
+
+ 取得或設定標記,表示這個節點的子節點。
+ 這個節點的子節點的標記。
+ 在設定語式不正確的屬性時所指定的 XML。
+
+
+ 取得或設定項目的標記格式。
+ 如果項目要以短標記格式 "<item/>" 序列化,會傳回 true;如果以長格式 "<item></item>" 序列化,會傳回 false。設定這個屬性時,如果設定為 true,會移除項目的子系,並且以短標記格式序列化項目。如果設定為 false,會變更屬性的值 (不論項目是否有內容);如果項目是空的,將會以長格式序列化。這個屬性是擴充至文件物件模型 (DOM) 的 Microsoft 擴充部分。
+
+
+ 取得目前節點的區域名稱。
+ 目前節點名稱的前置詞被移除。例如,LocalName 是項目 <bk:book> 的書本。
+
+
+ 取得節點的完整名稱。
+ 節點的限定名稱。對於 XmlElement 節點,這是項目的標記名稱。
+
+
+ 取得這個節點的命名空間 URI。
+ 這個節點的命名空間 URI。如果沒有命名空間 URI,則這個屬性傳回 String.Empty。
+
+
+ 取得緊接在這個項目之後的 。
+ 緊接在這個項目之後的 XmlNode。
+
+
+ 取得目前節點的型別。
+ 節點型別。對於 XmlElement 節點,這個值為 XmlNodeType.Element。
+
+
+ 取得這個節點所屬的 。
+ 這個項目所屬的 XmlDocument。
+
+
+
+ 取得或設定這個節點的命名空間前置詞。
+ 這個節點的命名空間前置詞。如果沒有前置詞,則這個屬性傳回 String.Empty。
+ 這個節點是唯讀的。
+ 指定的前置詞包含無效的字元。指定的前置詞不正確。這個節點的 namespaceURI 為 null。指定的前置詞為「xml」,而這個節點的 namespaceURI 與 http://www.w3.org/XML/1998/namespace 不同。
+
+
+ 移除目前節點所有指定的屬性和子系。預設屬性不會移除。
+
+
+ 移除項目中所有指定的屬性。預設屬性不會移除。
+
+
+ 依照名稱移除屬性。
+ 所要移除屬性 (Attribute) 的名稱。這是一個限定名稱。它會與符合節點的 Name 屬性相符。
+ 這個節點是唯讀的。
+
+
+ 移除具有指定區域名稱和命名空間 URI 的屬性 (如果移除的屬性具有預設值,會立即被取代)。
+ 要移除的屬性的區域名稱。
+ 要移除的屬性的命名空間 URI。
+ 這個節點是唯讀的。
+
+
+ 移除項目中具有指定索引的屬性節點 (如果移除的屬性具有預設值,會立即被取代)。
+ 移除的屬性節點;如果指定的索引中沒有節點,則為 null。
+ 要移除的節點的索引。第一個節點的索引為 0。
+
+
+ 移除區域名稱和命名空間 URI 指定的 (如果移除的屬性具有預設值,會立即被取代)。
+ 移除的 XmlAttribute;如果 XmlElement 沒有相符的屬性節點,則為 null。
+ 屬性的區域名稱。
+ 屬性的命名空間 URI。
+ 這個節點是唯讀的。
+
+
+ 移除指定的 。
+ 移除的 XmlAttribute;如果 不是 XmlElement 的屬性節點,則為 null。
+ 要移除的 XmlAttribute 節點。如果移除的屬性具預設值,會立即被取代。
+ 這個節點是唯讀的。
+
+
+ 設定具有指定名稱之屬性的值。
+ 要建立或變更的屬性的名稱。這是限定名稱。如果名稱包含冒號,將會剖析為前置詞和區域名稱元件。
+ 要為屬性設定的值。
+ 指定的名稱包含無效的字元。
+ 這個節點是唯讀的。
+
+
+ 設定具有指定區域名稱和命名空間 URI 之屬性的值。
+ 屬性值。
+ 屬性的區域名稱。
+ 屬性的命名空間 URI。
+ 要為屬性設定的值。
+
+
+ 加入指定的 。
+ 要相加的 XmlAttribute。
+ 屬性的區域名稱。
+ 屬性的命名空間 URI。
+
+
+ 加入指定的 。
+ 如果這個屬性取代相同名稱的現有屬性,會傳回舊的 XmlAttribute;否則會傳回 null。
+ 要加入這個項目屬性集合中的 XmlAttribute 節點。
+
+ 由不同於建立這個節點的另一份文件所建立。或者這個節點是唯讀的。
+
+ 已經是其他 XmlElement 物件的屬性。您必須明確複製 XmlAttribute 節點,以便在其他 XmlElement 物件中重複使用這些節點。
+
+
+ 將節點的所有子系儲存到指定的 。
+ 要儲存的目的 XmlWriter。
+
+
+ 將目前的節點儲存至指定的 。
+ 要儲存的目的 XmlWriter。
+
+
+ 定義一組 物件的內容。
+
+
+ 初始化 類別的新執行個體。
+
+
+ 使用指定的 ,初始化 類別的新執行個體。
+
+ 物件。
+
+
+ 建立新的 。
+ 新的 XmlDocument 物件。
+
+
+ 測試文件物件模型 (DOM) 實作是否實作指定的功能。
+ 如果在指定的版本實作這個功能,則為 true,否則為 false。下表顯示會使 HasFeature 傳回 true 的組合。strFeaturestrVersionXML1.0XML2.0
+ 要測試的功能的套件 (Package) 名稱。這個名稱並不區分大小寫。
+ 這是要測試的套件名稱的版本編號。如果尚未指定版本 (null),則支援這個功能的任何版本都會讓這個方法傳回 true。
+
+
+ 取得這個節點的前置或後置節點。
+
+
+ 取得這個節點的後置節點。
+ 這個節點的後置 ,如果這個節點不存在,則為 null。
+
+
+ 取得這個節點的前置節點。
+ 前置的 ,如果這個節點不存在,則為 null。
+
+
+ 表示可用名稱或索引存取的節點集合。
+
+
+ 取得 XmlNamedNodeMap 中的節點數目。
+ 節點的數目。
+
+
+ 提供 XmlNamedNodeMap 中節點集合上「foreach」樣式重複的支援。
+ 列舉程式物件。
+
+
+ 依指定名稱來擷取 。
+ 具有指定名稱的 XmlNode;如果找不到符合的節點,則為 null。
+ 要擷取的節點的限定名稱 (Qualified Name)。它會與符合節點的 屬性相符。
+
+
+ 擷取具有符合的 和 的節點。
+ 具有符合的區域名稱與命名空間 (Namespace) URI 的 ;如果找不到符合的節點,則為 null。
+ 要擷取的節點的區域名稱。
+ 取得要擷取之節點的命名空間統一資源識別元 (URI)。
+
+
+ 擷取 XmlNamedNodeMap 中位於指定索引的節點。
+ 在指定索引處的 。如果 小於 0 或大於等於 屬性,則傳回 null。
+ 從 XmlNamedNodeMap 擷取的節點的索引位置。索引是以零起始的;因此第一個節點的索引為 0,最後一個節點的索引為 -1。
+
+
+ 從 XmlNamedNodeMap 移除節點。
+ 從這個 XmlNamedNodeMap 移除 XmlNode;如果找不到符合的節點,則為 null。
+ 要移除的節點的限定名稱。它會與符合節點的 屬性相符。
+
+
+ 移除具有符合的 和 的節點。
+ 移除 ;如果找不到符合的節點,則為 null。
+ 要移除的節點的區域名稱。
+ 要移除的節點的命名空間 URI。
+
+
+ 使用其 屬性加入 。
+ 如果 取代同名的現有節點,則傳回舊節點;否則傳回 null。
+ 儲存在 XmlNamedNodeMap 中的 XmlNode。如果具有該名稱的節點已經在對應中,就會以新節點取代。
+ 從不同於建立 XmlNamedNodeMap 的 來建立 ;否則 XmlNamedNodeMap 為唯讀。
+
+
+ 表示 XML 文件中的單一節點。
+
+
+ 將指定的節點加入這個節點之子節點清單的結尾。
+ 已加入的節點。
+ 要加入的節點。要加入之節點的所有內容會移入指定的位置。
+ 這個節點的型別不允許 節點型別的子節點。 是這個節點的上階。
+
+ 由不同於建立這個節點的另一份文件所建立。這個節點是唯讀的。
+
+
+ 取得包含這個節點屬性 (Attribute) 的 。
+ XmlAttributeCollection,包含這個節點的屬性。如果這個節點的類型為 XmlNodeType.Element,則傳回這個節點的屬性。否則,這個函式會傳回 null。
+
+
+ 取得目前節點的基底 (Base) URI。
+ 節點載入的位置;如果節點沒有基底 URI,則為 String.Empty。
+
+
+ 取得節點的所有子節點。
+ 物件,包含節點的所有子節點。如果沒有子節點,這個屬性傳回空的 。
+
+
+ 在衍生類別中覆寫時,建立節點的複本。
+ 複製的節點。
+ 若要在指定的節點下遞迴地複製子樹狀結構,則為 true,若只要複製節點本身,則為 false。
+ 在無法複製的節點型別上,呼叫這個方法。
+
+
+ 取得節點的第一個子節點。
+ 節點的第一個子節點。如果沒有這種節點,則會傳回 null。
+
+
+ 取得逐一查看目前節點中子節點的列舉程式。
+
+ 物件,可用來逐一查看目前節點中的子節點。
+
+
+ 查閱目前節點範圍內指定前置詞最接近的 xmlns 宣告,並傳回宣告中的命名空間 URI。
+ 指定前置詞的命名空間 URI。
+ 您要尋找其命名空間 URI 的前置詞。
+
+
+ 查閱目前節點範圍內指定命名空間 URI 最接近的 xmlns 宣告,並傳回宣告中所定義的前置詞。
+ 指定命名空間 URI 的前置詞。
+ 您要尋找其前置詞的命名空間 URI。
+
+
+ 取得值,指出這個節點是否有子節點。
+ 如果該節點有子節點,則為 true,否則為 false。
+
+
+ 取得或設定節點和其所有子節點的串連值。
+ 節點和其所有子節點的串連值。
+
+
+ 取得或設定只表示這個節點之子節點的標記。
+ 這個節點之子節點的標記。注意事項InnerXml 不會傳回預設的屬性。
+ 在不能有子節點的節點上,設定這個屬性。
+ 在設定語式不正確的屬性時所指定的 XML。
+
+
+ 在指定的參考節點之後,插入指定的節點。
+ 要插入的節點。
+ 要插入的 XmlNode。
+ XmlNode 為參考節點。 會置於 之後。
+ 這個節點的型別不允許 節點型別的子節點。 是這個節點的上階。
+
+ 由不同於建立這個節點的另一份文件所建立。 不是這個節點的子節點。這個節點是唯讀的。
+
+
+ 在指定的參考節點之前,插入指定的節點。
+ 要插入的節點。
+ 要插入的 XmlNode。
+ XmlNode 為參考節點。 會置於這個節點之前。
+ 目前這種型別的節點不允許 節點型別的子節點。 是這個節點的上階。
+
+ 由不同於建立這個節點的另一份文件所建立。 不是這個節點的子節點。這個節點是唯讀的。
+
+
+ 取得值,表示節點是否為唯讀。
+ 如果節點是唯讀,則為 true,否則為 false。
+
+
+ 取得具有指定的 的第一個子項目。
+ 符合指定名稱的第一個 。如果沒有相符項目,則傳回 null 參考 (在 Visual Basic 中為 Nothing)。
+ 要擷取的項目的限定名稱 (Qualified Name)。
+
+
+ 取得具有指定的 與 的第一個子項目。
+ 具有符合的 與 的第一個 。.如果沒有相符項目,則傳回 null 參考 (在 Visual Basic 中為 Nothing)。
+ 項目的本機名稱。
+ 項目的命名空間 URI。
+
+
+ 取得節點的最後一個子節點。
+ 節點的最後一個子節點。如果沒有這種節點,則會傳回 null。
+
+
+ 在衍生類別中覆寫時,取得節點的區域名稱。
+ 移除前置詞的節點名稱。例如,LocalName 是項目 <bk:book> 的書本。傳回的名稱需視節點的 而定。類型名稱屬性屬性的本機名稱。CDATA#cdata-section註解#comment文件#documentDocumentFragment#document-fragmentDocumentType文件類型名稱。項目項目的本機名稱。實體實體的名稱。EntityReference所參考的實體名稱。Notation標記法名稱。ProcessingInstruction處理指示的目標。Text#textWhitespace#whitespaceSignificantWhitespace#significant-whitespaceXmlDeclaration#xml-declaration
+
+
+ 在衍生類別中覆寫時,取得節點的限定名稱。
+ 節點的限定名稱。傳回的名稱需視節點的 而定。類型名稱屬性屬性的限定名稱 (Qualified Name)。CDATA#cdata-section註解#comment文件#documentDocumentFragment#document-fragmentDocumentType文件類型名稱。項目項目的限定名稱。實體實體的名稱。EntityReference所參考的實體名稱。Notation標記法名稱。ProcessingInstruction處理指示的目標。Text#textWhitespace#whitespaceSignificantWhitespace#significant-whitespaceXmlDeclaration#xml-declaration
+
+
+ 取得這個節點的命名空間 URI。
+ 這個節點的命名空間 URI。如果沒有命名空間 URI,則這個屬性傳回 String.Empty。
+
+
+ 取得這個節點的後置節點。
+ 下一個 XmlNode。如果沒有前置節點,就會傳回 null。
+
+
+ 在衍生類別中覆寫時,取得目前節點的類型。
+ 其中一個 值。
+
+
+ 使這個 XmlNode 之下子樹狀結構的整個深度中所有 XmlText 節點成為「一般」形式,其中只用標記 (Markup) (亦即標記 (Tag)、註解、處理指示、CDATA 區段與實體參考) 來分隔 XmlText 節點,也就是說,沒有相鄰的 XmlText 節點。
+
+
+ 取得包含這個節點和其所有子節點的標記。
+ 包含這個節點和其所有子節點的標記。注意事項OuterXml 不會傳回預設的屬性。
+
+
+ 取得這個節點所屬的 。
+ 這個節點所屬的 。如果這個節點是 (NodeType 等於 XmlNodeType.Document),則這個屬性傳回 null。
+
+
+ 取得這個節點的父代 (對於具有父代的節點而言)。
+ 目前節點的父代的 XmlNode。如果剛剛建立節點而尚未加入至樹狀結構中,或者已經從樹狀結構中移除,則父代為 null。對於其他所有節點,傳回的值視節點的 而定。下表描述 ParentNode 屬性的可能傳回值。NodeTypeParentNode 的傳回值Attribute、Document、DocumentFragment、Entity、Notation傳回 null;這些節點沒有父代。CDATA傳回包含 CDATA 區段的項目或實體參考。註解傳回項目、實體參考、文件類型或包含註解的文件。DocumentType傳回文件節點。項目傳回項目的父代節點。如果此項目是樹狀結構的根節點,則父代是文件節點。EntityReference傳回項目、屬性或包含實體參考的實體參考。ProcessingInstruction傳回文件、項目、文件類型或包含處理指示的實體參考。Text傳回父代項目、屬性或包含文字節點的實體參考。
+
+
+ 取得或設定這個節點的命名空間前置詞。
+ 這個節點的命名空間前置詞。例如,項目 <bk:book> 的 Prefix 是 bk。如果沒有前置詞,則這個屬性會傳回 String.Empty。
+ 這個節點是唯讀的。
+ 指定的前置詞包含無效的字元。指定的前置詞不正確。指定的前置詞是 "xml",而這個節點的命名空間 URI 不同於 http://www.w3.org/XML/1998/namespace。這個節點是一個屬性,指定的前置詞為「xmlns」,而這個節點的 namespaceURI 與「http://www.w3.org/2000/xmlns/」不同。這個節點是屬性,這個節點的 qualifiedName 是「xmlns」。
+
+
+ 將指定的節點加入這個節點之子節點清單的開頭。
+ 已加入的節點。
+ 要加入的節點。要加入之節點的所有內容會移入指定的位置。
+ 這個節點的型別不允許 節點型別的子節點。 是這個節點的上階。
+
+ 由不同於建立這個節點的另一份文件所建立。這個節點是唯讀的。
+
+
+ 取得這個節點的前置節點。
+ 前置的 XmlNode。如果沒有前置節點,就會傳回 null。
+
+
+ 取得這個節點的前置文字節點。
+ 傳回 。
+
+
+ 移除目前節點的所有子節點和/或屬性。
+
+
+ 移除指定的子節點。
+ 移除的節點。
+ 要移除的節點。
+
+ 不是這個節點的子節點。或者這個節點是唯讀的。
+
+
+ 將子節點 用 節點取代。
+ 被取代的節點。
+ 要放入子節點清單中的新節點。
+ 清單中要被取代的節點。
+ 這個節點的型別不允許 節點型別的子節點。 是這個節點的上階。
+
+ 由不同於建立這個節點的另一份文件所建立。這個節點是唯讀的。 不是這個節點的子節點。
+
+
+ 測試 DOM 實作 (Implementation) 是否實作特定功能。
+ 如果在指定的版本實作這個功能,則為 true,否則為 false。下表說明傳回 true 的組合。功能版本XML1.0 XML2.0
+ 要測試的功能套件 (Package) 名稱。這個名稱並不區分大小寫。
+ 要測試的封裝名稱版本編號。如果沒有指定版本 (null),則支援任何版本的功能,將使這個方法傳回 true。
+
+
+ 如需這個成員的說明,請參閱 。
+ 傳回集合的列舉程式。
+
+
+ 取得或設定節點的值。
+ 傳回值需視節點的 而定:類型值屬性屬性的值。CDATASectionCDATA 區段的內容。註解註解的內容。文件 null. DocumentFragment null. DocumentType null. 項目 null.您可以使用 或 屬性,存取項目節點的值。實體 null. EntityReference null. Notation null. ProcessingInstruction除了目標之外的完整內容。Text文字節點的內容。SignificantWhitespace空白字元。空白字元可以包含一或多個空字元、歸位字元、換行字元或定位字元。Whitespace空白字元。空白字元可以包含一或多個空字元、歸位字元、換行字元或定位字元。XmlDeclaration宣告的內容 (亦即 <?xml 與 ?> 之間的所有內容)。
+ 設定唯讀節點的值。
+ 設定不應該有值的節點值 (例如,Element 節點)。
+
+
+ 在衍生類別中覆寫時,將節點的所有子節點儲存至指定的 。
+ 要儲存的目的 XmlWriter。
+
+
+ 在衍生類別中覆寫時,將目前節點儲存至指定的 。
+ 要儲存的目的 XmlWriter。
+
+
+ 指定節點變更的型別。
+
+
+ 要變更的節點值。
+
+
+ 要插入樹狀結構中的節點。
+
+
+ 要從樹狀結構移除的節點。
+
+
+ 將資料提供給 、、、、 和 。
+
+
+ 初始化 類別的新執行個體。
+ 產生事件的 。
+ 產生事件之 的 舊父代。
+ 產生事件之 的 新父代。
+ 產生事件之 的舊值。
+ 產生事件之 的新值。
+
+ 。
+
+
+ 取得值,表示發生何種節點變更型別。
+ XmlNodeChangedAction 值,說明節點變更事件。XmlNodeChangedAction 值說明Insert已經插入或將插入的節點。移除已經移除或將移除的節點。變更已經變更或將變更的節點。注意事項Action 值在發生事件期間 (之前或之後) 沒有差異。您可以建立個別事件處理常式以處理這兩個執行個體。
+
+
+ 完成作業之後取得 值。
+ 完成作業之後的 ParentNode 值。若是要移除的節點,這個屬性傳回 null。注意事項對於屬性節點,這個屬性傳回 。
+
+
+ 取得節點的新值。
+ 節點的新值。如果節點既不是屬性也不是文字節點,或正在移除節點,則這個屬性會傳回 null。如果在 事件中呼叫屬性,則在順利變更時,NewValue 會傳回節點的值。如果在 事件中呼叫屬性,NewValue 會傳回節點目前的值。
+
+
+ 取得要加入、移除或變更的 。
+ 要加入、移除或變更的 XmlNode,這個屬性絕不會傳回 null。
+
+
+ 取得作業開始之前的 值。
+ 作業開始之前的 ParentNode 值。如果節點沒有父代,這個屬性傳回 null。注意事項對於屬性節點,這個屬性傳回 。
+
+
+ 取得節點的原始值。
+ 節點的原始值。如果節點既不是屬性也不是文字節點,或正在插入節點,則這個屬性會傳回 null。如果在 事件中呼叫屬性,則在順利變更時,OldValue 會傳回節點目前的值 (將取代成新值)。如果在 事件中呼叫屬性,OldValue 會傳回節點變更前的值。
+
+
+ 表示處理 、、、、 和 事件的方法。
+ 事件的來源。
+
+ ,包含事件資料。
+
+
+ 表示排序的節點集合。
+
+
+ 初始化 類別的新執行個體。
+
+
+ 取得 XmlNodeList 中的節點數目。
+ XmlNodeList 中的節點數目。
+
+
+ 取得逐一查看節點集合的列舉值。
+ 用來逐一查看節點集合的列舉值。
+
+
+ 擷取指定索引的節點。
+ 在集合中具有指定的索引的 。如果 大於或等於清單中的節點數目,則傳回 null。
+ 在節點清單中以零起始的索引。
+
+
+ 取得指定之索引位置的節點。
+ 在集合中具有指定的索引的 。如果索引大於或等於清單中節點的數目,則會傳回 null。
+ 在節點清單中以零起始的索引。
+
+
+ 私下處置節點清單中的資源。
+
+
+ 釋放 類別所使用的所有資源。
+
+
+ 表示處理指示,其中 XML 定義將處理器特定資訊保存在文件的文字中。
+
+
+ 初始化 類別的新執行個體。
+ 處理指示的目標;請參閱 屬性。
+ 指示的內容;請參閱 屬性。
+ 父代 XML 文件。
+
+
+ 建立這個節點的複本。
+ 重複的節點。
+
+若要在指定的節點下遞迴地複製子樹狀結構,則為 true,若只要複製節點本身,則為 false。
+
+
+ 取得或設定處理指示的內容,目標除外。
+ 處理指示的內容,目標除外。
+
+
+ 取得或設定節點的串連值和其所有的子節點。
+ 節點的串連值和其所有的子節點。
+
+
+ 取得節點的區域名稱。
+ 對於處理指示程式碼,這個屬性傳回處理指示的目標。
+
+
+ 取得節點的限定名稱。
+ 對於處理指示程式碼,這個屬性傳回處理指示的目標。
+
+
+ 取得目前節點的類型。
+ 對於 XmlProcessingInstruction 節點,這個值是 XmlNodeType.ProcessingInstruction。
+
+
+ 取得處理指示的目標。
+ 處理指示的目標。
+
+
+ 取得或設定節點的值。
+ 處理指示的完整內容,目標除外。
+ Node is read-only.
+
+
+ 將節點的所有子系儲存到指定的 。因為 ProcessingInstruction 節點沒有子節點,所以這個方法不會有任何效果。
+ 要儲存的目標 XmlWriter。
+
+
+ 將節點儲存至指定的 。
+ 要儲存的目標 XmlWriter。
+
+
+ 表示混合內容節點中標記間的空白區,或 xml:space= 'preserve' 範圍內的空白區。這個也可以稱為顯著的空白。
+
+
+ 初始化 類別的新執行個體。
+ 節點的空白字元。
+
+ 物件。
+
+
+ 建立這個節點的複本。
+ 複製的節點。
+ 若要在指定的節點下遞迴地複製子樹狀結構,則為 true,若只要複製節點本身,則為 false。對於顯著的空白節點,不論參數設定為何,複製的節點永遠會包含資料值。
+
+
+ 取得節點的區域名稱。
+ 對於 XmlSignificantWhitespace 節點,這個屬性傳回 #significant-whitespace。
+
+
+ 取得節點的限定名稱。
+ 對於 XmlSignificantWhitespace 節點,這個屬性傳回 #significant-whitespace。
+
+
+ 取得目前節點的類型。
+ 對於 XmlSignificantWhitespace 節點,這個值為 XmlNodeType.SignificantWhitespace。
+
+
+ 取得目前節點的父節點。
+ 目前節點的 父節點。
+
+
+ 取得這個節點的前置文字節點。
+ 傳回 。
+
+
+ 取得或設定節點的值。
+ 節點中找到的空白字元。
+ 將 Value 設定為無效的空白字元。
+
+
+ 將節點的所有子系儲存到指定的 。
+ 要儲存的目的 XmlWriter。
+
+
+ 將節點儲存至指定的 。
+ 要儲存的目的 XmlWriter。
+
+
+ 表示項目或屬性的文字內容。
+
+
+ 初始化 類別的新執行個體。
+ 節點的內容;請參閱 屬性。
+ 父代 XML 文件。
+
+
+ 建立這個節點的複本。
+ 複製的節點。
+ 若要在指定的節點下遞迴地複製子樹狀結構,則為 true,若只要複製節點本身,則為 false。
+
+
+ 取得節點的區域名稱。
+ 對於文字節點,這個屬性傳回 #text。
+
+
+ 取得節點的限定名稱。
+ 對於文字節點,這個屬性傳回 #text。
+
+
+ 取得目前節點的類型。
+ 對於文字節點,這個值為 XmlNodeType.Text。
+
+
+
+ 取得這個節點的前置文字節點。
+ 傳回 。
+
+
+ 在指定的位移將這個節點分隔成兩個節點,使這兩個節點在樹狀結構中都保持同層級 (Sibling)。
+ 新節點。
+ 分隔節點的位移。
+
+
+ 取得或設定節點的值。
+ 文字節點的內容。
+
+
+ 將節點的所有子系儲存到指定的 。XmlText 節點沒有子系,所以這個方法不會有任何效果。
+ 要儲存的目的 XmlWriter。
+
+
+ 將節點儲存至指定的 。
+ 要儲存的目的 XmlWriter。
+
+
+ 表示項目內容中的空白。
+
+
+ 初始化 類別的新執行個體。
+ 節點的空白字元。
+
+ 物件。
+
+
+ 建立這個節點的複本。
+ 複製的節點。
+ 若要在指定的節點下遞迴地複製子樹狀結構,則為 true,若只要複製節點本身,則為 false。對於空白節點,不論參數設定為何,複製的節點永遠會包含資料值。
+
+
+ 取得節點的區域名稱。
+ 對於 XmlWhitespace 節點,這個屬性傳回 #whitespace。
+
+
+ 取得節點的限定名稱。
+ 對於 XmlWhitespace 節點,這個屬性傳回 #whitespace。
+
+
+ 取得節點的類型。
+ 對於 XmlWhitespace 節點,值為 。
+
+
+ 取得目前節點的父節點。
+ 目前節點的 父節點。
+
+
+ 取得這個節點的前置文字節點。
+ 傳回 。
+
+
+ 取得或設定節點的值。
+ 節點中找到的空白字元。
+ 將 設定為無效的空白字元。
+
+
+ 將節點的所有子系儲存到指定的 。
+ 要儲存的目的 。
+
+
+ 將節點儲存至指定的 。
+ 要儲存的目的 。
+
+
+
\ No newline at end of file
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/xamarinios10/_._ b/packages/System.Xml.XmlDocument.4.3.0/ref/xamarinios10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/xamarinmac20/_._ b/packages/System.Xml.XmlDocument.4.3.0/ref/xamarinmac20/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/xamarintvos10/_._ b/packages/System.Xml.XmlDocument.4.3.0/ref/xamarintvos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/System.Xml.XmlDocument.4.3.0/ref/xamarinwatchos10/_._ b/packages/System.Xml.XmlDocument.4.3.0/ref/xamarinwatchos10/_._
new file mode 100644
index 0000000..e69de29
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/.signature.p7s b/packages/Zebra.Printer.SDK.2.15.2634/.signature.p7s
new file mode 100644
index 0000000..ec88d69
Binary files /dev/null and b/packages/Zebra.Printer.SDK.2.15.2634/.signature.p7s differ
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/Zebra.Printer.SDK.2.15.2634.nupkg b/packages/Zebra.Printer.SDK.2.15.2634/Zebra.Printer.SDK.2.15.2634.nupkg
new file mode 100644
index 0000000..c82ef99
Binary files /dev/null and b/packages/Zebra.Printer.SDK.2.15.2634/Zebra.Printer.SDK.2.15.2634.nupkg differ
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/monoandroid51/SdkApi.Core.dll b/packages/Zebra.Printer.SDK.2.15.2634/lib/monoandroid51/SdkApi.Core.dll
new file mode 100644
index 0000000..05b0e1e
Binary files /dev/null and b/packages/Zebra.Printer.SDK.2.15.2634/lib/monoandroid51/SdkApi.Core.dll differ
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/monoandroid51/SdkApi.Core.xml b/packages/Zebra.Printer.SDK.2.15.2634/lib/monoandroid51/SdkApi.Core.xml
new file mode 100644
index 0000000..7a6f633
--- /dev/null
+++ b/packages/Zebra.Printer.SDK.2.15.2634/lib/monoandroid51/SdkApi.Core.xml
@@ -0,0 +1,8999 @@
+
+
+
+ SdkApi.Core
+
+
+
+
+ Takes in a certificate file (P12, DER, PEM, etc) and processes it into a ZebraCertificateInfo object which contains
+ the selected certificate, Certificate Authority certificate chain, and private key (if applicable).
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Takes in a certificate file (P12, DER, PEM, etc) and processes it into a ZebraCertificateInfo object which contains
+ the selected certificate, Certificate Authority certificate chain, and private key (if applicable).
+
+ Data stream for the certificate file to be processed.
+ The certificate to use within a multi-certificate (like PKCS12) file.
+ Used to unlock a protected certificate file.
+ Instance containing all certificate and key information for the processed file.
+ If there is an issue reading the certificate file.
+ If there is an issue processing the certificate file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Signals that an error occurred while converting a certificate.
+
+
+
+
+ Constructs a ZebraCertificateConversionException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a ZebraCertificateConversionException with message as the detailed error
+ message and cause as the underlying exception.
+
+ User defined message for the exception.
+ What created the exception.
+
+
+
+ Handler class for managing certificate and private key information.
+
+
+
+
+ The file name on a printer to which a private key must be saved for wireless security.
+
+
+
+
+ The file name on a printer to which a wireless ca must be saved for wireless security.
+
+
+
+
+ The file name on a printer to which a client cert must be saved for wireless security.
+
+
+
+
+ Initializes a new instance of the ZebraCertificateInfo class.
+
+
+
+
+ Returns the CA Certificate chain.
+
+ CA Certificate chain in PEM format.
+
+
+
+ Contains the client certificate, if set.
+
+
+
+
+ Contains the Certificate Authority certificate chain, if set.
+
+
+
+
+ Contains the private key, if set.
+
+
+
+
+ A utility class used to extract info from certificate files and convert the contents into Zebra friendly formats.
+
+
+
+
+
+ Creates a wrapper that opens up the provided certificate keystore stream.
+
+ The stream containing certificate keystore file contents.
+ The password used to access the certificate file.
+ Thrown if the certificate stream contents cannot be accessed or if the
+ certificate password was incorrect.
+
+
+
+ Get a list of aliases present in the certificate keystore.
+
+ A list of the aliases present in the certificate keystore.
+ If the keystore has not been initialized (loaded).
+
+
+
+ Get the content of the first entry in the certificate's certificate chain.
+
+ The returned content is converted to PEM format. The resulting content can be stored to a printer for use
+ with wireless security. Since no alias is provided, the first entry in the certificate file will be used.
+ The Zebra-friendly certificate content
+ If the provided alias does not exist or the certificate content is corrupt
+
+
+
+ Get the content of the first entry in the certificate's certificate chain.
+
+ The returned content is converted to PEM format. The resulting content can be stored to a printer for use
+ with wireless security.
+ The alias name of the specific entry to extract from the certificate file.
+ The Zebra-friendly certificate content.
+ If the provided alias does not exist or the certificate content is corrupt
+
+
+
+ Get the content of the ca, which is determined to be all entries in the certificate chain after the first entry.
+
+ The returned ca is converted to PEM format. The resulting content can be stored to a printer for use with
+ wireless security. Since no alias is provided, the first entry in the certificate file will be used.
+ The Zebra-friendly ca content.
+ If the provided alias does not exist or the ca content is corrupt.
+
+
+
+ Get the content of the ca, which is determined to be all entries in the certificate chain after the first entry.
+
+ The returned ca is converted to PEM format. The resulting content can be stored to a printer for use with
+ wireless security.
+ The alias name of the specific entry to extract from the certificate file.
+ The Zebra-friendly ca content.
+ If the provided alias does not exist or the ca content is corrupt.
+
+
+
+ Get the encrypted private key content.
+
+ The returned key is encrypted and converted to PEM format. The resulting content can be stored
+ to a printer for use with wireless security.Since no alias is provided, the first entry in the certificate
+ file will be used. Note: Any printer using the generated private key must also be configured to use the
+ password provided here to encrypt the private key.Send the following command to the printer to configure
+ it to use a private key encryption password: ! U1 setvar "wlan.private_key_password" "value".
+ The password used to encrypt the resulting private key.
+ The encrypted private key in PEM format.
+ If the provided alias does not exist, certificate password is
+ incorrect, or private key content is corrupt.
+
+
+
+ Get the encrypted private key content.
+
+ The resulting content can be stored to a printer for use with wireless security.
+ Note: Any printer using the generated private key must also be configured to use the provided password to
+ encrypt the private key. Send the following command to the printer to configure it to use a private key
+ encryption password: ! U1 setvar "wlan.private_key_password" "value".
+ The alias name of the specific entry to extract from the certificate file.
+ The password used to encrypt the resulting private key.
+ The encrypted private key in PEM format.
+ If the provided alias does not exist, certificate password is
+ incorrect, or private key content is corrupt.
+
+
+
+ Get the common name of the client certificate associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The certificate common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the client certificate associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The certificate common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the CA associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The CA common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the CA associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file
+ The CA common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the expiration data of the client certificate associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The client certificate expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the client certificate associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The client certificate expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the CA associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The CA expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the CA associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The CA expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the algorithm used by the private key.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The private key algorithm.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the algorithm used by the private key.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The private key algorithm.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the issuer of the client certificate.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The client certificate issuer.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the issuer of the client certificate.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The client certificate issuer.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Gets the keystore of the processed client certificate.
+
+ The Pkcs12Store containing information about the processed certificate file.
+
+
+
+ A connection to a device.
+
+
+
+
+ Opens the connection to a device.
+
+
+ If the open method is called when this connection has already been
+ opened, this call is ignored. When a handle to the connection is no longer needed, you must call
+ to free up system resources.
+
+ If the connection cannot be established.
+
+
+
+ Closes this connection and releases any system resources associated with the connection.
+
+ If the connection is already closed then invoking this method has no effect.
+ If an I/O error occurs.
+
+
+
+ Writes data.Length bytes from the specified byte array to this output stream.
+
+
+ The connection must be open before this method is called. If write is called when a connection is closed, a
+ ConnectionException is thrown.
+
+ Data to write
+ If an I/O error occurs.
+
+
+
+ Writes length bytes from data starting at offset.
+
+
+ The connection must be open before this method is called. If Write is called when a
+ connection is closed, a ConnectionException is thrown.
+
+ The data.
+ The start offset in the data.
+ The number of bytes to write.
+ if an I/O error occurs.
+
+
+
+ Writes all available bytes from the data source to this output stream.
+
+
+ The connection must be open before this method is called. If write is called when a connection is closed,
+ a ConnectionException is thrown.
+
+ The data.
+ If an I/O error occurs.
+
+
+
+ Reads all the available data from the connection. This call is non-blocking.
+
+ Data read from the connection.
+ If an I/O error occurs.
+
+
+
+ Reads the next byte of data from the connection.
+
+
+ The value byte is returned as an int in the range of 0 to 255. If no byte is available on the
+ connection the value -1 is returned.
+
+ The next byte from the connection.
+ If an I/O error occurs.
+
+
+
+ Reads all the available data from the connection.
+
+ This call is non-blocking.
+ For read data.
+ If an I/O error occurs.
+
+
+
+ Returns true if the connection is open.
+
+
+
+
+ Returns an estimate of the number of bytes that can be read from this connection without blocking.
+
+ The estimated number of bytes available.
+ If an I/O error occurs.
+
+
+
+ See the classes which implement this method for the format of the description string.
+
+ The connection description string.
+
+
+
+ Gets a human-readable description of the connection.
+
+
+
+
+ Causes the currently executing thread to sleep until > 0, or for a maximum of
+ maxTimeout milliseconds.
+
+ The maximum time in milliseconds to wait for an initial response from the printer.
+ If an I/O error occurs.
+
+
+
+ Gets or sets the maximum time, in milliseconds, to wait for any data to be received.
+
+
+
+
+ Gets or sets the maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+
+ Sends dataToSend and returns the response data.
+
+
+ The software returns immediately if the data received contains terminator. The connection must be open before this method
+ is called. If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Byte array of data to send
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function returns a zero length array.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response contains this string, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response is always terminated with a known string. Use null
+ if no terminator is desired.
+ The received data.
+ If an I/O error occurs.
+
+
+
+ Sends data from sourceStream and writes the response data to destinationStream.
+
+
+ The software returns immediately if the data received contains terminator. The connection must be open before this method
+ is called. If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Destination for response.
+ Source of data to be sent.
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function does not write any data to the destination stream.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response contains this string, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response is always terminated with a known string. Use null
+ if no terminator is desired.
+ If an I/O error occurs.
+
+
+
+ Sends dataToSend and returns the response data.
+
+
+ The software returns immediately if the data received satisfies validator. The connection must be open before this method is called.
+ If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Byte array of data to send
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function returns a zero length array.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response satisfies this validator, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response follows a known format.
+ received data
+ If an I/O error occurs.
+
+
+
+ Sends data from sourceStream and writes the response data to destinationStream.
+
+
+ The software returns immediately if the data received satisfies validator. The connection must be open before this method is called.
+ If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Destination for response.
+ Source of data to be sent.
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function does not write any data to the destination stream.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response satisfies this validator, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response follows a known format.If validator is null, no validation is performed.
+ When performing validation, this method will use enough memory to hold the entire response.
+ If an I/O error occurs.
+
+
+
+ Returns a ConnectionReestablisher which allows for easy recreation of a connection which may have been closed.
+
+ This call should be made while there is still an active connection to the printer (prior to issuing a command which will make the printer non-responsive).
+ How long the Connection reestablisher will wait before attempting to reconnection to the printer.
+ Instance of
+ If the ConnectionReestablisher could not be created.
+
+
+
+ Abstract class which implements the default functionality of Connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ This call is non-blocking.
+ number of bytes to read
+ the bytes read from the connection
+ if an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sets the stream to log the write data to.
+
+ The stream to log the data to.
+
+
+
+ Log data sent to printer by sending to the WriteLogStream, if present
+
+ The data written to connection, send to log stream
+ The start offset in the buffer.
+ The number of bytes to write
+
+
+
+
+ Gets or sets the maximum number of bytes to write at one time
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ number of bytes to read
+ true to exit on first data read
+ the bytes read from the connection.
+ if an I/O error occurs.
+
+
+
+ See the classes which implement this property for the format of the printer manufacturer string.
+
+
+
+
+
+
+
+
+
+
+ Sets the underlying read timeout value.
+
+ The read timeout in milliseconds.
+ If an error occurs while attempting to set the read timeout.
+
+
+
+ For printers that support both Status and Printing channel (Link OS printers).
+
+
+
+
+ The status channel of a connection.
+
+
+
+
+ The printing channel of a connection.
+
+
+
+
+ Signals that an error has occurred on the connection.
+
+
+
+
+ onstructs a ConnectionException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a ConnectionException with cause as the source of the exception.
+
+ The cause of the exception.
+
+
+
+ Constructs a ConnectionException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception.
+
+
+
+ Defines methods used to reestablish a connection to a printer which may have been closed.
+
+
+
+
+ Reestablishes a connection to a printer which may have been closed due to an event, like a reboot.
+
+ Handles recreating and opening a connection to a printe.r
+ If the printer cannot be found.
+ If the connection can not be created or open.
+ If a connection can not be reestablished after a defined timeout
+ If the connection can not talk to the printer.
+
+
+
+ Abstract class which implements the default functionality of StatusConnection.
+
+
+
+
+
+
+
+
+ A connection to a device that copies data sent to the connection to the provided stream.
+
+
+
+
+ Sets the stream to log the write data to.
+
+ Log all write data to this stream.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ Number of bytes to read.
+ True to return on first read.
+ The bytes read from the printer.
+ If an I/O error occurs.
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ Number of bytes to read.
+ The bytes read from the printer.
+ If an I/O error occurs
+
+
+
+ Gets or sets the maximum number of bytes to write at one time.
+
+
+
+
+ Returns the printer manufacturer name.
+
+
+
+
+ Sets the underlying read timeout value.
+
+ The timeout in milliseconds.
+ If an I/O error occurs
+
+
+
+ A wrapper class containing information about a connection.
+
+
+
+
+
+
+ The connection string
+
+
+
+
+
+ The data of the connection info
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Writes a byte stream representation of the file to destination.
+
+
+ Currently all files are retrieved in binary mode.
+
+ Stream to receive the contents of the file.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+ the error message
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UnknownHostException
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sets the sockets read/block timeout.
+
+ Timeout in ms
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An interface defining methods associated with a device that may be addressed via an IP connection.
+
+
+
+
+ Returns the address which was passed into the constructor.
+
+ the address used to establish this connection. This can be either a DNS Hostname or an IP address.
+
+
+
+ Returns the port number which was passed into the constructor.
+
+ the port number associated with the connection.
+
+
+
+ Signals that an error has occurred while writing to the connections log stream.
+
+
+
+
+ Constructs a LogStreamException with message as the detailed error message.
+
+ the error message.
+
+
+
+ Base class for Link-OS printers which support separate printing and status channels.
+
+
+ This class conforms to a standard and if only the Connection methods are used, the SDK will attempt to open
+ both the printing and status channels. A will use the raw Connection when a method is called directly.
+ Furthermore, when using a in conjunction with a , the will
+ attempt to use whichever connection is the most efficient. If you wish to only open up a specific channel, use either the
+ or
+ method and their corresponding
+ and
+ method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Opens both the printing and status channel of this Multichannel connection.
+
+
+ If neither channel can be opened, then a is thrown. When this Multichannel connection is no longer needed, you must
+ call to free up system resources.
+
+
+
+
+
+ Opens the printing channel of this Multichannel connection.
+
+
+ If this method is called when this channel has already been opened, the call is ignored. When this channel is no longer needed, you must call either
+ or to free up system resources.
+
+ if the connection cannot be established.
+
+
+
+ Opens the status channel of this Multichannel connection.
+
+
+ If this method is called when this channel has already been opened, the call is ignored. When this channel is no longer needed, you must call either
+ or to free up system resources.
+
+ if the connection cannot be established.
+
+
+
+ Closes both the printing and status channels of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+
+
+
+
+ Closes the printing channel of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+ if an I/O error occurs.
+
+
+
+ Closes the status channel of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+ if an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the underlying printing of this MultichannelConnection.
+
+
+
+
+ Gets the underlying status of this MultichannelConnection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes a Multichannel TCP connection to a device.
+
+
+
+
+
+ The default Multichannel printing port for Link-OS devices.
+
+
+
+
+ The default Multichannel status port for Link-OS devices.
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data to be
+ received. If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ or
+
+
+ The discovered printer.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels. The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete. If you wish to specify different timeouts for each channel, use
+
+
+ The discovered printer.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels. The timeout is a maximum of
+ printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds for any data to be received on the printing/status
+ channels respectively.If no more data is available after printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData
+ milliseconds on the printing/status channels respectively the read operation is assumed to be complete.
+
+ The discovered printer.
+ The maximum time, in milliseconds, to wait for any data to be received on the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the status channel.
+ If discoveredPrinter is not a valid Link-OS printer.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any
+ data to be received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ or
+
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels. The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received.If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete. If you wish to specify different timeouts for each channel, use
+
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels. The timeout is a maximum of
+ printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds for any data to be received on the printing/status
+ channels respectively.If no more data is available after printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData
+ milliseconds on the printing/status channels respectively the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+ The maximum time, in milliseconds, to wait for any data to be received on the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the status channel.
+
+
+
+
+
+
+
+
+
+
+ The Address, PrintingPort, and StatusPort are the parameters which were passed into the constructor.
+
+ TCP_MULTI:[Address]:[PrintingPort]:[StatusPort]
+
+
+
+ Return the IP address as the description.
+
+
+
+
+
+ An interface defining a method to validate whether a response from the printer is complete.
+
+
+
+
+ Provide a method to determine whether a response from the printer is a complete response.
+
+ string to be validated
+ true if the string is a complete response
+
+
+
+ A status connection to a Link-OS printer. The status connection requires Link-OS firmware 2.5 or higher. This
+ connection will not block the printing channel, nor can it print.
+
+
+
+
+ A status connection to a Link-OS printer. The status connection requires Link-OS firmware 2.5 or higher. This
+ connection will not block the printing channel, nor can it print.It copies data sent to the connection to the
+ provided stream.
+
+
+
+
+ Sets the stream to log the write data to.
+
+ Log all write data to this stream.
+
+
+
+ Establishes a TCP connection to a device.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ The default TCP port for ZPL devices.
+
+
+
+
+ The default TCP port for CPCL devices.
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the TcpConnection class.
+
+
+ This constructor will use the default
+ timeouts for . The default timeout is a maximum of 5 seconds for any data to be
+ received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ .
+
+ the IP Address or DNS Hostname.
+ the port number.
+
+
+
+ Initializes a new instance of the TcpConnection class.
+
+
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after
+ timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Exposed this protected constructor for testing. We can pass in a mock Connector rather than the specific one
+
+
+
+
+ Returns TCP:[Address]:[PortNumber].
+
+ The address and port number are the parameters which were passed into the constructor.
+
+
+
+
+ Gets the IP address as the description.
+
+
+
+
+
+
+
+
+
+
+
+ Sets the read timeout on the underlying socket.
+
+ The read timeout in milliseconds
+
+
+
+
+
+
+
+
+
+ Establishes a status only TCP connection to a device
+
+
+
+
+
+ The default Status TCP port for ZPL devices.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class using the default status port of 9200.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data to be received.
+ If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The IP Address or DNS Hostname.
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data
+ to be received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The IP Address or DNS Hostname.
+ The port number.
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class.
+
+
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ The address and port number are the parameters which were passed into the constructor.
+
+ TCP_STATUS:[address]:[port number]
+
+
+
+ Returns the IP address and the status port as the description.
+
+
+
+
+
+ An interface used to control and obtain various properties of a device.
+
+
+
+
+ This is an utility class for performing file operations on a device.
+
+
+
+
+
+ Sends the contents of a file to the device.
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.lbl").
+ Note: If the file contains data which will trigger a response from the printer (e.g. JSON formatted settings), this method
+ will not clear the response from the buffer. This may cause subsequent method calls to fail unpredictably. Clear the read buffer
+ of the connection manually by calling Read() if this is applicable.
+ If there is an issue communicating with the device (e.g. the connection is not
+ open).
+
+
+
+ Sends the contents of a file to the device.
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.lbl").
+ Callback to update on progress
+ Note: If the file contains data which will trigger a response from the printer (e.g. JSON formatted settings), this method
+ will not clear the response from the buffer. This may cause subsequent method calls to fail unpredictably. Clear the read buffer
+ of the connection manually by calling Read() if this is applicable.
+ If there is an issue communicating with the device (e.g. the connection is not
+ open).
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+ List of file names.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+ This method only returns files which have one of the extensions in extensions.
+ The extensions to filter on.
+ List of file names.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Retrieves the properties of the objects which are stored on the device.
+
+ The list of objects with their properties.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Utility class for performing file operations on a Zebra Link-OS™ printer.
+
+
+
+
+ Retrieves storage information for all of the printer's available drives.
+
+ A list of objects detailing information about the printer's available drives.
+
+
+
+
+ Stores the file on the printer using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead. These commands include download commands and any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ If there is an error connecting to the device.
+ If there is an issue reading the file
+ If filePath cannot be used to create a printer file name.
+
+
+
+ Stores the file on the printer at the specified location and name using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead. These commands include download commands and any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+ If there is an issue reading the file
+ If fileNameOnPrinter is not a legal printer file name.
+
+
+
+ Stores a file on the printer named fileNameOnPrinter with the file contents from
+ fileContents using any required file wrappers.
+
+
+ If the fileContents contains any commands which need to be processed by the printer,
+ use instead. These commands include download commands and any immediate
+ commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF, ~JG, ~JI,
+ ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The contents of the file to store.
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+ If fileNameOnPrinter is not a legal printer file name.
+
+
+
+ Deletes the file from the printer. The filePath may also contain wildcards.
+
+ The location of the file on the printer. Wildcards are also accepted (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error connecting to the device.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ The file contents
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system and writes the contents of that file to destinationStream.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ Output stream to receive the file contents
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system via FTP and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+ NOTE: This method retrieves files over a network protocol and hence will only work over a TCP connected
+ printer with FTP enabled. If ftpPassword is not provided, a default will be tried.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ The password used to login to FTP, if null, a default password ("1234") will be used.
+ The file contents.
+ If there is an error communicating with the printer, or the ftpPassword is invalid
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system via FTP and writes the contents of that file to destinationStream.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+ NOTE: This method retrieves files over a network protocol and hence will only work over a TCP connected
+ printer with FTP enabled. If ftpPassword is not provided, a default will be tried.
+
+ The output stream to receive the file contents
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ The password used to login to FTP, if null, a default password ("1234") will be used.
+ If there is an error communicating with the printer, or the ftpPassword is invalid
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte array including
+ all necessary file wrappers for redownloading to a Zebra printer.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ A Zebra printer downloadable file content.
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ A class used to assemble a profile efficiently.
+
+
+
+
+ Prepares the destination stream to receive the profile data.
+
+
+ This method must be called prior to calling any other method in this class.
+
+ The stream in which to put the profile.
+ must be called to get a valid profile in the destinationStream.
+
+
+
+
+ Method to add settings data to a profile.
+
+
+ The profile expects settings data to be valid JSON and of the form of the allconfig response.
+
+ The stream containing the settings data.
+ If there is an error adding settings to the profile.
+
+
+
+ Method to add alerts to a profile.
+
+ The stream containing the alerts data.
+ If there is an error adding alerts to the profile.
+
+
+
+ Adds data to supplement an existing printer profile.
+
+
+ Any supplemental data added to a profile, upon loading the profile, will be sent to the
+ printer after all other profile components have been applied.
+
+ The stream containing the supplement data.
+ If there is an error adding the supplement to the profile.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ The desired display name of the firmware file.
+ The stream containing the firmware.
+ If there is an error adding firmware to the profile.
+
+
+
+ Adds user files to the profile.
+
+ Files to add to the profile. Each file entry should contain the desired file name
+ and the a stream of the file's content.
+ If there is an error adding files to the profile.
+
+
+
+
+
+
+
+
+
+
+ Flushes remaining profile data to prepare the destination stream for closing.
+
+
+ This method must be called when you are done assembling all the parts of your profile,
+ and should only be invoked once.
+
+
+
+
+ Handler to retrieve the parts of the profile.
+
+
+
+
+
+ Callback fired when settings are retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the settings
+
+
+
+ Callback fired when alerts are retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the alerts
+
+
+
+ Callback fired when firmware is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the firmware
+
+
+
+ Callback fired when the firmware display name is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the firmware display name
+
+
+
+ Callback fired when the supplement is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the supplement
+
+
+
+ Callback fired when a file is retrieved from a profile.
+
+ This will be called once for each user file in the profile.
+ The file name
+ The profile stream.
+ If there is an error retrieving the file
+
+
+
+ A class used to disassemble a profile efficiently.
+
+
+
+
+ Disassembles the profile and notifies the handler for all the profile parts.
+
+ The profile source stream.
+ Callback to retrieve the parts of the profile.
+ If there is an error disassembling the profile.
+
+
+
+ Provides access to the magnetic card reader, for devices equipped with one.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Activates the device's magnetic card reader, if present, and waits for a card to be swiped.
+
+
+ If the device does not have a reader the call will timeout.
+
+ The amount of time in milliseconds to enable the reader and wait for a card to be swiped.
+ An array of three strings corresponding to the tracks of the card. If a track could not be read that
+ string will be empty.
+
+
+
+ A class used to determine if a base has MagCard reader capabilities.
+ Not all Zebra printers are available with built-in readers.
+
+
+
+
+ Creates an instance of a Magcard reader, if available.
+
+ Base Zebra Printer that may or may not have MagCard reader capabilities.
+ An instance of a MagCardReader object or null if the base printer does not have MagCard reader hardware installed.
+
+
+
+ Interface to access the contents of a .zprofile file.
+
+
+
+
+
+ Create a Profile object backed by an existing .zprofile file.
+
+ Path to the profile file.
+ If the file pathToProfile does not exist.
+
+
+
+ Adds data to supplement an existing printer profile.
+
+
+ Any supplemental data added to a profile, upon loading the profile, will be sent to the printer
+ after all other profile components have been applied.
+
+ Byte array containing the data to be used to supplement the printer profile.
+ If there is an error writing to the .zprofile file.
+
+
+
+ Returns the supplement data within the profile.
+
+ The supplement data within the profile.
+ If there is an error writing to the .zprofile file.
+ If the .zprofile file cannot be found.
+
+
+
+ This method is not valid for a profile.
+
+
+ If this method is called.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ Full path to the firmware file to be added to the profile.
+ If there is an error reading pathToFirmwareFile or if there
+ is an error writing to the.zprofile file.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ The name of the firmware file
+ The firmware file contents
+ If there is an error reading pathToFirmwareFile or if there
+ is an error writing to the.zprofile file.
+
+
+
+ Removes the firmware file from the profile.
+
+ If there is an error removing the firmware file from the .zprofile file.
+
+
+
+ Returns the file name of the firmware file within the profile.
+
+ The file name of the firmware file within the profile.
+ If there is an error removing the firmware file from the .zprofile file.
+ If the firmware file cannot be found in the .zprofile file.
+
+
+
+
+
+
+ Retrieve all of the setting identifiers for a profile.
+
+
+ These are the IDs that may be used as keys for retrieving and updating settings for a profile.
+
+ Set of identifiers available for a profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+
+ Retrieves the profile's setting value for a setting id.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieves the profile's setting values for a list of setting ids.
+
+ List of setting ids.
+ The settings' values.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieves all of the profile's setting values.
+
+ Values of all the settings provided by the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Change the value of the setting in the profile to the given value.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the setting is read only, does not exist, or if the setting could not be set.
+
+
+
+ Set more than one setting.
+
+ Map a setting ID to the new value for the setting.
+ If there is an error communicating with the printer.
+ If the settings cannot be saved in the profile.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Retrieve the values of all the settings that are archivable.
+
+ Values of all the settings with the archivable attribute that are in the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Retrieve the values of all the settings that are clonable.
+
+ Values of all the settings with the clonable attribute that are in the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Retrieves the profile's for a setting id.
+
+ The setting id.
+ The
+ If there is an error communicating with the printer.
+ If the setting could not be retrieved.
+
+
+
+ Change the setting in the profile.
+
+ The setting id.
+ The setting.
+ If there is an error communicating with the printer.
+ If the setting is malformed, or if the setting could not be set.
+
+
+
+ Change settings in the profile.
+
+ The settings to change
+ If there is an error communicating with the printer.
+ If a setting is malformed, or one or more settings could not be set.
+
+
+
+ Change or retrieve settings in the profile.
+
+ The settings to change.
+ results of the setting commands
+ If there is an error communicating with the printer.
+ If the setting is malformed, or if the setting could not be set.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A list of objects detailing the alert configurations in a profile.
+
+ A list of alert objects currently in a profile.
+ If the alerts could not be extracted from the profile.
+
+
+
+
+
+
+
+
+
+ Removes a configured alert from a profile.
+
+ They may be reconfigured via the setAlert methods.
+ The alert to be removed from the configuration.
+ If an I/O error occurs.
+
+
+
+ Removes all alerts currently in a profile.
+
+ They may be reconfigured via the setAlert(s) methods.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ This method is not valid for a profile.
+
+ Path to the file containing the data to send.
+ If this method is called.
+
+
+
+ This method is not valid for a profile.
+
+ Path to the file containing the data to send.
+ Progress monitor callback handler.
+ If this method is called.
+
+
+
+ Adds a file to the profile named fileNameOnPrinter with the file contents from
+ fileContents.
+
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ The contents of the file to send.
+ If an I/O error occurs.
+
+
+
+ Retrieves the names of the files which are in the profile.
+
+ List of file names.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+
+ This method only returns files which have one of the extensions in extensions.
+
+ The extensions to filter on.
+ List of file names.
+
+
+
+ Stores the file in the profile using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ If there is an error connecting to the device.
+ If filePath cannot be used to create a printer file name.
+
+
+
+ Stores the file in the profile at the specified location and name using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+
+
+
+ Stores a file in the profile named fileNameOnPrinter with the file contents from
+ fileContents using any required file wrappers.
+
+
+ If the fileContents contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The contents of the file to store.
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+
+
+
+ Deletes the file from the profile. The filePath may also contain wildcards.
+
+ The location of the file on the printer. Wildcards are also
+ accepted (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error accessing the profile.
+
+
+
+ Retrieves a file from the profile and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, BAE, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ The file contents
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+
+
+
+ This method is not valid for a profile.
+
+ NA
+ NA
+ NA
+ If this method is called.
+
+
+
+ This method is not valid for a profile.
+
+ NA
+ NA
+ NA
+ If this method is called.
+
+
+
+ Retrieves a file from the profile and returns the contents of that file as a byte array including all necessary
+ file wrappers for re-downloading to a Zebra printer.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, BAE, TXT
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ A Zebra printer downloadable file content.
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+
+
+
+ Class which allows you to store a zprofile to a mirror server.
+
+
+
+
+ Creates an instance of a class which can be used to store a profile onto a mirror server.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile).
+ If an I/O error occurs.
+
+
+
+ Stores the profile to the mirror server.
+
+
+ This method also deletes all files in appl/, commands/, and files/ directory before storing
+ the contents of the profile in the proper directories.
+
+ The FTP server path.
+ The FTP user name. (The user should have read/write/create/delete access.)
+ The FTP password.
+ A list of the errors that happened while uploading settings and files.
+ If an I/O error occurs.
+ If the profile is not found.
+ If an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler to monitor long-running file operations.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Callback to notify the user as to the progress of the how many bytes have been sent.
+
+
+ Bytes currently written
+ Total bytes to send
+
+
+
+ Provides access to the smartcard reader, for printers equipped with one.
+
+ Not all Zebra printers are available with built-in readers.
+
+
+
+ Sends a CT_ATR command to the printer's smartcard reader, if present.
+
+ A byte array containing the response from the smartcard reader.
+ If an I/O error occurs.
+
+
+
+ Sends a CT_DATA command to the printer's smartcard reader, if present.
+
+ Data to be sent to the smartcard using the CT_DATA card command.
+ A byte array containing the response from the smartcard reader.
+ If an I/O error occurs.
+
+
+
+ Turns the printer's smartcard reader off, if present.
+
+ This call should be made after communicating with the smartcard via the method.
+
+
+
+ A class used to determine if a base ZebraPrinter has Smartcard reader capabilities.
+
+ Not all Zebra printers are available with built-in readers.
+
+
+
+ Creates an instance of a Smartcard reader, if available.
+
+ Base ZebraPrinter that may or may not have Smartcard reader capabilities.
+ An instance of a SmartcardReader object or null if the base printer does not have Smartcard reader
+ hardware installed.
+
+
+
+ Signals that an illegal argument was used.
+
+
+
+
+ Constructs a ZebraIllegalArgumentException with message as the detailed error message
+
+ the error message
+
+
+
+ Constructs a ZebraIllegalArgumentException with message as the detailed error message
+
+ the error message
+ The name of the parameter that caused the exception.
+
+
+
+ Constructs a ZebraIllegalArgumentException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception.
+
+
+
+ Constructs a ZebraIllegalArgumentException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The name of the parameter that caused the exception.
+ The cause of the exception.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Contains methods used to query attributes of an image formatted for a Zebra printer.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ A row of image data.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+ True if the image was scaled.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ Contains methods used to query attributes of an image formatted for a Zebra printer.
+
+ see ZebraImageFactory" for how to create an image.
+
+
+
+ Gets the image's height in pixels.
+
+
+
+
+ Gets the image's width in pixels.
+
+
+
+
+ This is an utility class for getting/setting alerts on a printer.
+
+
+
+
+
+ A list of objects detailing the alert configuration of a printer.
+
+ A list of alert objects currently configured on the printer.
+
+
+
+
+
+ Configures an alert to be triggered when the alert's condition occurs or becomes resolved.
+
+ The alert to trigger when it's condition occurs or becomes resolved.
+
+
+
+
+ Configures a list of alerts to be triggered when their conditions occur or become resolved.
+
+ The list of alerts to trigger when their conditions occur or become resolved.
+
+
+
+
+ Removes a configured alert from a printer. They may be reconfigured via the configureAlert(s) methods.
+
+ Alert to be removed from the configuration
+
+
+
+
+ Removes all alerts currently configured on a printer. They may be reconfigured via the configureAlert(s) methods.
+
+
+
+
+
+ A class used to print template formats using comma separated values as input data.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The connection string.
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The connection string.
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Container holding information about a discovered printer.
+
+
+
+
+ Creates a connection based on the information in the DiscoveredPrinter response.
+
+ a Connection to the discovered printer
+
+
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+
+
+
+
+
+ Creates an object holding information about a discovered printer.
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+
+ For TCP, this returns the IP Address. For driver, this returns the local printer name.
+
+
+
+
+ Returna a Dictionary of all settings obtained via the chosen discovery method.
+
+
+ The names of the settings will vary depending upon the type of connection to the printer. The following example
+ shows how to list all the properties of the discovered printer with the respective value.
+
+
+ foreach (string settingsKey in printer.DiscoveryDataMap.Keys) {
+ System.Diagnostics.Debug.WriteLine("Key: " + settingsKey + " Value: " + printer.DiscoveryDataMap[settingsKey]);
+ }
+
+ containing available attributes of the discovered printer.
+
+
+
+ Returns true if two discovered printer objects have the same address, otherwise it returns false.
+
+ DiscoveredPrinter object to compare against.
+ true if equal
+
+
+
+
+ Returns a hash code for this DiscoveredPrinter.
+
+ The hash code
+
+
+
+
+ DiscoveredPrinterFilter is an interface to allow the user to write custom code to determine
+ whether or not a DiscoveredPrinter should be included in the discovery result.
+
+
+
+
+ Method called by a discovery operation to determine whether or not the should be added to
+ the list of discovered devices.
+
+ DiscoveredPrinter to potentially be added to the list of of discovered devices.
+ A bool indicating whether or not the device should be added.
+
+
+
+ Instance of that is returned when performing a network discovery.
+
+
+
+
+ Returns an instance of a DiscoveredPrinterNetwork with address and port.
+
+ The address of the discovered network printer
+ The active raw port of the discovered network printer
+
+
+
+ Returns an instance of a DiscoveredPrinterNetwork built using the provided attributes.
+
+ A map of attributes associated with the discovered network printer
+
+
+
+
+
+
+
+
+
+ Returns a hash code for this DiscoveredPrinter.
+
+
+
+
+
+ Signals that there was an error during discovery.
+
+
+
+
+ Constructs a DiscoveryException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Interface definition for a callback to be invoked for printer discovery events
+
+
+
+
+
+ This method is invoked when a printer has been discovered. This method will be invoked for each printer that is found.
+
+ a discovered printer.
+
+
+
+ This method is invoked when discovery is finished.
+
+
+
+
+ This method is invoked when there is an error during discovery. The discovery will be cancelled when this method
+ is invoked. will not be called if this method is invoked.
+
+ the error message.
+
+
+
+ Class definition for a callback to be invoked for Link-OS™ printer discovery events.
+
+
+
+
+
+
+ Creates a DiscoveryHandler which will only report back Link-OS™ printers.
+
+ Base discovery handler for callbacks.
+
+
+
+ This method is invoked when there is an error during discovery. The discovery will be cancelled when this method
+ is invoked. will not be called if this method is invoked.
+
+ The error message.
+
+
+
+ This method is invoked when discovery is finished.
+
+
+
+
+ This method is invoked when a Link-OS™ printer has been discovered. This method will be invoked for each printer
+ that is found.
+
+ A discovered Link-OS™ printer.
+
+
+
+ Signals that there was an error during discovery packet decoding
+
+
+
+
+ Constructs a DiscoveryPacketDecodeException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Defines functions used when discovering information about a printer.
+
+
+
+
+
+ Decodes the provided MIME encoded discovery packet and returns a discovery data map
+
+ A Base64 encoded discovery packet
+ A discovery data map representative of the provided packet
+ If provided a malformed discovery packet
+
+
+
+ Reads the discovery packet from the provided connection and returns a discovery data map
+
+ A to a printer
+ A discovery data map representative of the provided packet
+ If an I/O error occurs.
+ If provided a malformed discovery packet
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class used to decode a Zebra discovery packet
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ Class used to decode a Zebra discovery packet
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ A class used to discover printers on an IP Network.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Sends a discovery packet to the IPs specified in the subnetRange.
+
+
+ Subnet searches are defined by the first three subnet octets, followed by a range, such as 192.168.2. This method accepts IP addresses of the form,
+ assuming a subnet of 192.168.2:
+
+ - 192.168.2.254 (will send a discovery packet to 192.168.2.254)
+ - 192.168.2.* (will send a discovery packet for the range 192.168.2.1 - 192.168.2.254)
+ - 192.168.2.8-* (will send a discovery packet for the range 192.168.2.8 - 192.168.2.254)
+ - 192.168.2.37-42 (will send a discovery packet for the range 192.168.2.37 - 192.168.2.42)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The subnet search range.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery packet to the IPs specified in the subnetRange.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ Subnet searches are defined by the first three subnet octets, followed by a range, such as 192.168.2. This method accepts IP
+ addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.254 (will send a discovery packet to 192.168.2.254)
+ - 192.168.2.* (will send a discovery packet for the range 192.168.2.1 - 192.168.2.254)
+ - 192.168.2.8-* (will send a discovery packet for the range 192.168.2.8 - 192.168.2.254)
+ - 192.168.2.37-42 (will send a discovery packet for the range 192.168.2.37 - 192.168.2.42)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The subnet search range.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a directed broadcast discovery packet to the subnet specified by ipAddress.
+
+
+ Directed broadcasts are defined by the first three subnet octets, followed by 255, such as 192.168.2.255. This method
+ accepts IP addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.255
+ - 192.168.2.1 (last octet will be replaced with 255)
+ - 192.168.2 (will append 255 for the last octet)
+ - 192.168.2. (will append 255 for the last octet)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The IP address of the subnet.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a directed broadcast discovery packet to the subnet specified by ipAddress.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ Directed broadcasts are defined by the first three subnet octets, followed by 255, such as 192.168.2.255. This method accepts
+ IP addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.255
+ - 192.168.2.1 (last octet will be replaced with 255)
+ - 192.168.2 (will append 255 for the last octet)
+ - 192.168.2. (will append 255 for the last octet)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The IP address of the subnet.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a local broadcast packet.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a local broadcast packet.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a multicast discovery packet.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+ For Android users : some extra code is required to obtain a multicast lock. See the example in
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The number of hops.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a multicast discovery packet.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+ For Android users : some extra code is required to obtain a multicast lock. See the example in
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The number of hops.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ This method will search the network using a combination of discovery methods to find printers on the network.
+
+
+ This is a convenience method that can be used as an alternative to the other discovery methods (e.g. multicast).
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery request to the list of printer DNS names or IPs in printersToFind.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A list of IP addresses or DNS names for the printers to be discovered.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery request to the list of printer DNS names or IPs in printersToFind.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A list of IP addresses or DNS names for the printers to be discovered.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Drive types.
+
+
+
+
+ Onboard flash drive.
+
+
+
+
+ RAM Drive.
+
+
+
+
+ Removable mass storage drive.
+
+
+
+
+ Unknown drive.
+
+
+
+
+ Read only drive.
+
+
+
+
+ This class is used to describe format variable fields.
+
+
+ For example, in CPCL, the following format will contain 2 .
+
+ ! DF SHELF.FMT
+ ! 0 200 200 210 1
+ CENTER
+ TEXT 4 3 0 15 \\
+ TEXT 4 0 0 95 \\
+ FORM
+ PRINT
+
+
+ The first will contain a fieldNumber of 1, and a fieldName of
+ null. The second will contain a fieldNumber of 2, and a fieldName of null.
+
+ In ZPL, the following ^FN command will contain 2 .
+
+
+ ^XA
+ ^DFR:SHELF.ZPL^FS
+ ^FO25,25^A0N,50,50^FN15"Name"^FS
+ ^FO25,75^A0N,50,50^FN15"Address"^FS
+ ^FO25,125^A0N,50,50^FN18^FS
+ ^FO25,175^A0N,50,50^FN15
+ ^XZ
+
+
+ The first will contain a fieldNumber of 15, and a fieldName of
+ "Address". The second will contain a fieldNumber of 18, and a fieldName of null.
+ Note: If a label format contains multiple Field Numbers, only 1 will be returned since the data will be shared
+ by all variables with the number. The portion of the variable will be the
+ last one in the format, unless it is not present.For example, in the format above, there are 3 ^FN15's. The
+ first 2 have a "prompt" parameter, the third does not. The second one, "Address", overwrites the first one, "Name".
+ The third one is not present, so the previous one, "Address", is preserved.
+
+
+
+
+ Create a descriptor for a field
+
+ The number of the field.
+ The name of the field, or null if not present.
+
+
+
+ In CPCL, this number will be the number of the variable field in the format. The fields are numbered starting at 1.
+ In ZPL, this number will correspond to the ^FN number.
+
+
+
+
+ In CPCL, this field is always null.
+ In ZPL, this field will correspond to the optional name parameter of the ^FN command, or null if the parameter is not present
+
+
+
+
+
+
+
+ Options for deleting files when loading profiles to a Zebra printer.
+
+
+
+
+ Attempts to delete all files from the printer. (Persistent files, hidden files, and System files will not be deleted.)
+
+
+
+
+ Will attempt to delete only the file types which are copied at profile/backup creation time.
+
+
+
+
+ Will not attempt to delete any files.
+
+
+
+
+ Handler class is used to update status while performing a firmware download and to notify the caller when the printer
+ has reconnected after restarting.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Called when the firmware download completes.
+
+
+
+
+ Called when the printer is back online and has been rediscovered.
+
+ The printer object which came back online.
+ The new firmware version on the printer.
+
+
+
+ Callback to notify the user of the firmware updating progress.
+
+ The total number of bytes written to the printer.
+ The total number of bytes to be written to the printer.
+
+
+
+ Handler class is used to update status while performing a firmware download.
+
+
+
+
+ Callback to notify the user of the firmware updating progress.
+
+ This is called for every 4K bytes written out.
+ Total number of bytes written to the printer.
+ Total number of bytes to be written to the printer.
+
+
+
+ Called when the firmware download completes. The printer will then begin flashing the firmware to memory followed
+ by a reboot.
+
+
+
+
+ This is the interface for updating firmware on a Link-OS™ printer.
+
+
+
+
+ Update firmware on the printer using the default timeout of 10 minutes.
+
+
+ If the firmware currently on the printer has the same version number as the
+ firmware file, the firmware will not be sent to the printer.
+
+
+ File path of firmware file.
+ Callback for firmware updating status
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer using the specified timeout.
+
+
+ If the firmware currently on the printer has the same version number as the firmware file, the firmware will not be sent to the printer.
+
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum will be
+ used instead.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer, using the default timeout of 10 minutes, regardless of the firmware version
+ currently on the printer.
+
+ File path of firmware file.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer, using the specified timeout, regardless of the firmware version
+ currently on the printer.
+
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum will be
+ used instead.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ A class used to convert TrueType® fonts for use on ZPL printers.
+
+
+
+
+ Returns a Stream which provides the TTF header information as determined from the source stream.
+
+ Stream containing TrueType® font data
+ Location of the font file on the printer.
+ Header information for the provided stream
+
+
+
+ Returns a Stream which provides the TTE header information as determined from the source stream.
+
+ Stream containing TrueType® font data
+ Location of the font file on the printer.
+ Header information for the provided stream
+
+
+
+ Converts a native TrueType® font to a ZPL TTF format.
+
+ Path to a TrueType® font.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+ If the source file is not found
+
+
+
+ Converts a native TrueType® font to a ZPL TTF format.
+
+ Stream containing the TrueType® font data.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+
+
+
+ Converts a native TrueType® font to a ZPL TTE format.
+
+ Path to a TrueType® font.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+ If the source file is not found
+
+
+
+ Converts a native TrueType® font to a ZPL TTE format.
+
+ Stream containing the TrueType® font data.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+
+
+
+ Defines functions used for downloading fonts to Zebra printers.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Defines functions used for interacting with printer formats.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Retrieves a format from the printer.
+
+
+ On a LinkOS/ZPL printer, only .ZPL files are supported. On a CPCL printer, only .FMT and .LBL files are supported.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ The contents of the format file.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+
+
+
+ Retrieves a format from the printer.
+
+
+ On a LinkOS/ZPL printer, only .ZPL files are supported. On a CPCL printer, only .FMT and .LBL files are supported.
+
+ The format.
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the array.
+
+
+ The values of any format variables will be encoded using the default encoding type. On a LinkOS/ZPL printer, only ZPL formats
+ are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The name of the format on the printer, including the extension (e.g. "E:FORMAT.ZPL").
+ An array of strings representing the data to fill into the format. For LinkOS/ZPL printer formats,
+ index 0 of the array corresponds to field number 2 (^FN2). For CPCL printer formats, the variables are passed in
+ the order that they are found in the format.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the array.
+
+
+ The values of any format variables will be encoded using the provided encoding type.eg.UTF-8. On a LinkOS/ZPL printer, only
+ ZPL formats are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ An array of strings representing the data to fill into the format. For LinkOS/ZPL printer formats,
+ index 0 of the array corresponds to field number 2 (^FN2). For CPCL printer formats, the variables are passed in
+ the order that they are found in the format.
+ A character-encoding name (eg. UTF-8).
+ If an I/O error occurs.
+ If the encoding is not supported.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the default encoding type. On a LinkOS/ZPL printer, only ZPL formats
+ are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For LinkOS/ZPL printer formats, the
+ key number should correspond directly to the number of the field in the format.For CPCL printer formats, the
+ values will be passed in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the provided encoding type.eg.UTF-8. On a LinkOS/ZPL printer, only
+ ZPL formats are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For LinkOS/ZPL printer formats, the
+ key number should correspond directly to the number of the field in the format.For CPCL printer formats, the
+ values will be passed in ascending numerical order.
+ A character-encoding name (e.g. UTF-8).
+ If an I/O error occurs.
+ If the encoding is not supported.
+
+
+
+ Returns a list of descriptors of the variable fields in this format.
+
+
+ On a LinkOS/ZPL printer, only ZPL formats are supported. On a CPCL printer, only CPCL formats are supported.
+
+ The contents of the recalled format.
+ A list of field data descriptors. For a CPCL printer, the nth element of the list will contain the
+ integer n and no name. For a LinkOS/ZPL printer, each element will contain an ^FN number and a variable name if
+ present. If the format contains multiple ^FNs with the same number, only the last one will be in the result.
+ See for an example of how variable fields look.
+
+
+
+
+ Defines functions used for interacting with Link-OS™ printer formats.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the default encoding type.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the provided encoding type. eg.UTF-8.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ A character-encoding name (e.g. UTF-8)
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionaries.
+
+
+ The images stored in imgVars will first be dithered and then sent down the the printer as SDK01.GRF-SDK99.GRF. These GRF
+ files will then be used when printing the format and overwritten each time the method is called with new images. The values of any
+ format variables will be encoded using the default encoding type.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the images to be used in the stored format. For ZPL
+ formats, the key number should correspond directly to the number of the field in the format. For CPCL formats,
+ the values will be passed in ascending numerical order.
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionaries.
+
+
+ The images stored in imgVars will first be dithered and then sent down the the printer as SDK01.GRF-SDK99.GRF.
+ These GRF files will then be used when printing the format and overwritten each time the method is called with new
+ images. The values of any format variables will be encoded using the provided encoding type. eg. UTF-8.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the images to be used in the stored format. For ZPL
+ formats, the key number should correspond directly to the number of the field in the format. For CPCL formats,
+ the values will be passed in ascending numerical order.
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ A character-encoding name (e.g. UTF-8)
+ If an I/O error occurs.
+
+
+
+ This is an utility class for printing images on a device.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Prints an image from the connecting device file system to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ Image file to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ If an I/O error occurs.
+ When the file could not be found, opened, or is an unsupported graphic.
+
+
+
+ Prints an image from the connecting device file system to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ Image file to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ Desired width of the printed image. Passing a value less than 1 will preserve original width.
+ Desired height of the printed image. Passing a value less than 1 will preserve original height.
+ Boolean value indicating whether this image should be printed by itself (false), or is part
+ of a format being written to the connection (true).
+ If an I/O error occurs.
+ When the file could not be found, opened, or is an unsupported graphic.
+
+
+
+ Prints an image to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ The image to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ Desired width of the printed image. Passing a value less than 1 will preserve original width.
+ Desired height of the printed image. Passing a value less than 1 will preserve original height.
+ Boolean value indicating whether this image should be printed by itself (false), or is part
+ of a format being written to the connection (true).
+ If an I/O error occurs.
+
+
+
+ Stores the specified image to the connected printer as a monochrome image.
+
+
+ The image will be stored on the printer at printerDriveAndFileName with the extension GRF.
+ If a drive letter is not supplied, E will be used as the default (e.g. FILE becomes E:FILE.GRF). If an extension is supplied,
+ it is ignored if it is not either BMP or PNG. If the extension is ignored, GRF will be used.
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or throw an .
+
+ Path on the printer where the image will be stored.
+ The image to be stored on the printer.
+ Desired width of the printed image, in dots. Passing -1 will preserve original width.
+ Desired height of the printed image, in dots. Passing -1 will preserve original height.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+ If printerDriveAndFileName has an incorrect format.
+
+
+
+ Stores the specified image to the connected printer as a monochrome image.
+
+
+ The image will be stored on the printer at printerDriveAndFileName with the extension GRF.
+ If a drive letter is not supplied, E will be used as the default (e.g. FILE becomes E:FILE.GRF). If an extension is supplied,
+ it is ignored if it is not either BMP or PNG. If the extension is ignored, GRF will be used.
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or throw an .
+
+ Path on the printer where the image will be stored.
+ The image file to be stored on the printer.
+ Desired width of the printed image, in dots. Passing -1 will preserve original width.
+ Desired height of the printed image, in dots. Passing -1 will preserve original height.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+ If printerDriveAndFileName has an incorrect format.
+ If the file could not be found, opened, or is an unsupported graphic.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Look through the result of a directory listing and extract the file name, drive letter, and extension for each
+ file in the listing.
+
+ The result of ^HZL, JSON file.drive_listing, or file.dir SGD.
+ A list (element type PrinterFileProperties) of file information.
+ If there is an error parsing the directory data returned by the printer.
+
+
+
+ Look through the result of a ^HZL and extract the file name, drive letter, and extension for each file in the listing.
+
+ The result of ^HZL.
+ A list (element type PrinterFileProperties) of file information.
+ If there is an error parsing the directory data returned by the printer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Utility methods for firmware files.
+
+
+
+
+ Given the contents of a firmware file, extract the firmware version string.
+
+
+ If the contents are not valid or if the version cannot be extracted, an empty string is returned.
+
+ Input stream containing the contents of a firmware file.
+ The version string, or an empty string.
+
+
+
+
+ Extract the firmware version from a firmware file input stream and return false if that version matches the
+ firmware on the connected printer.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Input stream containing the contents of a firmware file.
+ A connection to a printer
+ True if the firmware versions don't match
+ If there was an issue communicating with the printer.
+
+
+
+ Extract the firmware version from a firmware file input stream, and return false if that version matches the versionFromPrinter.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Input stream containing the contents of a firmware file.
+ Version of firmware that is already on the printer.
+ True if the firmware versions don't match
+
+
+
+ Extract the firmware version from a firmware file input stream, and return false if that version matches the versionFromPrinter.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Version of firmware that has already been extracted from the file.
+ A connection to a printer
+ True if the firmware versions don't match
+
+
+
+ Get the firmware version from the connected printer.
+
+ A connection to a printer.
+ The firmware version of the printer.
+ If there was an issue communicating with the printer."
+
+
+
+ Compare two firmware version strings.
+
+
+ If the only difference is that ZBI is enabled for one version but not the other, they are still considered to match.Matching is case insensitive.
+
+ One version string.
+ The other version string.
+ True if the versions match.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Search formatString, starting at index searchIx, for a ^FN, ^CC or ~CC command. Search is case insensitive. caret is the command prefix.
+
+
+
+
+
+ {-1,unknownCommand} if none of the commands is found, otherwise the index where a command
+ was found, and the type of command that was found.
+
+
+
+ Search formatString, starting at index searchIx, for one of the commands in commandStrings. Search is case
+ insensitive. caret is the command prefix.
+
+
+
+
+ {-1,unknownCommand} if none of the commands is found, otherwise the index where a command
+ was found, and the type of command that was found.
+
+
+
+ Represent a ZPL command type.
+
+
+
+
+ ^FN command
+
+
+
+
+ ^CC and ~CC commands
+
+
+
+
+ ^XG command
+
+
+
+
+ ^DF command
+
+
+
+
+ ^XA command
+
+
+
+
+ ^XZ command
+
+
+
+
+ everything else
+
+
+
+
+ the id, as a lower case string
+
+
+
+
+
+
+
+
+
+
+ Represent the index in a string where a ZPL command was found, and the type of the command at that spot.
+
+
+
+
+
+
+
+
+
+
+ Gets the index
+
+
+
+
+ Gets the command
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A container class used to hold Link-OS specific information
+
+
+
+
+ Creates a container class to hold Link-OS information.
+
+ the Link-OS major version number
+ the Link-OS minor version number
+
+
+
+ Creates a container class to hold Link-OS information.
+
+ e.g. ("2.1", "3.0")
+
+
+
+ Creates a container class to hold Link-OS information based on the supplied discoveredPrinter.
+
+ A discovered printer.
+
+
+
+ Gets the Link-OS major version number
+
+
+
+
+ Gets the Link-OS minor version number
+
+
+
+
+ Signals that a Link-OS™ operation has been attempted on a non-Link-OS™ printer.
+
+
+
+
+ Constructs a NotALinkOsPrinterException with "This is not a Link-OS™ printer" as
+ the detailed error message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a printer alert.
+
+ Applicable only to ZPL printers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates an instance of a PrinterAlert object.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+
+
+
+ Creates an instance of a PrinterAlert object, including a Set-Get-Do name.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If condition is SGD_SET, the name of the Set-Get-Do to be monitored.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+
+
+
+ Creates an instance of a PrinterAlert object, including the printer alert text.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+ The text received from the printer.
+
+
+
+ Creates an instance of a PrinterAlert object, including a Set-Get-Do name and the printer alert text.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If condition is SGD_SET, the name of the Set-Get-Do to be monitored.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+ The text received from the printer.
+
+
+
+ Return the string representation of the alert destination for Set-Get-Do.
+
+
+
+
+ Return the AlertCondition of the alert.
+
+
+
+
+ Gets the current alert condition.
+
+
+
+
+ Return true if the alert is fired when 'set'.
+
+
+
+
+ Return alert will be triggered on 'clear'.
+
+
+
+
+ Return the string representation of the Set-Get-Do Name.
+
+
+
+
+ Return the AlertDestination used by the alert.
+
+
+
+
+ Return the destination where the alert should be sent, for example, an IP Address or an email address, depending
+ on the value of getDestinationAsSGDString.
+
+
+
+
+ Return the destination port number where the alert should be sent.
+
+
+
+
+ Return the quelling state of the alert.
+
+
+
+
+ Return the text received from the printer.
+
+
+
+
+ Enumeration of the various printer control languages supported by Zebra Printers.
+
+
+
+
+ Printer control language ZPL
+
+
+
+
+ Printer control language CPCL
+
+
+
+
+ Printer control language line_print mode.
+
+
+
+
+ Converts the string name to the appropriate enum value.
+
+
+ The name parameter accepts the value returned from the printer's 'device.langauges' SGD.
+
+ The printer control language name (e.g. "zpl", "cpcl", or "line_print")
+ The printer language
+ If the printer language cannot be determined.
+
+
+
+ The name of the printer language - (e.g. "ZPL" or "CPCL").
+
+ ZPL, CPCL, or LINE_PRINT
+
+
+
+ Container for properties of a printer object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets/sets the drive prefix with the trailing colon.
+
+
+
+
+ Gets/sets the file name.
+
+
+
+
+ Gets/sets the file extension.
+
+
+
+
+ Gets the full name of the file on the printer.
+
+
+
+
+ Gets/sets the size of the file in bytes
+
+
+
+
+ Gets/sets the 32-bit CRC value of the file.
+
+
+
+
+ Interface definition for a callback to be invoked when a printer comes back online and has been rediscovered.
+
+
+
+
+
+ Called when the printer is back online and has been rediscovered.
+
+ The printer object which came back online.
+ The new firmware version on the printer.
+
+
+
+ A class used to obtain the status of a Zebra printer.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ The print mode. For CPCL printers this is always
+
+
+
+
+ The length of the label in dots. For CPCL printers this is always 0.
+
+
+
+
+ The number of formats currently in the receive buffer of the printer. For CPCL printers this is always 0.
+
+
+
+
+ The number of labels remaining in the batch. For CPCL printers this is always 0.
+
+
+
+
+ true if there is a partial format in progress. For CPCL printers this is always false.
+
+
+
+
+ true if the head is cold. For CPCL printers this is always false
+
+
+
+
+ true if the head is open.
+
+
+
+
+ true if the head is too hot. For CPCL printers this is always false
+
+
+
+
+ true if the paper is out.
+
+
+
+
+ true if the ribbon is out.
+
+
+
+
+ true if the receive buffer is full. For CPCL printers this is always false
+
+
+
+
+ true if the printer is paused. For CPCL printers this is always false
+
+
+
+
+ true if the printer reports back that it is ready to print
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructs a PrinterStatus instance that can be used to determine the status of a printer.
+
+
+ This will only query the printer's status upon creation. If the status needs to be updated see
+
+ Connection to the target printer
+ If an I/O error occurs
+
+
+
+
+
+
+
+
+ This class is used to acquire a human readable string of the current errors/warnings stored in a
+ instance.
+
+
+
+
+
+ Message to indicate the head is open.
+
+
+
+
+ Message to indicate the head is too hot.
+
+
+
+
+ Message to indicate the paper is out.
+
+
+
+
+ Message to indicate the ribbon is out.
+
+
+
+
+ Message to indicate the receive buffer is full.
+
+
+
+
+ Message to indicate printer is paused.
+
+
+
+
+ Message to indicate printerStatus is null.
+
+
+
+
+ Used to acquire a human readable string of the current errors/warnings stored in printerStatus
+
+ an instance of that will be used to acquire the human readable string
+ of warnings/errors stored in printerStatus
+
+
+
+ Used to acquire a human readable string of the current errors/warnings passed to this instance.
+
+ A human readable string array of the current errors/warnings passed to this instance.
+
+
+
+ Numerous utilities to simplify printer operations.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Send contents of data directly to the device specified via connectionString using UTF-8 encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using UTF-8 encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Retrieves a list of currently open tcp ports on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The port status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves status of the printer odometer which includes the total print length, head clean counter, label dot
+ length, head new, latch open counter, and both user resettable counters.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The odometer status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves status of the printer which includes any error messages currently set along with the number of labels
+ remaining in queue, number of labels remaining in batch, and whether or not a label is currently being processed.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The printer status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves the quick status of the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Highest level error or "Ready to Print".
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Set the RTC time and date on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Format MM-dd-yyyy HH:mm:ss.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If the format of dateTime is invalid.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Deletes file(s) from the printer and reports what files were actually removed.
+
+
+ The filePath may also contain wildcards.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ The location of the file on the printer. Wildcards are also accepted. (e.g. "E:FORMAT.ZPL", "E:*.*")
+ An array of the files which were deleted.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If the format of dateTime is invalid.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Deletes file(s) from the printer and reports what files were actually removed.
+
+
+ The filePath may also contain wildcards.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ The location of the file on the printer. Wildcards are also accepted. (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ Filter for returned files. (e.g. "E:*.ZPL", "*:*.*", "R:MYFILE.*")
+ List of file names on the printer.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an error parsing the directory data returned by the device.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ File contents.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ Stream to receive file contents.
+ The connection string.
+ The file to retrieve. (e.g. "R:MYFILE.PNG")
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ Password to use for ftp, if null a default password will be used.
+ File contents.
+ If there is an error connecting to the device, or the ftp password is not correct.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ Stream to receive the file contents.
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ Password to use for ftp, if null a default password will be used.
+ If there is an error connecting to the device, or the ftp password is not correct.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Update the printer firmware.
+
+
+ Download Firmware Here
+ See ConnectionBuilder for the format of connection
+
+ The connection string.
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum
+ will be used instead.
+ If the connection can not be opened or is closed prematurely.
+ If the printer language could not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ If the firmware file cannot be found or cannot be opened.
+
+
+
+ Encodes supplied image in either ZPL or CPCL after dithering and resizing.
+
+ The printer file path you wish to store the image to.
+ ZebraImage to be dithered and resized.
+ Stream to store encoded image data.
+ If the file type is not supported or an invalid image is supplied.
+ Could not read/write to file.
+
+
+
+ Encodes supplied image in either ZPL or CPCL after dithering and resizing.
+
+ The printer file path you wish to store the image to.
+ ZebraImage to be dithered and resized.
+ Width of the resulting image. If 0 the image is not resized.
+ Height of the resulting image. If 0 the image is not resized.
+ Stream to store converted image data encoded with the printers native
+ language.
+ If the file type is not supported or an invalid image is supplied.
+ Could not read/write to file.
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original configuration.
+ Some settings (such as I.P.address) which could conflict with the original printer will not be contained in the profile
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The location of where to store the profile.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ Could not interpret the response from the printer.
+ This feature is only available on Link-OS™ printers.
+
+
+
+
+ Create a backup of your printer's settings, alerts, and files.
+
+
+ A backup contains a snapshot of all pertinent settings to fully restore your printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The location of where to store the profile. The extension must be .zprofile; if it is not, the
+ method will change it to.zprofile for you.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ Could not interpret the response from the printer.
+ This feature is only available on Link-OS™ printers.
+
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ Increases the amount of detail presented to the user.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ Increases the amount of detail presented to the user.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Stores the file on the printer at the specified location and name using any required file wrappers.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The path of the file to store.
+ The path on the printer.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue storing the file.
+ This feature is only available on Link-OS™ printers.
+ If there is an issue storing the file.
+
+
+
+ Resets the specified printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Resets the network of the specified printer.
+
+
+ Usually performed to enable changed network settings to take effect.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Restores the printer's settings to their factory default configuration.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Restores the printer's network settings to their factory default configuration.
+
+
+ Use caution when issuing this command because you may lose connectivity with your printer if your network requires non-default settings.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a configuration label.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a network configuration label.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a directory listing of all the files saved on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieve all settings and their attributes from the specified printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ A map of setting names versus Setting objects from the printer specified in the connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the settings could not be retrieved.
+
+
+
+ Returns a new instance of PrinterStatus that can be used to determine the status of a printer.
+
+
+ Each invocation of this method will result in a query of the connected printer. If more than one status value is to be
+ read, it is recommended that a copy of PrinterStatus is stored locally.
+ This method must be invoked again to retrieve the most up-to-date status of the printer. The
+ object will only query the printer upon creation.
+ Some Mobile printers (including the MZ series printers) will not communicate if the printer is not ready to print.
+ On these printers, status information is not available when, for example, the printer is out of paper. This method
+ will throw a if it is called when the printer cannot communicate.
+
+ Connection to the printer.
+ Printer control language to be used.
+ A new instance of PrinterStatus.
+ If there is an issue communicating with the printer (e.g.\u00a0the connection is not
+ open.)
+
+
+
+ Defines functions used for creating and applying profiles to a Zebra printer.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original
+ configuration. Some settings (such as I.P.address) which could conflict with the original printer will
+ not be contained in the profile.
+
+ Path on your local machine where you want to save the profile.
+ (e.g. /home/user/profile.zprofile). The extension must be.zprofile; if it is not, the method will
+ change it to .zprofile for you.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+ for loading a profile to another printer
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original
+ configuration. Some settings (such as I.P.address) which could conflict with the original printer will
+ not be contained in the profile.
+
+ The destination stream where you want to write the profile.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+
+
+
+ Save a backup of your printer's settings, alerts, and files for later restoration.
+
+
+ A backup contains a snapshot of all pertinent settings to fully restore your printer.
+
+ Path on your local machine where you want to save the backup.
+ (e.g. /home/user/profile.zprofile). The extension must be.zprofile; if it is not, the method will
+ change it to .zprofile for you.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+ for loading the backup file to another printer
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ Increases the amount of detail presented to the user when loading firmware from the profile
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ his method will also delete all files on your printer before applying the backup.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ Increases the amount of detail presented to the user when loading firmware from the profile
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ A utility class used to wrap with a map and send settings commands to a connection.
+
+
+ Settings commands are accepted by Link-OS printers, version 1.0 and higher.
+
+
+
+
+
+ Sends the settingsToSet to the destinationDevice and then returns the updated setting values.
+
+ Due to the setting verification and validation, additional time and data traffic will be needed for each
+ SettingsSetter Process call. It is recommended to bundle all changing settings into one map and one
+ method call to reduce this overhead.
+
+ The connection string.
+ The settings map to send to the printer.
+ The settings' values after the map has been sent to the printer.
+ If there is an error communicating with the printer.
+ If the setting could not be set or retrieved.
+
+
+
+ A utility class used to wrap and send SGD commands to a connection.
+
+
+
+
+
+ Constructs an SGD SET command and sends it to the printer.
+
+
+ This method will not wait for a response from the printer.If the SGD SET command returns a response, the caller
+ is responsible for reading the data off of the connection.If a response is expected, consider using the analogous
+ command.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ if an I/O error occurs
+
+
+
+
+ Constructs an SGD SET command and sends it to the printer.
+
+
+ This method will not wait for a response from the printer. If the SGD SET command returns a response, the caller is
+ responsible for reading the data off of the connection. If a response is expected, consider using the analogous
+ command.
+
+
+
+
+ if an I/O error occurs
+
+
+
+
+ Constructs an SGD GET command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the connection to send the command to
+ the setting's value
+ if an I/O error occurs
+
+
+
+ Constructs an SGD GET command and sends it to the printer.
+
+
+ This method waits for a maximum of maxTimeoutForRead milliseconds for any data to be received.Once some data has been received it
+ waits until no more data is available within timeToWaitForMoreData milliseconds. This method returns the SGD value associated
+ with setting without the surrounding quotes.
+
+ the SGD setting
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ the setting's value
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ The response from the SGD DO command
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method write the SGD
+ value associated with setting, without the surrounding quotes, to responseData.
+
+ output stream to receive the response.
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ The response from the SGD DO command
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of maxTimeoutForRead milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within timeToWaitForMoreData milliseconds. This method write the SGD
+ value associated with setting without the surrounding quotes.
+
+ output stream to receive the response.
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ if an I/O error occurs
+
+
+
+ A utility class used to remove quotes from an output stream
+
+
+
+
+ Constructs a QuoteRemovingOutputStream
+
+
+
+
+
+ Signals that an error has occurred when attempting to communicate with SNMP.
+
+
+
+
+ Constructs an SnmpException with message as the detailed error message.
+
+ The error message.
+
+
+
+ An instance of an SNMP only Zebra printer.
+
+ The printer does not make a raw port connection.
+
+
+
+
+ Creates an instance of a Zebra printer which is limited to only SNMP operations.
+
+
+ The SNMP get and set community names default to "public". If you wish to use other community names, use
+ .
+
+ The IP Address or DNS Hostname.
+ If there was an exception communicating over SNMP.
+
+
+
+ Creates an instance of a Zebra printer, with the given community names, which is limited to only SNMP operations.
+
+ The IP Address or DNS Hostname.
+ SNMP get community name.
+ SNMP set community name.
+ If there was an exception communicating over SNMP.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the value of the specified oid.
+
+ Object identifier.
+ The value of the OID.
+ If there was an exception communicating over SNMP.
+
+
+
+ Sets the value of the specified oid to valueToSet.
+
+ Object identifier.
+ The value to set the OID to.
+ If there was an exception communicating over SNMP
+
+
+
+ Sets the value of the specified oid to valueToSet.
+
+ Object identifier.
+ The value to set the OID to.
+ If there was an exception communicating over SNMP
+
+
+
+ Gets the SNMP get community name.
+
+
+
+
+ Gets the SNMP set community name.
+
+
+
+
+ A container class which holds information about various printer drives.
+
+
+
+
+ Creates an empty StorageInfo container
+
+
+
+
+ The drive's alphabetical identifier.
+
+
+
+
+ The type of drive. (e.g. flash, RAM)
+
+
+
+
+
+ The number of bytes remaining on the drive.
+
+
+
+
+ Bool defining whether or not files persist across printer reboots.
+
+
+
+
+ Class for describing the status of ports open on a Zebra printer.
+
+
+
+
+ Creates a container which describes the status of a specific port on a Zebra printer.
+
+ The printer's port.
+ The name of the protocol used by the port.
+ Remote IP connected to the port.
+ Remote port number.
+ Port status.
+
+
+
+ The port number open on the printer.
+
+
+
+
+ The name of the protocol associated with that port, for example, HTTP for 80, FTP for 21.
+
+
+
+
+ The remote IP connected to the printer's port, will be 0.0.0.0 if not connected.
+
+
+
+
+ The port number of the remote connected to the printer, will be 0 if no connection.
+
+
+
+
+ The status of the printer's port, such as {@code LISTEN}, {@code ESTABLISHED}.
+
+
+
+
+ String description of the port status, prints as "PORT(NAME) REMOTE-IP:REMOTE-PORT STATUS"
+
+ Description of the port status.
+
+
+
+ This is a utility class for performing printer actions. (Restore defaults, calibrate, etc.)
+
+
+
+
+ Sends the appropriate calibrate command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate restore defaults command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate print configuration command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Converts the specified command to bytes using the default charset and sends the bytes to the printer.
+
+ The command to send to the printer.
+ If an I/O error occurs.
+
+
+
+ Converts the specified command to bytes using the specified charset "encoding" and sends the bytes to the
+ printer.
+
+ The command to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate reset command to the printer.
+
+
+ You should call after this method, as resetting the printer will terminate the connection.
+
+ If an I/O error occurs.
+
+
+
+
+ Utility class for performing Link-OS™ printer actions.
+
+
+
+
+ Send the restore network defaults command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Send the print network configuration command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Send the print directory label command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Sends the network reset command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Set the RTC time and date on the printer.
+
+
+ Accepted dateTime values include date (e.g. "MM-dd-yyyy"), time(e.g. " HH:mm:ss"),
+ or both(e.g. " MM-dd-yyyy HH:mm:ss").
+
+ Date and or time in the proper format (MM-dd-yyyy, HH:mm:ss, or MM-dd-yyyy HH:mm:ss).
+ If there is an error communicating with the printer.
+ If the format of dateTime is invalid.
+
+
+
+ A class used to print template formats using XML as input.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Print template formats using XML as input data.
+
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs."
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data to destinationDevice.
+
+ The connection string.
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ See ConnectionBuilder for the format of
+ destinationDevice.
+ If an I/O error occurs."
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data with optional running commentary to standard out.
+
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs."
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data to a device with connection string destinationDevice.
+
+ The connection string.
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ See ConnectionBuilder for the format of
+ destinationDevice.
+ If an I/O error occurs."
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+ An interface used to obtain various properties of a Zebra printer.
+
+
+
+
+
+ Returns the printer control language (e.g. ZPL or CPCL) of the printer.
+
+
+
+
+
+ Returns a new instance of PrinterStatus that can be used to determine the status of a printer.
+
+
+ Each invocation of this method will result in a query of the connected printer. If more than one status value is to be
+ read, it is recommended that a copy of PrinterStatus is stored locally.
+ Note: This method must be invoked again to retrieve the most up-to-date status of the printer. The
+ object will only query the printer upon creation.
+ Note: Some Mobile printers (including the MZ series printers) will not communicate if the printer is not
+ ready to print.On these printers, status information is not available when, for example, the printer is out of
+ paper. This method will throw a if it is called when the printer cannot communicate.
+
+ A new instance of PrinterStatus.
+ If there is an issue communicating with the printer (e.g. the connection is not
+ open.)
+
+
+
+ Returns the printer's connection.
+
+
+
+
+ Changes the printer's connection.
+
+ The new connection to be used for communication with the printer.
+
+
+
+ A factory used to acquire an instance of a ZebraPrinter.
+
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+
+ If the Set-Get-Do value, appl.name, starts with one of the following, the printer is determined to
+ be a CPCL printer. Otherwise it is considered to be a ZPL printer
+
+ - SH
+ - H8
+ - C
+
+
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+ If the printer language cannot be determined
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+
+ If the Set-Get-Do value, appl.name, starts with one of the cpclFwVersionPrefixes, the
+ printer is determined to be a CPCL printer.Otherwise it is considered to be a ZPL printer.
+
+ An array of possible CPCL version number prefixes
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+ If the printer language cannot be determined
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+ The language of the printer instance to be created
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS™ version and its control language.
+
+ An instance of a
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its control language, but will not query the printer for Link-OS information.
+
+ An instance of a
+ Link-OS Information
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS information, but will not query the printer for its control language.
+
+ An instance of a
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will not query the printer for any information but will use the supplied info and language.
+
+ An instance of a
+ Link-OS Information
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS™ version and its control language.
+
+ An open connection to a Link-OS™ printer
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its control language, but will not query the printer for Link-OS information.
+
+ An open connection to a Link-OS™ printer
+ Link-OS Information
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS information, but will not query the printer for
+ its control language.
+
+ An open connection to a Link-OS™ printer
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will not query the printer for any information but will use the supplied info and
+ language.
+
+ An open connection to a Link-OS™ printer
+ Link-OS Information
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Signals that an error has occurred when determining the printer language.
+
+
+
+
+ Constructs a ZebraPrinterLanguageUnknownException with message as the detailed error message
+
+ The error message
+
+
+
+ Constructs a ZebraPrinterLanguageUnknownException with "Unknown printer language" as
+ the detailed error message.
+
+
+
+
+ This interface defines increased capabilities of a Zebra Link-OS™ printer. Link-OS™ printers support many
+ features not supported by non-Link-OS™ Zebra printers.
+
+
+
+
+ Retrieve the TCP port status of the printer and returns a list of TcpPortStatus describing the open ports on the printer.
+
+
+ The open connection from the SDK will be listed in the return value. This method will throw
+ a if it is unable to communicate with the printer.
+ Note: Tabletop printers support more than one established connection on the raw port at a time, so the
+ same port may be listed more than once.
+
+ List of open ports on the ZebraPrinter. Note: The open connection from the SDK will be listed.
+ If there is an issue communicating with the printer (e.g. the connection is not open.)
+
+
+
+ Gets/sets the printer's SNMP get community name.
+
+
+
+
+ Returns specific Link-OS™ information.
+
+
+
+
+ Enumeration of the various print modes supported by Zebra Printers.
+
+
+
+
+ Rewind print mode
+
+
+
+
+ Peel-off print mode
+
+
+
+
+ Tear-off print mode (this also implies Linerless Tear print mode)
+
+
+
+
+ Cutter print mode
+
+
+
+
+ Applicator print mode
+
+
+
+
+ Delayed cut print mode
+
+
+
+
+ Linerless peel print mode
+
+
+
+
+ Linerless rewind print mode
+
+
+
+
+ Partial cutter print mode
+
+
+
+
+ RFID print mode
+
+
+
+
+ Kiosk print mode
+
+
+
+
+ Unknown print mode
+
+
+
+
+ Returns the print mode.
+
+ String representation of the print mode (e.g. "Rewind").
+
+
+
+ Enumeration of the various printer alert conditions which can be set on Zebra Printers.
+
+
+
+
+ Alert condition 'None'
+
+
+
+
+ Alert condition 'Paper Out'
+
+
+
+
+ Alert condition 'Ribbon Out'
+
+
+
+
+ Alert condition 'Head Too Hot'
+
+
+
+
+ Alert condition 'Head Cold'
+
+
+
+
+ Alert condition 'Head Open'
+
+
+
+
+ Alert condition 'Power Supply Too Hot'
+
+
+
+
+ Alert condition 'Ribbon In'
+
+
+
+
+ Alert condition 'Rewind'
+
+
+
+
+ Alert condition 'Cutter Jammed'
+
+
+
+
+ Alert condition 'Printer Paused'
+
+
+
+
+ Alert condition 'PQ Job Completed'
+
+
+
+
+ Alert condition 'Label Ready'
+
+
+
+
+ Alert condition 'Head Element Bad'
+
+
+
+
+ Alert condition 'Basic Runtime'
+
+
+
+
+ Alert condition 'Basic Forced'
+
+
+
+
+ Alert condition 'Power On'
+
+
+
+
+ Alert condition 'Clean Printhead'
+
+
+
+
+ Alert condition 'Media Low'
+
+
+
+
+ Alert condition 'Ribbon Low'
+
+
+
+
+ Alert condition 'Replace Head'
+
+
+
+
+ Alert condition 'Battery Low'
+
+
+
+
+ Alert condition 'RFID Error'
+
+
+
+
+ Alert condition 'All Messages'
+
+
+
+
+ Alert condition 'Cold Start'
+
+
+
+
+ Alert condition 'SGD Set'
+
+
+
+
+ Alert condition 'Motor Overtemp'
+
+
+
+
+ Alert condition 'Printhead Shutdown'
+
+
+
+
+ Alert condition 'Shutting Down'
+
+
+
+
+ Alert condition 'Restarting'
+
+
+
+
+ Alert condition 'No Reader Present'
+
+
+
+
+ Alert condition 'Thermistor Fault'
+
+
+
+
+ Alert condition 'Invalid Head'
+
+
+
+
+ Alert condition 'Country Code Error'
+
+
+
+
+ Alert condition 'MCR Result Ready'
+
+
+
+
+ Alert condition 'PMCU Download'
+
+
+
+
+ Alert condition 'Media Cartridge'
+
+
+
+
+ Alert condition 'Media Cartridge Load Failure'
+
+
+
+
+ Alert condition 'Media Cartridge Eject Failure'
+
+
+
+
+ Alert condition 'Media Cartridge Forced Eject'
+
+
+
+
+ Alert condition 'Cleaning Mode'
+
+
+
+
+ Creates an AlertCondition based on the condition.
+
+ If the condition is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the values of AlertCondition.
+ Based on the string condition
+ If condition is not a valid alert condition.
+
+
+
+ Creates an AlertCondition based on the conditionName.
+
+ If the conditionName is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the conditions in AlertCondition.
+ Based on the string conditionName
+ If conditionName is not a valid alert condition.
+
+
+
+ Returns the alert condition.
+
+ String representation of the alert condition (e.g. "PAPER OUT").
+
+
+
+ Gets/sets the alert condition name
+
+
+
+
+
+
+
+
+
+
+ Enumeration of the various alert destinations which can be set on Zebra Printers.
+
+
+
+
+ Alert Destination 'Serial'
+
+
+
+
+ Alert Destination 'Parallel'
+
+
+
+
+ Alert Destination 'E-Mail'
+
+
+
+
+ Alert Destination 'TCP'
+
+
+
+
+ Alert Destination 'UDP'
+
+
+
+
+ Alert Destination 'SNMP'
+
+
+
+
+ Alert Destination 'USB'
+
+
+
+
+ Alert Destination 'HTTP-POST'
+
+
+
+
+ Alert Destination 'Bluetooth'
+
+
+
+
+ Alert Destination 'SDK'
+
+
+
+
+ Returns the alert destination as a string.
+
+
+
+
+ Creates an AlertDestination based on the destination.
+
+ If the destination is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the values of AlertDestination.
+ Based on the destination
+ If destination is not a valid alert destination.
+
+
+
+ Creates an AlertDestination based on the destinationName.
+
+
+ If the destinationName is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the destinations in AlertDestination.
+ Based on the destinationName
+ If destinationName is not a valid alert destination.
+
+
+
+ Returns the alert destination.
+
+ String representation of the alert destination (e.g. "TCP").
+
+
+
+ Gets/Sets the alert destination name.
+
+
+
+
+
+
+
+
+
+
+ Decide whether to use the status channel or the print channel to get settings from the printer. For a
+ multichannel connection, prefer the status channel.
+
+ A connection to the printer.
+ The appropriate connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true if value is within the setting's range
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A class that represents an internal device setting.
+
+
+
+
+ Gets or sets the setting's value.
+
+
+
+
+ Gets or sets a string describing the data type of the setting.
+
+
+
+
+ Gets or sets a string that describes the acceptable range of values for this setting.
+
+
+
+
+ Gets or sets if this setting can be applied when loading a profile
+
+
+
+
+ Gets or sets if this setting can be applied when loading a backup
+
+
+
+
+ Gets or sets a string that describes the access permissions for the setting. RW is returned for settings that have
+ read and write permissions. R is returned for settings that are read-only W is returned for settings that are write-only
+
+
+
+
+ Returns true if the setting does not have write access.
+
+
+
+
+ Returns true if the setting does not have read access.
+
+
+
+
+ Returns true if value is valid for the given setting.
+
+ Setting value.
+ true if value is within the setting's range
+
+
+
+
+ Retruns a human readable string of the setting.
+
+ Setting [settingData=value=Value type=Type range=Range].
+
+
+
+ Signals that an error occurred retrieving a setting
+
+
+
+
+ Constructs a SettingsException with Setting not found as the detailed error message.
+
+
+
+
+ Constructs a SettingsException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a SettingsException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception
+
+
+
+ Interface that provides access to device related settings.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Retrieve all of the setting identifiers for a device.
+
+
+ These are the IDs that may be used as keys for retrieving and updating settings for a device.
+
+
+ Set of identifiers available for a device.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded
+
+
+
+ Retrieves the device's setting value for a setting id.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the setting could not be retrieved.
+
+
+
+ Retrieves the device's setting values for a list of setting IDs.
+
+ List of setting IDs.
+ The settings' values.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieve all settings and their attributes.
+
+ Map of setting IDs and setting attributes contained in the profile
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved
+
+
+
+ Retrieves all of the device's setting values.
+
+ Values of all the settings provided by the device.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded
+
+
+
+ Sets the setting to the given value.
+
+ The setting id.
+ The setting's value
+ If there is an error communicating with the printer.
+ If the setting is read only, does not exist, or if the setting could not be set
+
+
+
+ Set more than one setting.
+
+ Map a setting ID to the new value for the setting.
+ If there is an error communicating with the printer.
+ If the settings cannot be sent to the device.
+
+
+
+ Retrieves the allowable range for a setting.
+
+ The setting id.
+ The setting's range as a string
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if value is valid for the given setting.
+
+ The setting id.
+ The setting's value
+ True if value is valid for the given setting.
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if the setting is read only.
+
+ The setting id
+ True if the setting is read only
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if the setting is write only.
+
+ The setting id
+ True if the setting is write only
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns the data type of the setting.
+
+ The setting id
+ The data type of the setting (e.g. string, bool, enum, etc.)
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Change or retrieve printer settings.
+
+
+ Due to the setting verification and validation, additional time and data traffic will be needed for each
+ ProcessSettingsViaMap method call. It is recommended to bundle all settings into one map and one method call to
+ reduce this overhead.
+
+ The settings to change or retrieve
+ Results of the setting commands
+ If there is an error communicating with the printer.
+ If a setting is malformed, or one or more settings could not be set.
+
+
+
+ Methods to use the LinkOS 3.2 JSON syntax to get the ranges for a list of SDGs, without the need to use an allconfig.
+
+
+
+
+ Use the LinkOS 3.2 JSON syntax to get the ranges for a list of SDGs, without the need to use an allconfig.
+
+ A list of SGD names.
+ A connection to a LinkOS printer.
+ the current printer control language
+ LinkOS version
+ A map from setting name to a string representing the range.
+ If the printer is not LinkOS 3.2 or higher.
+ If the connection fails.
+ If there is an error parsing the JSON response from the printer.
+
+
+
+ Parse the JSON response from the JSON get range command. Assumes that the only field requested in the JSON get
+ command was the "range" field.
+
+ Response from a LinkOS 3.2 or greater printer.
+ Map from setting names to range strings.
+
+
+
+ Methods to use the LinkOS 3.2 JSON syntax to get the values for a list of SDGs, without the need to use an allconfig.
+
+
+
+
+ Get the values for a list of settings from a printer.
+
+
+ Use either JSON or SGD get commands to request the values from the printer,
+ depending on the connection type and the printer language. The default
+ timeout values from the connection will be used when communicating with the
+ printer. If printerConnection is a MultichannelConnection, prefer the status channel.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Set each of the settings in settingValues on a printer.
+
+
+ Use either JSON or SGD set commands to set the values on the printer, depending on the connection type and
+ the printer language.The default timeout values from the connection will be used when communicating with the
+ printer.If printerConnection is a MultichannelConnection, prefer the status channel.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+
+ Get the values for a list of settings from a LinkOS printer.
+
+
+ Use JSON to request the values from the printer. The default timeout values from the connection will
+ be used when communicating with the printer.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Get the values for a list of settings from a printer.
+
+
+ Use SGD get commands to request the values from the printer.The default timeout values from the connection
+ will be used when communicating with the printer.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+ Decide whether JSON can be used to get settings from the printer, or whether SGD setvar/getvar must be used.
+
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ true if JSON can be used, false if SGD setvar/getvar must be used.
+
+
+
+ Set each of the settings in settingValues on a LinkOS printer.
+
+
+ Use JSON to set the values on the printer. The default timeout values from the connection will be
+ used when communicating with the printer.Return a map of the values from the printer after the set
+ operation was performed.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Set each of the settings in settingValues on a printer.
+
+
+ Use SGD set commands to set the values on the printer. The default timeout values from the connection will
+ be used when communicating with the printer.Return a map of the values from the printer after the set operation was performed.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "SH", "H8", "C"
+
+
+
+
+ ESC + h (0x1b 0x68)
+
+
+
+
+ ESC + V (0x1b 0x56)
+
+
+
+
+ ESC + FormFeed (0x1b 0x0C)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Determines if the device is a zebra card printer
+
+ true if device is a card printer
+
+
+
+ 0, marks free or usable space
+
+
+
+
+ 1, bitmap or smooth font
+
+
+
+
+ 2, barcode data
+
+
+
+
+ 3, stored ZPL format
+
+
+
+
+ 4, GRF graphic image object
+
+
+
+
+ 5, print map - unused
+
+
+
+
+ 6, general purpose storage - used by DBCOs for parsing and bitmaps
+
+
+
+
+ 7, Intellifont cache
+
+
+
+
+ 8, wildcard
+
+
+
+
+ 9, Mag tables
+
+
+
+
+ 10, Multiplication tables
+
+
+
+
+ 11, Mirror tables
+
+
+
+
+ 12, use context-specific default
+
+
+
+
+ 13, magic mode buffers
+
+
+
+
+ 14, access locks for certain ZPL commands
+
+
+
+
+ 15, JisToUnicode tables
+
+
+
+
+ 16, Saved BASIC program
+
+
+
+
+ 17, Data storage object
+
+
+
+
+ 18, PNG graphic image object
+
+
+
+
+ 19, Downloadable Bar Code object
+
+
+
+
+ 20, BAZ encrypted BASIC object
+
+
+
+
+ 21, Stored label format
+
+
+
+
+ 22, TrueType Font
+
+
+
+
+ 23, PCX bitmap
+
+
+
+
+ 24, Bitmap
+
+
+
+
+ 25, GEM bitmap graphic
+
+
+
+
+ 26, DPL Datamax 7-bit format
+
+
+
+
+ 27, TrueType Extension Font
+
+
+
+
+ 28, TT? we will list TTE and TTF objects on the same label
+
+
+
+
+ 29, WLAN security certificate for TLS and TTLS
+
+
+
+
+ 30, WLAN security certificate for FAST
+
+
+
+
+ 31, stored EPL format
+
+
+
+
+ 32, Mirror feedback template file
+
+
+
+
+ 33, WML menu file
+
+
+
+
+ 34, MIB file for auto-generated SNMP MIB
+
+
+
+
+ 35, Comma Seperated Values file
+
+
+
+
+ 36, User-custom webpages
+
+
+
+
+ 37, BAE DES encrypted BASIC object
+
+
+
+
+ 38, Text file
+
+
+
+
+ 39, Executable code - MUST BE LAST IN LIST!
+
+
+
+
+ The contentStream will be exhausted. It is all read in to determine the metadata, you need a new stream to read
+ from for other stream operations.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ appl.name
+
+
+
+
+ device.host_status
+
+
+
+
+ ip.discovery_packet
+
+
+
+
+ device.languages
+
+
+
+
+ device.reset
+
+
+
+
+ Printer Reset JSON Command {}{"device.reset":""}
+
+
+
+
+ device.prompted_network_reset
+
+
+
+
+ Printer Reset JSON Command {}{"device.prompted_network_reset":"y"}
+
+
+
+
+ ezpl.restore_defaults
+
+
+
+
+ Printer Reset JSON Command {}{"ezpl.restore_defaults":"reload printer"}
+
+
+
+
+ device.prompted_default_network
+
+
+
+
+ Printer Reset JSON Command {}{"device.prompted_default_network":"y"}
+
+
+
+
+ zpl.calibrate
+
+
+
+
+ Calibrate Command {}{"zpl.calibrate":""}
+
+
+
+
+
+
+
+ ! U1 getvar "command"\r\n
+
+
+
+ Wrapper class for System.Threading.Tasks Task functions. For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only. Wrapper for to not throw an
+ exception. Causes the currently executing thread to sleep (temporarily cease execution) for the specified number
+ of milliseconds. The thread does not lose ownership of any monitors.
+
+
+
+
+ @param targetStream
+
+
+ @param data
+ @param offset
+ @param length
+ @throws IOException
+
+
+
+ Windows line terminator - carriage return + line feed
+
+
+
+
+ Line feed
+
+
+
+
+
+
+ The string that should be searched.
+ The list of patterns to search for.
+ start index in inputString
+ The index in inputString of the first pattern that is found. If none of the patterns are
+ found, -1 is returned.
+
+
+
+ Split input into lines.
+
+
+ Lines are terminated by <CR><LF>. The last line does not have to
+ end in <CR><LF>, although it may.The <CR><LF> terminators are removed.
+
+ Text to be split into lines.
+ the delimiter to split on
+ An array of lines - with trailing CRLF removed.
+
+
+
+ Join an array of strings into a single string separated by a delimiter.
+
+
+
+ a delimited list of the elements in strings
+
+
+
+ Count the number of distinct occurrences of substring in stringToSearch.
+
+
+ If there are overlapping occurrences of substring in stringToSearch, counting starts again after the
+ end of each match.
+
+ CountSubstringOccurences(" aaa", "aa")
+ returns 1, not 2.
+
+
+ String to be searched
+ String to search for
+ number of occurrences
+
+
+
+ Remove all double quotes from str
+
+ the string to strip the quotes from
+ str minus the quotes
+
+
+
+
+
+ String to be padded
+ character used for padding
+ total length the return string should be
+ whether or not to append padding in front of initialString
+
+
+
+
+
+
+ the prefixes to search for
+ string to search
+ true if prefixes exists in value
+
+
+
+
+
+ The hex representation of the byte array
+
+
+
+
+
+
+ A byte array
+
+
+
+
+
+
+ (e.g. 1234 Bytes, 9876 Main St)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Executes a group of tasks with a cap on the number of concurrent threads running.
+
+
+
+
+
+ Group of tasks to execute
+ Number of threads to execute concurrently
+
+
+
+ Internal printer representation of the ZPL format prefix
+
+
+
+
+ Internal printer representation of the ZPL command prefix
+
+
+
+
+ Internal printer representation of the ZPL delimiter
+
+
+
+
+ Internal printer representation of the ZPL format prefix, as a String
+
+
+
+
+ Internal printer representation of the ZPL command prefix, as a String
+
+
+
+
+ Internal printer representation of the ZPL delimiter, as a String
+
+
+
+
+ Printer Status Command ~HI
+
+
+
+
+ Printer Expanded Status Command ~HS
+
+
+
+
+ Config Label ~WC
+
+
+
+
+ Directory label ^XA^WD*:*.*^XZ
+
+
+
+
+ Config Label ~WL
+
+
+
+
+ Printer Calibrate Command ~JC
+
+
+
+
+ Printer Reset Command ~JR
+
+
+
+
+ Printer Network Reset Command ~WR
+
+
+
+
+ Printer restore defaults command ^XA^JUF^XZ
+
+
+
+
+ Printer get super host status command ^XA^HZA^XZ
+
+
+
+
+ Printer get storage info ^XA^HW*:XXXX.QQQ^XZ Use XXXX.QQQ to get drive info without matching a file name
+
+
+
+
+ Printer get file drive info for Linkos 2.5 and higher
+
+
+
+
+ Printer get drive listing for Linkos 2.5 and higher
+
+
+
+
+
+
+ the command to decorate with the internal command prefix
+ the command decorated with the internal ZPL command prefix. If command contains a '~' it
+ will be replace with the internal command prefix, otherwise the internal command prefix will simply be prefixed
+ to the front of command
+
+
+
+
+
+ the format to decorate with the internal format prefix
+ the format decorated with the internal ZPL format prefix. If format contains a '^' it will
+ be replace with the internal format prefix, otherwise the internal format prefix will simply be prefixed to the
+ front of format
+
+
+
+
+
+ the format to decorate with the internal format prefix
+ the format decorated with the internal ZPL format prefix. If format contains a '^' it will
+ be replace with the internal format prefix, otherwise the internal format prefix will simply be prefixed to the
+ front of format
+
+
+
+ Enumeration of a task's status.
+
+
+
+
+ Configuration state indicating the task has not been started.
+
+
+
+
+ Configuration state indicating the task is in process.
+
+
+
+
+ Configuration state indicating the task completed successfully.
+
+
+
+
+ Configuration state indicating the task failed.
+
+
+
+
+ ENumeration to determine how the Weblink address is set.
+
+
+
+
+ Looks at current weblink settings and determine which location to set based on if the URL is set and valid and if
+ the printer is connected to the address.
+
+
+
+
+ Overrides any setting in Weblink location 1.
+
+
+
+
+ Overrides any setting in Weblink location 2.
+
+
+
+
+ Enumeration of the weblink configuration task's state.
+
+
+
+
+ Configuration state indicating the task is creating a connection to the printer.
+
+
+
+
+ Configuration state indicating the task is retrieving the printer's settings.
+
+
+
+
+ Configuration state indicating the task is configuring the weblink setting.
+
+
+
+
+ Configuration state indicating the task is restarting the printer.
+
+
+
+
+ Configuration state indicating the task is waiting for the printer to restart and then reconnect.
+
+
+
+
+ Configuration state indicating the task is validating the printer's profile manager connection.
+
+
+
+
+ Callback for updating the status of a Weblink configuration task.
+
+
+
+
+ Sets the new state of the Weblink Configurator defined by WeblinkConfigurationState.
+
+ The updated WeblinkConfiguration state.
+
+
+
+ Provides a custom message for the current weblink configuration state.
+
+ Custom message.
+
+
+
+ Task to configure a printers Weblink setting.
+
+
+
+
+ Initializes a new instance of the WeblinkConfiguratior class.
+
+ The to configure.
+
+
+
+ Initializes a new instance of the WeblinkConfiguratior class.
+
+ A to a printer
+
+
+
+ Configures a printer to connect to a Zebra Weblink server and attempts to validate a successful connection.
+
+
+ Please note that this function will block while waiting for the printer to reset and while validating the
+ connection. This could take an excess of 60 seconds.
+
+ Weblink address to set.
+ Determines which weblink setting will be configured.
+ Callback object to report task status.
+ Thrown when a configuration error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the current .
+
+
+
+
+ Returns the of the weblink configuration task.
+
+
+
+
+ Returns true if the supplied weblink url is valid for the Zebra weblink server.
+
+ Potential URL to a Zebra Weblink server.
+ true if the URL is a properly formed URL for the Zebra Weblink server.
+
+
+
+ Signals that an error occured while configuring weblink.
+
+
+
+
+ Constructs a ZebraWeblinkException with a base Exception.
+
+ The base exception.
+
+
+
+ Constructs a ZebraWeblinkException with a custom detailed error message.
+
+ The custom error message.
+
+
+
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/monoandroid51/ZebraPrinterSdk.dll b/packages/Zebra.Printer.SDK.2.15.2634/lib/monoandroid51/ZebraPrinterSdk.dll
new file mode 100644
index 0000000..130d0b9
Binary files /dev/null and b/packages/Zebra.Printer.SDK.2.15.2634/lib/monoandroid51/ZebraPrinterSdk.dll differ
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/monoandroid51/ZebraPrinterSdk.xml b/packages/Zebra.Printer.SDK.2.15.2634/lib/monoandroid51/ZebraPrinterSdk.xml
new file mode 100644
index 0000000..c84937a
--- /dev/null
+++ b/packages/Zebra.Printer.SDK.2.15.2634/lib/monoandroid51/ZebraPrinterSdk.xml
@@ -0,0 +1,1091 @@
+
+
+
+ ZebraPrinterSdk
+
+
+
+
+ A factory interface used to acquire a cross platform instance of ZebraImageI.
+
+
+
+
+ Creates an instance of from the image specified in fullPath.
+
+ The full path of the image.
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If fullPath is null.
+
+
+
+ Creates an instance of from the image data specified in imageData.
+
+ A byte[] containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null.
+
+
+
+ Creates an instance of from the image data specified in imageData.
+
+ A stream containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null.
+
+
+
+ A factory used to acquire an instance of ZebraImageI.
+
+
+
+
+ Current IZebraPrinterFactory to use
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ A factory used to acquire an instance of a ZebraImageI.
+
+
+
+
+ Creates an instance of from the image specified in image.
+
+ The bitmap image
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If image is null
+
+
+
+ Creates an instance of from the image specified in fullPath.
+
+ The full path of the image.
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If fullPath is null
+
+
+
+ Creates an instance of from the image data specified in imageData
+
+ A stream containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 35 seconds was chosen for a Max Timeout so that if the pairing request is
+ ignored it will close and deny the pair before we hit the Max Timeout and close.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes a Bluetooth® connection to a printer
+
+
+ In order to connect to a device with Bluetooth®, the device must be discoverable, authentication must be enabled,
+ and the authentication pin must be set(1-16 alphanumeric characters).
+ The encryption type and whether or not it is used is determined by the device initiating the connection and not
+ device being connected to.
+
+ Desktop
+ Android™
+ iOS
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Gets/sets the time to wait before closing the connection (milliseconds).
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+ Constructs a new Bluetooth® connection with the given macAddress.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets. (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 10
+ seconds for any data to be received. If no more data is available after 500 milliseconds the read operation is
+ assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ the device's MAC address.
+
+
+
+ Constructs a new Bluetooth® connection with the givenmacAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets. (e.g. 00:11:BB:DD:55:FF or
+ 0011BBDD55FF). This constructor will use the specified timeouts for .The timeout is a
+ maximum of maxTimeoutForRead milliseconds for any data to be received.If no more data is available
+ after timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+
+ the device's MAC address.
+ the maximum time, in milliseconds, to wait for any data to be received.
+ the maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Exposed this protected constructor for testing. We can pass in a mock Connector rather than the BT specific one.
+ The MAC address is a hexadecimal string with no separators between the octets. (e.g. 0011BBDD55FF).
+
+
+
+
+
+
+
+
+ Opens a Bluetooth® connection as specified in the constructor.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Closes the Bluetooth® connection.
+
+
+
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name changes on the
+ device, it will not be refreshed until the connection is closed and reopened.
+
+ Bluetooth:[MAC Address]:[Friendly Name].
+
+
+
+
+ Gets the MAC address and the friendly name as the description.
+
+ [MAC Address]:[Friendly Name]
+
+
+
+
+ Gets the MAC address which was passed into the constructor. The MAC address is a hexadecimal string with
+ separators between the octets. (e.g. 00:11:BB:DD:55:FF).
+
+
+
+
+ Gets the friendly name of the Bluetooth® connection. The friendly name is obtained from the device when
+ this connection is opened.If the friendly name changes on the device, it will not be refreshed until the
+ connection is closed and reopened.
+
+
+
+
+
+
+
+
+
+
+ Establishes an insecure Bluetooth® connection to a printer.
+
+
+ Insecure Bluetooth® connections do not require the device and the printer to be paired.
+
+ Desktop
+ Android™
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ Constructs a new insecure Bluetooth® connection with the given macAddress.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets. (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5
+ seconds for any data to be received. If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ .
+
+ The device's MAC address.
+
+
+
+ Constructs a new insecure Bluetooth® connection with the given macAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets. (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the specified timeouts for . The timeout is a
+ maximum of maxTimeoutForRead milliseconds for any data to be received. If no more data is available
+ after timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+
+ The device's MAC address.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Establishes a Bluetooth® status only connection to a Link-OS printer.
+
+
+ This connection requires Link-OS firmware 2.5 or higher. This channel will not block the printing channel,
+ nor can it print. If you wish to print, see .
+ In order to connect to a device with Bluetooth®, the device must be discoverable, authentication must be enabled,
+ and the authentication pin must be set(1-16 alphanumeric characters).
+ The encryption type and whether or not it is used is determined by the device initiating the connection and not device being connected to.
+
+ Desktop
+ Android™
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+ Constructs a new Bluetooth® connection with the given macAddress.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets. (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5
+ seconds for any data to be received.If no more data is available after 500 milliseconds the read operation is
+ assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ the device's MAC address.
+
+
+
+ Constructs a new Bluetooth® connection with the givenmacAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets. (e.g. 00:11:BB:DD:55:FF or
+ 0011BBDD55FF). This constructor will use the specified timeouts for .The timeout is a
+ maximum of maxTimeoutForRead milliseconds for any data to be received.If no more data is available
+ after timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+
+ the device's MAC address.
+ the maximum time, in milliseconds, to wait for any data to be received.
+ the maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Exposed this protected constructor for testing. We can pass in a mock Connector rather than the BT specific one.
+ The MAC address is a hexadecimal string with no separators between the octets. (e.g. 0011BBDD55FF).
+
+
+
+
+
+
+
+
+ Opens a Bluetooth® connection as specified in the constructor.
+
+
+
+
+
+
+
+
+
+
+ Closes the Bluetooth® connection.
+
+
+
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name changes on the
+ device, it will not be refreshed until the connection is closed and reopened.
+
+ Bluetooth_STATUS:[MAC Address]:[Friendly Name].
+
+
+
+
+ Gets the MAC address and the friendly name as the description.
+
+ [MAC Address]:[Friendly Name]
+
+
+
+
+ Gets the MAC address which was passed into the constructor. The MAC address is a hexadecimal string with
+ separators between the octets. (e.g. 00:11:BB:DD:55:FF).
+
+
+
+
+ Gets the friendly name of the Bluetooth® connection. The friendly name is obtained from the device when
+ this connection is opened.If the friendly name changes on the device, it will not be refreshed until the
+ connection is closed and reopened.
+
+
+
+
+
+
+
+
+
+
+ Establishes a status only insecure Bluetooth® connection to a Link-OS printer.
+
+
+ This connection requires Link-OS firmware 2.5 or higher. This channel will not block the printing channel, nor can it print.
+ If you wish to print, see . Insecure Bluetooth® connections do not require the device and
+ the printer to be paired.
+
+ Desktop
+ Android™
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ Constructs a new status only insecure Bluetooth® connection with the given macAddress.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets. (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout
+ is a maximum of 5 seconds for any data to be received. If no more data is available after 500 milliseconds the
+ read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The device's MAC address.
+
+
+
+ Constructs a new status only insecure Bluetooth® connection with the given macAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets. (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after
+ timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+
+ The device's MAC address.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Establishes a Bluetooth® Low Energy connection to a printer.
+
+ In order to connect to a device with Bluetooth®, the device must the device must have Bluetooth® Low Energy capabilies.
+ The encryption type and whether or not it is used is determined by the device being connected to and the bluetooth.le settings.
+
+
+
+ Constructs a new Bluetooth® connection with the given macAddress and timeout values. The MAC address is a hexadecimal
+ string with or without separators between the octets. (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF). This constructor will use the specified
+ timeouts for com.zebra.sdk.comm.Connection.The timeout is a maximum of maxTimeoutForRead milliseconds for any data to be received.
+ If no more data is available after timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+ You will need to set in order to connect to a Printer.
+
+ The device's MAC address.
+
+
+
+ Constructs a new Bluetooth® connection with the given macAddress and timeout values. The MAC address is a hexadecimal
+ string with or without separators between the octets. (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF). This constructor will use the specified
+ timeouts for com.zebra.sdk.comm.Connection.The timeout is a maximum of maxTimeoutForRead milliseconds for any data to be received.
+ If no more data is available after timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+
+ The device's MAC address.
+ Android™ application context.
+
+
+
+ Constructs a new Bluetooth® connection with the given macAddress and timeout values. The MAC address is a hexadecimal
+ string with or without separators between the octets. (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF). This constructor will use the specified
+ timeouts for com.zebra.sdk.comm.Connection.The timeout is a maximum of maxTimeoutForRead milliseconds for any data to be received.
+ If no more data is available after timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+
+ The device's MAC address.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Android™ application context.
+
+
+
+
+
+
+
+
+
+ Opens a Bluetooth® Low Energy connection as specified in the constructor.
+
+
+
+
+
+
+ Closes the Bluetooth® Low Energy connection.
+
+
+
+
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name changes on the
+ device, it will not be refreshed until the connection is closed and reopened.
+
+ BluetoothLe:[MAC Address]:[Friendly Name].
+
+
+
+
+ Gets the MAC address and the friendly name as the description.
+
+ [MAC Address]:[Friendly Name]
+
+
+
+
+ Gets the MAC address which was passed into the constructor. The MAC address is a hexadecimal string with
+ separators between the octets. (e.g. 00:11:BB:DD:55:FF).
+
+
+
+
+ Gets the friendly name of the Bluetooth® connection. The friendly name is obtained from the device when
+ this connection is opened.If the friendly name changes on the device, it will not be refreshed until the
+ connection is closed and reopened.
+
+
+
+
+ Returns a ConnectionReestablisher which allows for easy recreation of a connection which may have been closed.
+
+ The time to wait for the device to come back online.
+
+
+
+
+
+ Get/Set the application context.
+
+ The Android™ application context used for the Bluetooth® Low Energy connection or null if not specified.
+
+
+
+ Builds a Connection from a description string. The description string is used to specify a connection to a specific
+ device over TCP or Bluetooth®.
+
+
+ The description string may be of the explicit forms:
+ "TCP:192.168.1.4:6101" -- creates a TCP connection to the device with IP address 192.168.1.4 on port 6101.
+ "TCP:192.168.1.4" -- creates a TCP connection to the device with IP address 192.168.1.4 on default port 9100.
+ "TCP:dnsName:6101" -- creates a TCP connection to the device with 'dnsName' on port 6101.
+ "TCP:dnsName" -- creates a TCP connection to the device with 'dnsName' on default port 9100.
+ "TCP_MULTI:192.168.1.4" -- creates a Multichannel TCP connection to the device with '192.168.1.4' using the default ports for both the printing channel(9100) and the status channel(9200).
+ "TCP_MULTI:192.168.1.4:1234" -- creates a Multichannel TCP connection to the device with '192.168.1.4' using the given port for the printing channel(1234) and the default port for the status channel(9200).
+ "TCP_MULTI:192.168.1.4:1234:5678" -- creates a Multichannel TCP connection to the device with '192.168.1.4' using the given ports for the printing channel(1234) and the status channel(5678).
+ "TCP_MULTI:dnsName:1234:5678" -- creates a Multichannel TCP connection to the device with 'dnsName' using the given ports for the printing channel(1234) and the status channel(5678).
+ "TCP_STATUS:192.168.1.4:1234" -- creates a TCP status only connection to the device with IP address 192.168.1.4 on port 1234.
+ "TCP_STATUS:192.168.1.4" -- creates a TCP status only connection to the device with IP address 192.168.1.4 on the default status port 9200.
+ "BT:11:22:33:44:55:66" -- creates a Bluetooth® connection to the device using '11:22:33:44:55:66' as the MAC address.
+ "BT_MULTI:11:22:33:44:55:66" -- creates a multichannel Bluetooth® connection to the device using '11:22:33:44:55:66' as the MAC address. (Link-OS 2.5 or higher for the status channel)
+ "BT_STATUS:11:22:33:44:55:66" -- creates a status only Bluetooth® connection to the device using '11:22:33:44:55:66' as the MAC address. (Link-OS 2.5 or higher)
+
+ Generic text may also be used to attempt to specify a device. For example a description string of "genericText" will
+ attempt to connect to a device using the following priority:
+
+ -
+ TCP_MULTI
+
+ -
+ TCP
+
+ -
+ TCP_STATUS
+
+ -
+ BT_MULTI
+
+ -
+ BT
+
+ -
+ BT_STATUS
+
+
+
+ If you supply the string '1FE533AA7B90'. This could be interpreted to be either a DNS name or a Bluetooth® MAC
+ address. ConnectionBuilder will attempt to connect to this string given the above priority order. If you supply a
+ more specific string, such as '192.168.2.3', ConnectionBuilder will more efficiently interpret this string as being
+ an IP address and, therefore, only attempt the TCP connections.
+ The Bluetooth® Connection Building process will first attempt an insecure connection (no pairing required). This
+ requires the printer's 'bluetooth.minimum_security_mode' must be set to 1. If an insecure connection could not be
+ esablished, it will attempt to pair and connect securely. This will trigger the Android pairing request prompt.
+ Note: Colon (':') characters are not supported in dnsName, friendlyName, uniqueId, deviceName, or genericText fields.
+ The following is an example of building a connection from a string.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Add a connection type to the ConnectionBuilder.
+
+ Connection class.
+
+
+
+ Creates a Connection type based on the contents of descriptionString.
+ "TCP:192.168.1.2:9100"
+ The format of the input string is: [prefix:] address [: port_number(s)].
+
+ -
+ Prefix is either TCP_MULTI, TCP, TCP_STATUS, BT_MULTI, BT, or BT_STATUS.
+
+ -
+ The format of address depends on the prefix
+
+ - TCP : address is either a DNS name or an IPv4 address.
+ - BT : address is the MAC address.
+
+
+ - port_number(s) is optional, and only applicable for TCP connections.
+ -
+ Examples:
+
+ - TCP:ZBR3054027:9100
+ - TCP_MULTI:ZBR3054027:9100:9200
+ - BT:11:22:33:44:55:66
+ - BT_MULTI:11:22:33:44:55:66
+ - BT_STATUS:11:22:33:44:55:66
+ - 10.1.2.3
+
+
+
+ Connection derived from the contents of descriptionString.If a connection could not be established for the given descriptionString.
+
+
+
+ Establishes a Bluetooth® label and status connection to a printer.
+
+
+ In order to connect to a device with Bluetooth®, the device must be discoverable,
+ authentication must be enabled, and the authentication pin must be set(1-16 alphanumeric characters).
+ The encryption type and whether or not it is used is determined by the device initiating the connection and not
+ device being connected to.
+
+ Desktop
+ Android™
+
+
+
+ Initializes a new instance of the MultichannelBluetoothConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is
+ a maximum of 5 seconds for any data to be received.If no more data is available after 500 milliseconds
+ the read operation is assumed to be complete.
+
+ The MAC Address of the Printer.
+
+
+
+ Initializes a new instance of the MultichannelBluetoothConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels. The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after
+ timeToWaitForMoreData milliseconds the read operation is assumed to be complete. If you wish to
+ specify different timeouts for each channel, use .
+
+ The MAC Address of the Printer.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Initializes a new instance of the MultichannelBluetoothConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels. The timeout is a maximum of
+ printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds for any data to be
+ received on the printing/status channels respectively. If no more data is available after
+ printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData milliseconds on the
+ printing/status channels respectively the read operation is assumed to be complete.
+
+ The MAC Address of the Printer.
+ The maximum time, in milliseconds, to wait for any data to be received on the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the status channel.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+ Opens both the printing and status channel of this Multichannel connection.
+
+
+ When this Multichannel connection is no longer needed, you must call to free up system resources.
+
+ If neither channel can be opened
+
+
+
+ Closes both the printing and status Bluetooth® channels.
+
+ If an error occurs while trying to close either channel
+
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name changes on the
+ device, it will not be refreshed until the connection is closed and reopened.
+
+ Bluetooth_MULTI:[MAC Address]:[Friendly Name].
+
+
+
+
+ Gets the MAC address and the friendly name as the description.
+
+ [MAC Address]:[Friendly Name]
+
+
+
+
+ Establishes an Android™ USB connection to an attached Zebra USB printer.
+
+
+
+
+ Returns the UsbManager object.
+
+
+
+
+ Returns the USB device name.
+
+
+
+
+ Return the device name as the description.
+
+
+
+
+
+
+
+ Returns the serial number of the printer.
+
+
+
+
+ Gets/sets the instance.
+
+
+
+
+ Creates a new UsbConnection.
+
+ The UsbManager object used to create this UsbConnection.
+ The UsbDevice object.
+
+
+
+ Creates a new UsbConnection.
+
+ The UsbManager object used to create this UsbConnection.
+ The UsbDevice object.
+ Maximum time to wait for read data.
+ Maximum time to wait for more data after initial data is sent from printer.
+
+
+
+ The USB device name is obtained from the device when this connection is opened.
+
+ Returns USB:[Device path].
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface defining a UsbPermissionRequestor.
+
+
+
+
+ Intended to be implemented by an Activity that knows how to request permission for USB communications from the Android USB manager.
+ It will be used/accessed by the SDK when attempting to reestablish USB communications after a firmware download and printer reset.
+
+ The UsbDevice object.
+
+
+
+ A class that discovers Bluetooth® devices.
+
+ Desktop
+ Android
+ iOS
+
+
+
+ Find Bluetooth® devices that are discoverable.
+
+ This method will return all devices found, not just Zebra printers
+ This method should not be called from the application main thread.
+ Android 6 and higher (API 23+) requires user permission ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION in your application manifest.
+ Android™ application context.
+ a instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+
+ for communication or discovery errors
+
+
+
+ Find Bluetooth® devices that are discoverable.
+
+ This method will return all devices found, not just Zebra printers.
+ This method should not be called from the application main thread.
+ Android™ application context
+ a instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished)
+ for communication or discovery errors
+
+
+
+ Find services(ConnectionChannels) that are supported by the device at macAddress.
+
+ Android™ application context
+ MAC address of the device
+ a instance that is used to handle service discovery events.
+ The Bluetooth MAC address is invalid
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ DeviceFilter is an interface to allow the user to write custom code to determine whether or not the
+ BluetoothDiscoverer should include a particular BluetoothDevice in it's result set.
+
+
+
+
+ Method called by a BluetoothDiscoverer to determine whether or not a Bluetooth® device should be added to
+ it's list of discovered devices.
+
+ BluetoothDevice to potentially be added to the list of of discovered Bluetooth® devices.
+ a bool indicating whether or not a particular BluetoothDevice should be added.
+
+
+
+ Instance of DiscoveredPrinter that is returned when performing a Bluetooth® discovery.
+
+
+
+
+ Returns an instance of a DiscoveredPrinterBluetooth with macAddress.
+
+ MAC address of the printer.
+ Friendly name of the printer.
+
+
+
+ The friendly name of the Bluetooth® device.
+
+
+
+
+
+
+
+ Instance of DiscoveredPrinter that is returned when performing a USB discovery.
+
+
+
+
+ Creates a new DiscoveredPrinterUsb.
+
+ Identifier to associate with the created DiscoveredPrinterUsb instance.
+ Android™ UsbManager to use for the created DiscoveredPrinterUsb instance.
+ Android™ UsbDevice to use for the created DiscoveredPrinterUsb instance.
+
+
+
+ The Android™ UsbDevice used by this DiscoveredPrinterUsb instance.
+
+
+
+
+ The Android™ UsbManager used by this DiscoveredPrinterUsb instance.
+
+
+
+
+
+
+
+ Interface definition for a callback to be invoked for service discovery events
+
+
+
+
+ This method is invoked when a service has been discovered. This method will be invoked for each service that is found.
+
+ a discovered channel
+
+
+
+ This method is invoked when discovery is finished
+
+
+
+
+ A class used to discover a printer described by a URL. (Windows 10 only)
+
+
+
+
+ This method will search using a combination of discovery methods to find the printer described by the specified URL. (Windows 10 only)
+
+
+ This method will invoke the method for each interface that
+ the specified printer is found. will be invoked when the discovery is
+ finished and will be invoked when any errors are encountered during
+ discovery. When is invoked, the discovery will be canceled and
+ will not be invoked.
+ This method will typically be used when reading an NFC tag attached to a Zebra printer. To launch your app when a
+ Zebra NFC tag is read:
+
+ - Register to listen for Zebra NFC Tag scans in your application
+ - Handle the NFC scan in your application
+
+
+ The URL describing the targeted printer (Typically, this information is encoded on an NFC tag attached
+ to the printer)
+ Example:
+ "http://www.zebra.com/apps/r/nfc?mBL=00225832C75F&mW=000000000000&mE=000000000000&c=QN3-AUBA0E01-00&s=XXQLJ112600422&v=0"
+ A instance that is used to handle discovery events (e.g. found a
+ printer, errors, discovery finished).
+ Android™ application context.
+ If an error occurs while starting the discovery (errors during discovery will be sent
+ via ).
+
+
+
+
+
+
+
+
+
+
+
+
+ Discovers Zebra printers connected to an Android™ device via USB Host.
+
+ Desktop
+ Android
+
+
+
+ Enumerate all currently connected Zebra USB printers.
+
+ Android™ application context.
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+
+
+
+ Enumerate all currently connected Zebra USB printers.
+
+ Android™ UsbManager.
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+
+
+
+ Determines if the UsbDevice is a Zebra printer.
+
+ The UsbDevice.
+ True if the USB device is a Zebra device.
+
+
+
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/SdkApi.Core.dll b/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/SdkApi.Core.dll
new file mode 100644
index 0000000..05b0e1e
Binary files /dev/null and b/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/SdkApi.Core.dll differ
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/SdkApi.Core.xml b/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/SdkApi.Core.xml
new file mode 100644
index 0000000..7a6f633
--- /dev/null
+++ b/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/SdkApi.Core.xml
@@ -0,0 +1,8999 @@
+
+
+
+ SdkApi.Core
+
+
+
+
+ Takes in a certificate file (P12, DER, PEM, etc) and processes it into a ZebraCertificateInfo object which contains
+ the selected certificate, Certificate Authority certificate chain, and private key (if applicable).
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Takes in a certificate file (P12, DER, PEM, etc) and processes it into a ZebraCertificateInfo object which contains
+ the selected certificate, Certificate Authority certificate chain, and private key (if applicable).
+
+ Data stream for the certificate file to be processed.
+ The certificate to use within a multi-certificate (like PKCS12) file.
+ Used to unlock a protected certificate file.
+ Instance containing all certificate and key information for the processed file.
+ If there is an issue reading the certificate file.
+ If there is an issue processing the certificate file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Signals that an error occurred while converting a certificate.
+
+
+
+
+ Constructs a ZebraCertificateConversionException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a ZebraCertificateConversionException with message as the detailed error
+ message and cause as the underlying exception.
+
+ User defined message for the exception.
+ What created the exception.
+
+
+
+ Handler class for managing certificate and private key information.
+
+
+
+
+ The file name on a printer to which a private key must be saved for wireless security.
+
+
+
+
+ The file name on a printer to which a wireless ca must be saved for wireless security.
+
+
+
+
+ The file name on a printer to which a client cert must be saved for wireless security.
+
+
+
+
+ Initializes a new instance of the ZebraCertificateInfo class.
+
+
+
+
+ Returns the CA Certificate chain.
+
+ CA Certificate chain in PEM format.
+
+
+
+ Contains the client certificate, if set.
+
+
+
+
+ Contains the Certificate Authority certificate chain, if set.
+
+
+
+
+ Contains the private key, if set.
+
+
+
+
+ A utility class used to extract info from certificate files and convert the contents into Zebra friendly formats.
+
+
+
+
+
+ Creates a wrapper that opens up the provided certificate keystore stream.
+
+ The stream containing certificate keystore file contents.
+ The password used to access the certificate file.
+ Thrown if the certificate stream contents cannot be accessed or if the
+ certificate password was incorrect.
+
+
+
+ Get a list of aliases present in the certificate keystore.
+
+ A list of the aliases present in the certificate keystore.
+ If the keystore has not been initialized (loaded).
+
+
+
+ Get the content of the first entry in the certificate's certificate chain.
+
+ The returned content is converted to PEM format. The resulting content can be stored to a printer for use
+ with wireless security. Since no alias is provided, the first entry in the certificate file will be used.
+ The Zebra-friendly certificate content
+ If the provided alias does not exist or the certificate content is corrupt
+
+
+
+ Get the content of the first entry in the certificate's certificate chain.
+
+ The returned content is converted to PEM format. The resulting content can be stored to a printer for use
+ with wireless security.
+ The alias name of the specific entry to extract from the certificate file.
+ The Zebra-friendly certificate content.
+ If the provided alias does not exist or the certificate content is corrupt
+
+
+
+ Get the content of the ca, which is determined to be all entries in the certificate chain after the first entry.
+
+ The returned ca is converted to PEM format. The resulting content can be stored to a printer for use with
+ wireless security. Since no alias is provided, the first entry in the certificate file will be used.
+ The Zebra-friendly ca content.
+ If the provided alias does not exist or the ca content is corrupt.
+
+
+
+ Get the content of the ca, which is determined to be all entries in the certificate chain after the first entry.
+
+ The returned ca is converted to PEM format. The resulting content can be stored to a printer for use with
+ wireless security.
+ The alias name of the specific entry to extract from the certificate file.
+ The Zebra-friendly ca content.
+ If the provided alias does not exist or the ca content is corrupt.
+
+
+
+ Get the encrypted private key content.
+
+ The returned key is encrypted and converted to PEM format. The resulting content can be stored
+ to a printer for use with wireless security.Since no alias is provided, the first entry in the certificate
+ file will be used. Note: Any printer using the generated private key must also be configured to use the
+ password provided here to encrypt the private key.Send the following command to the printer to configure
+ it to use a private key encryption password: ! U1 setvar "wlan.private_key_password" "value".
+ The password used to encrypt the resulting private key.
+ The encrypted private key in PEM format.
+ If the provided alias does not exist, certificate password is
+ incorrect, or private key content is corrupt.
+
+
+
+ Get the encrypted private key content.
+
+ The resulting content can be stored to a printer for use with wireless security.
+ Note: Any printer using the generated private key must also be configured to use the provided password to
+ encrypt the private key. Send the following command to the printer to configure it to use a private key
+ encryption password: ! U1 setvar "wlan.private_key_password" "value".
+ The alias name of the specific entry to extract from the certificate file.
+ The password used to encrypt the resulting private key.
+ The encrypted private key in PEM format.
+ If the provided alias does not exist, certificate password is
+ incorrect, or private key content is corrupt.
+
+
+
+ Get the common name of the client certificate associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The certificate common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the client certificate associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The certificate common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the CA associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The CA common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the CA associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file
+ The CA common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the expiration data of the client certificate associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The client certificate expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the client certificate associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The client certificate expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the CA associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The CA expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the CA associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The CA expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the algorithm used by the private key.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The private key algorithm.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the algorithm used by the private key.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The private key algorithm.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the issuer of the client certificate.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The client certificate issuer.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the issuer of the client certificate.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The client certificate issuer.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Gets the keystore of the processed client certificate.
+
+ The Pkcs12Store containing information about the processed certificate file.
+
+
+
+ A connection to a device.
+
+
+
+
+ Opens the connection to a device.
+
+
+ If the open method is called when this connection has already been
+ opened, this call is ignored. When a handle to the connection is no longer needed, you must call
+ to free up system resources.
+
+ If the connection cannot be established.
+
+
+
+ Closes this connection and releases any system resources associated with the connection.
+
+ If the connection is already closed then invoking this method has no effect.
+ If an I/O error occurs.
+
+
+
+ Writes data.Length bytes from the specified byte array to this output stream.
+
+
+ The connection must be open before this method is called. If write is called when a connection is closed, a
+ ConnectionException is thrown.
+
+ Data to write
+ If an I/O error occurs.
+
+
+
+ Writes length bytes from data starting at offset.
+
+
+ The connection must be open before this method is called. If Write is called when a
+ connection is closed, a ConnectionException is thrown.
+
+ The data.
+ The start offset in the data.
+ The number of bytes to write.
+ if an I/O error occurs.
+
+
+
+ Writes all available bytes from the data source to this output stream.
+
+
+ The connection must be open before this method is called. If write is called when a connection is closed,
+ a ConnectionException is thrown.
+
+ The data.
+ If an I/O error occurs.
+
+
+
+ Reads all the available data from the connection. This call is non-blocking.
+
+ Data read from the connection.
+ If an I/O error occurs.
+
+
+
+ Reads the next byte of data from the connection.
+
+
+ The value byte is returned as an int in the range of 0 to 255. If no byte is available on the
+ connection the value -1 is returned.
+
+ The next byte from the connection.
+ If an I/O error occurs.
+
+
+
+ Reads all the available data from the connection.
+
+ This call is non-blocking.
+ For read data.
+ If an I/O error occurs.
+
+
+
+ Returns true if the connection is open.
+
+
+
+
+ Returns an estimate of the number of bytes that can be read from this connection without blocking.
+
+ The estimated number of bytes available.
+ If an I/O error occurs.
+
+
+
+ See the classes which implement this method for the format of the description string.
+
+ The connection description string.
+
+
+
+ Gets a human-readable description of the connection.
+
+
+
+
+ Causes the currently executing thread to sleep until > 0, or for a maximum of
+ maxTimeout milliseconds.
+
+ The maximum time in milliseconds to wait for an initial response from the printer.
+ If an I/O error occurs.
+
+
+
+ Gets or sets the maximum time, in milliseconds, to wait for any data to be received.
+
+
+
+
+ Gets or sets the maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+
+ Sends dataToSend and returns the response data.
+
+
+ The software returns immediately if the data received contains terminator. The connection must be open before this method
+ is called. If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Byte array of data to send
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function returns a zero length array.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response contains this string, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response is always terminated with a known string. Use null
+ if no terminator is desired.
+ The received data.
+ If an I/O error occurs.
+
+
+
+ Sends data from sourceStream and writes the response data to destinationStream.
+
+
+ The software returns immediately if the data received contains terminator. The connection must be open before this method
+ is called. If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Destination for response.
+ Source of data to be sent.
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function does not write any data to the destination stream.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response contains this string, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response is always terminated with a known string. Use null
+ if no terminator is desired.
+ If an I/O error occurs.
+
+
+
+ Sends dataToSend and returns the response data.
+
+
+ The software returns immediately if the data received satisfies validator. The connection must be open before this method is called.
+ If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Byte array of data to send
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function returns a zero length array.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response satisfies this validator, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response follows a known format.
+ received data
+ If an I/O error occurs.
+
+
+
+ Sends data from sourceStream and writes the response data to destinationStream.
+
+
+ The software returns immediately if the data received satisfies validator. The connection must be open before this method is called.
+ If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Destination for response.
+ Source of data to be sent.
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function does not write any data to the destination stream.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response satisfies this validator, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response follows a known format.If validator is null, no validation is performed.
+ When performing validation, this method will use enough memory to hold the entire response.
+ If an I/O error occurs.
+
+
+
+ Returns a ConnectionReestablisher which allows for easy recreation of a connection which may have been closed.
+
+ This call should be made while there is still an active connection to the printer (prior to issuing a command which will make the printer non-responsive).
+ How long the Connection reestablisher will wait before attempting to reconnection to the printer.
+ Instance of
+ If the ConnectionReestablisher could not be created.
+
+
+
+ Abstract class which implements the default functionality of Connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ This call is non-blocking.
+ number of bytes to read
+ the bytes read from the connection
+ if an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sets the stream to log the write data to.
+
+ The stream to log the data to.
+
+
+
+ Log data sent to printer by sending to the WriteLogStream, if present
+
+ The data written to connection, send to log stream
+ The start offset in the buffer.
+ The number of bytes to write
+
+
+
+
+ Gets or sets the maximum number of bytes to write at one time
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ number of bytes to read
+ true to exit on first data read
+ the bytes read from the connection.
+ if an I/O error occurs.
+
+
+
+ See the classes which implement this property for the format of the printer manufacturer string.
+
+
+
+
+
+
+
+
+
+
+ Sets the underlying read timeout value.
+
+ The read timeout in milliseconds.
+ If an error occurs while attempting to set the read timeout.
+
+
+
+ For printers that support both Status and Printing channel (Link OS printers).
+
+
+
+
+ The status channel of a connection.
+
+
+
+
+ The printing channel of a connection.
+
+
+
+
+ Signals that an error has occurred on the connection.
+
+
+
+
+ onstructs a ConnectionException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a ConnectionException with cause as the source of the exception.
+
+ The cause of the exception.
+
+
+
+ Constructs a ConnectionException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception.
+
+
+
+ Defines methods used to reestablish a connection to a printer which may have been closed.
+
+
+
+
+ Reestablishes a connection to a printer which may have been closed due to an event, like a reboot.
+
+ Handles recreating and opening a connection to a printe.r
+ If the printer cannot be found.
+ If the connection can not be created or open.
+ If a connection can not be reestablished after a defined timeout
+ If the connection can not talk to the printer.
+
+
+
+ Abstract class which implements the default functionality of StatusConnection.
+
+
+
+
+
+
+
+
+ A connection to a device that copies data sent to the connection to the provided stream.
+
+
+
+
+ Sets the stream to log the write data to.
+
+ Log all write data to this stream.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ Number of bytes to read.
+ True to return on first read.
+ The bytes read from the printer.
+ If an I/O error occurs.
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ Number of bytes to read.
+ The bytes read from the printer.
+ If an I/O error occurs
+
+
+
+ Gets or sets the maximum number of bytes to write at one time.
+
+
+
+
+ Returns the printer manufacturer name.
+
+
+
+
+ Sets the underlying read timeout value.
+
+ The timeout in milliseconds.
+ If an I/O error occurs
+
+
+
+ A wrapper class containing information about a connection.
+
+
+
+
+
+
+ The connection string
+
+
+
+
+
+ The data of the connection info
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Writes a byte stream representation of the file to destination.
+
+
+ Currently all files are retrieved in binary mode.
+
+ Stream to receive the contents of the file.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+ the error message
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UnknownHostException
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sets the sockets read/block timeout.
+
+ Timeout in ms
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An interface defining methods associated with a device that may be addressed via an IP connection.
+
+
+
+
+ Returns the address which was passed into the constructor.
+
+ the address used to establish this connection. This can be either a DNS Hostname or an IP address.
+
+
+
+ Returns the port number which was passed into the constructor.
+
+ the port number associated with the connection.
+
+
+
+ Signals that an error has occurred while writing to the connections log stream.
+
+
+
+
+ Constructs a LogStreamException with message as the detailed error message.
+
+ the error message.
+
+
+
+ Base class for Link-OS printers which support separate printing and status channels.
+
+
+ This class conforms to a standard and if only the Connection methods are used, the SDK will attempt to open
+ both the printing and status channels. A will use the raw Connection when a method is called directly.
+ Furthermore, when using a in conjunction with a , the will
+ attempt to use whichever connection is the most efficient. If you wish to only open up a specific channel, use either the
+ or
+ method and their corresponding
+ and
+ method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Opens both the printing and status channel of this Multichannel connection.
+
+
+ If neither channel can be opened, then a is thrown. When this Multichannel connection is no longer needed, you must
+ call to free up system resources.
+
+
+
+
+
+ Opens the printing channel of this Multichannel connection.
+
+
+ If this method is called when this channel has already been opened, the call is ignored. When this channel is no longer needed, you must call either
+ or to free up system resources.
+
+ if the connection cannot be established.
+
+
+
+ Opens the status channel of this Multichannel connection.
+
+
+ If this method is called when this channel has already been opened, the call is ignored. When this channel is no longer needed, you must call either
+ or to free up system resources.
+
+ if the connection cannot be established.
+
+
+
+ Closes both the printing and status channels of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+
+
+
+
+ Closes the printing channel of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+ if an I/O error occurs.
+
+
+
+ Closes the status channel of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+ if an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the underlying printing of this MultichannelConnection.
+
+
+
+
+ Gets the underlying status of this MultichannelConnection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes a Multichannel TCP connection to a device.
+
+
+
+
+
+ The default Multichannel printing port for Link-OS devices.
+
+
+
+
+ The default Multichannel status port for Link-OS devices.
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data to be
+ received. If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ or
+
+
+ The discovered printer.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels. The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete. If you wish to specify different timeouts for each channel, use
+
+
+ The discovered printer.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels. The timeout is a maximum of
+ printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds for any data to be received on the printing/status
+ channels respectively.If no more data is available after printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData
+ milliseconds on the printing/status channels respectively the read operation is assumed to be complete.
+
+ The discovered printer.
+ The maximum time, in milliseconds, to wait for any data to be received on the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the status channel.
+ If discoveredPrinter is not a valid Link-OS printer.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any
+ data to be received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ or
+
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels. The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received.If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete. If you wish to specify different timeouts for each channel, use
+
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels. The timeout is a maximum of
+ printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds for any data to be received on the printing/status
+ channels respectively.If no more data is available after printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData
+ milliseconds on the printing/status channels respectively the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+ The maximum time, in milliseconds, to wait for any data to be received on the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the status channel.
+
+
+
+
+
+
+
+
+
+
+ The Address, PrintingPort, and StatusPort are the parameters which were passed into the constructor.
+
+ TCP_MULTI:[Address]:[PrintingPort]:[StatusPort]
+
+
+
+ Return the IP address as the description.
+
+
+
+
+
+ An interface defining a method to validate whether a response from the printer is complete.
+
+
+
+
+ Provide a method to determine whether a response from the printer is a complete response.
+
+ string to be validated
+ true if the string is a complete response
+
+
+
+ A status connection to a Link-OS printer. The status connection requires Link-OS firmware 2.5 or higher. This
+ connection will not block the printing channel, nor can it print.
+
+
+
+
+ A status connection to a Link-OS printer. The status connection requires Link-OS firmware 2.5 or higher. This
+ connection will not block the printing channel, nor can it print.It copies data sent to the connection to the
+ provided stream.
+
+
+
+
+ Sets the stream to log the write data to.
+
+ Log all write data to this stream.
+
+
+
+ Establishes a TCP connection to a device.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ The default TCP port for ZPL devices.
+
+
+
+
+ The default TCP port for CPCL devices.
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the TcpConnection class.
+
+
+ This constructor will use the default
+ timeouts for . The default timeout is a maximum of 5 seconds for any data to be
+ received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ .
+
+ the IP Address or DNS Hostname.
+ the port number.
+
+
+
+ Initializes a new instance of the TcpConnection class.
+
+
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after
+ timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Exposed this protected constructor for testing. We can pass in a mock Connector rather than the specific one
+
+
+
+
+ Returns TCP:[Address]:[PortNumber].
+
+ The address and port number are the parameters which were passed into the constructor.
+
+
+
+
+ Gets the IP address as the description.
+
+
+
+
+
+
+
+
+
+
+
+ Sets the read timeout on the underlying socket.
+
+ The read timeout in milliseconds
+
+
+
+
+
+
+
+
+
+ Establishes a status only TCP connection to a device
+
+
+
+
+
+ The default Status TCP port for ZPL devices.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class using the default status port of 9200.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data to be received.
+ If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The IP Address or DNS Hostname.
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data
+ to be received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The IP Address or DNS Hostname.
+ The port number.
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class.
+
+
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ The address and port number are the parameters which were passed into the constructor.
+
+ TCP_STATUS:[address]:[port number]
+
+
+
+ Returns the IP address and the status port as the description.
+
+
+
+
+
+ An interface used to control and obtain various properties of a device.
+
+
+
+
+ This is an utility class for performing file operations on a device.
+
+
+
+
+
+ Sends the contents of a file to the device.
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.lbl").
+ Note: If the file contains data which will trigger a response from the printer (e.g. JSON formatted settings), this method
+ will not clear the response from the buffer. This may cause subsequent method calls to fail unpredictably. Clear the read buffer
+ of the connection manually by calling Read() if this is applicable.
+ If there is an issue communicating with the device (e.g. the connection is not
+ open).
+
+
+
+ Sends the contents of a file to the device.
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.lbl").
+ Callback to update on progress
+ Note: If the file contains data which will trigger a response from the printer (e.g. JSON formatted settings), this method
+ will not clear the response from the buffer. This may cause subsequent method calls to fail unpredictably. Clear the read buffer
+ of the connection manually by calling Read() if this is applicable.
+ If there is an issue communicating with the device (e.g. the connection is not
+ open).
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+ List of file names.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+ This method only returns files which have one of the extensions in extensions.
+ The extensions to filter on.
+ List of file names.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Retrieves the properties of the objects which are stored on the device.
+
+ The list of objects with their properties.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Utility class for performing file operations on a Zebra Link-OS™ printer.
+
+
+
+
+ Retrieves storage information for all of the printer's available drives.
+
+ A list of objects detailing information about the printer's available drives.
+
+
+
+
+ Stores the file on the printer using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead. These commands include download commands and any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ If there is an error connecting to the device.
+ If there is an issue reading the file
+ If filePath cannot be used to create a printer file name.
+
+
+
+ Stores the file on the printer at the specified location and name using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead. These commands include download commands and any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+ If there is an issue reading the file
+ If fileNameOnPrinter is not a legal printer file name.
+
+
+
+ Stores a file on the printer named fileNameOnPrinter with the file contents from
+ fileContents using any required file wrappers.
+
+
+ If the fileContents contains any commands which need to be processed by the printer,
+ use instead. These commands include download commands and any immediate
+ commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF, ~JG, ~JI,
+ ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The contents of the file to store.
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+ If fileNameOnPrinter is not a legal printer file name.
+
+
+
+ Deletes the file from the printer. The filePath may also contain wildcards.
+
+ The location of the file on the printer. Wildcards are also accepted (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error connecting to the device.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ The file contents
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system and writes the contents of that file to destinationStream.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ Output stream to receive the file contents
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system via FTP and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+ NOTE: This method retrieves files over a network protocol and hence will only work over a TCP connected
+ printer with FTP enabled. If ftpPassword is not provided, a default will be tried.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ The password used to login to FTP, if null, a default password ("1234") will be used.
+ The file contents.
+ If there is an error communicating with the printer, or the ftpPassword is invalid
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system via FTP and writes the contents of that file to destinationStream.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+ NOTE: This method retrieves files over a network protocol and hence will only work over a TCP connected
+ printer with FTP enabled. If ftpPassword is not provided, a default will be tried.
+
+ The output stream to receive the file contents
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ The password used to login to FTP, if null, a default password ("1234") will be used.
+ If there is an error communicating with the printer, or the ftpPassword is invalid
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte array including
+ all necessary file wrappers for redownloading to a Zebra printer.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ A Zebra printer downloadable file content.
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ A class used to assemble a profile efficiently.
+
+
+
+
+ Prepares the destination stream to receive the profile data.
+
+
+ This method must be called prior to calling any other method in this class.
+
+ The stream in which to put the profile.
+ must be called to get a valid profile in the destinationStream.
+
+
+
+
+ Method to add settings data to a profile.
+
+
+ The profile expects settings data to be valid JSON and of the form of the allconfig response.
+
+ The stream containing the settings data.
+ If there is an error adding settings to the profile.
+
+
+
+ Method to add alerts to a profile.
+
+ The stream containing the alerts data.
+ If there is an error adding alerts to the profile.
+
+
+
+ Adds data to supplement an existing printer profile.
+
+
+ Any supplemental data added to a profile, upon loading the profile, will be sent to the
+ printer after all other profile components have been applied.
+
+ The stream containing the supplement data.
+ If there is an error adding the supplement to the profile.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ The desired display name of the firmware file.
+ The stream containing the firmware.
+ If there is an error adding firmware to the profile.
+
+
+
+ Adds user files to the profile.
+
+ Files to add to the profile. Each file entry should contain the desired file name
+ and the a stream of the file's content.
+ If there is an error adding files to the profile.
+
+
+
+
+
+
+
+
+
+
+ Flushes remaining profile data to prepare the destination stream for closing.
+
+
+ This method must be called when you are done assembling all the parts of your profile,
+ and should only be invoked once.
+
+
+
+
+ Handler to retrieve the parts of the profile.
+
+
+
+
+
+ Callback fired when settings are retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the settings
+
+
+
+ Callback fired when alerts are retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the alerts
+
+
+
+ Callback fired when firmware is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the firmware
+
+
+
+ Callback fired when the firmware display name is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the firmware display name
+
+
+
+ Callback fired when the supplement is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the supplement
+
+
+
+ Callback fired when a file is retrieved from a profile.
+
+ This will be called once for each user file in the profile.
+ The file name
+ The profile stream.
+ If there is an error retrieving the file
+
+
+
+ A class used to disassemble a profile efficiently.
+
+
+
+
+ Disassembles the profile and notifies the handler for all the profile parts.
+
+ The profile source stream.
+ Callback to retrieve the parts of the profile.
+ If there is an error disassembling the profile.
+
+
+
+ Provides access to the magnetic card reader, for devices equipped with one.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Activates the device's magnetic card reader, if present, and waits for a card to be swiped.
+
+
+ If the device does not have a reader the call will timeout.
+
+ The amount of time in milliseconds to enable the reader and wait for a card to be swiped.
+ An array of three strings corresponding to the tracks of the card. If a track could not be read that
+ string will be empty.
+
+
+
+ A class used to determine if a base has MagCard reader capabilities.
+ Not all Zebra printers are available with built-in readers.
+
+
+
+
+ Creates an instance of a Magcard reader, if available.
+
+ Base Zebra Printer that may or may not have MagCard reader capabilities.
+ An instance of a MagCardReader object or null if the base printer does not have MagCard reader hardware installed.
+
+
+
+ Interface to access the contents of a .zprofile file.
+
+
+
+
+
+ Create a Profile object backed by an existing .zprofile file.
+
+ Path to the profile file.
+ If the file pathToProfile does not exist.
+
+
+
+ Adds data to supplement an existing printer profile.
+
+
+ Any supplemental data added to a profile, upon loading the profile, will be sent to the printer
+ after all other profile components have been applied.
+
+ Byte array containing the data to be used to supplement the printer profile.
+ If there is an error writing to the .zprofile file.
+
+
+
+ Returns the supplement data within the profile.
+
+ The supplement data within the profile.
+ If there is an error writing to the .zprofile file.
+ If the .zprofile file cannot be found.
+
+
+
+ This method is not valid for a profile.
+
+
+ If this method is called.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ Full path to the firmware file to be added to the profile.
+ If there is an error reading pathToFirmwareFile or if there
+ is an error writing to the.zprofile file.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ The name of the firmware file
+ The firmware file contents
+ If there is an error reading pathToFirmwareFile or if there
+ is an error writing to the.zprofile file.
+
+
+
+ Removes the firmware file from the profile.
+
+ If there is an error removing the firmware file from the .zprofile file.
+
+
+
+ Returns the file name of the firmware file within the profile.
+
+ The file name of the firmware file within the profile.
+ If there is an error removing the firmware file from the .zprofile file.
+ If the firmware file cannot be found in the .zprofile file.
+
+
+
+
+
+
+ Retrieve all of the setting identifiers for a profile.
+
+
+ These are the IDs that may be used as keys for retrieving and updating settings for a profile.
+
+ Set of identifiers available for a profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+
+ Retrieves the profile's setting value for a setting id.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieves the profile's setting values for a list of setting ids.
+
+ List of setting ids.
+ The settings' values.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieves all of the profile's setting values.
+
+ Values of all the settings provided by the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Change the value of the setting in the profile to the given value.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the setting is read only, does not exist, or if the setting could not be set.
+
+
+
+ Set more than one setting.
+
+ Map a setting ID to the new value for the setting.
+ If there is an error communicating with the printer.
+ If the settings cannot be saved in the profile.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Retrieve the values of all the settings that are archivable.
+
+ Values of all the settings with the archivable attribute that are in the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Retrieve the values of all the settings that are clonable.
+
+ Values of all the settings with the clonable attribute that are in the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Retrieves the profile's for a setting id.
+
+ The setting id.
+ The
+ If there is an error communicating with the printer.
+ If the setting could not be retrieved.
+
+
+
+ Change the setting in the profile.
+
+ The setting id.
+ The setting.
+ If there is an error communicating with the printer.
+ If the setting is malformed, or if the setting could not be set.
+
+
+
+ Change settings in the profile.
+
+ The settings to change
+ If there is an error communicating with the printer.
+ If a setting is malformed, or one or more settings could not be set.
+
+
+
+ Change or retrieve settings in the profile.
+
+ The settings to change.
+ results of the setting commands
+ If there is an error communicating with the printer.
+ If the setting is malformed, or if the setting could not be set.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A list of objects detailing the alert configurations in a profile.
+
+ A list of alert objects currently in a profile.
+ If the alerts could not be extracted from the profile.
+
+
+
+
+
+
+
+
+
+ Removes a configured alert from a profile.
+
+ They may be reconfigured via the setAlert methods.
+ The alert to be removed from the configuration.
+ If an I/O error occurs.
+
+
+
+ Removes all alerts currently in a profile.
+
+ They may be reconfigured via the setAlert(s) methods.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ This method is not valid for a profile.
+
+ Path to the file containing the data to send.
+ If this method is called.
+
+
+
+ This method is not valid for a profile.
+
+ Path to the file containing the data to send.
+ Progress monitor callback handler.
+ If this method is called.
+
+
+
+ Adds a file to the profile named fileNameOnPrinter with the file contents from
+ fileContents.
+
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ The contents of the file to send.
+ If an I/O error occurs.
+
+
+
+ Retrieves the names of the files which are in the profile.
+
+ List of file names.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+
+ This method only returns files which have one of the extensions in extensions.
+
+ The extensions to filter on.
+ List of file names.
+
+
+
+ Stores the file in the profile using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ If there is an error connecting to the device.
+ If filePath cannot be used to create a printer file name.
+
+
+
+ Stores the file in the profile at the specified location and name using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+
+
+
+ Stores a file in the profile named fileNameOnPrinter with the file contents from
+ fileContents using any required file wrappers.
+
+
+ If the fileContents contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The contents of the file to store.
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+
+
+
+ Deletes the file from the profile. The filePath may also contain wildcards.
+
+ The location of the file on the printer. Wildcards are also
+ accepted (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error accessing the profile.
+
+
+
+ Retrieves a file from the profile and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, BAE, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ The file contents
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+
+
+
+ This method is not valid for a profile.
+
+ NA
+ NA
+ NA
+ If this method is called.
+
+
+
+ This method is not valid for a profile.
+
+ NA
+ NA
+ NA
+ If this method is called.
+
+
+
+ Retrieves a file from the profile and returns the contents of that file as a byte array including all necessary
+ file wrappers for re-downloading to a Zebra printer.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, BAE, TXT
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ A Zebra printer downloadable file content.
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+
+
+
+ Class which allows you to store a zprofile to a mirror server.
+
+
+
+
+ Creates an instance of a class which can be used to store a profile onto a mirror server.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile).
+ If an I/O error occurs.
+
+
+
+ Stores the profile to the mirror server.
+
+
+ This method also deletes all files in appl/, commands/, and files/ directory before storing
+ the contents of the profile in the proper directories.
+
+ The FTP server path.
+ The FTP user name. (The user should have read/write/create/delete access.)
+ The FTP password.
+ A list of the errors that happened while uploading settings and files.
+ If an I/O error occurs.
+ If the profile is not found.
+ If an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler to monitor long-running file operations.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Callback to notify the user as to the progress of the how many bytes have been sent.
+
+
+ Bytes currently written
+ Total bytes to send
+
+
+
+ Provides access to the smartcard reader, for printers equipped with one.
+
+ Not all Zebra printers are available with built-in readers.
+
+
+
+ Sends a CT_ATR command to the printer's smartcard reader, if present.
+
+ A byte array containing the response from the smartcard reader.
+ If an I/O error occurs.
+
+
+
+ Sends a CT_DATA command to the printer's smartcard reader, if present.
+
+ Data to be sent to the smartcard using the CT_DATA card command.
+ A byte array containing the response from the smartcard reader.
+ If an I/O error occurs.
+
+
+
+ Turns the printer's smartcard reader off, if present.
+
+ This call should be made after communicating with the smartcard via the method.
+
+
+
+ A class used to determine if a base ZebraPrinter has Smartcard reader capabilities.
+
+ Not all Zebra printers are available with built-in readers.
+
+
+
+ Creates an instance of a Smartcard reader, if available.
+
+ Base ZebraPrinter that may or may not have Smartcard reader capabilities.
+ An instance of a SmartcardReader object or null if the base printer does not have Smartcard reader
+ hardware installed.
+
+
+
+ Signals that an illegal argument was used.
+
+
+
+
+ Constructs a ZebraIllegalArgumentException with message as the detailed error message
+
+ the error message
+
+
+
+ Constructs a ZebraIllegalArgumentException with message as the detailed error message
+
+ the error message
+ The name of the parameter that caused the exception.
+
+
+
+ Constructs a ZebraIllegalArgumentException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception.
+
+
+
+ Constructs a ZebraIllegalArgumentException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The name of the parameter that caused the exception.
+ The cause of the exception.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Contains methods used to query attributes of an image formatted for a Zebra printer.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ A row of image data.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+ True if the image was scaled.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ Contains methods used to query attributes of an image formatted for a Zebra printer.
+
+ see ZebraImageFactory" for how to create an image.
+
+
+
+ Gets the image's height in pixels.
+
+
+
+
+ Gets the image's width in pixels.
+
+
+
+
+ This is an utility class for getting/setting alerts on a printer.
+
+
+
+
+
+ A list of objects detailing the alert configuration of a printer.
+
+ A list of alert objects currently configured on the printer.
+
+
+
+
+
+ Configures an alert to be triggered when the alert's condition occurs or becomes resolved.
+
+ The alert to trigger when it's condition occurs or becomes resolved.
+
+
+
+
+ Configures a list of alerts to be triggered when their conditions occur or become resolved.
+
+ The list of alerts to trigger when their conditions occur or become resolved.
+
+
+
+
+ Removes a configured alert from a printer. They may be reconfigured via the configureAlert(s) methods.
+
+ Alert to be removed from the configuration
+
+
+
+
+ Removes all alerts currently configured on a printer. They may be reconfigured via the configureAlert(s) methods.
+
+
+
+
+
+ A class used to print template formats using comma separated values as input data.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The connection string.
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The connection string.
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Container holding information about a discovered printer.
+
+
+
+
+ Creates a connection based on the information in the DiscoveredPrinter response.
+
+ a Connection to the discovered printer
+
+
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+
+
+
+
+
+ Creates an object holding information about a discovered printer.
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+
+ For TCP, this returns the IP Address. For driver, this returns the local printer name.
+
+
+
+
+ Returna a Dictionary of all settings obtained via the chosen discovery method.
+
+
+ The names of the settings will vary depending upon the type of connection to the printer. The following example
+ shows how to list all the properties of the discovered printer with the respective value.
+
+
+ foreach (string settingsKey in printer.DiscoveryDataMap.Keys) {
+ System.Diagnostics.Debug.WriteLine("Key: " + settingsKey + " Value: " + printer.DiscoveryDataMap[settingsKey]);
+ }
+
+ containing available attributes of the discovered printer.
+
+
+
+ Returns true if two discovered printer objects have the same address, otherwise it returns false.
+
+ DiscoveredPrinter object to compare against.
+ true if equal
+
+
+
+
+ Returns a hash code for this DiscoveredPrinter.
+
+ The hash code
+
+
+
+
+ DiscoveredPrinterFilter is an interface to allow the user to write custom code to determine
+ whether or not a DiscoveredPrinter should be included in the discovery result.
+
+
+
+
+ Method called by a discovery operation to determine whether or not the should be added to
+ the list of discovered devices.
+
+ DiscoveredPrinter to potentially be added to the list of of discovered devices.
+ A bool indicating whether or not the device should be added.
+
+
+
+ Instance of that is returned when performing a network discovery.
+
+
+
+
+ Returns an instance of a DiscoveredPrinterNetwork with address and port.
+
+ The address of the discovered network printer
+ The active raw port of the discovered network printer
+
+
+
+ Returns an instance of a DiscoveredPrinterNetwork built using the provided attributes.
+
+ A map of attributes associated with the discovered network printer
+
+
+
+
+
+
+
+
+
+ Returns a hash code for this DiscoveredPrinter.
+
+
+
+
+
+ Signals that there was an error during discovery.
+
+
+
+
+ Constructs a DiscoveryException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Interface definition for a callback to be invoked for printer discovery events
+
+
+
+
+
+ This method is invoked when a printer has been discovered. This method will be invoked for each printer that is found.
+
+ a discovered printer.
+
+
+
+ This method is invoked when discovery is finished.
+
+
+
+
+ This method is invoked when there is an error during discovery. The discovery will be cancelled when this method
+ is invoked. will not be called if this method is invoked.
+
+ the error message.
+
+
+
+ Class definition for a callback to be invoked for Link-OS™ printer discovery events.
+
+
+
+
+
+
+ Creates a DiscoveryHandler which will only report back Link-OS™ printers.
+
+ Base discovery handler for callbacks.
+
+
+
+ This method is invoked when there is an error during discovery. The discovery will be cancelled when this method
+ is invoked. will not be called if this method is invoked.
+
+ The error message.
+
+
+
+ This method is invoked when discovery is finished.
+
+
+
+
+ This method is invoked when a Link-OS™ printer has been discovered. This method will be invoked for each printer
+ that is found.
+
+ A discovered Link-OS™ printer.
+
+
+
+ Signals that there was an error during discovery packet decoding
+
+
+
+
+ Constructs a DiscoveryPacketDecodeException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Defines functions used when discovering information about a printer.
+
+
+
+
+
+ Decodes the provided MIME encoded discovery packet and returns a discovery data map
+
+ A Base64 encoded discovery packet
+ A discovery data map representative of the provided packet
+ If provided a malformed discovery packet
+
+
+
+ Reads the discovery packet from the provided connection and returns a discovery data map
+
+ A to a printer
+ A discovery data map representative of the provided packet
+ If an I/O error occurs.
+ If provided a malformed discovery packet
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class used to decode a Zebra discovery packet
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ Class used to decode a Zebra discovery packet
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ A class used to discover printers on an IP Network.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Sends a discovery packet to the IPs specified in the subnetRange.
+
+
+ Subnet searches are defined by the first three subnet octets, followed by a range, such as 192.168.2. This method accepts IP addresses of the form,
+ assuming a subnet of 192.168.2:
+
+ - 192.168.2.254 (will send a discovery packet to 192.168.2.254)
+ - 192.168.2.* (will send a discovery packet for the range 192.168.2.1 - 192.168.2.254)
+ - 192.168.2.8-* (will send a discovery packet for the range 192.168.2.8 - 192.168.2.254)
+ - 192.168.2.37-42 (will send a discovery packet for the range 192.168.2.37 - 192.168.2.42)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The subnet search range.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery packet to the IPs specified in the subnetRange.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ Subnet searches are defined by the first three subnet octets, followed by a range, such as 192.168.2. This method accepts IP
+ addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.254 (will send a discovery packet to 192.168.2.254)
+ - 192.168.2.* (will send a discovery packet for the range 192.168.2.1 - 192.168.2.254)
+ - 192.168.2.8-* (will send a discovery packet for the range 192.168.2.8 - 192.168.2.254)
+ - 192.168.2.37-42 (will send a discovery packet for the range 192.168.2.37 - 192.168.2.42)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The subnet search range.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a directed broadcast discovery packet to the subnet specified by ipAddress.
+
+
+ Directed broadcasts are defined by the first three subnet octets, followed by 255, such as 192.168.2.255. This method
+ accepts IP addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.255
+ - 192.168.2.1 (last octet will be replaced with 255)
+ - 192.168.2 (will append 255 for the last octet)
+ - 192.168.2. (will append 255 for the last octet)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The IP address of the subnet.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a directed broadcast discovery packet to the subnet specified by ipAddress.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ Directed broadcasts are defined by the first three subnet octets, followed by 255, such as 192.168.2.255. This method accepts
+ IP addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.255
+ - 192.168.2.1 (last octet will be replaced with 255)
+ - 192.168.2 (will append 255 for the last octet)
+ - 192.168.2. (will append 255 for the last octet)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The IP address of the subnet.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a local broadcast packet.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a local broadcast packet.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a multicast discovery packet.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+ For Android users : some extra code is required to obtain a multicast lock. See the example in
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The number of hops.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a multicast discovery packet.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+ For Android users : some extra code is required to obtain a multicast lock. See the example in
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The number of hops.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ This method will search the network using a combination of discovery methods to find printers on the network.
+
+
+ This is a convenience method that can be used as an alternative to the other discovery methods (e.g. multicast).
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery request to the list of printer DNS names or IPs in printersToFind.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A list of IP addresses or DNS names for the printers to be discovered.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery request to the list of printer DNS names or IPs in printersToFind.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A list of IP addresses or DNS names for the printers to be discovered.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Drive types.
+
+
+
+
+ Onboard flash drive.
+
+
+
+
+ RAM Drive.
+
+
+
+
+ Removable mass storage drive.
+
+
+
+
+ Unknown drive.
+
+
+
+
+ Read only drive.
+
+
+
+
+ This class is used to describe format variable fields.
+
+
+ For example, in CPCL, the following format will contain 2 .
+
+ ! DF SHELF.FMT
+ ! 0 200 200 210 1
+ CENTER
+ TEXT 4 3 0 15 \\
+ TEXT 4 0 0 95 \\
+ FORM
+ PRINT
+
+
+ The first will contain a fieldNumber of 1, and a fieldName of
+ null. The second will contain a fieldNumber of 2, and a fieldName of null.
+
+ In ZPL, the following ^FN command will contain 2 .
+
+
+ ^XA
+ ^DFR:SHELF.ZPL^FS
+ ^FO25,25^A0N,50,50^FN15"Name"^FS
+ ^FO25,75^A0N,50,50^FN15"Address"^FS
+ ^FO25,125^A0N,50,50^FN18^FS
+ ^FO25,175^A0N,50,50^FN15
+ ^XZ
+
+
+ The first will contain a fieldNumber of 15, and a fieldName of
+ "Address". The second will contain a fieldNumber of 18, and a fieldName of null.
+ Note: If a label format contains multiple Field Numbers, only 1 will be returned since the data will be shared
+ by all variables with the number. The portion of the variable will be the
+ last one in the format, unless it is not present.For example, in the format above, there are 3 ^FN15's. The
+ first 2 have a "prompt" parameter, the third does not. The second one, "Address", overwrites the first one, "Name".
+ The third one is not present, so the previous one, "Address", is preserved.
+
+
+
+
+ Create a descriptor for a field
+
+ The number of the field.
+ The name of the field, or null if not present.
+
+
+
+ In CPCL, this number will be the number of the variable field in the format. The fields are numbered starting at 1.
+ In ZPL, this number will correspond to the ^FN number.
+
+
+
+
+ In CPCL, this field is always null.
+ In ZPL, this field will correspond to the optional name parameter of the ^FN command, or null if the parameter is not present
+
+
+
+
+
+
+
+ Options for deleting files when loading profiles to a Zebra printer.
+
+
+
+
+ Attempts to delete all files from the printer. (Persistent files, hidden files, and System files will not be deleted.)
+
+
+
+
+ Will attempt to delete only the file types which are copied at profile/backup creation time.
+
+
+
+
+ Will not attempt to delete any files.
+
+
+
+
+ Handler class is used to update status while performing a firmware download and to notify the caller when the printer
+ has reconnected after restarting.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Called when the firmware download completes.
+
+
+
+
+ Called when the printer is back online and has been rediscovered.
+
+ The printer object which came back online.
+ The new firmware version on the printer.
+
+
+
+ Callback to notify the user of the firmware updating progress.
+
+ The total number of bytes written to the printer.
+ The total number of bytes to be written to the printer.
+
+
+
+ Handler class is used to update status while performing a firmware download.
+
+
+
+
+ Callback to notify the user of the firmware updating progress.
+
+ This is called for every 4K bytes written out.
+ Total number of bytes written to the printer.
+ Total number of bytes to be written to the printer.
+
+
+
+ Called when the firmware download completes. The printer will then begin flashing the firmware to memory followed
+ by a reboot.
+
+
+
+
+ This is the interface for updating firmware on a Link-OS™ printer.
+
+
+
+
+ Update firmware on the printer using the default timeout of 10 minutes.
+
+
+ If the firmware currently on the printer has the same version number as the
+ firmware file, the firmware will not be sent to the printer.
+
+
+ File path of firmware file.
+ Callback for firmware updating status
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer using the specified timeout.
+
+
+ If the firmware currently on the printer has the same version number as the firmware file, the firmware will not be sent to the printer.
+
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum will be
+ used instead.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer, using the default timeout of 10 minutes, regardless of the firmware version
+ currently on the printer.
+
+ File path of firmware file.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer, using the specified timeout, regardless of the firmware version
+ currently on the printer.
+
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum will be
+ used instead.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ A class used to convert TrueType® fonts for use on ZPL printers.
+
+
+
+
+ Returns a Stream which provides the TTF header information as determined from the source stream.
+
+ Stream containing TrueType® font data
+ Location of the font file on the printer.
+ Header information for the provided stream
+
+
+
+ Returns a Stream which provides the TTE header information as determined from the source stream.
+
+ Stream containing TrueType® font data
+ Location of the font file on the printer.
+ Header information for the provided stream
+
+
+
+ Converts a native TrueType® font to a ZPL TTF format.
+
+ Path to a TrueType® font.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+ If the source file is not found
+
+
+
+ Converts a native TrueType® font to a ZPL TTF format.
+
+ Stream containing the TrueType® font data.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+
+
+
+ Converts a native TrueType® font to a ZPL TTE format.
+
+ Path to a TrueType® font.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+ If the source file is not found
+
+
+
+ Converts a native TrueType® font to a ZPL TTE format.
+
+ Stream containing the TrueType® font data.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+
+
+
+ Defines functions used for downloading fonts to Zebra printers.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Defines functions used for interacting with printer formats.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Retrieves a format from the printer.
+
+
+ On a LinkOS/ZPL printer, only .ZPL files are supported. On a CPCL printer, only .FMT and .LBL files are supported.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ The contents of the format file.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+
+
+
+ Retrieves a format from the printer.
+
+
+ On a LinkOS/ZPL printer, only .ZPL files are supported. On a CPCL printer, only .FMT and .LBL files are supported.
+
+ The format.
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the array.
+
+
+ The values of any format variables will be encoded using the default encoding type. On a LinkOS/ZPL printer, only ZPL formats
+ are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The name of the format on the printer, including the extension (e.g. "E:FORMAT.ZPL").
+ An array of strings representing the data to fill into the format. For LinkOS/ZPL printer formats,
+ index 0 of the array corresponds to field number 2 (^FN2). For CPCL printer formats, the variables are passed in
+ the order that they are found in the format.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the array.
+
+
+ The values of any format variables will be encoded using the provided encoding type.eg.UTF-8. On a LinkOS/ZPL printer, only
+ ZPL formats are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ An array of strings representing the data to fill into the format. For LinkOS/ZPL printer formats,
+ index 0 of the array corresponds to field number 2 (^FN2). For CPCL printer formats, the variables are passed in
+ the order that they are found in the format.
+ A character-encoding name (eg. UTF-8).
+ If an I/O error occurs.
+ If the encoding is not supported.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the default encoding type. On a LinkOS/ZPL printer, only ZPL formats
+ are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For LinkOS/ZPL printer formats, the
+ key number should correspond directly to the number of the field in the format.For CPCL printer formats, the
+ values will be passed in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the provided encoding type.eg.UTF-8. On a LinkOS/ZPL printer, only
+ ZPL formats are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For LinkOS/ZPL printer formats, the
+ key number should correspond directly to the number of the field in the format.For CPCL printer formats, the
+ values will be passed in ascending numerical order.
+ A character-encoding name (e.g. UTF-8).
+ If an I/O error occurs.
+ If the encoding is not supported.
+
+
+
+ Returns a list of descriptors of the variable fields in this format.
+
+
+ On a LinkOS/ZPL printer, only ZPL formats are supported. On a CPCL printer, only CPCL formats are supported.
+
+ The contents of the recalled format.
+ A list of field data descriptors. For a CPCL printer, the nth element of the list will contain the
+ integer n and no name. For a LinkOS/ZPL printer, each element will contain an ^FN number and a variable name if
+ present. If the format contains multiple ^FNs with the same number, only the last one will be in the result.
+ See for an example of how variable fields look.
+
+
+
+
+ Defines functions used for interacting with Link-OS™ printer formats.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the default encoding type.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the provided encoding type. eg.UTF-8.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ A character-encoding name (e.g. UTF-8)
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionaries.
+
+
+ The images stored in imgVars will first be dithered and then sent down the the printer as SDK01.GRF-SDK99.GRF. These GRF
+ files will then be used when printing the format and overwritten each time the method is called with new images. The values of any
+ format variables will be encoded using the default encoding type.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the images to be used in the stored format. For ZPL
+ formats, the key number should correspond directly to the number of the field in the format. For CPCL formats,
+ the values will be passed in ascending numerical order.
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionaries.
+
+
+ The images stored in imgVars will first be dithered and then sent down the the printer as SDK01.GRF-SDK99.GRF.
+ These GRF files will then be used when printing the format and overwritten each time the method is called with new
+ images. The values of any format variables will be encoded using the provided encoding type. eg. UTF-8.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the images to be used in the stored format. For ZPL
+ formats, the key number should correspond directly to the number of the field in the format. For CPCL formats,
+ the values will be passed in ascending numerical order.
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ A character-encoding name (e.g. UTF-8)
+ If an I/O error occurs.
+
+
+
+ This is an utility class for printing images on a device.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Prints an image from the connecting device file system to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ Image file to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ If an I/O error occurs.
+ When the file could not be found, opened, or is an unsupported graphic.
+
+
+
+ Prints an image from the connecting device file system to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ Image file to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ Desired width of the printed image. Passing a value less than 1 will preserve original width.
+ Desired height of the printed image. Passing a value less than 1 will preserve original height.
+ Boolean value indicating whether this image should be printed by itself (false), or is part
+ of a format being written to the connection (true).
+ If an I/O error occurs.
+ When the file could not be found, opened, or is an unsupported graphic.
+
+
+
+ Prints an image to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ The image to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ Desired width of the printed image. Passing a value less than 1 will preserve original width.
+ Desired height of the printed image. Passing a value less than 1 will preserve original height.
+ Boolean value indicating whether this image should be printed by itself (false), or is part
+ of a format being written to the connection (true).
+ If an I/O error occurs.
+
+
+
+ Stores the specified image to the connected printer as a monochrome image.
+
+
+ The image will be stored on the printer at printerDriveAndFileName with the extension GRF.
+ If a drive letter is not supplied, E will be used as the default (e.g. FILE becomes E:FILE.GRF). If an extension is supplied,
+ it is ignored if it is not either BMP or PNG. If the extension is ignored, GRF will be used.
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or throw an .
+
+ Path on the printer where the image will be stored.
+ The image to be stored on the printer.
+ Desired width of the printed image, in dots. Passing -1 will preserve original width.
+ Desired height of the printed image, in dots. Passing -1 will preserve original height.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+ If printerDriveAndFileName has an incorrect format.
+
+
+
+ Stores the specified image to the connected printer as a monochrome image.
+
+
+ The image will be stored on the printer at printerDriveAndFileName with the extension GRF.
+ If a drive letter is not supplied, E will be used as the default (e.g. FILE becomes E:FILE.GRF). If an extension is supplied,
+ it is ignored if it is not either BMP or PNG. If the extension is ignored, GRF will be used.
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or throw an .
+
+ Path on the printer where the image will be stored.
+ The image file to be stored on the printer.
+ Desired width of the printed image, in dots. Passing -1 will preserve original width.
+ Desired height of the printed image, in dots. Passing -1 will preserve original height.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+ If printerDriveAndFileName has an incorrect format.
+ If the file could not be found, opened, or is an unsupported graphic.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Look through the result of a directory listing and extract the file name, drive letter, and extension for each
+ file in the listing.
+
+ The result of ^HZL, JSON file.drive_listing, or file.dir SGD.
+ A list (element type PrinterFileProperties) of file information.
+ If there is an error parsing the directory data returned by the printer.
+
+
+
+ Look through the result of a ^HZL and extract the file name, drive letter, and extension for each file in the listing.
+
+ The result of ^HZL.
+ A list (element type PrinterFileProperties) of file information.
+ If there is an error parsing the directory data returned by the printer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Utility methods for firmware files.
+
+
+
+
+ Given the contents of a firmware file, extract the firmware version string.
+
+
+ If the contents are not valid or if the version cannot be extracted, an empty string is returned.
+
+ Input stream containing the contents of a firmware file.
+ The version string, or an empty string.
+
+
+
+
+ Extract the firmware version from a firmware file input stream and return false if that version matches the
+ firmware on the connected printer.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Input stream containing the contents of a firmware file.
+ A connection to a printer
+ True if the firmware versions don't match
+ If there was an issue communicating with the printer.
+
+
+
+ Extract the firmware version from a firmware file input stream, and return false if that version matches the versionFromPrinter.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Input stream containing the contents of a firmware file.
+ Version of firmware that is already on the printer.
+ True if the firmware versions don't match
+
+
+
+ Extract the firmware version from a firmware file input stream, and return false if that version matches the versionFromPrinter.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Version of firmware that has already been extracted from the file.
+ A connection to a printer
+ True if the firmware versions don't match
+
+
+
+ Get the firmware version from the connected printer.
+
+ A connection to a printer.
+ The firmware version of the printer.
+ If there was an issue communicating with the printer."
+
+
+
+ Compare two firmware version strings.
+
+
+ If the only difference is that ZBI is enabled for one version but not the other, they are still considered to match.Matching is case insensitive.
+
+ One version string.
+ The other version string.
+ True if the versions match.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Search formatString, starting at index searchIx, for a ^FN, ^CC or ~CC command. Search is case insensitive. caret is the command prefix.
+
+
+
+
+
+ {-1,unknownCommand} if none of the commands is found, otherwise the index where a command
+ was found, and the type of command that was found.
+
+
+
+ Search formatString, starting at index searchIx, for one of the commands in commandStrings. Search is case
+ insensitive. caret is the command prefix.
+
+
+
+
+ {-1,unknownCommand} if none of the commands is found, otherwise the index where a command
+ was found, and the type of command that was found.
+
+
+
+ Represent a ZPL command type.
+
+
+
+
+ ^FN command
+
+
+
+
+ ^CC and ~CC commands
+
+
+
+
+ ^XG command
+
+
+
+
+ ^DF command
+
+
+
+
+ ^XA command
+
+
+
+
+ ^XZ command
+
+
+
+
+ everything else
+
+
+
+
+ the id, as a lower case string
+
+
+
+
+
+
+
+
+
+
+ Represent the index in a string where a ZPL command was found, and the type of the command at that spot.
+
+
+
+
+
+
+
+
+
+
+ Gets the index
+
+
+
+
+ Gets the command
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A container class used to hold Link-OS specific information
+
+
+
+
+ Creates a container class to hold Link-OS information.
+
+ the Link-OS major version number
+ the Link-OS minor version number
+
+
+
+ Creates a container class to hold Link-OS information.
+
+ e.g. ("2.1", "3.0")
+
+
+
+ Creates a container class to hold Link-OS information based on the supplied discoveredPrinter.
+
+ A discovered printer.
+
+
+
+ Gets the Link-OS major version number
+
+
+
+
+ Gets the Link-OS minor version number
+
+
+
+
+ Signals that a Link-OS™ operation has been attempted on a non-Link-OS™ printer.
+
+
+
+
+ Constructs a NotALinkOsPrinterException with "This is not a Link-OS™ printer" as
+ the detailed error message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a printer alert.
+
+ Applicable only to ZPL printers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates an instance of a PrinterAlert object.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+
+
+
+ Creates an instance of a PrinterAlert object, including a Set-Get-Do name.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If condition is SGD_SET, the name of the Set-Get-Do to be monitored.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+
+
+
+ Creates an instance of a PrinterAlert object, including the printer alert text.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+ The text received from the printer.
+
+
+
+ Creates an instance of a PrinterAlert object, including a Set-Get-Do name and the printer alert text.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If condition is SGD_SET, the name of the Set-Get-Do to be monitored.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+ The text received from the printer.
+
+
+
+ Return the string representation of the alert destination for Set-Get-Do.
+
+
+
+
+ Return the AlertCondition of the alert.
+
+
+
+
+ Gets the current alert condition.
+
+
+
+
+ Return true if the alert is fired when 'set'.
+
+
+
+
+ Return alert will be triggered on 'clear'.
+
+
+
+
+ Return the string representation of the Set-Get-Do Name.
+
+
+
+
+ Return the AlertDestination used by the alert.
+
+
+
+
+ Return the destination where the alert should be sent, for example, an IP Address or an email address, depending
+ on the value of getDestinationAsSGDString.
+
+
+
+
+ Return the destination port number where the alert should be sent.
+
+
+
+
+ Return the quelling state of the alert.
+
+
+
+
+ Return the text received from the printer.
+
+
+
+
+ Enumeration of the various printer control languages supported by Zebra Printers.
+
+
+
+
+ Printer control language ZPL
+
+
+
+
+ Printer control language CPCL
+
+
+
+
+ Printer control language line_print mode.
+
+
+
+
+ Converts the string name to the appropriate enum value.
+
+
+ The name parameter accepts the value returned from the printer's 'device.langauges' SGD.
+
+ The printer control language name (e.g. "zpl", "cpcl", or "line_print")
+ The printer language
+ If the printer language cannot be determined.
+
+
+
+ The name of the printer language - (e.g. "ZPL" or "CPCL").
+
+ ZPL, CPCL, or LINE_PRINT
+
+
+
+ Container for properties of a printer object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets/sets the drive prefix with the trailing colon.
+
+
+
+
+ Gets/sets the file name.
+
+
+
+
+ Gets/sets the file extension.
+
+
+
+
+ Gets the full name of the file on the printer.
+
+
+
+
+ Gets/sets the size of the file in bytes
+
+
+
+
+ Gets/sets the 32-bit CRC value of the file.
+
+
+
+
+ Interface definition for a callback to be invoked when a printer comes back online and has been rediscovered.
+
+
+
+
+
+ Called when the printer is back online and has been rediscovered.
+
+ The printer object which came back online.
+ The new firmware version on the printer.
+
+
+
+ A class used to obtain the status of a Zebra printer.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ The print mode. For CPCL printers this is always
+
+
+
+
+ The length of the label in dots. For CPCL printers this is always 0.
+
+
+
+
+ The number of formats currently in the receive buffer of the printer. For CPCL printers this is always 0.
+
+
+
+
+ The number of labels remaining in the batch. For CPCL printers this is always 0.
+
+
+
+
+ true if there is a partial format in progress. For CPCL printers this is always false.
+
+
+
+
+ true if the head is cold. For CPCL printers this is always false
+
+
+
+
+ true if the head is open.
+
+
+
+
+ true if the head is too hot. For CPCL printers this is always false
+
+
+
+
+ true if the paper is out.
+
+
+
+
+ true if the ribbon is out.
+
+
+
+
+ true if the receive buffer is full. For CPCL printers this is always false
+
+
+
+
+ true if the printer is paused. For CPCL printers this is always false
+
+
+
+
+ true if the printer reports back that it is ready to print
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructs a PrinterStatus instance that can be used to determine the status of a printer.
+
+
+ This will only query the printer's status upon creation. If the status needs to be updated see
+
+ Connection to the target printer
+ If an I/O error occurs
+
+
+
+
+
+
+
+
+ This class is used to acquire a human readable string of the current errors/warnings stored in a
+ instance.
+
+
+
+
+
+ Message to indicate the head is open.
+
+
+
+
+ Message to indicate the head is too hot.
+
+
+
+
+ Message to indicate the paper is out.
+
+
+
+
+ Message to indicate the ribbon is out.
+
+
+
+
+ Message to indicate the receive buffer is full.
+
+
+
+
+ Message to indicate printer is paused.
+
+
+
+
+ Message to indicate printerStatus is null.
+
+
+
+
+ Used to acquire a human readable string of the current errors/warnings stored in printerStatus
+
+ an instance of that will be used to acquire the human readable string
+ of warnings/errors stored in printerStatus
+
+
+
+ Used to acquire a human readable string of the current errors/warnings passed to this instance.
+
+ A human readable string array of the current errors/warnings passed to this instance.
+
+
+
+ Numerous utilities to simplify printer operations.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Send contents of data directly to the device specified via connectionString using UTF-8 encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using UTF-8 encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Retrieves a list of currently open tcp ports on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The port status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves status of the printer odometer which includes the total print length, head clean counter, label dot
+ length, head new, latch open counter, and both user resettable counters.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The odometer status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves status of the printer which includes any error messages currently set along with the number of labels
+ remaining in queue, number of labels remaining in batch, and whether or not a label is currently being processed.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The printer status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves the quick status of the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Highest level error or "Ready to Print".
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Set the RTC time and date on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Format MM-dd-yyyy HH:mm:ss.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If the format of dateTime is invalid.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Deletes file(s) from the printer and reports what files were actually removed.
+
+
+ The filePath may also contain wildcards.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ The location of the file on the printer. Wildcards are also accepted. (e.g. "E:FORMAT.ZPL", "E:*.*")
+ An array of the files which were deleted.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If the format of dateTime is invalid.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Deletes file(s) from the printer and reports what files were actually removed.
+
+
+ The filePath may also contain wildcards.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ The location of the file on the printer. Wildcards are also accepted. (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ Filter for returned files. (e.g. "E:*.ZPL", "*:*.*", "R:MYFILE.*")
+ List of file names on the printer.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an error parsing the directory data returned by the device.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ File contents.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ Stream to receive file contents.
+ The connection string.
+ The file to retrieve. (e.g. "R:MYFILE.PNG")
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ Password to use for ftp, if null a default password will be used.
+ File contents.
+ If there is an error connecting to the device, or the ftp password is not correct.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ Stream to receive the file contents.
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ Password to use for ftp, if null a default password will be used.
+ If there is an error connecting to the device, or the ftp password is not correct.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Update the printer firmware.
+
+
+ Download Firmware Here
+ See ConnectionBuilder for the format of connection
+
+ The connection string.
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum
+ will be used instead.
+ If the connection can not be opened or is closed prematurely.
+ If the printer language could not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ If the firmware file cannot be found or cannot be opened.
+
+
+
+ Encodes supplied image in either ZPL or CPCL after dithering and resizing.
+
+ The printer file path you wish to store the image to.
+ ZebraImage to be dithered and resized.
+ Stream to store encoded image data.
+ If the file type is not supported or an invalid image is supplied.
+ Could not read/write to file.
+
+
+
+ Encodes supplied image in either ZPL or CPCL after dithering and resizing.
+
+ The printer file path you wish to store the image to.
+ ZebraImage to be dithered and resized.
+ Width of the resulting image. If 0 the image is not resized.
+ Height of the resulting image. If 0 the image is not resized.
+ Stream to store converted image data encoded with the printers native
+ language.
+ If the file type is not supported or an invalid image is supplied.
+ Could not read/write to file.
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original configuration.
+ Some settings (such as I.P.address) which could conflict with the original printer will not be contained in the profile
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The location of where to store the profile.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ Could not interpret the response from the printer.
+ This feature is only available on Link-OS™ printers.
+
+
+
+
+ Create a backup of your printer's settings, alerts, and files.
+
+
+ A backup contains a snapshot of all pertinent settings to fully restore your printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The location of where to store the profile. The extension must be .zprofile; if it is not, the
+ method will change it to.zprofile for you.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ Could not interpret the response from the printer.
+ This feature is only available on Link-OS™ printers.
+
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ Increases the amount of detail presented to the user.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ Increases the amount of detail presented to the user.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Stores the file on the printer at the specified location and name using any required file wrappers.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The path of the file to store.
+ The path on the printer.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue storing the file.
+ This feature is only available on Link-OS™ printers.
+ If there is an issue storing the file.
+
+
+
+ Resets the specified printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Resets the network of the specified printer.
+
+
+ Usually performed to enable changed network settings to take effect.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Restores the printer's settings to their factory default configuration.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Restores the printer's network settings to their factory default configuration.
+
+
+ Use caution when issuing this command because you may lose connectivity with your printer if your network requires non-default settings.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a configuration label.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a network configuration label.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a directory listing of all the files saved on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieve all settings and their attributes from the specified printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ A map of setting names versus Setting objects from the printer specified in the connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the settings could not be retrieved.
+
+
+
+ Returns a new instance of PrinterStatus that can be used to determine the status of a printer.
+
+
+ Each invocation of this method will result in a query of the connected printer. If more than one status value is to be
+ read, it is recommended that a copy of PrinterStatus is stored locally.
+ This method must be invoked again to retrieve the most up-to-date status of the printer. The
+ object will only query the printer upon creation.
+ Some Mobile printers (including the MZ series printers) will not communicate if the printer is not ready to print.
+ On these printers, status information is not available when, for example, the printer is out of paper. This method
+ will throw a if it is called when the printer cannot communicate.
+
+ Connection to the printer.
+ Printer control language to be used.
+ A new instance of PrinterStatus.
+ If there is an issue communicating with the printer (e.g.\u00a0the connection is not
+ open.)
+
+
+
+ Defines functions used for creating and applying profiles to a Zebra printer.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original
+ configuration. Some settings (such as I.P.address) which could conflict with the original printer will
+ not be contained in the profile.
+
+ Path on your local machine where you want to save the profile.
+ (e.g. /home/user/profile.zprofile). The extension must be.zprofile; if it is not, the method will
+ change it to .zprofile for you.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+ for loading a profile to another printer
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original
+ configuration. Some settings (such as I.P.address) which could conflict with the original printer will
+ not be contained in the profile.
+
+ The destination stream where you want to write the profile.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+
+
+
+ Save a backup of your printer's settings, alerts, and files for later restoration.
+
+
+ A backup contains a snapshot of all pertinent settings to fully restore your printer.
+
+ Path on your local machine where you want to save the backup.
+ (e.g. /home/user/profile.zprofile). The extension must be.zprofile; if it is not, the method will
+ change it to .zprofile for you.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+ for loading the backup file to another printer
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ Increases the amount of detail presented to the user when loading firmware from the profile
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ his method will also delete all files on your printer before applying the backup.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ Increases the amount of detail presented to the user when loading firmware from the profile
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ A utility class used to wrap with a map and send settings commands to a connection.
+
+
+ Settings commands are accepted by Link-OS printers, version 1.0 and higher.
+
+
+
+
+
+ Sends the settingsToSet to the destinationDevice and then returns the updated setting values.
+
+ Due to the setting verification and validation, additional time and data traffic will be needed for each
+ SettingsSetter Process call. It is recommended to bundle all changing settings into one map and one
+ method call to reduce this overhead.
+
+ The connection string.
+ The settings map to send to the printer.
+ The settings' values after the map has been sent to the printer.
+ If there is an error communicating with the printer.
+ If the setting could not be set or retrieved.
+
+
+
+ A utility class used to wrap and send SGD commands to a connection.
+
+
+
+
+
+ Constructs an SGD SET command and sends it to the printer.
+
+
+ This method will not wait for a response from the printer.If the SGD SET command returns a response, the caller
+ is responsible for reading the data off of the connection.If a response is expected, consider using the analogous
+ command.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ if an I/O error occurs
+
+
+
+
+ Constructs an SGD SET command and sends it to the printer.
+
+
+ This method will not wait for a response from the printer. If the SGD SET command returns a response, the caller is
+ responsible for reading the data off of the connection. If a response is expected, consider using the analogous
+ command.
+
+
+
+
+ if an I/O error occurs
+
+
+
+
+ Constructs an SGD GET command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the connection to send the command to
+ the setting's value
+ if an I/O error occurs
+
+
+
+ Constructs an SGD GET command and sends it to the printer.
+
+
+ This method waits for a maximum of maxTimeoutForRead milliseconds for any data to be received.Once some data has been received it
+ waits until no more data is available within timeToWaitForMoreData milliseconds. This method returns the SGD value associated
+ with setting without the surrounding quotes.
+
+ the SGD setting
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ the setting's value
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ The response from the SGD DO command
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method write the SGD
+ value associated with setting, without the surrounding quotes, to responseData.
+
+ output stream to receive the response.
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ The response from the SGD DO command
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of maxTimeoutForRead milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within timeToWaitForMoreData milliseconds. This method write the SGD
+ value associated with setting without the surrounding quotes.
+
+ output stream to receive the response.
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ if an I/O error occurs
+
+
+
+ A utility class used to remove quotes from an output stream
+
+
+
+
+ Constructs a QuoteRemovingOutputStream
+
+
+
+
+
+ Signals that an error has occurred when attempting to communicate with SNMP.
+
+
+
+
+ Constructs an SnmpException with message as the detailed error message.
+
+ The error message.
+
+
+
+ An instance of an SNMP only Zebra printer.
+
+ The printer does not make a raw port connection.
+
+
+
+
+ Creates an instance of a Zebra printer which is limited to only SNMP operations.
+
+
+ The SNMP get and set community names default to "public". If you wish to use other community names, use
+ .
+
+ The IP Address or DNS Hostname.
+ If there was an exception communicating over SNMP.
+
+
+
+ Creates an instance of a Zebra printer, with the given community names, which is limited to only SNMP operations.
+
+ The IP Address or DNS Hostname.
+ SNMP get community name.
+ SNMP set community name.
+ If there was an exception communicating over SNMP.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the value of the specified oid.
+
+ Object identifier.
+ The value of the OID.
+ If there was an exception communicating over SNMP.
+
+
+
+ Sets the value of the specified oid to valueToSet.
+
+ Object identifier.
+ The value to set the OID to.
+ If there was an exception communicating over SNMP
+
+
+
+ Sets the value of the specified oid to valueToSet.
+
+ Object identifier.
+ The value to set the OID to.
+ If there was an exception communicating over SNMP
+
+
+
+ Gets the SNMP get community name.
+
+
+
+
+ Gets the SNMP set community name.
+
+
+
+
+ A container class which holds information about various printer drives.
+
+
+
+
+ Creates an empty StorageInfo container
+
+
+
+
+ The drive's alphabetical identifier.
+
+
+
+
+ The type of drive. (e.g. flash, RAM)
+
+
+
+
+
+ The number of bytes remaining on the drive.
+
+
+
+
+ Bool defining whether or not files persist across printer reboots.
+
+
+
+
+ Class for describing the status of ports open on a Zebra printer.
+
+
+
+
+ Creates a container which describes the status of a specific port on a Zebra printer.
+
+ The printer's port.
+ The name of the protocol used by the port.
+ Remote IP connected to the port.
+ Remote port number.
+ Port status.
+
+
+
+ The port number open on the printer.
+
+
+
+
+ The name of the protocol associated with that port, for example, HTTP for 80, FTP for 21.
+
+
+
+
+ The remote IP connected to the printer's port, will be 0.0.0.0 if not connected.
+
+
+
+
+ The port number of the remote connected to the printer, will be 0 if no connection.
+
+
+
+
+ The status of the printer's port, such as {@code LISTEN}, {@code ESTABLISHED}.
+
+
+
+
+ String description of the port status, prints as "PORT(NAME) REMOTE-IP:REMOTE-PORT STATUS"
+
+ Description of the port status.
+
+
+
+ This is a utility class for performing printer actions. (Restore defaults, calibrate, etc.)
+
+
+
+
+ Sends the appropriate calibrate command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate restore defaults command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate print configuration command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Converts the specified command to bytes using the default charset and sends the bytes to the printer.
+
+ The command to send to the printer.
+ If an I/O error occurs.
+
+
+
+ Converts the specified command to bytes using the specified charset "encoding" and sends the bytes to the
+ printer.
+
+ The command to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate reset command to the printer.
+
+
+ You should call after this method, as resetting the printer will terminate the connection.
+
+ If an I/O error occurs.
+
+
+
+
+ Utility class for performing Link-OS™ printer actions.
+
+
+
+
+ Send the restore network defaults command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Send the print network configuration command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Send the print directory label command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Sends the network reset command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Set the RTC time and date on the printer.
+
+
+ Accepted dateTime values include date (e.g. "MM-dd-yyyy"), time(e.g. " HH:mm:ss"),
+ or both(e.g. " MM-dd-yyyy HH:mm:ss").
+
+ Date and or time in the proper format (MM-dd-yyyy, HH:mm:ss, or MM-dd-yyyy HH:mm:ss).
+ If there is an error communicating with the printer.
+ If the format of dateTime is invalid.
+
+
+
+ A class used to print template formats using XML as input.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Print template formats using XML as input data.
+
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs."
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data to destinationDevice.
+
+ The connection string.
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ See ConnectionBuilder for the format of
+ destinationDevice.
+ If an I/O error occurs."
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data with optional running commentary to standard out.
+
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs."
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data to a device with connection string destinationDevice.
+
+ The connection string.
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ See ConnectionBuilder for the format of
+ destinationDevice.
+ If an I/O error occurs."
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+ An interface used to obtain various properties of a Zebra printer.
+
+
+
+
+
+ Returns the printer control language (e.g. ZPL or CPCL) of the printer.
+
+
+
+
+
+ Returns a new instance of PrinterStatus that can be used to determine the status of a printer.
+
+
+ Each invocation of this method will result in a query of the connected printer. If more than one status value is to be
+ read, it is recommended that a copy of PrinterStatus is stored locally.
+ Note: This method must be invoked again to retrieve the most up-to-date status of the printer. The
+ object will only query the printer upon creation.
+ Note: Some Mobile printers (including the MZ series printers) will not communicate if the printer is not
+ ready to print.On these printers, status information is not available when, for example, the printer is out of
+ paper. This method will throw a if it is called when the printer cannot communicate.
+
+ A new instance of PrinterStatus.
+ If there is an issue communicating with the printer (e.g. the connection is not
+ open.)
+
+
+
+ Returns the printer's connection.
+
+
+
+
+ Changes the printer's connection.
+
+ The new connection to be used for communication with the printer.
+
+
+
+ A factory used to acquire an instance of a ZebraPrinter.
+
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+
+ If the Set-Get-Do value, appl.name, starts with one of the following, the printer is determined to
+ be a CPCL printer. Otherwise it is considered to be a ZPL printer
+
+ - SH
+ - H8
+ - C
+
+
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+ If the printer language cannot be determined
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+
+ If the Set-Get-Do value, appl.name, starts with one of the cpclFwVersionPrefixes, the
+ printer is determined to be a CPCL printer.Otherwise it is considered to be a ZPL printer.
+
+ An array of possible CPCL version number prefixes
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+ If the printer language cannot be determined
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+ The language of the printer instance to be created
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS™ version and its control language.
+
+ An instance of a
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its control language, but will not query the printer for Link-OS information.
+
+ An instance of a
+ Link-OS Information
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS information, but will not query the printer for its control language.
+
+ An instance of a
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will not query the printer for any information but will use the supplied info and language.
+
+ An instance of a
+ Link-OS Information
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS™ version and its control language.
+
+ An open connection to a Link-OS™ printer
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its control language, but will not query the printer for Link-OS information.
+
+ An open connection to a Link-OS™ printer
+ Link-OS Information
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS information, but will not query the printer for
+ its control language.
+
+ An open connection to a Link-OS™ printer
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will not query the printer for any information but will use the supplied info and
+ language.
+
+ An open connection to a Link-OS™ printer
+ Link-OS Information
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Signals that an error has occurred when determining the printer language.
+
+
+
+
+ Constructs a ZebraPrinterLanguageUnknownException with message as the detailed error message
+
+ The error message
+
+
+
+ Constructs a ZebraPrinterLanguageUnknownException with "Unknown printer language" as
+ the detailed error message.
+
+
+
+
+ This interface defines increased capabilities of a Zebra Link-OS™ printer. Link-OS™ printers support many
+ features not supported by non-Link-OS™ Zebra printers.
+
+
+
+
+ Retrieve the TCP port status of the printer and returns a list of TcpPortStatus describing the open ports on the printer.
+
+
+ The open connection from the SDK will be listed in the return value. This method will throw
+ a if it is unable to communicate with the printer.
+ Note: Tabletop printers support more than one established connection on the raw port at a time, so the
+ same port may be listed more than once.
+
+ List of open ports on the ZebraPrinter. Note: The open connection from the SDK will be listed.
+ If there is an issue communicating with the printer (e.g. the connection is not open.)
+
+
+
+ Gets/sets the printer's SNMP get community name.
+
+
+
+
+ Returns specific Link-OS™ information.
+
+
+
+
+ Enumeration of the various print modes supported by Zebra Printers.
+
+
+
+
+ Rewind print mode
+
+
+
+
+ Peel-off print mode
+
+
+
+
+ Tear-off print mode (this also implies Linerless Tear print mode)
+
+
+
+
+ Cutter print mode
+
+
+
+
+ Applicator print mode
+
+
+
+
+ Delayed cut print mode
+
+
+
+
+ Linerless peel print mode
+
+
+
+
+ Linerless rewind print mode
+
+
+
+
+ Partial cutter print mode
+
+
+
+
+ RFID print mode
+
+
+
+
+ Kiosk print mode
+
+
+
+
+ Unknown print mode
+
+
+
+
+ Returns the print mode.
+
+ String representation of the print mode (e.g. "Rewind").
+
+
+
+ Enumeration of the various printer alert conditions which can be set on Zebra Printers.
+
+
+
+
+ Alert condition 'None'
+
+
+
+
+ Alert condition 'Paper Out'
+
+
+
+
+ Alert condition 'Ribbon Out'
+
+
+
+
+ Alert condition 'Head Too Hot'
+
+
+
+
+ Alert condition 'Head Cold'
+
+
+
+
+ Alert condition 'Head Open'
+
+
+
+
+ Alert condition 'Power Supply Too Hot'
+
+
+
+
+ Alert condition 'Ribbon In'
+
+
+
+
+ Alert condition 'Rewind'
+
+
+
+
+ Alert condition 'Cutter Jammed'
+
+
+
+
+ Alert condition 'Printer Paused'
+
+
+
+
+ Alert condition 'PQ Job Completed'
+
+
+
+
+ Alert condition 'Label Ready'
+
+
+
+
+ Alert condition 'Head Element Bad'
+
+
+
+
+ Alert condition 'Basic Runtime'
+
+
+
+
+ Alert condition 'Basic Forced'
+
+
+
+
+ Alert condition 'Power On'
+
+
+
+
+ Alert condition 'Clean Printhead'
+
+
+
+
+ Alert condition 'Media Low'
+
+
+
+
+ Alert condition 'Ribbon Low'
+
+
+
+
+ Alert condition 'Replace Head'
+
+
+
+
+ Alert condition 'Battery Low'
+
+
+
+
+ Alert condition 'RFID Error'
+
+
+
+
+ Alert condition 'All Messages'
+
+
+
+
+ Alert condition 'Cold Start'
+
+
+
+
+ Alert condition 'SGD Set'
+
+
+
+
+ Alert condition 'Motor Overtemp'
+
+
+
+
+ Alert condition 'Printhead Shutdown'
+
+
+
+
+ Alert condition 'Shutting Down'
+
+
+
+
+ Alert condition 'Restarting'
+
+
+
+
+ Alert condition 'No Reader Present'
+
+
+
+
+ Alert condition 'Thermistor Fault'
+
+
+
+
+ Alert condition 'Invalid Head'
+
+
+
+
+ Alert condition 'Country Code Error'
+
+
+
+
+ Alert condition 'MCR Result Ready'
+
+
+
+
+ Alert condition 'PMCU Download'
+
+
+
+
+ Alert condition 'Media Cartridge'
+
+
+
+
+ Alert condition 'Media Cartridge Load Failure'
+
+
+
+
+ Alert condition 'Media Cartridge Eject Failure'
+
+
+
+
+ Alert condition 'Media Cartridge Forced Eject'
+
+
+
+
+ Alert condition 'Cleaning Mode'
+
+
+
+
+ Creates an AlertCondition based on the condition.
+
+ If the condition is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the values of AlertCondition.
+ Based on the string condition
+ If condition is not a valid alert condition.
+
+
+
+ Creates an AlertCondition based on the conditionName.
+
+ If the conditionName is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the conditions in AlertCondition.
+ Based on the string conditionName
+ If conditionName is not a valid alert condition.
+
+
+
+ Returns the alert condition.
+
+ String representation of the alert condition (e.g. "PAPER OUT").
+
+
+
+ Gets/sets the alert condition name
+
+
+
+
+
+
+
+
+
+
+ Enumeration of the various alert destinations which can be set on Zebra Printers.
+
+
+
+
+ Alert Destination 'Serial'
+
+
+
+
+ Alert Destination 'Parallel'
+
+
+
+
+ Alert Destination 'E-Mail'
+
+
+
+
+ Alert Destination 'TCP'
+
+
+
+
+ Alert Destination 'UDP'
+
+
+
+
+ Alert Destination 'SNMP'
+
+
+
+
+ Alert Destination 'USB'
+
+
+
+
+ Alert Destination 'HTTP-POST'
+
+
+
+
+ Alert Destination 'Bluetooth'
+
+
+
+
+ Alert Destination 'SDK'
+
+
+
+
+ Returns the alert destination as a string.
+
+
+
+
+ Creates an AlertDestination based on the destination.
+
+ If the destination is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the values of AlertDestination.
+ Based on the destination
+ If destination is not a valid alert destination.
+
+
+
+ Creates an AlertDestination based on the destinationName.
+
+
+ If the destinationName is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the destinations in AlertDestination.
+ Based on the destinationName
+ If destinationName is not a valid alert destination.
+
+
+
+ Returns the alert destination.
+
+ String representation of the alert destination (e.g. "TCP").
+
+
+
+ Gets/Sets the alert destination name.
+
+
+
+
+
+
+
+
+
+
+ Decide whether to use the status channel or the print channel to get settings from the printer. For a
+ multichannel connection, prefer the status channel.
+
+ A connection to the printer.
+ The appropriate connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true if value is within the setting's range
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A class that represents an internal device setting.
+
+
+
+
+ Gets or sets the setting's value.
+
+
+
+
+ Gets or sets a string describing the data type of the setting.
+
+
+
+
+ Gets or sets a string that describes the acceptable range of values for this setting.
+
+
+
+
+ Gets or sets if this setting can be applied when loading a profile
+
+
+
+
+ Gets or sets if this setting can be applied when loading a backup
+
+
+
+
+ Gets or sets a string that describes the access permissions for the setting. RW is returned for settings that have
+ read and write permissions. R is returned for settings that are read-only W is returned for settings that are write-only
+
+
+
+
+ Returns true if the setting does not have write access.
+
+
+
+
+ Returns true if the setting does not have read access.
+
+
+
+
+ Returns true if value is valid for the given setting.
+
+ Setting value.
+ true if value is within the setting's range
+
+
+
+
+ Retruns a human readable string of the setting.
+
+ Setting [settingData=value=Value type=Type range=Range].
+
+
+
+ Signals that an error occurred retrieving a setting
+
+
+
+
+ Constructs a SettingsException with Setting not found as the detailed error message.
+
+
+
+
+ Constructs a SettingsException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a SettingsException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception
+
+
+
+ Interface that provides access to device related settings.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Retrieve all of the setting identifiers for a device.
+
+
+ These are the IDs that may be used as keys for retrieving and updating settings for a device.
+
+
+ Set of identifiers available for a device.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded
+
+
+
+ Retrieves the device's setting value for a setting id.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the setting could not be retrieved.
+
+
+
+ Retrieves the device's setting values for a list of setting IDs.
+
+ List of setting IDs.
+ The settings' values.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieve all settings and their attributes.
+
+ Map of setting IDs and setting attributes contained in the profile
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved
+
+
+
+ Retrieves all of the device's setting values.
+
+ Values of all the settings provided by the device.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded
+
+
+
+ Sets the setting to the given value.
+
+ The setting id.
+ The setting's value
+ If there is an error communicating with the printer.
+ If the setting is read only, does not exist, or if the setting could not be set
+
+
+
+ Set more than one setting.
+
+ Map a setting ID to the new value for the setting.
+ If there is an error communicating with the printer.
+ If the settings cannot be sent to the device.
+
+
+
+ Retrieves the allowable range for a setting.
+
+ The setting id.
+ The setting's range as a string
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if value is valid for the given setting.
+
+ The setting id.
+ The setting's value
+ True if value is valid for the given setting.
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if the setting is read only.
+
+ The setting id
+ True if the setting is read only
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if the setting is write only.
+
+ The setting id
+ True if the setting is write only
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns the data type of the setting.
+
+ The setting id
+ The data type of the setting (e.g. string, bool, enum, etc.)
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Change or retrieve printer settings.
+
+
+ Due to the setting verification and validation, additional time and data traffic will be needed for each
+ ProcessSettingsViaMap method call. It is recommended to bundle all settings into one map and one method call to
+ reduce this overhead.
+
+ The settings to change or retrieve
+ Results of the setting commands
+ If there is an error communicating with the printer.
+ If a setting is malformed, or one or more settings could not be set.
+
+
+
+ Methods to use the LinkOS 3.2 JSON syntax to get the ranges for a list of SDGs, without the need to use an allconfig.
+
+
+
+
+ Use the LinkOS 3.2 JSON syntax to get the ranges for a list of SDGs, without the need to use an allconfig.
+
+ A list of SGD names.
+ A connection to a LinkOS printer.
+ the current printer control language
+ LinkOS version
+ A map from setting name to a string representing the range.
+ If the printer is not LinkOS 3.2 or higher.
+ If the connection fails.
+ If there is an error parsing the JSON response from the printer.
+
+
+
+ Parse the JSON response from the JSON get range command. Assumes that the only field requested in the JSON get
+ command was the "range" field.
+
+ Response from a LinkOS 3.2 or greater printer.
+ Map from setting names to range strings.
+
+
+
+ Methods to use the LinkOS 3.2 JSON syntax to get the values for a list of SDGs, without the need to use an allconfig.
+
+
+
+
+ Get the values for a list of settings from a printer.
+
+
+ Use either JSON or SGD get commands to request the values from the printer,
+ depending on the connection type and the printer language. The default
+ timeout values from the connection will be used when communicating with the
+ printer. If printerConnection is a MultichannelConnection, prefer the status channel.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Set each of the settings in settingValues on a printer.
+
+
+ Use either JSON or SGD set commands to set the values on the printer, depending on the connection type and
+ the printer language.The default timeout values from the connection will be used when communicating with the
+ printer.If printerConnection is a MultichannelConnection, prefer the status channel.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+
+ Get the values for a list of settings from a LinkOS printer.
+
+
+ Use JSON to request the values from the printer. The default timeout values from the connection will
+ be used when communicating with the printer.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Get the values for a list of settings from a printer.
+
+
+ Use SGD get commands to request the values from the printer.The default timeout values from the connection
+ will be used when communicating with the printer.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+ Decide whether JSON can be used to get settings from the printer, or whether SGD setvar/getvar must be used.
+
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ true if JSON can be used, false if SGD setvar/getvar must be used.
+
+
+
+ Set each of the settings in settingValues on a LinkOS printer.
+
+
+ Use JSON to set the values on the printer. The default timeout values from the connection will be
+ used when communicating with the printer.Return a map of the values from the printer after the set
+ operation was performed.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Set each of the settings in settingValues on a printer.
+
+
+ Use SGD set commands to set the values on the printer. The default timeout values from the connection will
+ be used when communicating with the printer.Return a map of the values from the printer after the set operation was performed.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "SH", "H8", "C"
+
+
+
+
+ ESC + h (0x1b 0x68)
+
+
+
+
+ ESC + V (0x1b 0x56)
+
+
+
+
+ ESC + FormFeed (0x1b 0x0C)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Determines if the device is a zebra card printer
+
+ true if device is a card printer
+
+
+
+ 0, marks free or usable space
+
+
+
+
+ 1, bitmap or smooth font
+
+
+
+
+ 2, barcode data
+
+
+
+
+ 3, stored ZPL format
+
+
+
+
+ 4, GRF graphic image object
+
+
+
+
+ 5, print map - unused
+
+
+
+
+ 6, general purpose storage - used by DBCOs for parsing and bitmaps
+
+
+
+
+ 7, Intellifont cache
+
+
+
+
+ 8, wildcard
+
+
+
+
+ 9, Mag tables
+
+
+
+
+ 10, Multiplication tables
+
+
+
+
+ 11, Mirror tables
+
+
+
+
+ 12, use context-specific default
+
+
+
+
+ 13, magic mode buffers
+
+
+
+
+ 14, access locks for certain ZPL commands
+
+
+
+
+ 15, JisToUnicode tables
+
+
+
+
+ 16, Saved BASIC program
+
+
+
+
+ 17, Data storage object
+
+
+
+
+ 18, PNG graphic image object
+
+
+
+
+ 19, Downloadable Bar Code object
+
+
+
+
+ 20, BAZ encrypted BASIC object
+
+
+
+
+ 21, Stored label format
+
+
+
+
+ 22, TrueType Font
+
+
+
+
+ 23, PCX bitmap
+
+
+
+
+ 24, Bitmap
+
+
+
+
+ 25, GEM bitmap graphic
+
+
+
+
+ 26, DPL Datamax 7-bit format
+
+
+
+
+ 27, TrueType Extension Font
+
+
+
+
+ 28, TT? we will list TTE and TTF objects on the same label
+
+
+
+
+ 29, WLAN security certificate for TLS and TTLS
+
+
+
+
+ 30, WLAN security certificate for FAST
+
+
+
+
+ 31, stored EPL format
+
+
+
+
+ 32, Mirror feedback template file
+
+
+
+
+ 33, WML menu file
+
+
+
+
+ 34, MIB file for auto-generated SNMP MIB
+
+
+
+
+ 35, Comma Seperated Values file
+
+
+
+
+ 36, User-custom webpages
+
+
+
+
+ 37, BAE DES encrypted BASIC object
+
+
+
+
+ 38, Text file
+
+
+
+
+ 39, Executable code - MUST BE LAST IN LIST!
+
+
+
+
+ The contentStream will be exhausted. It is all read in to determine the metadata, you need a new stream to read
+ from for other stream operations.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ appl.name
+
+
+
+
+ device.host_status
+
+
+
+
+ ip.discovery_packet
+
+
+
+
+ device.languages
+
+
+
+
+ device.reset
+
+
+
+
+ Printer Reset JSON Command {}{"device.reset":""}
+
+
+
+
+ device.prompted_network_reset
+
+
+
+
+ Printer Reset JSON Command {}{"device.prompted_network_reset":"y"}
+
+
+
+
+ ezpl.restore_defaults
+
+
+
+
+ Printer Reset JSON Command {}{"ezpl.restore_defaults":"reload printer"}
+
+
+
+
+ device.prompted_default_network
+
+
+
+
+ Printer Reset JSON Command {}{"device.prompted_default_network":"y"}
+
+
+
+
+ zpl.calibrate
+
+
+
+
+ Calibrate Command {}{"zpl.calibrate":""}
+
+
+
+
+
+
+
+ ! U1 getvar "command"\r\n
+
+
+
+ Wrapper class for System.Threading.Tasks Task functions. For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only. Wrapper for to not throw an
+ exception. Causes the currently executing thread to sleep (temporarily cease execution) for the specified number
+ of milliseconds. The thread does not lose ownership of any monitors.
+
+
+
+
+ @param targetStream
+
+
+ @param data
+ @param offset
+ @param length
+ @throws IOException
+
+
+
+ Windows line terminator - carriage return + line feed
+
+
+
+
+ Line feed
+
+
+
+
+
+
+ The string that should be searched.
+ The list of patterns to search for.
+ start index in inputString
+ The index in inputString of the first pattern that is found. If none of the patterns are
+ found, -1 is returned.
+
+
+
+ Split input into lines.
+
+
+ Lines are terminated by <CR><LF>. The last line does not have to
+ end in <CR><LF>, although it may.The <CR><LF> terminators are removed.
+
+ Text to be split into lines.
+ the delimiter to split on
+ An array of lines - with trailing CRLF removed.
+
+
+
+ Join an array of strings into a single string separated by a delimiter.
+
+
+
+ a delimited list of the elements in strings
+
+
+
+ Count the number of distinct occurrences of substring in stringToSearch.
+
+
+ If there are overlapping occurrences of substring in stringToSearch, counting starts again after the
+ end of each match.
+
+ CountSubstringOccurences(" aaa", "aa")
+ returns 1, not 2.
+
+
+ String to be searched
+ String to search for
+ number of occurrences
+
+
+
+ Remove all double quotes from str
+
+ the string to strip the quotes from
+ str minus the quotes
+
+
+
+
+
+ String to be padded
+ character used for padding
+ total length the return string should be
+ whether or not to append padding in front of initialString
+
+
+
+
+
+
+ the prefixes to search for
+ string to search
+ true if prefixes exists in value
+
+
+
+
+
+ The hex representation of the byte array
+
+
+
+
+
+
+ A byte array
+
+
+
+
+
+
+ (e.g. 1234 Bytes, 9876 Main St)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Executes a group of tasks with a cap on the number of concurrent threads running.
+
+
+
+
+
+ Group of tasks to execute
+ Number of threads to execute concurrently
+
+
+
+ Internal printer representation of the ZPL format prefix
+
+
+
+
+ Internal printer representation of the ZPL command prefix
+
+
+
+
+ Internal printer representation of the ZPL delimiter
+
+
+
+
+ Internal printer representation of the ZPL format prefix, as a String
+
+
+
+
+ Internal printer representation of the ZPL command prefix, as a String
+
+
+
+
+ Internal printer representation of the ZPL delimiter, as a String
+
+
+
+
+ Printer Status Command ~HI
+
+
+
+
+ Printer Expanded Status Command ~HS
+
+
+
+
+ Config Label ~WC
+
+
+
+
+ Directory label ^XA^WD*:*.*^XZ
+
+
+
+
+ Config Label ~WL
+
+
+
+
+ Printer Calibrate Command ~JC
+
+
+
+
+ Printer Reset Command ~JR
+
+
+
+
+ Printer Network Reset Command ~WR
+
+
+
+
+ Printer restore defaults command ^XA^JUF^XZ
+
+
+
+
+ Printer get super host status command ^XA^HZA^XZ
+
+
+
+
+ Printer get storage info ^XA^HW*:XXXX.QQQ^XZ Use XXXX.QQQ to get drive info without matching a file name
+
+
+
+
+ Printer get file drive info for Linkos 2.5 and higher
+
+
+
+
+ Printer get drive listing for Linkos 2.5 and higher
+
+
+
+
+
+
+ the command to decorate with the internal command prefix
+ the command decorated with the internal ZPL command prefix. If command contains a '~' it
+ will be replace with the internal command prefix, otherwise the internal command prefix will simply be prefixed
+ to the front of command
+
+
+
+
+
+ the format to decorate with the internal format prefix
+ the format decorated with the internal ZPL format prefix. If format contains a '^' it will
+ be replace with the internal format prefix, otherwise the internal format prefix will simply be prefixed to the
+ front of format
+
+
+
+
+
+ the format to decorate with the internal format prefix
+ the format decorated with the internal ZPL format prefix. If format contains a '^' it will
+ be replace with the internal format prefix, otherwise the internal format prefix will simply be prefixed to the
+ front of format
+
+
+
+ Enumeration of a task's status.
+
+
+
+
+ Configuration state indicating the task has not been started.
+
+
+
+
+ Configuration state indicating the task is in process.
+
+
+
+
+ Configuration state indicating the task completed successfully.
+
+
+
+
+ Configuration state indicating the task failed.
+
+
+
+
+ ENumeration to determine how the Weblink address is set.
+
+
+
+
+ Looks at current weblink settings and determine which location to set based on if the URL is set and valid and if
+ the printer is connected to the address.
+
+
+
+
+ Overrides any setting in Weblink location 1.
+
+
+
+
+ Overrides any setting in Weblink location 2.
+
+
+
+
+ Enumeration of the weblink configuration task's state.
+
+
+
+
+ Configuration state indicating the task is creating a connection to the printer.
+
+
+
+
+ Configuration state indicating the task is retrieving the printer's settings.
+
+
+
+
+ Configuration state indicating the task is configuring the weblink setting.
+
+
+
+
+ Configuration state indicating the task is restarting the printer.
+
+
+
+
+ Configuration state indicating the task is waiting for the printer to restart and then reconnect.
+
+
+
+
+ Configuration state indicating the task is validating the printer's profile manager connection.
+
+
+
+
+ Callback for updating the status of a Weblink configuration task.
+
+
+
+
+ Sets the new state of the Weblink Configurator defined by WeblinkConfigurationState.
+
+ The updated WeblinkConfiguration state.
+
+
+
+ Provides a custom message for the current weblink configuration state.
+
+ Custom message.
+
+
+
+ Task to configure a printers Weblink setting.
+
+
+
+
+ Initializes a new instance of the WeblinkConfiguratior class.
+
+ The to configure.
+
+
+
+ Initializes a new instance of the WeblinkConfiguratior class.
+
+ A to a printer
+
+
+
+ Configures a printer to connect to a Zebra Weblink server and attempts to validate a successful connection.
+
+
+ Please note that this function will block while waiting for the printer to reset and while validating the
+ connection. This could take an excess of 60 seconds.
+
+ Weblink address to set.
+ Determines which weblink setting will be configured.
+ Callback object to report task status.
+ Thrown when a configuration error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the current .
+
+
+
+
+ Returns the of the weblink configuration task.
+
+
+
+
+ Returns true if the supplied weblink url is valid for the Zebra weblink server.
+
+ Potential URL to a Zebra Weblink server.
+ true if the URL is a properly formed URL for the Zebra Weblink server.
+
+
+
+ Signals that an error occured while configuring weblink.
+
+
+
+
+ Constructs a ZebraWeblinkException with a base Exception.
+
+ The base exception.
+
+
+
+ Constructs a ZebraWeblinkException with a custom detailed error message.
+
+ The custom error message.
+
+
+
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/SdkApi.Desktop.Usb.dll b/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/SdkApi.Desktop.Usb.dll
new file mode 100644
index 0000000..6124fdd
Binary files /dev/null and b/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/SdkApi.Desktop.Usb.dll differ
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/SdkApi.Desktop.dll b/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/SdkApi.Desktop.dll
new file mode 100644
index 0000000..4beb6ab
Binary files /dev/null and b/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/SdkApi.Desktop.dll differ
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/SdkApi.Desktop.xml b/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/SdkApi.Desktop.xml
new file mode 100644
index 0000000..4474204
--- /dev/null
+++ b/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/SdkApi.Desktop.xml
@@ -0,0 +1,1410 @@
+
+
+
+ SdkApi.Desktop
+
+
+
+
+
+
+
+
+
+
+ Gets the expected bare word arguments.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Max length of optionTitle is 12 characters.
+
+
+
+
+
+
+ Max length of optionTitle is 12 characters.
+
+
+
+
+
+
+
+ Max length of optionTitle is 12 characters.
+
+
+
+
+
+
+
+
+ Hide the option so it does not appear on the help menu.
+ Option object.
+
+
+
+
+
+ Option object.
+
+
+
+
+
+
+
+
+
+ True if the Option is hidden from the help menu.
+
+
+
+
+
+
+
+ Argument name if there is one.
+
+
+
+
+ Whether command has arg.
+
+
+
+
+ Long option.
+
+
+
+
+ Short option.
+
+
+
+
+ Description.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes a Bluetooth® connection to a printer. (Windows 10 only)
+
+
+ In order to connect to a device with Bluetooth®, the device must be discoverable, authentication must be enabled,
+ and the authentication pin must be set (1-16 alphanumeric characters).
+ The encryption type and whether or not it is used is determined by the device initiating the connection and not
+ the device being connected to.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ Printer connection error or unsupported operating system.
+ For internal use of the Zebra Printer API only.
+
+
+
+ Constructs a new Bluetooth® connection with the given macAddress.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 10
+ seconds for any data to be received. If no more data is available after 500 milliseconds the read operation is assumed to be
+ complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The device's MAC address.
+ Unsupported operating system.
+
+
+
+ Constructs a new Bluetooth® connection with the givenmacAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete.
+
+ The device's MAC address.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Unsupported operating system.
+
+
+
+ Exposed this protected constructor for testing. We can pass in a mock Connector rather than the BT specific one.
+ The MAC address is a hexadecimal string with no separators between the octets (e.g. 0011BBDD55FF).
+
+
+
+
+
+ Unsupported operating system.
+
+
+
+ Opens a Bluetooth® connection as specified in the constructor.
+
+
+
+
+
+ Closes the Bluetooth® connection.
+
+
+
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name changes on the
+ device, it will not be refreshed until the connection is closed and reopened.
+
+ Bluetooth:[MAC Address]:[Friendly Name].
+
+
+
+
+ Gets the MAC address and the friendly name as the description.
+
+ [MAC Address]:[Friendly Name]
+
+
+
+
+ Gets the MAC address which was passed into the constructor. The MAC address is a hexadecimal string with
+ separators between the octets (e.g. 00:11:BB:DD:55:FF).
+
+
+
+
+ Gets the friendly name of the Bluetooth® connection. The friendly name is obtained from the device when
+ this connection is opened. If the friendly name changes on the device, it will not be refreshed until the
+ connection is closed and reopened.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes an insecure Bluetooth® connection to a printer. Insecure Bluetooth® connections do not require
+ the device and the printer to be paired. (Windows 10 only)
+
+
+
+
+
+ For Zebra Internal Use Only.
+
+
+ Unsupported operating system.
+
+
+
+ Constructs a new insecure Bluetooth® connection with the given macAddress.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for
+ any data to be received. If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ .
+
+ The device's MAC address.
+ Unsupported operating system.
+
+
+
+ Constructs a new insecure Bluetooth® connection with the given macAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the specified timeouts for . The timeout is a maximum of maxTimeoutForRead
+ milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData milliseconds the read operation
+ is assumed to be complete.
+
+ The device's MAC address.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Unsupported operating system.
+
+
+
+ Establishes a Bluetooth® status only connection to a Link-OS printer. (Windows 10 only)
+
+
+ A must be actively open before this connection can be used.
+ This connection requires Link-OS firmware 2.5 or higher. This channel will not block the printing channel,
+ nor can it print. If you wish to print, see .
+ Note: In order to connect to a device with Bluetooth®, the device must be discoverable, authentication
+ must be enabled, and the authentication pin must be set (1-16 alphanumeric characters).
+ The encryption type and whether or not it is used is determined by the device initiating the connection and not the
+ device being connected to.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ Printer connection error or unsupported soperating system.
+ For internal use of the Zebra Printer API only.
+
+
+
+ Constructs a new Bluetooth® connection with the given macAddress.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5
+ seconds for any data to be received. If no more data is available after 500 milliseconds the read operation is
+ assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The device's MAC address.
+ Unsupported operating system.
+
+
+
+ Constructs a new status only Bluetooth® connection with the given macAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete.
+
+ The device's MAC address.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Unsupported operating system.
+
+
+
+ Exposed this protected constructor for testing. We can pass in a mock Connector rather than the BT specific one.
+ The MAC address is a hexadecimal string with no separators between the octets (e.g. 0011BBDD55FF).
+
+
+
+
+
+ Unsupported operating system.
+
+
+
+ Opens a status only Bluetooth® connection as specified in the constructor.
+
+
+ If the device does not support status connections (that is, if it is not a Link-OS 2.5 or higher device) calling
+ open will throw a ConnectionException.
+
+
+
+
+
+ Closes the Bluetooth® connection.
+
+
+
+
+
+ Returns Bluetooth_STATUS:[MAC Address]:[Friendly Name].
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name changes on the
+ device, it will not be refreshed until the connection is closed and reopened.
+
+
+ Bluetooth_STATUS:[MAC Address]:[Friendly Name].
+
+
+
+ Return the MAC address and friendly name of the status port as the description.
+
+ [MAC Address]:[Friendly Name]
+
+
+
+
+ Returns the MAC address which was passed into the constructor.
+
+
+ The MAC address is a hexadecimal string with separators between the octets (e.g. 00:11:BB:DD:55:FF).
+
+
+
+
+ Returns the friendly name of the Bluetooth® connection.
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name
+ changes on the device, it will not be refreshed until the connection is closed and reopened.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes a status only insecure Bluetooth® connection to a Link-OS printer. (Windows 10 only)
+
+
+ A must be actively open before this connection can be used.
+ This connection requires Link-OS firmware 2.5 or higher. This channel will not block the printing channel, nor can it print.
+ If you wish to print, see . Insecure Bluetooth® connections do not require the device
+ and the printer to be paired.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ Unsupported operating system.
+
+
+
+
+ Constructs a new status only insecure Bluetooth® connection with the given macAddress.
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5
+ seconds for any data to be received. If no more data is available after 500 milliseconds the read operation is
+ assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ Unsupported operating system.
+
+
+
+ Constructs a new status only insecure Bluetooth® connection with the given macAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete.
+
+ The device's MAC address.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Unsupported operating system.
+
+
+
+ Builds a Connection from a description string. The description string is used to specify a connection to a specific
+ device over TCP, USB, or Bluetooth® (Windows 10 only).
+
+
+ The description string may be of the explicit forms:
+ "TCP:192.168.1.4:6101" -- creates a TCP connection to the device with IP address 192.168.1.4 on port 6101.
+ "TCP:192.168.1.4" -- creates a TCP connection to the device with IP address 192.168.1.4 on default port 9100.
+ "TCP:dnsName:6101" -- creates a TCP connection to the device with 'dnsName' on port 6101.
+ "TCP:dnsName" -- creates a TCP connection to the device with 'dnsName' on default port 9100.
+ "TCP_MULTI:192.168.1.4" -- creates a Multichannel TCP connection to the device with '192.168.1.4' using the default ports for both the printing channel(9100) and the status channel(9200).
+ "TCP_MULTI:192.168.1.4:1234" -- creates a Multichannel TCP connection to the device with '192.168.1.4' using the given port for the printing channel(1234) and the default port for the status channel(9200).
+ "TCP_MULTI:192.168.1.4:1234:5678" -- creates a Multichannel TCP connection to the device with '192.168.1.4' using the given ports for the printing channel(1234) and the status channel(5678).
+ "TCP_MULTI:dnsName:1234:5678" -- creates a Multichannel TCP connection to the device with 'dnsName' using the given ports for the printing channel(1234) and the status channel(5678).
+ "TCP_STATUS:192.168.1.4:1234" -- creates a TCP status only connection to the device with IP address 192.168.1.4 on port 1234.
+ "TCP_STATUS:192.168.1.4" -- creates a TCP status only connection to the device with IP address 192.168.1.4 on the default status port 9200.
+ "USB:deviceName" -- creates a USB connection (through the ZebraDesigner driver) to the device with printer name 'deviceName'.
+ "USB_DIRECT:\\?\usb#vid_0a5f&pid_00bd#qln320#..." -- creates a USB connection (direct) to the device using '\\?\usb#vid_0a5f&pid_00bd#qln320#...' as the USB symbolic name.
+ "BT:11:22:33:44:55:66" -- creates a Bluetooth® connection to the device using '11:22:33:44:55:66' as the MAC address. (Windows 10 only)
+ "BT_MULTI:11:22:33:44:55:66" -- creates a multichannel Bluetooth® connection to the device using '11:22:33:44:55:66' as the MAC address. (Link-OS 2.5 or higher for the status channel, Windows 10 only)
+ "BT_STATUS:11:22:33:44:55:66" -- creates a status only Bluetooth® connection to the device using '11:22:33:44:55:66' as the MAC address. (Link-OS 2.5 or higher, Windows 10 only)
+
+ Generic text may also be used to attempt to specify a device. For example a description string of "genericText" will
+ attempt to connect to a device using the following priority:
+
+ -
+ TCP_MULTI
+
+ -
+ TCP
+
+ -
+ TCP_STATUS
+
+ -
+ USB
+
+ -
+ USB_DIRECT
+
+ -
+ BT_MULTI
+
+ -
+ BT
+
+ -
+ BT_STATUS
+
+
+
+ If you supply the string 'MyString'. This could be interpreted to be either a DNS name, or a USB device name.
+ ConnectionBuilder will attempt to connect to this string given the above priority order.
+ If you supply a more specific string, such as '192.168.2.3', ConnectionBuilder will more efficiently interpret this
+ string as being an IP address and, therefore, only attempt the TCP connections.
+ Note: Colon (':') characters are not supported in dnsName, friendlyName, uniqueId, deviceName, or genericText fields.
+ The following is an example of building a connection from a string:
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Add a connection type to the ConnectionBuilder.
+
+ Connection class.
+
+
+
+ Creates a Connection type based on the contents of descriptionString.
+ "TCP:192.168.1.2:9100"
+ The format of the input string is: [prefix:] address [: port_number(s)].
+
+ -
+ Prefix is either TCP_MULTI, TCP, TCP_STATUS, USB (if applicable), USB_DIRECT (if applicable), BT_MULTI (if applicable),
+ BT (if applicable), or BT_STATUS (if applicable).
+
+ -
+ The format of address depends on the prefix
+
+ - USB : address is the printer driver name.
+ - USB_DIRECT : address is the USB symbolic name.
+ - TCP : address is either a DNS name or an IPv4 address.
+ - BT : address is the MAC address. (Windows 10 only)
+
+
+ - port_number(s) is optional, and only applicable for TCP connections.
+ -
+ Examples:
+
+ - TCP:ZBR3054027:9100
+ - TCP_MULTI:ZBR3054027:9100:9200
+ - USB:ZDesigner Qln320
+ - USB_DIRECT:\\?\usb#vid_0a5f&pid_00bd#qln320#...
+ - BT:11:22:33:44:55:66
+ - 10.1.2.3
+
+
+
+ Connection derived from the contents of descriptionString.If a connection could not be established for the given descriptionString.
+
+
+
+ Establishes a USB connection to a printer.
+
+ This class is only supported on Windows PC platforms.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+ Information required to instantiate a DriverPrinterConnection
+
+
+
+
+ Initializes a new instance of the DriverPrinterConnection class.
+
+
+ This constructor will use the default timeouts for .
+ The default timeout is a maximum of 5 seconds for any data to be received. If no more
+ data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ .
+
+ The printer name.
+
+
+
+
+ Initializes a new instance of the DriverPrinterConnection class.
+
+
+ This constructor will use the specified timeouts for .
+ The timeout is a maximum of maxTimeoutForRead milliseconds for any data to be received.
+ If no more data is available after timeToWaitForMoreData milliseconds the read operation
+ is assumed to be complete.
+
+ The printer name.
+ The maximum milliseconds to wait for the initial data to be received.
+ The maximum milliseconds to wait for additional data to be received.
+
+
+
+
+ Returns the name of the printer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns USB:[PrinterName].
+
+ The PrinterName is the parameter which was passed into the constructor.
+
+
+
+ Return the printer name as the description.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Releases all resources used by the
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This does not work at the moment so do not use
+
+
+
+
+
+ This sort of works on desktop but only worked on tablet if the bt devices window was open
+ so do not use
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 35 seconds was chosen for a Max Timeout so that if the pairing request is
+ ignored it will close and deny the pair before we hit the Max Timeout and close.
+
+
+
+
+ Establishes a Bluetooth® label and status connection to a printer. (Windows 10 only)
+
+
+ In order to connect to a device with Bluetooth®, the device must be discoverable,
+ authentication must be enabled, and the authentication pin must be set (1-16 alphanumeric characters).
+ The encryption type and whether or not it is used is determined by the device initiating the connection and not
+ the device being connected to.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ Unsupported operating system.
+
+
+
+ Initializes a new instance of the MultichannelBluetoothConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a
+ maximum of 5 seconds for any data to be received. If no more data is available after 500 milliseconds the read
+ operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ or
+ .
+
+ The MAC Address of the Printer.
+ Unsupported operating system.
+
+
+
+ Initializes a new instance of the MultichannelBluetoothConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels.
+ The timeout is a maximum of maxTimeoutForRead milliseconds for any data to be received. If no more
+ data is available after timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+ If you wish to specify different timeouts for each channel, use
+ }.
+
+ The MAC Address of the Printer.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+ Unsupported operating system.
+
+
+
+ Initializes a new instance of the MultichannelBluetoothConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels.
+ The timeout is a maximum of printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds
+ for any data to be received on the printing/status channels respectively. If no more data is available after
+ printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData milliseconds on the printing/status
+ channels respectively the read operation is assumed to be complete.
+
+ The MAC Address of the Printer.
+ The maximum time, in milliseconds, to wait for any data to be received on
+ the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the
+ initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on
+ the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the
+ initial read on the status channel.
+ Unsupported operating system.
+
+
+
+ Opens both the printing and status channel of this Multichannel connection.
+
+
+ If neither channel can be opened, then a is thrown. When this Multichannel connection
+ is no longer needed, you must call to free up system resources.
+
+ If the connection cannot be established.
+
+
+
+
+
+
+ Returns Bluetooth_MULTI:[MAC Address]:[Friendly Name].
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name changes on the
+ device, it will not be refreshed until the connection is closed and reopened.
+
+ Bluetooth_MULTI:[MAC Address]:[Friendly Name].
+
+
+
+ Return the MAC address as the description.
+
+
+
+
+
+
+
+
+
+
+ Unsupported operating system.
+
+
+
+ Establishes a direct connection to an attached Zebra USB printer without requiring the presence of a USB driver.
+
+
+
+
+ The symbolic name of the printer.
+
+
+
+
+ Initializes a new instance of the UsbConnection class.
+
+ This constructor will attempt a connection to the printer specified in the symbolic name.
+ The USB symbolic name for the device returned by the UsbDiscoverer.GetZebraUsbPrinters() member function.
+ If the system is not running the Windows operating system or if the device cannot be found.
+
+
+
+ Initializes a new instance of the UsbConnection class.
+
+ This constructor will attempt a connection to the printer specified in the symbolic name.
+ The USB symbolic name for the device returned by the UsbDiscoverer.GetZebraUsbPrinters() member function.
+ Maximum time to wait for read data
+ Maximum time to wait for more data after intial data is sent from printer
+ If the system is not running the Windows operating system or if the device cannot be found.
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the UsbConnection class.
+
+ This constructor will attempt a connection to a printer that meets the connectionInfo criteria
+ Printer serial number or model number
+ Printer connection error
+ Cannot find specified device among attached devices
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads up to maxBytesToRead into byte array
+
+ The maximum number of bytes to read.
+ Performing reads using DriverPrinterConnection and UsbConnection concurrently could cause indeterminate reads.
+
+
+
+ Returns number of bytes currently read from printer.
+
+ Number of bytes currently read from printer.
+ If an I/O error occurs.
+
+
+
+
+
+
+
+
+
+ Gets the printer's serial number.
+
+
+
+
+ Returns the Connection Builder name of the USB device.
+
+
+
+
+
+
+
+
+
+
+ Returns printer's manufacturer.
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ A factory used to acquire an instance of a ZebraImageI.
+
+
+
+
+ Creates an instance of from the image specified in image.
+
+ The image
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If image is null
+
+
+
+ Creates an instance of from the image specified in fullPath.
+
+ The full path of the image.
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If fullPath is null
+
+
+
+ Creates an instance of from the image data specified in imageData
+
+ A stream containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null
+
+
+
+ A class that discovers Bluetooth® devices.
+
+
+
+
+
+ Find Bluetooth® devices that are discoverable.
+
+ This method will return all devices found, not just Zebra printers.
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ For communication or discovery errors.
+
+
+
+ Find Bluetooth® devices that are discoverable.
+
+ This method will return all devices found, not just Zebra printers.
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ For communication or discovery errors.
+
+
+
+ Find Bluetooth® devices that are discoverable.
+
+ This method will return all devices found, not just Zebra printers.
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A custom instance used to determine whether or not a discovered device should be ignored.
+ For communication or discovery errors.
+
+
+
+ Find Bluetooth® devices that are discoverable.
+
+ This method will return all devices found, not just Zebra printers.
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A custom instance used to determine whether or not a discovered device should be ignored.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ For communication or discovery errors.
+
+
+
+ Find services (ConnectionChannels) that are supported by the device at macAddress.
+
+ MAC address of the device.
+ A instance that is used to handle service discovery events.
+ The Bluetooth MAC address is invalid.
+
+
+
+ DeviceFilter is an interface to allow the user to write custom code to determine whether or not the
+ BluetoothDiscoverer should include a particular BluetoothDevice in it's result set.
+
+
+
+
+ Method called by a BluetoothDiscoverer to determine whether or not a Bluetooth® device should be added to
+ it's list of discovered devices.
+
+ BluetoothDevice to potentially be added to the list of of discovered Bluetooth® devices.
+ A bool indicating whether or not a particular BluetoothDevice should be added.
+
+
+
+ Instance of DiscoveredPrinter that is returned when performing a Bluetooth® discovery.
+
+
+
+
+ The friendly name of the Bluetooth® device.
+
+
+
+
+ Returns an instance of a DiscoveredPrinterBluetooth with macAddress.
+
+ MAC address of the printer.
+ Friendly name of the printer.
+
+
+
+
+
+
+ Instance of that is returned when performing a Driver Discovery.
+
+
+
+
+ Local printer name associated with the driver.
+
+
+
+
+ Returns an instance of a with printerName, driverName,
+ and portNames.
+
+ The printer name.
+ The name of the ZebraDesigner driver.
+ The port name.
+
+
+
+ Returns the name of the printer.
+
+ The printer name.
+
+
+
+
+
+
+ Instance of that is returned when performing a search of currently connected Zebra USB printers.
+
+
+
+
+ Returns an instance of a built using built using the provided symbolicName.
+
+ The symbolic name for the printer returned by
+ or .
+ If a connection to the discover USB printer cannot be established.
+
+
+
+ Returns an instance of a built using the provided symbolicName and
+ attributes.
+
+ The symbolic name for the printer returned by
+ or .
+ A map of attributes associated with the discovered USB printer.
+ If a connection to the discover USB printer cannot be established.
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface definition for a callback to be invoked for service discovery events.
+
+
+
+
+ This method is invoked when a service has been discovered. This method will be invoked for each service that is found.
+
+ A discovered channel.
+
+
+
+ This method is invoked when discovery is finished.
+
+
+
+
+ A class used to discover a printer described by a URL. (Windows 10 only)
+
+
+
+
+ This method will search using a combination of discovery methods to find the printer described by the specified URL. (Windows 10 only)
+
+
+ This method will invoke the method for each interface that
+ the specified printer is found. will be invoked when the discovery is
+ finished and will be invoked when any errors are encountered during
+ discovery. When is invoked, the discovery will be canceled and
+ will not be invoked.
+ This method will typically be used when reading an NFC tag attached to a Zebra printer. To launch your app when a
+ Zebra NFC tag is read:
+
+ - Register to listen for Zebra NFC Tag scans in your application
+ - Handle the NFC scan in your application
+
+
+ The URL describing the targeted printer (Typically, this information is encoded on an NFC tag attached
+ to the printer)
+ Example:
+ "http://www.zebra.com/apps/r/nfc?mBL=00225832C75F&mW=000000000000&mE=000000000000&c=QN3-AUBA0E01-00&s=XXQLJ112600422&v=0"
+ A instance that is used to handle discovery events (e.g. found a
+ printer, errors, discovery finished).
+ If an error occurs while starting the discovery (errors during discovery will be sent
+ via ).
+
+
+
+
+ A class used to discover USB connected Zebra printers. Printers can be accessed directly or through a Zebra Designer
+ printer driver if your printer supports the driver.
+
+
+
+
+
+ A class used to discover USB connected Zebra printers. Printers can be accessed either directly or through a USB
+ printer driver.
+
+
+
+
+ Enumerate locally installed Zebra Designer Drivers.
+
+ List of ZebraDesigner drivers installed.
+ If the system is not running the Windows operating system or an error occurs during discovery.
+
+
+
+ Enumerate all currently connected Zebra USB printers.
+
+ List of locally connected Zebra USB printers.
+ If the system is not running the Windows operating system or an error occurs during discovery.
+
+
+
+ Enumerate currently connected Zebra USB printers that meet the specified DiscoveredPrinterFilter criteria.
+
+ A custom instance used to determine whether or not a discovered device should be ignored.
+ >List of locally connected Zebra USB printers.
+ If the system is not running the Windows operating system or an error occurs during discovery.
+
+
+
+ For Zebra Internal Use Only.
+
+
+
+
+
+
+ For Zebra Internal Use Only.
+
+
+
+
+
+
+ DiscoveredPrinterFilter implementation that filters out all unsupported Zebra Printers.
+
+
+
+
+ Determines if the discoveredPrinter is a supported Zebra Printer.
+
+ The discovered printer.
+ True if the discoveredPrinter is a supported Zebra Printer.
+
+
+
+ Handler class used to notify of connection status
+
+
+
+
+ Called when a printer establishes a connection.
+
+ Printer which just established a connection.
+
+
+
+ Called when a printer goes offline.
+
+ Printer which just went offline.
+
+
+
+ Removes the Connection handler from the runtime.
+
+
+
+
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/ZebraPrinterSdk.dll b/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/ZebraPrinterSdk.dll
new file mode 100644
index 0000000..e7dbffb
Binary files /dev/null and b/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/ZebraPrinterSdk.dll differ
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/ZebraPrinterSdk.xml b/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/ZebraPrinterSdk.xml
new file mode 100644
index 0000000..f5592dc
--- /dev/null
+++ b/packages/Zebra.Printer.SDK.2.15.2634/lib/net471/ZebraPrinterSdk.xml
@@ -0,0 +1,57 @@
+
+
+
+ ZebraPrinterSdk
+
+
+
+
+ A factory interface used to acquire a cross platform instance of ZebraImageI.
+
+
+
+
+ Creates an instance of from the image specified in fullPath.
+
+ The full path of the image.
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If fullPath is null.
+
+
+
+ Creates an instance of from the image data specified in imageData.
+
+ A byte[] containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null.
+
+
+
+ Creates an instance of from the image data specified in imageData.
+
+ A stream containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null.
+
+
+
+ A factory used to acquire an instance of ZebraImageI.
+
+
+
+
+ Current IZebraPrinterFactory to use
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/netstandard2.0/SdkApi.Core.dll b/packages/Zebra.Printer.SDK.2.15.2634/lib/netstandard2.0/SdkApi.Core.dll
new file mode 100644
index 0000000..05b0e1e
Binary files /dev/null and b/packages/Zebra.Printer.SDK.2.15.2634/lib/netstandard2.0/SdkApi.Core.dll differ
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/netstandard2.0/SdkApi.Core.xml b/packages/Zebra.Printer.SDK.2.15.2634/lib/netstandard2.0/SdkApi.Core.xml
new file mode 100644
index 0000000..7a6f633
--- /dev/null
+++ b/packages/Zebra.Printer.SDK.2.15.2634/lib/netstandard2.0/SdkApi.Core.xml
@@ -0,0 +1,8999 @@
+
+
+
+ SdkApi.Core
+
+
+
+
+ Takes in a certificate file (P12, DER, PEM, etc) and processes it into a ZebraCertificateInfo object which contains
+ the selected certificate, Certificate Authority certificate chain, and private key (if applicable).
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Takes in a certificate file (P12, DER, PEM, etc) and processes it into a ZebraCertificateInfo object which contains
+ the selected certificate, Certificate Authority certificate chain, and private key (if applicable).
+
+ Data stream for the certificate file to be processed.
+ The certificate to use within a multi-certificate (like PKCS12) file.
+ Used to unlock a protected certificate file.
+ Instance containing all certificate and key information for the processed file.
+ If there is an issue reading the certificate file.
+ If there is an issue processing the certificate file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Signals that an error occurred while converting a certificate.
+
+
+
+
+ Constructs a ZebraCertificateConversionException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a ZebraCertificateConversionException with message as the detailed error
+ message and cause as the underlying exception.
+
+ User defined message for the exception.
+ What created the exception.
+
+
+
+ Handler class for managing certificate and private key information.
+
+
+
+
+ The file name on a printer to which a private key must be saved for wireless security.
+
+
+
+
+ The file name on a printer to which a wireless ca must be saved for wireless security.
+
+
+
+
+ The file name on a printer to which a client cert must be saved for wireless security.
+
+
+
+
+ Initializes a new instance of the ZebraCertificateInfo class.
+
+
+
+
+ Returns the CA Certificate chain.
+
+ CA Certificate chain in PEM format.
+
+
+
+ Contains the client certificate, if set.
+
+
+
+
+ Contains the Certificate Authority certificate chain, if set.
+
+
+
+
+ Contains the private key, if set.
+
+
+
+
+ A utility class used to extract info from certificate files and convert the contents into Zebra friendly formats.
+
+
+
+
+
+ Creates a wrapper that opens up the provided certificate keystore stream.
+
+ The stream containing certificate keystore file contents.
+ The password used to access the certificate file.
+ Thrown if the certificate stream contents cannot be accessed or if the
+ certificate password was incorrect.
+
+
+
+ Get a list of aliases present in the certificate keystore.
+
+ A list of the aliases present in the certificate keystore.
+ If the keystore has not been initialized (loaded).
+
+
+
+ Get the content of the first entry in the certificate's certificate chain.
+
+ The returned content is converted to PEM format. The resulting content can be stored to a printer for use
+ with wireless security. Since no alias is provided, the first entry in the certificate file will be used.
+ The Zebra-friendly certificate content
+ If the provided alias does not exist or the certificate content is corrupt
+
+
+
+ Get the content of the first entry in the certificate's certificate chain.
+
+ The returned content is converted to PEM format. The resulting content can be stored to a printer for use
+ with wireless security.
+ The alias name of the specific entry to extract from the certificate file.
+ The Zebra-friendly certificate content.
+ If the provided alias does not exist or the certificate content is corrupt
+
+
+
+ Get the content of the ca, which is determined to be all entries in the certificate chain after the first entry.
+
+ The returned ca is converted to PEM format. The resulting content can be stored to a printer for use with
+ wireless security. Since no alias is provided, the first entry in the certificate file will be used.
+ The Zebra-friendly ca content.
+ If the provided alias does not exist or the ca content is corrupt.
+
+
+
+ Get the content of the ca, which is determined to be all entries in the certificate chain after the first entry.
+
+ The returned ca is converted to PEM format. The resulting content can be stored to a printer for use with
+ wireless security.
+ The alias name of the specific entry to extract from the certificate file.
+ The Zebra-friendly ca content.
+ If the provided alias does not exist or the ca content is corrupt.
+
+
+
+ Get the encrypted private key content.
+
+ The returned key is encrypted and converted to PEM format. The resulting content can be stored
+ to a printer for use with wireless security.Since no alias is provided, the first entry in the certificate
+ file will be used. Note: Any printer using the generated private key must also be configured to use the
+ password provided here to encrypt the private key.Send the following command to the printer to configure
+ it to use a private key encryption password: ! U1 setvar "wlan.private_key_password" "value".
+ The password used to encrypt the resulting private key.
+ The encrypted private key in PEM format.
+ If the provided alias does not exist, certificate password is
+ incorrect, or private key content is corrupt.
+
+
+
+ Get the encrypted private key content.
+
+ The resulting content can be stored to a printer for use with wireless security.
+ Note: Any printer using the generated private key must also be configured to use the provided password to
+ encrypt the private key. Send the following command to the printer to configure it to use a private key
+ encryption password: ! U1 setvar "wlan.private_key_password" "value".
+ The alias name of the specific entry to extract from the certificate file.
+ The password used to encrypt the resulting private key.
+ The encrypted private key in PEM format.
+ If the provided alias does not exist, certificate password is
+ incorrect, or private key content is corrupt.
+
+
+
+ Get the common name of the client certificate associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The certificate common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the client certificate associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The certificate common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the CA associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The CA common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the CA associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file
+ The CA common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the expiration data of the client certificate associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The client certificate expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the client certificate associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The client certificate expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the CA associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The CA expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the CA associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The CA expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the algorithm used by the private key.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The private key algorithm.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the algorithm used by the private key.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The private key algorithm.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the issuer of the client certificate.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The client certificate issuer.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the issuer of the client certificate.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The client certificate issuer.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Gets the keystore of the processed client certificate.
+
+ The Pkcs12Store containing information about the processed certificate file.
+
+
+
+ A connection to a device.
+
+
+
+
+ Opens the connection to a device.
+
+
+ If the open method is called when this connection has already been
+ opened, this call is ignored. When a handle to the connection is no longer needed, you must call
+ to free up system resources.
+
+ If the connection cannot be established.
+
+
+
+ Closes this connection and releases any system resources associated with the connection.
+
+ If the connection is already closed then invoking this method has no effect.
+ If an I/O error occurs.
+
+
+
+ Writes data.Length bytes from the specified byte array to this output stream.
+
+
+ The connection must be open before this method is called. If write is called when a connection is closed, a
+ ConnectionException is thrown.
+
+ Data to write
+ If an I/O error occurs.
+
+
+
+ Writes length bytes from data starting at offset.
+
+
+ The connection must be open before this method is called. If Write is called when a
+ connection is closed, a ConnectionException is thrown.
+
+ The data.
+ The start offset in the data.
+ The number of bytes to write.
+ if an I/O error occurs.
+
+
+
+ Writes all available bytes from the data source to this output stream.
+
+
+ The connection must be open before this method is called. If write is called when a connection is closed,
+ a ConnectionException is thrown.
+
+ The data.
+ If an I/O error occurs.
+
+
+
+ Reads all the available data from the connection. This call is non-blocking.
+
+ Data read from the connection.
+ If an I/O error occurs.
+
+
+
+ Reads the next byte of data from the connection.
+
+
+ The value byte is returned as an int in the range of 0 to 255. If no byte is available on the
+ connection the value -1 is returned.
+
+ The next byte from the connection.
+ If an I/O error occurs.
+
+
+
+ Reads all the available data from the connection.
+
+ This call is non-blocking.
+ For read data.
+ If an I/O error occurs.
+
+
+
+ Returns true if the connection is open.
+
+
+
+
+ Returns an estimate of the number of bytes that can be read from this connection without blocking.
+
+ The estimated number of bytes available.
+ If an I/O error occurs.
+
+
+
+ See the classes which implement this method for the format of the description string.
+
+ The connection description string.
+
+
+
+ Gets a human-readable description of the connection.
+
+
+
+
+ Causes the currently executing thread to sleep until > 0, or for a maximum of
+ maxTimeout milliseconds.
+
+ The maximum time in milliseconds to wait for an initial response from the printer.
+ If an I/O error occurs.
+
+
+
+ Gets or sets the maximum time, in milliseconds, to wait for any data to be received.
+
+
+
+
+ Gets or sets the maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+
+ Sends dataToSend and returns the response data.
+
+
+ The software returns immediately if the data received contains terminator. The connection must be open before this method
+ is called. If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Byte array of data to send
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function returns a zero length array.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response contains this string, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response is always terminated with a known string. Use null
+ if no terminator is desired.
+ The received data.
+ If an I/O error occurs.
+
+
+
+ Sends data from sourceStream and writes the response data to destinationStream.
+
+
+ The software returns immediately if the data received contains terminator. The connection must be open before this method
+ is called. If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Destination for response.
+ Source of data to be sent.
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function does not write any data to the destination stream.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response contains this string, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response is always terminated with a known string. Use null
+ if no terminator is desired.
+ If an I/O error occurs.
+
+
+
+ Sends dataToSend and returns the response data.
+
+
+ The software returns immediately if the data received satisfies validator. The connection must be open before this method is called.
+ If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Byte array of data to send
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function returns a zero length array.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response satisfies this validator, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response follows a known format.
+ received data
+ If an I/O error occurs.
+
+
+
+ Sends data from sourceStream and writes the response data to destinationStream.
+
+
+ The software returns immediately if the data received satisfies validator. The connection must be open before this method is called.
+ If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Destination for response.
+ Source of data to be sent.
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function does not write any data to the destination stream.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response satisfies this validator, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response follows a known format.If validator is null, no validation is performed.
+ When performing validation, this method will use enough memory to hold the entire response.
+ If an I/O error occurs.
+
+
+
+ Returns a ConnectionReestablisher which allows for easy recreation of a connection which may have been closed.
+
+ This call should be made while there is still an active connection to the printer (prior to issuing a command which will make the printer non-responsive).
+ How long the Connection reestablisher will wait before attempting to reconnection to the printer.
+ Instance of
+ If the ConnectionReestablisher could not be created.
+
+
+
+ Abstract class which implements the default functionality of Connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ This call is non-blocking.
+ number of bytes to read
+ the bytes read from the connection
+ if an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sets the stream to log the write data to.
+
+ The stream to log the data to.
+
+
+
+ Log data sent to printer by sending to the WriteLogStream, if present
+
+ The data written to connection, send to log stream
+ The start offset in the buffer.
+ The number of bytes to write
+
+
+
+
+ Gets or sets the maximum number of bytes to write at one time
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ number of bytes to read
+ true to exit on first data read
+ the bytes read from the connection.
+ if an I/O error occurs.
+
+
+
+ See the classes which implement this property for the format of the printer manufacturer string.
+
+
+
+
+
+
+
+
+
+
+ Sets the underlying read timeout value.
+
+ The read timeout in milliseconds.
+ If an error occurs while attempting to set the read timeout.
+
+
+
+ For printers that support both Status and Printing channel (Link OS printers).
+
+
+
+
+ The status channel of a connection.
+
+
+
+
+ The printing channel of a connection.
+
+
+
+
+ Signals that an error has occurred on the connection.
+
+
+
+
+ onstructs a ConnectionException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a ConnectionException with cause as the source of the exception.
+
+ The cause of the exception.
+
+
+
+ Constructs a ConnectionException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception.
+
+
+
+ Defines methods used to reestablish a connection to a printer which may have been closed.
+
+
+
+
+ Reestablishes a connection to a printer which may have been closed due to an event, like a reboot.
+
+ Handles recreating and opening a connection to a printe.r
+ If the printer cannot be found.
+ If the connection can not be created or open.
+ If a connection can not be reestablished after a defined timeout
+ If the connection can not talk to the printer.
+
+
+
+ Abstract class which implements the default functionality of StatusConnection.
+
+
+
+
+
+
+
+
+ A connection to a device that copies data sent to the connection to the provided stream.
+
+
+
+
+ Sets the stream to log the write data to.
+
+ Log all write data to this stream.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ Number of bytes to read.
+ True to return on first read.
+ The bytes read from the printer.
+ If an I/O error occurs.
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ Number of bytes to read.
+ The bytes read from the printer.
+ If an I/O error occurs
+
+
+
+ Gets or sets the maximum number of bytes to write at one time.
+
+
+
+
+ Returns the printer manufacturer name.
+
+
+
+
+ Sets the underlying read timeout value.
+
+ The timeout in milliseconds.
+ If an I/O error occurs
+
+
+
+ A wrapper class containing information about a connection.
+
+
+
+
+
+
+ The connection string
+
+
+
+
+
+ The data of the connection info
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Writes a byte stream representation of the file to destination.
+
+
+ Currently all files are retrieved in binary mode.
+
+ Stream to receive the contents of the file.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+ the error message
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UnknownHostException
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sets the sockets read/block timeout.
+
+ Timeout in ms
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An interface defining methods associated with a device that may be addressed via an IP connection.
+
+
+
+
+ Returns the address which was passed into the constructor.
+
+ the address used to establish this connection. This can be either a DNS Hostname or an IP address.
+
+
+
+ Returns the port number which was passed into the constructor.
+
+ the port number associated with the connection.
+
+
+
+ Signals that an error has occurred while writing to the connections log stream.
+
+
+
+
+ Constructs a LogStreamException with message as the detailed error message.
+
+ the error message.
+
+
+
+ Base class for Link-OS printers which support separate printing and status channels.
+
+
+ This class conforms to a standard and if only the Connection methods are used, the SDK will attempt to open
+ both the printing and status channels. A will use the raw Connection when a method is called directly.
+ Furthermore, when using a in conjunction with a , the will
+ attempt to use whichever connection is the most efficient. If you wish to only open up a specific channel, use either the
+ or
+ method and their corresponding
+ and
+ method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Opens both the printing and status channel of this Multichannel connection.
+
+
+ If neither channel can be opened, then a is thrown. When this Multichannel connection is no longer needed, you must
+ call to free up system resources.
+
+
+
+
+
+ Opens the printing channel of this Multichannel connection.
+
+
+ If this method is called when this channel has already been opened, the call is ignored. When this channel is no longer needed, you must call either
+ or to free up system resources.
+
+ if the connection cannot be established.
+
+
+
+ Opens the status channel of this Multichannel connection.
+
+
+ If this method is called when this channel has already been opened, the call is ignored. When this channel is no longer needed, you must call either
+ or to free up system resources.
+
+ if the connection cannot be established.
+
+
+
+ Closes both the printing and status channels of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+
+
+
+
+ Closes the printing channel of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+ if an I/O error occurs.
+
+
+
+ Closes the status channel of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+ if an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the underlying printing of this MultichannelConnection.
+
+
+
+
+ Gets the underlying status of this MultichannelConnection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes a Multichannel TCP connection to a device.
+
+
+
+
+
+ The default Multichannel printing port for Link-OS devices.
+
+
+
+
+ The default Multichannel status port for Link-OS devices.
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data to be
+ received. If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ or
+
+
+ The discovered printer.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels. The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete. If you wish to specify different timeouts for each channel, use
+
+
+ The discovered printer.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels. The timeout is a maximum of
+ printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds for any data to be received on the printing/status
+ channels respectively.If no more data is available after printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData
+ milliseconds on the printing/status channels respectively the read operation is assumed to be complete.
+
+ The discovered printer.
+ The maximum time, in milliseconds, to wait for any data to be received on the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the status channel.
+ If discoveredPrinter is not a valid Link-OS printer.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any
+ data to be received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ or
+
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels. The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received.If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete. If you wish to specify different timeouts for each channel, use
+
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels. The timeout is a maximum of
+ printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds for any data to be received on the printing/status
+ channels respectively.If no more data is available after printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData
+ milliseconds on the printing/status channels respectively the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+ The maximum time, in milliseconds, to wait for any data to be received on the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the status channel.
+
+
+
+
+
+
+
+
+
+
+ The Address, PrintingPort, and StatusPort are the parameters which were passed into the constructor.
+
+ TCP_MULTI:[Address]:[PrintingPort]:[StatusPort]
+
+
+
+ Return the IP address as the description.
+
+
+
+
+
+ An interface defining a method to validate whether a response from the printer is complete.
+
+
+
+
+ Provide a method to determine whether a response from the printer is a complete response.
+
+ string to be validated
+ true if the string is a complete response
+
+
+
+ A status connection to a Link-OS printer. The status connection requires Link-OS firmware 2.5 or higher. This
+ connection will not block the printing channel, nor can it print.
+
+
+
+
+ A status connection to a Link-OS printer. The status connection requires Link-OS firmware 2.5 or higher. This
+ connection will not block the printing channel, nor can it print.It copies data sent to the connection to the
+ provided stream.
+
+
+
+
+ Sets the stream to log the write data to.
+
+ Log all write data to this stream.
+
+
+
+ Establishes a TCP connection to a device.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ The default TCP port for ZPL devices.
+
+
+
+
+ The default TCP port for CPCL devices.
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the TcpConnection class.
+
+
+ This constructor will use the default
+ timeouts for . The default timeout is a maximum of 5 seconds for any data to be
+ received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ .
+
+ the IP Address or DNS Hostname.
+ the port number.
+
+
+
+ Initializes a new instance of the TcpConnection class.
+
+
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after
+ timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Exposed this protected constructor for testing. We can pass in a mock Connector rather than the specific one
+
+
+
+
+ Returns TCP:[Address]:[PortNumber].
+
+ The address and port number are the parameters which were passed into the constructor.
+
+
+
+
+ Gets the IP address as the description.
+
+
+
+
+
+
+
+
+
+
+
+ Sets the read timeout on the underlying socket.
+
+ The read timeout in milliseconds
+
+
+
+
+
+
+
+
+
+ Establishes a status only TCP connection to a device
+
+
+
+
+
+ The default Status TCP port for ZPL devices.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class using the default status port of 9200.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data to be received.
+ If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The IP Address or DNS Hostname.
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data
+ to be received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The IP Address or DNS Hostname.
+ The port number.
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class.
+
+
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ The address and port number are the parameters which were passed into the constructor.
+
+ TCP_STATUS:[address]:[port number]
+
+
+
+ Returns the IP address and the status port as the description.
+
+
+
+
+
+ An interface used to control and obtain various properties of a device.
+
+
+
+
+ This is an utility class for performing file operations on a device.
+
+
+
+
+
+ Sends the contents of a file to the device.
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.lbl").
+ Note: If the file contains data which will trigger a response from the printer (e.g. JSON formatted settings), this method
+ will not clear the response from the buffer. This may cause subsequent method calls to fail unpredictably. Clear the read buffer
+ of the connection manually by calling Read() if this is applicable.
+ If there is an issue communicating with the device (e.g. the connection is not
+ open).
+
+
+
+ Sends the contents of a file to the device.
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.lbl").
+ Callback to update on progress
+ Note: If the file contains data which will trigger a response from the printer (e.g. JSON formatted settings), this method
+ will not clear the response from the buffer. This may cause subsequent method calls to fail unpredictably. Clear the read buffer
+ of the connection manually by calling Read() if this is applicable.
+ If there is an issue communicating with the device (e.g. the connection is not
+ open).
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+ List of file names.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+ This method only returns files which have one of the extensions in extensions.
+ The extensions to filter on.
+ List of file names.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Retrieves the properties of the objects which are stored on the device.
+
+ The list of objects with their properties.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Utility class for performing file operations on a Zebra Link-OS™ printer.
+
+
+
+
+ Retrieves storage information for all of the printer's available drives.
+
+ A list of objects detailing information about the printer's available drives.
+
+
+
+
+ Stores the file on the printer using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead. These commands include download commands and any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ If there is an error connecting to the device.
+ If there is an issue reading the file
+ If filePath cannot be used to create a printer file name.
+
+
+
+ Stores the file on the printer at the specified location and name using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead. These commands include download commands and any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+ If there is an issue reading the file
+ If fileNameOnPrinter is not a legal printer file name.
+
+
+
+ Stores a file on the printer named fileNameOnPrinter with the file contents from
+ fileContents using any required file wrappers.
+
+
+ If the fileContents contains any commands which need to be processed by the printer,
+ use instead. These commands include download commands and any immediate
+ commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF, ~JG, ~JI,
+ ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The contents of the file to store.
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+ If fileNameOnPrinter is not a legal printer file name.
+
+
+
+ Deletes the file from the printer. The filePath may also contain wildcards.
+
+ The location of the file on the printer. Wildcards are also accepted (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error connecting to the device.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ The file contents
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system and writes the contents of that file to destinationStream.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ Output stream to receive the file contents
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system via FTP and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+ NOTE: This method retrieves files over a network protocol and hence will only work over a TCP connected
+ printer with FTP enabled. If ftpPassword is not provided, a default will be tried.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ The password used to login to FTP, if null, a default password ("1234") will be used.
+ The file contents.
+ If there is an error communicating with the printer, or the ftpPassword is invalid
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system via FTP and writes the contents of that file to destinationStream.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+ NOTE: This method retrieves files over a network protocol and hence will only work over a TCP connected
+ printer with FTP enabled. If ftpPassword is not provided, a default will be tried.
+
+ The output stream to receive the file contents
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ The password used to login to FTP, if null, a default password ("1234") will be used.
+ If there is an error communicating with the printer, or the ftpPassword is invalid
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte array including
+ all necessary file wrappers for redownloading to a Zebra printer.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ A Zebra printer downloadable file content.
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ A class used to assemble a profile efficiently.
+
+
+
+
+ Prepares the destination stream to receive the profile data.
+
+
+ This method must be called prior to calling any other method in this class.
+
+ The stream in which to put the profile.
+ must be called to get a valid profile in the destinationStream.
+
+
+
+
+ Method to add settings data to a profile.
+
+
+ The profile expects settings data to be valid JSON and of the form of the allconfig response.
+
+ The stream containing the settings data.
+ If there is an error adding settings to the profile.
+
+
+
+ Method to add alerts to a profile.
+
+ The stream containing the alerts data.
+ If there is an error adding alerts to the profile.
+
+
+
+ Adds data to supplement an existing printer profile.
+
+
+ Any supplemental data added to a profile, upon loading the profile, will be sent to the
+ printer after all other profile components have been applied.
+
+ The stream containing the supplement data.
+ If there is an error adding the supplement to the profile.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ The desired display name of the firmware file.
+ The stream containing the firmware.
+ If there is an error adding firmware to the profile.
+
+
+
+ Adds user files to the profile.
+
+ Files to add to the profile. Each file entry should contain the desired file name
+ and the a stream of the file's content.
+ If there is an error adding files to the profile.
+
+
+
+
+
+
+
+
+
+
+ Flushes remaining profile data to prepare the destination stream for closing.
+
+
+ This method must be called when you are done assembling all the parts of your profile,
+ and should only be invoked once.
+
+
+
+
+ Handler to retrieve the parts of the profile.
+
+
+
+
+
+ Callback fired when settings are retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the settings
+
+
+
+ Callback fired when alerts are retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the alerts
+
+
+
+ Callback fired when firmware is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the firmware
+
+
+
+ Callback fired when the firmware display name is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the firmware display name
+
+
+
+ Callback fired when the supplement is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the supplement
+
+
+
+ Callback fired when a file is retrieved from a profile.
+
+ This will be called once for each user file in the profile.
+ The file name
+ The profile stream.
+ If there is an error retrieving the file
+
+
+
+ A class used to disassemble a profile efficiently.
+
+
+
+
+ Disassembles the profile and notifies the handler for all the profile parts.
+
+ The profile source stream.
+ Callback to retrieve the parts of the profile.
+ If there is an error disassembling the profile.
+
+
+
+ Provides access to the magnetic card reader, for devices equipped with one.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Activates the device's magnetic card reader, if present, and waits for a card to be swiped.
+
+
+ If the device does not have a reader the call will timeout.
+
+ The amount of time in milliseconds to enable the reader and wait for a card to be swiped.
+ An array of three strings corresponding to the tracks of the card. If a track could not be read that
+ string will be empty.
+
+
+
+ A class used to determine if a base has MagCard reader capabilities.
+ Not all Zebra printers are available with built-in readers.
+
+
+
+
+ Creates an instance of a Magcard reader, if available.
+
+ Base Zebra Printer that may or may not have MagCard reader capabilities.
+ An instance of a MagCardReader object or null if the base printer does not have MagCard reader hardware installed.
+
+
+
+ Interface to access the contents of a .zprofile file.
+
+
+
+
+
+ Create a Profile object backed by an existing .zprofile file.
+
+ Path to the profile file.
+ If the file pathToProfile does not exist.
+
+
+
+ Adds data to supplement an existing printer profile.
+
+
+ Any supplemental data added to a profile, upon loading the profile, will be sent to the printer
+ after all other profile components have been applied.
+
+ Byte array containing the data to be used to supplement the printer profile.
+ If there is an error writing to the .zprofile file.
+
+
+
+ Returns the supplement data within the profile.
+
+ The supplement data within the profile.
+ If there is an error writing to the .zprofile file.
+ If the .zprofile file cannot be found.
+
+
+
+ This method is not valid for a profile.
+
+
+ If this method is called.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ Full path to the firmware file to be added to the profile.
+ If there is an error reading pathToFirmwareFile or if there
+ is an error writing to the.zprofile file.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ The name of the firmware file
+ The firmware file contents
+ If there is an error reading pathToFirmwareFile or if there
+ is an error writing to the.zprofile file.
+
+
+
+ Removes the firmware file from the profile.
+
+ If there is an error removing the firmware file from the .zprofile file.
+
+
+
+ Returns the file name of the firmware file within the profile.
+
+ The file name of the firmware file within the profile.
+ If there is an error removing the firmware file from the .zprofile file.
+ If the firmware file cannot be found in the .zprofile file.
+
+
+
+
+
+
+ Retrieve all of the setting identifiers for a profile.
+
+
+ These are the IDs that may be used as keys for retrieving and updating settings for a profile.
+
+ Set of identifiers available for a profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+
+ Retrieves the profile's setting value for a setting id.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieves the profile's setting values for a list of setting ids.
+
+ List of setting ids.
+ The settings' values.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieves all of the profile's setting values.
+
+ Values of all the settings provided by the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Change the value of the setting in the profile to the given value.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the setting is read only, does not exist, or if the setting could not be set.
+
+
+
+ Set more than one setting.
+
+ Map a setting ID to the new value for the setting.
+ If there is an error communicating with the printer.
+ If the settings cannot be saved in the profile.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Retrieve the values of all the settings that are archivable.
+
+ Values of all the settings with the archivable attribute that are in the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Retrieve the values of all the settings that are clonable.
+
+ Values of all the settings with the clonable attribute that are in the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Retrieves the profile's for a setting id.
+
+ The setting id.
+ The
+ If there is an error communicating with the printer.
+ If the setting could not be retrieved.
+
+
+
+ Change the setting in the profile.
+
+ The setting id.
+ The setting.
+ If there is an error communicating with the printer.
+ If the setting is malformed, or if the setting could not be set.
+
+
+
+ Change settings in the profile.
+
+ The settings to change
+ If there is an error communicating with the printer.
+ If a setting is malformed, or one or more settings could not be set.
+
+
+
+ Change or retrieve settings in the profile.
+
+ The settings to change.
+ results of the setting commands
+ If there is an error communicating with the printer.
+ If the setting is malformed, or if the setting could not be set.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A list of objects detailing the alert configurations in a profile.
+
+ A list of alert objects currently in a profile.
+ If the alerts could not be extracted from the profile.
+
+
+
+
+
+
+
+
+
+ Removes a configured alert from a profile.
+
+ They may be reconfigured via the setAlert methods.
+ The alert to be removed from the configuration.
+ If an I/O error occurs.
+
+
+
+ Removes all alerts currently in a profile.
+
+ They may be reconfigured via the setAlert(s) methods.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ This method is not valid for a profile.
+
+ Path to the file containing the data to send.
+ If this method is called.
+
+
+
+ This method is not valid for a profile.
+
+ Path to the file containing the data to send.
+ Progress monitor callback handler.
+ If this method is called.
+
+
+
+ Adds a file to the profile named fileNameOnPrinter with the file contents from
+ fileContents.
+
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ The contents of the file to send.
+ If an I/O error occurs.
+
+
+
+ Retrieves the names of the files which are in the profile.
+
+ List of file names.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+
+ This method only returns files which have one of the extensions in extensions.
+
+ The extensions to filter on.
+ List of file names.
+
+
+
+ Stores the file in the profile using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ If there is an error connecting to the device.
+ If filePath cannot be used to create a printer file name.
+
+
+
+ Stores the file in the profile at the specified location and name using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+
+
+
+ Stores a file in the profile named fileNameOnPrinter with the file contents from
+ fileContents using any required file wrappers.
+
+
+ If the fileContents contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The contents of the file to store.
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+
+
+
+ Deletes the file from the profile. The filePath may also contain wildcards.
+
+ The location of the file on the printer. Wildcards are also
+ accepted (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error accessing the profile.
+
+
+
+ Retrieves a file from the profile and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, BAE, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ The file contents
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+
+
+
+ This method is not valid for a profile.
+
+ NA
+ NA
+ NA
+ If this method is called.
+
+
+
+ This method is not valid for a profile.
+
+ NA
+ NA
+ NA
+ If this method is called.
+
+
+
+ Retrieves a file from the profile and returns the contents of that file as a byte array including all necessary
+ file wrappers for re-downloading to a Zebra printer.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, BAE, TXT
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ A Zebra printer downloadable file content.
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+
+
+
+ Class which allows you to store a zprofile to a mirror server.
+
+
+
+
+ Creates an instance of a class which can be used to store a profile onto a mirror server.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile).
+ If an I/O error occurs.
+
+
+
+ Stores the profile to the mirror server.
+
+
+ This method also deletes all files in appl/, commands/, and files/ directory before storing
+ the contents of the profile in the proper directories.
+
+ The FTP server path.
+ The FTP user name. (The user should have read/write/create/delete access.)
+ The FTP password.
+ A list of the errors that happened while uploading settings and files.
+ If an I/O error occurs.
+ If the profile is not found.
+ If an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler to monitor long-running file operations.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Callback to notify the user as to the progress of the how many bytes have been sent.
+
+
+ Bytes currently written
+ Total bytes to send
+
+
+
+ Provides access to the smartcard reader, for printers equipped with one.
+
+ Not all Zebra printers are available with built-in readers.
+
+
+
+ Sends a CT_ATR command to the printer's smartcard reader, if present.
+
+ A byte array containing the response from the smartcard reader.
+ If an I/O error occurs.
+
+
+
+ Sends a CT_DATA command to the printer's smartcard reader, if present.
+
+ Data to be sent to the smartcard using the CT_DATA card command.
+ A byte array containing the response from the smartcard reader.
+ If an I/O error occurs.
+
+
+
+ Turns the printer's smartcard reader off, if present.
+
+ This call should be made after communicating with the smartcard via the method.
+
+
+
+ A class used to determine if a base ZebraPrinter has Smartcard reader capabilities.
+
+ Not all Zebra printers are available with built-in readers.
+
+
+
+ Creates an instance of a Smartcard reader, if available.
+
+ Base ZebraPrinter that may or may not have Smartcard reader capabilities.
+ An instance of a SmartcardReader object or null if the base printer does not have Smartcard reader
+ hardware installed.
+
+
+
+ Signals that an illegal argument was used.
+
+
+
+
+ Constructs a ZebraIllegalArgumentException with message as the detailed error message
+
+ the error message
+
+
+
+ Constructs a ZebraIllegalArgumentException with message as the detailed error message
+
+ the error message
+ The name of the parameter that caused the exception.
+
+
+
+ Constructs a ZebraIllegalArgumentException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception.
+
+
+
+ Constructs a ZebraIllegalArgumentException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The name of the parameter that caused the exception.
+ The cause of the exception.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Contains methods used to query attributes of an image formatted for a Zebra printer.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ A row of image data.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+ True if the image was scaled.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ Contains methods used to query attributes of an image formatted for a Zebra printer.
+
+ see ZebraImageFactory" for how to create an image.
+
+
+
+ Gets the image's height in pixels.
+
+
+
+
+ Gets the image's width in pixels.
+
+
+
+
+ This is an utility class for getting/setting alerts on a printer.
+
+
+
+
+
+ A list of objects detailing the alert configuration of a printer.
+
+ A list of alert objects currently configured on the printer.
+
+
+
+
+
+ Configures an alert to be triggered when the alert's condition occurs or becomes resolved.
+
+ The alert to trigger when it's condition occurs or becomes resolved.
+
+
+
+
+ Configures a list of alerts to be triggered when their conditions occur or become resolved.
+
+ The list of alerts to trigger when their conditions occur or become resolved.
+
+
+
+
+ Removes a configured alert from a printer. They may be reconfigured via the configureAlert(s) methods.
+
+ Alert to be removed from the configuration
+
+
+
+
+ Removes all alerts currently configured on a printer. They may be reconfigured via the configureAlert(s) methods.
+
+
+
+
+
+ A class used to print template formats using comma separated values as input data.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The connection string.
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The connection string.
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Container holding information about a discovered printer.
+
+
+
+
+ Creates a connection based on the information in the DiscoveredPrinter response.
+
+ a Connection to the discovered printer
+
+
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+
+
+
+
+
+ Creates an object holding information about a discovered printer.
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+
+ For TCP, this returns the IP Address. For driver, this returns the local printer name.
+
+
+
+
+ Returna a Dictionary of all settings obtained via the chosen discovery method.
+
+
+ The names of the settings will vary depending upon the type of connection to the printer. The following example
+ shows how to list all the properties of the discovered printer with the respective value.
+
+
+ foreach (string settingsKey in printer.DiscoveryDataMap.Keys) {
+ System.Diagnostics.Debug.WriteLine("Key: " + settingsKey + " Value: " + printer.DiscoveryDataMap[settingsKey]);
+ }
+
+ containing available attributes of the discovered printer.
+
+
+
+ Returns true if two discovered printer objects have the same address, otherwise it returns false.
+
+ DiscoveredPrinter object to compare against.
+ true if equal
+
+
+
+
+ Returns a hash code for this DiscoveredPrinter.
+
+ The hash code
+
+
+
+
+ DiscoveredPrinterFilter is an interface to allow the user to write custom code to determine
+ whether or not a DiscoveredPrinter should be included in the discovery result.
+
+
+
+
+ Method called by a discovery operation to determine whether or not the should be added to
+ the list of discovered devices.
+
+ DiscoveredPrinter to potentially be added to the list of of discovered devices.
+ A bool indicating whether or not the device should be added.
+
+
+
+ Instance of that is returned when performing a network discovery.
+
+
+
+
+ Returns an instance of a DiscoveredPrinterNetwork with address and port.
+
+ The address of the discovered network printer
+ The active raw port of the discovered network printer
+
+
+
+ Returns an instance of a DiscoveredPrinterNetwork built using the provided attributes.
+
+ A map of attributes associated with the discovered network printer
+
+
+
+
+
+
+
+
+
+ Returns a hash code for this DiscoveredPrinter.
+
+
+
+
+
+ Signals that there was an error during discovery.
+
+
+
+
+ Constructs a DiscoveryException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Interface definition for a callback to be invoked for printer discovery events
+
+
+
+
+
+ This method is invoked when a printer has been discovered. This method will be invoked for each printer that is found.
+
+ a discovered printer.
+
+
+
+ This method is invoked when discovery is finished.
+
+
+
+
+ This method is invoked when there is an error during discovery. The discovery will be cancelled when this method
+ is invoked. will not be called if this method is invoked.
+
+ the error message.
+
+
+
+ Class definition for a callback to be invoked for Link-OS™ printer discovery events.
+
+
+
+
+
+
+ Creates a DiscoveryHandler which will only report back Link-OS™ printers.
+
+ Base discovery handler for callbacks.
+
+
+
+ This method is invoked when there is an error during discovery. The discovery will be cancelled when this method
+ is invoked. will not be called if this method is invoked.
+
+ The error message.
+
+
+
+ This method is invoked when discovery is finished.
+
+
+
+
+ This method is invoked when a Link-OS™ printer has been discovered. This method will be invoked for each printer
+ that is found.
+
+ A discovered Link-OS™ printer.
+
+
+
+ Signals that there was an error during discovery packet decoding
+
+
+
+
+ Constructs a DiscoveryPacketDecodeException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Defines functions used when discovering information about a printer.
+
+
+
+
+
+ Decodes the provided MIME encoded discovery packet and returns a discovery data map
+
+ A Base64 encoded discovery packet
+ A discovery data map representative of the provided packet
+ If provided a malformed discovery packet
+
+
+
+ Reads the discovery packet from the provided connection and returns a discovery data map
+
+ A to a printer
+ A discovery data map representative of the provided packet
+ If an I/O error occurs.
+ If provided a malformed discovery packet
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class used to decode a Zebra discovery packet
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ Class used to decode a Zebra discovery packet
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ A class used to discover printers on an IP Network.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Sends a discovery packet to the IPs specified in the subnetRange.
+
+
+ Subnet searches are defined by the first three subnet octets, followed by a range, such as 192.168.2. This method accepts IP addresses of the form,
+ assuming a subnet of 192.168.2:
+
+ - 192.168.2.254 (will send a discovery packet to 192.168.2.254)
+ - 192.168.2.* (will send a discovery packet for the range 192.168.2.1 - 192.168.2.254)
+ - 192.168.2.8-* (will send a discovery packet for the range 192.168.2.8 - 192.168.2.254)
+ - 192.168.2.37-42 (will send a discovery packet for the range 192.168.2.37 - 192.168.2.42)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The subnet search range.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery packet to the IPs specified in the subnetRange.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ Subnet searches are defined by the first three subnet octets, followed by a range, such as 192.168.2. This method accepts IP
+ addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.254 (will send a discovery packet to 192.168.2.254)
+ - 192.168.2.* (will send a discovery packet for the range 192.168.2.1 - 192.168.2.254)
+ - 192.168.2.8-* (will send a discovery packet for the range 192.168.2.8 - 192.168.2.254)
+ - 192.168.2.37-42 (will send a discovery packet for the range 192.168.2.37 - 192.168.2.42)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The subnet search range.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a directed broadcast discovery packet to the subnet specified by ipAddress.
+
+
+ Directed broadcasts are defined by the first three subnet octets, followed by 255, such as 192.168.2.255. This method
+ accepts IP addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.255
+ - 192.168.2.1 (last octet will be replaced with 255)
+ - 192.168.2 (will append 255 for the last octet)
+ - 192.168.2. (will append 255 for the last octet)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The IP address of the subnet.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a directed broadcast discovery packet to the subnet specified by ipAddress.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ Directed broadcasts are defined by the first three subnet octets, followed by 255, such as 192.168.2.255. This method accepts
+ IP addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.255
+ - 192.168.2.1 (last octet will be replaced with 255)
+ - 192.168.2 (will append 255 for the last octet)
+ - 192.168.2. (will append 255 for the last octet)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The IP address of the subnet.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a local broadcast packet.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a local broadcast packet.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a multicast discovery packet.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+ For Android users : some extra code is required to obtain a multicast lock. See the example in
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The number of hops.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a multicast discovery packet.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+ For Android users : some extra code is required to obtain a multicast lock. See the example in
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The number of hops.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ This method will search the network using a combination of discovery methods to find printers on the network.
+
+
+ This is a convenience method that can be used as an alternative to the other discovery methods (e.g. multicast).
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery request to the list of printer DNS names or IPs in printersToFind.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A list of IP addresses or DNS names for the printers to be discovered.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery request to the list of printer DNS names or IPs in printersToFind.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A list of IP addresses or DNS names for the printers to be discovered.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Drive types.
+
+
+
+
+ Onboard flash drive.
+
+
+
+
+ RAM Drive.
+
+
+
+
+ Removable mass storage drive.
+
+
+
+
+ Unknown drive.
+
+
+
+
+ Read only drive.
+
+
+
+
+ This class is used to describe format variable fields.
+
+
+ For example, in CPCL, the following format will contain 2 .
+
+ ! DF SHELF.FMT
+ ! 0 200 200 210 1
+ CENTER
+ TEXT 4 3 0 15 \\
+ TEXT 4 0 0 95 \\
+ FORM
+ PRINT
+
+
+ The first will contain a fieldNumber of 1, and a fieldName of
+ null. The second will contain a fieldNumber of 2, and a fieldName of null.
+
+ In ZPL, the following ^FN command will contain 2 .
+
+
+ ^XA
+ ^DFR:SHELF.ZPL^FS
+ ^FO25,25^A0N,50,50^FN15"Name"^FS
+ ^FO25,75^A0N,50,50^FN15"Address"^FS
+ ^FO25,125^A0N,50,50^FN18^FS
+ ^FO25,175^A0N,50,50^FN15
+ ^XZ
+
+
+ The first will contain a fieldNumber of 15, and a fieldName of
+ "Address". The second will contain a fieldNumber of 18, and a fieldName of null.
+ Note: If a label format contains multiple Field Numbers, only 1 will be returned since the data will be shared
+ by all variables with the number. The portion of the variable will be the
+ last one in the format, unless it is not present.For example, in the format above, there are 3 ^FN15's. The
+ first 2 have a "prompt" parameter, the third does not. The second one, "Address", overwrites the first one, "Name".
+ The third one is not present, so the previous one, "Address", is preserved.
+
+
+
+
+ Create a descriptor for a field
+
+ The number of the field.
+ The name of the field, or null if not present.
+
+
+
+ In CPCL, this number will be the number of the variable field in the format. The fields are numbered starting at 1.
+ In ZPL, this number will correspond to the ^FN number.
+
+
+
+
+ In CPCL, this field is always null.
+ In ZPL, this field will correspond to the optional name parameter of the ^FN command, or null if the parameter is not present
+
+
+
+
+
+
+
+ Options for deleting files when loading profiles to a Zebra printer.
+
+
+
+
+ Attempts to delete all files from the printer. (Persistent files, hidden files, and System files will not be deleted.)
+
+
+
+
+ Will attempt to delete only the file types which are copied at profile/backup creation time.
+
+
+
+
+ Will not attempt to delete any files.
+
+
+
+
+ Handler class is used to update status while performing a firmware download and to notify the caller when the printer
+ has reconnected after restarting.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Called when the firmware download completes.
+
+
+
+
+ Called when the printer is back online and has been rediscovered.
+
+ The printer object which came back online.
+ The new firmware version on the printer.
+
+
+
+ Callback to notify the user of the firmware updating progress.
+
+ The total number of bytes written to the printer.
+ The total number of bytes to be written to the printer.
+
+
+
+ Handler class is used to update status while performing a firmware download.
+
+
+
+
+ Callback to notify the user of the firmware updating progress.
+
+ This is called for every 4K bytes written out.
+ Total number of bytes written to the printer.
+ Total number of bytes to be written to the printer.
+
+
+
+ Called when the firmware download completes. The printer will then begin flashing the firmware to memory followed
+ by a reboot.
+
+
+
+
+ This is the interface for updating firmware on a Link-OS™ printer.
+
+
+
+
+ Update firmware on the printer using the default timeout of 10 minutes.
+
+
+ If the firmware currently on the printer has the same version number as the
+ firmware file, the firmware will not be sent to the printer.
+
+
+ File path of firmware file.
+ Callback for firmware updating status
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer using the specified timeout.
+
+
+ If the firmware currently on the printer has the same version number as the firmware file, the firmware will not be sent to the printer.
+
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum will be
+ used instead.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer, using the default timeout of 10 minutes, regardless of the firmware version
+ currently on the printer.
+
+ File path of firmware file.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer, using the specified timeout, regardless of the firmware version
+ currently on the printer.
+
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum will be
+ used instead.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ A class used to convert TrueType® fonts for use on ZPL printers.
+
+
+
+
+ Returns a Stream which provides the TTF header information as determined from the source stream.
+
+ Stream containing TrueType® font data
+ Location of the font file on the printer.
+ Header information for the provided stream
+
+
+
+ Returns a Stream which provides the TTE header information as determined from the source stream.
+
+ Stream containing TrueType® font data
+ Location of the font file on the printer.
+ Header information for the provided stream
+
+
+
+ Converts a native TrueType® font to a ZPL TTF format.
+
+ Path to a TrueType® font.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+ If the source file is not found
+
+
+
+ Converts a native TrueType® font to a ZPL TTF format.
+
+ Stream containing the TrueType® font data.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+
+
+
+ Converts a native TrueType® font to a ZPL TTE format.
+
+ Path to a TrueType® font.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+ If the source file is not found
+
+
+
+ Converts a native TrueType® font to a ZPL TTE format.
+
+ Stream containing the TrueType® font data.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+
+
+
+ Defines functions used for downloading fonts to Zebra printers.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Defines functions used for interacting with printer formats.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Retrieves a format from the printer.
+
+
+ On a LinkOS/ZPL printer, only .ZPL files are supported. On a CPCL printer, only .FMT and .LBL files are supported.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ The contents of the format file.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+
+
+
+ Retrieves a format from the printer.
+
+
+ On a LinkOS/ZPL printer, only .ZPL files are supported. On a CPCL printer, only .FMT and .LBL files are supported.
+
+ The format.
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the array.
+
+
+ The values of any format variables will be encoded using the default encoding type. On a LinkOS/ZPL printer, only ZPL formats
+ are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The name of the format on the printer, including the extension (e.g. "E:FORMAT.ZPL").
+ An array of strings representing the data to fill into the format. For LinkOS/ZPL printer formats,
+ index 0 of the array corresponds to field number 2 (^FN2). For CPCL printer formats, the variables are passed in
+ the order that they are found in the format.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the array.
+
+
+ The values of any format variables will be encoded using the provided encoding type.eg.UTF-8. On a LinkOS/ZPL printer, only
+ ZPL formats are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ An array of strings representing the data to fill into the format. For LinkOS/ZPL printer formats,
+ index 0 of the array corresponds to field number 2 (^FN2). For CPCL printer formats, the variables are passed in
+ the order that they are found in the format.
+ A character-encoding name (eg. UTF-8).
+ If an I/O error occurs.
+ If the encoding is not supported.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the default encoding type. On a LinkOS/ZPL printer, only ZPL formats
+ are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For LinkOS/ZPL printer formats, the
+ key number should correspond directly to the number of the field in the format.For CPCL printer formats, the
+ values will be passed in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the provided encoding type.eg.UTF-8. On a LinkOS/ZPL printer, only
+ ZPL formats are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For LinkOS/ZPL printer formats, the
+ key number should correspond directly to the number of the field in the format.For CPCL printer formats, the
+ values will be passed in ascending numerical order.
+ A character-encoding name (e.g. UTF-8).
+ If an I/O error occurs.
+ If the encoding is not supported.
+
+
+
+ Returns a list of descriptors of the variable fields in this format.
+
+
+ On a LinkOS/ZPL printer, only ZPL formats are supported. On a CPCL printer, only CPCL formats are supported.
+
+ The contents of the recalled format.
+ A list of field data descriptors. For a CPCL printer, the nth element of the list will contain the
+ integer n and no name. For a LinkOS/ZPL printer, each element will contain an ^FN number and a variable name if
+ present. If the format contains multiple ^FNs with the same number, only the last one will be in the result.
+ See for an example of how variable fields look.
+
+
+
+
+ Defines functions used for interacting with Link-OS™ printer formats.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the default encoding type.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the provided encoding type. eg.UTF-8.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ A character-encoding name (e.g. UTF-8)
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionaries.
+
+
+ The images stored in imgVars will first be dithered and then sent down the the printer as SDK01.GRF-SDK99.GRF. These GRF
+ files will then be used when printing the format and overwritten each time the method is called with new images. The values of any
+ format variables will be encoded using the default encoding type.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the images to be used in the stored format. For ZPL
+ formats, the key number should correspond directly to the number of the field in the format. For CPCL formats,
+ the values will be passed in ascending numerical order.
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionaries.
+
+
+ The images stored in imgVars will first be dithered and then sent down the the printer as SDK01.GRF-SDK99.GRF.
+ These GRF files will then be used when printing the format and overwritten each time the method is called with new
+ images. The values of any format variables will be encoded using the provided encoding type. eg. UTF-8.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the images to be used in the stored format. For ZPL
+ formats, the key number should correspond directly to the number of the field in the format. For CPCL formats,
+ the values will be passed in ascending numerical order.
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ A character-encoding name (e.g. UTF-8)
+ If an I/O error occurs.
+
+
+
+ This is an utility class for printing images on a device.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Prints an image from the connecting device file system to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ Image file to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ If an I/O error occurs.
+ When the file could not be found, opened, or is an unsupported graphic.
+
+
+
+ Prints an image from the connecting device file system to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ Image file to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ Desired width of the printed image. Passing a value less than 1 will preserve original width.
+ Desired height of the printed image. Passing a value less than 1 will preserve original height.
+ Boolean value indicating whether this image should be printed by itself (false), or is part
+ of a format being written to the connection (true).
+ If an I/O error occurs.
+ When the file could not be found, opened, or is an unsupported graphic.
+
+
+
+ Prints an image to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ The image to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ Desired width of the printed image. Passing a value less than 1 will preserve original width.
+ Desired height of the printed image. Passing a value less than 1 will preserve original height.
+ Boolean value indicating whether this image should be printed by itself (false), or is part
+ of a format being written to the connection (true).
+ If an I/O error occurs.
+
+
+
+ Stores the specified image to the connected printer as a monochrome image.
+
+
+ The image will be stored on the printer at printerDriveAndFileName with the extension GRF.
+ If a drive letter is not supplied, E will be used as the default (e.g. FILE becomes E:FILE.GRF). If an extension is supplied,
+ it is ignored if it is not either BMP or PNG. If the extension is ignored, GRF will be used.
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or throw an .
+
+ Path on the printer where the image will be stored.
+ The image to be stored on the printer.
+ Desired width of the printed image, in dots. Passing -1 will preserve original width.
+ Desired height of the printed image, in dots. Passing -1 will preserve original height.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+ If printerDriveAndFileName has an incorrect format.
+
+
+
+ Stores the specified image to the connected printer as a monochrome image.
+
+
+ The image will be stored on the printer at printerDriveAndFileName with the extension GRF.
+ If a drive letter is not supplied, E will be used as the default (e.g. FILE becomes E:FILE.GRF). If an extension is supplied,
+ it is ignored if it is not either BMP or PNG. If the extension is ignored, GRF will be used.
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or throw an .
+
+ Path on the printer where the image will be stored.
+ The image file to be stored on the printer.
+ Desired width of the printed image, in dots. Passing -1 will preserve original width.
+ Desired height of the printed image, in dots. Passing -1 will preserve original height.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+ If printerDriveAndFileName has an incorrect format.
+ If the file could not be found, opened, or is an unsupported graphic.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Look through the result of a directory listing and extract the file name, drive letter, and extension for each
+ file in the listing.
+
+ The result of ^HZL, JSON file.drive_listing, or file.dir SGD.
+ A list (element type PrinterFileProperties) of file information.
+ If there is an error parsing the directory data returned by the printer.
+
+
+
+ Look through the result of a ^HZL and extract the file name, drive letter, and extension for each file in the listing.
+
+ The result of ^HZL.
+ A list (element type PrinterFileProperties) of file information.
+ If there is an error parsing the directory data returned by the printer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Utility methods for firmware files.
+
+
+
+
+ Given the contents of a firmware file, extract the firmware version string.
+
+
+ If the contents are not valid or if the version cannot be extracted, an empty string is returned.
+
+ Input stream containing the contents of a firmware file.
+ The version string, or an empty string.
+
+
+
+
+ Extract the firmware version from a firmware file input stream and return false if that version matches the
+ firmware on the connected printer.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Input stream containing the contents of a firmware file.
+ A connection to a printer
+ True if the firmware versions don't match
+ If there was an issue communicating with the printer.
+
+
+
+ Extract the firmware version from a firmware file input stream, and return false if that version matches the versionFromPrinter.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Input stream containing the contents of a firmware file.
+ Version of firmware that is already on the printer.
+ True if the firmware versions don't match
+
+
+
+ Extract the firmware version from a firmware file input stream, and return false if that version matches the versionFromPrinter.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Version of firmware that has already been extracted from the file.
+ A connection to a printer
+ True if the firmware versions don't match
+
+
+
+ Get the firmware version from the connected printer.
+
+ A connection to a printer.
+ The firmware version of the printer.
+ If there was an issue communicating with the printer."
+
+
+
+ Compare two firmware version strings.
+
+
+ If the only difference is that ZBI is enabled for one version but not the other, they are still considered to match.Matching is case insensitive.
+
+ One version string.
+ The other version string.
+ True if the versions match.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Search formatString, starting at index searchIx, for a ^FN, ^CC or ~CC command. Search is case insensitive. caret is the command prefix.
+
+
+
+
+
+ {-1,unknownCommand} if none of the commands is found, otherwise the index where a command
+ was found, and the type of command that was found.
+
+
+
+ Search formatString, starting at index searchIx, for one of the commands in commandStrings. Search is case
+ insensitive. caret is the command prefix.
+
+
+
+
+ {-1,unknownCommand} if none of the commands is found, otherwise the index where a command
+ was found, and the type of command that was found.
+
+
+
+ Represent a ZPL command type.
+
+
+
+
+ ^FN command
+
+
+
+
+ ^CC and ~CC commands
+
+
+
+
+ ^XG command
+
+
+
+
+ ^DF command
+
+
+
+
+ ^XA command
+
+
+
+
+ ^XZ command
+
+
+
+
+ everything else
+
+
+
+
+ the id, as a lower case string
+
+
+
+
+
+
+
+
+
+
+ Represent the index in a string where a ZPL command was found, and the type of the command at that spot.
+
+
+
+
+
+
+
+
+
+
+ Gets the index
+
+
+
+
+ Gets the command
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A container class used to hold Link-OS specific information
+
+
+
+
+ Creates a container class to hold Link-OS information.
+
+ the Link-OS major version number
+ the Link-OS minor version number
+
+
+
+ Creates a container class to hold Link-OS information.
+
+ e.g. ("2.1", "3.0")
+
+
+
+ Creates a container class to hold Link-OS information based on the supplied discoveredPrinter.
+
+ A discovered printer.
+
+
+
+ Gets the Link-OS major version number
+
+
+
+
+ Gets the Link-OS minor version number
+
+
+
+
+ Signals that a Link-OS™ operation has been attempted on a non-Link-OS™ printer.
+
+
+
+
+ Constructs a NotALinkOsPrinterException with "This is not a Link-OS™ printer" as
+ the detailed error message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a printer alert.
+
+ Applicable only to ZPL printers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates an instance of a PrinterAlert object.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+
+
+
+ Creates an instance of a PrinterAlert object, including a Set-Get-Do name.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If condition is SGD_SET, the name of the Set-Get-Do to be monitored.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+
+
+
+ Creates an instance of a PrinterAlert object, including the printer alert text.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+ The text received from the printer.
+
+
+
+ Creates an instance of a PrinterAlert object, including a Set-Get-Do name and the printer alert text.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If condition is SGD_SET, the name of the Set-Get-Do to be monitored.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+ The text received from the printer.
+
+
+
+ Return the string representation of the alert destination for Set-Get-Do.
+
+
+
+
+ Return the AlertCondition of the alert.
+
+
+
+
+ Gets the current alert condition.
+
+
+
+
+ Return true if the alert is fired when 'set'.
+
+
+
+
+ Return alert will be triggered on 'clear'.
+
+
+
+
+ Return the string representation of the Set-Get-Do Name.
+
+
+
+
+ Return the AlertDestination used by the alert.
+
+
+
+
+ Return the destination where the alert should be sent, for example, an IP Address or an email address, depending
+ on the value of getDestinationAsSGDString.
+
+
+
+
+ Return the destination port number where the alert should be sent.
+
+
+
+
+ Return the quelling state of the alert.
+
+
+
+
+ Return the text received from the printer.
+
+
+
+
+ Enumeration of the various printer control languages supported by Zebra Printers.
+
+
+
+
+ Printer control language ZPL
+
+
+
+
+ Printer control language CPCL
+
+
+
+
+ Printer control language line_print mode.
+
+
+
+
+ Converts the string name to the appropriate enum value.
+
+
+ The name parameter accepts the value returned from the printer's 'device.langauges' SGD.
+
+ The printer control language name (e.g. "zpl", "cpcl", or "line_print")
+ The printer language
+ If the printer language cannot be determined.
+
+
+
+ The name of the printer language - (e.g. "ZPL" or "CPCL").
+
+ ZPL, CPCL, or LINE_PRINT
+
+
+
+ Container for properties of a printer object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets/sets the drive prefix with the trailing colon.
+
+
+
+
+ Gets/sets the file name.
+
+
+
+
+ Gets/sets the file extension.
+
+
+
+
+ Gets the full name of the file on the printer.
+
+
+
+
+ Gets/sets the size of the file in bytes
+
+
+
+
+ Gets/sets the 32-bit CRC value of the file.
+
+
+
+
+ Interface definition for a callback to be invoked when a printer comes back online and has been rediscovered.
+
+
+
+
+
+ Called when the printer is back online and has been rediscovered.
+
+ The printer object which came back online.
+ The new firmware version on the printer.
+
+
+
+ A class used to obtain the status of a Zebra printer.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ The print mode. For CPCL printers this is always
+
+
+
+
+ The length of the label in dots. For CPCL printers this is always 0.
+
+
+
+
+ The number of formats currently in the receive buffer of the printer. For CPCL printers this is always 0.
+
+
+
+
+ The number of labels remaining in the batch. For CPCL printers this is always 0.
+
+
+
+
+ true if there is a partial format in progress. For CPCL printers this is always false.
+
+
+
+
+ true if the head is cold. For CPCL printers this is always false
+
+
+
+
+ true if the head is open.
+
+
+
+
+ true if the head is too hot. For CPCL printers this is always false
+
+
+
+
+ true if the paper is out.
+
+
+
+
+ true if the ribbon is out.
+
+
+
+
+ true if the receive buffer is full. For CPCL printers this is always false
+
+
+
+
+ true if the printer is paused. For CPCL printers this is always false
+
+
+
+
+ true if the printer reports back that it is ready to print
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructs a PrinterStatus instance that can be used to determine the status of a printer.
+
+
+ This will only query the printer's status upon creation. If the status needs to be updated see
+
+ Connection to the target printer
+ If an I/O error occurs
+
+
+
+
+
+
+
+
+ This class is used to acquire a human readable string of the current errors/warnings stored in a
+ instance.
+
+
+
+
+
+ Message to indicate the head is open.
+
+
+
+
+ Message to indicate the head is too hot.
+
+
+
+
+ Message to indicate the paper is out.
+
+
+
+
+ Message to indicate the ribbon is out.
+
+
+
+
+ Message to indicate the receive buffer is full.
+
+
+
+
+ Message to indicate printer is paused.
+
+
+
+
+ Message to indicate printerStatus is null.
+
+
+
+
+ Used to acquire a human readable string of the current errors/warnings stored in printerStatus
+
+ an instance of that will be used to acquire the human readable string
+ of warnings/errors stored in printerStatus
+
+
+
+ Used to acquire a human readable string of the current errors/warnings passed to this instance.
+
+ A human readable string array of the current errors/warnings passed to this instance.
+
+
+
+ Numerous utilities to simplify printer operations.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Send contents of data directly to the device specified via connectionString using UTF-8 encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using UTF-8 encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Retrieves a list of currently open tcp ports on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The port status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves status of the printer odometer which includes the total print length, head clean counter, label dot
+ length, head new, latch open counter, and both user resettable counters.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The odometer status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves status of the printer which includes any error messages currently set along with the number of labels
+ remaining in queue, number of labels remaining in batch, and whether or not a label is currently being processed.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The printer status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves the quick status of the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Highest level error or "Ready to Print".
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Set the RTC time and date on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Format MM-dd-yyyy HH:mm:ss.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If the format of dateTime is invalid.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Deletes file(s) from the printer and reports what files were actually removed.
+
+
+ The filePath may also contain wildcards.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ The location of the file on the printer. Wildcards are also accepted. (e.g. "E:FORMAT.ZPL", "E:*.*")
+ An array of the files which were deleted.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If the format of dateTime is invalid.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Deletes file(s) from the printer and reports what files were actually removed.
+
+
+ The filePath may also contain wildcards.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ The location of the file on the printer. Wildcards are also accepted. (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ Filter for returned files. (e.g. "E:*.ZPL", "*:*.*", "R:MYFILE.*")
+ List of file names on the printer.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an error parsing the directory data returned by the device.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ File contents.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ Stream to receive file contents.
+ The connection string.
+ The file to retrieve. (e.g. "R:MYFILE.PNG")
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ Password to use for ftp, if null a default password will be used.
+ File contents.
+ If there is an error connecting to the device, or the ftp password is not correct.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ Stream to receive the file contents.
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ Password to use for ftp, if null a default password will be used.
+ If there is an error connecting to the device, or the ftp password is not correct.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Update the printer firmware.
+
+
+ Download Firmware Here
+ See ConnectionBuilder for the format of connection
+
+ The connection string.
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum
+ will be used instead.
+ If the connection can not be opened or is closed prematurely.
+ If the printer language could not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ If the firmware file cannot be found or cannot be opened.
+
+
+
+ Encodes supplied image in either ZPL or CPCL after dithering and resizing.
+
+ The printer file path you wish to store the image to.
+ ZebraImage to be dithered and resized.
+ Stream to store encoded image data.
+ If the file type is not supported or an invalid image is supplied.
+ Could not read/write to file.
+
+
+
+ Encodes supplied image in either ZPL or CPCL after dithering and resizing.
+
+ The printer file path you wish to store the image to.
+ ZebraImage to be dithered and resized.
+ Width of the resulting image. If 0 the image is not resized.
+ Height of the resulting image. If 0 the image is not resized.
+ Stream to store converted image data encoded with the printers native
+ language.
+ If the file type is not supported or an invalid image is supplied.
+ Could not read/write to file.
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original configuration.
+ Some settings (such as I.P.address) which could conflict with the original printer will not be contained in the profile
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The location of where to store the profile.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ Could not interpret the response from the printer.
+ This feature is only available on Link-OS™ printers.
+
+
+
+
+ Create a backup of your printer's settings, alerts, and files.
+
+
+ A backup contains a snapshot of all pertinent settings to fully restore your printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The location of where to store the profile. The extension must be .zprofile; if it is not, the
+ method will change it to.zprofile for you.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ Could not interpret the response from the printer.
+ This feature is only available on Link-OS™ printers.
+
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ Increases the amount of detail presented to the user.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ Increases the amount of detail presented to the user.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Stores the file on the printer at the specified location and name using any required file wrappers.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The path of the file to store.
+ The path on the printer.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue storing the file.
+ This feature is only available on Link-OS™ printers.
+ If there is an issue storing the file.
+
+
+
+ Resets the specified printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Resets the network of the specified printer.
+
+
+ Usually performed to enable changed network settings to take effect.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Restores the printer's settings to their factory default configuration.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Restores the printer's network settings to their factory default configuration.
+
+
+ Use caution when issuing this command because you may lose connectivity with your printer if your network requires non-default settings.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a configuration label.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a network configuration label.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a directory listing of all the files saved on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieve all settings and their attributes from the specified printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ A map of setting names versus Setting objects from the printer specified in the connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the settings could not be retrieved.
+
+
+
+ Returns a new instance of PrinterStatus that can be used to determine the status of a printer.
+
+
+ Each invocation of this method will result in a query of the connected printer. If more than one status value is to be
+ read, it is recommended that a copy of PrinterStatus is stored locally.
+ This method must be invoked again to retrieve the most up-to-date status of the printer. The
+ object will only query the printer upon creation.
+ Some Mobile printers (including the MZ series printers) will not communicate if the printer is not ready to print.
+ On these printers, status information is not available when, for example, the printer is out of paper. This method
+ will throw a if it is called when the printer cannot communicate.
+
+ Connection to the printer.
+ Printer control language to be used.
+ A new instance of PrinterStatus.
+ If there is an issue communicating with the printer (e.g.\u00a0the connection is not
+ open.)
+
+
+
+ Defines functions used for creating and applying profiles to a Zebra printer.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original
+ configuration. Some settings (such as I.P.address) which could conflict with the original printer will
+ not be contained in the profile.
+
+ Path on your local machine where you want to save the profile.
+ (e.g. /home/user/profile.zprofile). The extension must be.zprofile; if it is not, the method will
+ change it to .zprofile for you.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+ for loading a profile to another printer
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original
+ configuration. Some settings (such as I.P.address) which could conflict with the original printer will
+ not be contained in the profile.
+
+ The destination stream where you want to write the profile.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+
+
+
+ Save a backup of your printer's settings, alerts, and files for later restoration.
+
+
+ A backup contains a snapshot of all pertinent settings to fully restore your printer.
+
+ Path on your local machine where you want to save the backup.
+ (e.g. /home/user/profile.zprofile). The extension must be.zprofile; if it is not, the method will
+ change it to .zprofile for you.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+ for loading the backup file to another printer
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ Increases the amount of detail presented to the user when loading firmware from the profile
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ his method will also delete all files on your printer before applying the backup.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ Increases the amount of detail presented to the user when loading firmware from the profile
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ A utility class used to wrap with a map and send settings commands to a connection.
+
+
+ Settings commands are accepted by Link-OS printers, version 1.0 and higher.
+
+
+
+
+
+ Sends the settingsToSet to the destinationDevice and then returns the updated setting values.
+
+ Due to the setting verification and validation, additional time and data traffic will be needed for each
+ SettingsSetter Process call. It is recommended to bundle all changing settings into one map and one
+ method call to reduce this overhead.
+
+ The connection string.
+ The settings map to send to the printer.
+ The settings' values after the map has been sent to the printer.
+ If there is an error communicating with the printer.
+ If the setting could not be set or retrieved.
+
+
+
+ A utility class used to wrap and send SGD commands to a connection.
+
+
+
+
+
+ Constructs an SGD SET command and sends it to the printer.
+
+
+ This method will not wait for a response from the printer.If the SGD SET command returns a response, the caller
+ is responsible for reading the data off of the connection.If a response is expected, consider using the analogous
+ command.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ if an I/O error occurs
+
+
+
+
+ Constructs an SGD SET command and sends it to the printer.
+
+
+ This method will not wait for a response from the printer. If the SGD SET command returns a response, the caller is
+ responsible for reading the data off of the connection. If a response is expected, consider using the analogous
+ command.
+
+
+
+
+ if an I/O error occurs
+
+
+
+
+ Constructs an SGD GET command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the connection to send the command to
+ the setting's value
+ if an I/O error occurs
+
+
+
+ Constructs an SGD GET command and sends it to the printer.
+
+
+ This method waits for a maximum of maxTimeoutForRead milliseconds for any data to be received.Once some data has been received it
+ waits until no more data is available within timeToWaitForMoreData milliseconds. This method returns the SGD value associated
+ with setting without the surrounding quotes.
+
+ the SGD setting
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ the setting's value
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ The response from the SGD DO command
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method write the SGD
+ value associated with setting, without the surrounding quotes, to responseData.
+
+ output stream to receive the response.
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ The response from the SGD DO command
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of maxTimeoutForRead milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within timeToWaitForMoreData milliseconds. This method write the SGD
+ value associated with setting without the surrounding quotes.
+
+ output stream to receive the response.
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ if an I/O error occurs
+
+
+
+ A utility class used to remove quotes from an output stream
+
+
+
+
+ Constructs a QuoteRemovingOutputStream
+
+
+
+
+
+ Signals that an error has occurred when attempting to communicate with SNMP.
+
+
+
+
+ Constructs an SnmpException with message as the detailed error message.
+
+ The error message.
+
+
+
+ An instance of an SNMP only Zebra printer.
+
+ The printer does not make a raw port connection.
+
+
+
+
+ Creates an instance of a Zebra printer which is limited to only SNMP operations.
+
+
+ The SNMP get and set community names default to "public". If you wish to use other community names, use
+ .
+
+ The IP Address or DNS Hostname.
+ If there was an exception communicating over SNMP.
+
+
+
+ Creates an instance of a Zebra printer, with the given community names, which is limited to only SNMP operations.
+
+ The IP Address or DNS Hostname.
+ SNMP get community name.
+ SNMP set community name.
+ If there was an exception communicating over SNMP.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the value of the specified oid.
+
+ Object identifier.
+ The value of the OID.
+ If there was an exception communicating over SNMP.
+
+
+
+ Sets the value of the specified oid to valueToSet.
+
+ Object identifier.
+ The value to set the OID to.
+ If there was an exception communicating over SNMP
+
+
+
+ Sets the value of the specified oid to valueToSet.
+
+ Object identifier.
+ The value to set the OID to.
+ If there was an exception communicating over SNMP
+
+
+
+ Gets the SNMP get community name.
+
+
+
+
+ Gets the SNMP set community name.
+
+
+
+
+ A container class which holds information about various printer drives.
+
+
+
+
+ Creates an empty StorageInfo container
+
+
+
+
+ The drive's alphabetical identifier.
+
+
+
+
+ The type of drive. (e.g. flash, RAM)
+
+
+
+
+
+ The number of bytes remaining on the drive.
+
+
+
+
+ Bool defining whether or not files persist across printer reboots.
+
+
+
+
+ Class for describing the status of ports open on a Zebra printer.
+
+
+
+
+ Creates a container which describes the status of a specific port on a Zebra printer.
+
+ The printer's port.
+ The name of the protocol used by the port.
+ Remote IP connected to the port.
+ Remote port number.
+ Port status.
+
+
+
+ The port number open on the printer.
+
+
+
+
+ The name of the protocol associated with that port, for example, HTTP for 80, FTP for 21.
+
+
+
+
+ The remote IP connected to the printer's port, will be 0.0.0.0 if not connected.
+
+
+
+
+ The port number of the remote connected to the printer, will be 0 if no connection.
+
+
+
+
+ The status of the printer's port, such as {@code LISTEN}, {@code ESTABLISHED}.
+
+
+
+
+ String description of the port status, prints as "PORT(NAME) REMOTE-IP:REMOTE-PORT STATUS"
+
+ Description of the port status.
+
+
+
+ This is a utility class for performing printer actions. (Restore defaults, calibrate, etc.)
+
+
+
+
+ Sends the appropriate calibrate command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate restore defaults command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate print configuration command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Converts the specified command to bytes using the default charset and sends the bytes to the printer.
+
+ The command to send to the printer.
+ If an I/O error occurs.
+
+
+
+ Converts the specified command to bytes using the specified charset "encoding" and sends the bytes to the
+ printer.
+
+ The command to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate reset command to the printer.
+
+
+ You should call after this method, as resetting the printer will terminate the connection.
+
+ If an I/O error occurs.
+
+
+
+
+ Utility class for performing Link-OS™ printer actions.
+
+
+
+
+ Send the restore network defaults command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Send the print network configuration command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Send the print directory label command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Sends the network reset command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Set the RTC time and date on the printer.
+
+
+ Accepted dateTime values include date (e.g. "MM-dd-yyyy"), time(e.g. " HH:mm:ss"),
+ or both(e.g. " MM-dd-yyyy HH:mm:ss").
+
+ Date and or time in the proper format (MM-dd-yyyy, HH:mm:ss, or MM-dd-yyyy HH:mm:ss).
+ If there is an error communicating with the printer.
+ If the format of dateTime is invalid.
+
+
+
+ A class used to print template formats using XML as input.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Print template formats using XML as input data.
+
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs."
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data to destinationDevice.
+
+ The connection string.
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ See ConnectionBuilder for the format of
+ destinationDevice.
+ If an I/O error occurs."
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data with optional running commentary to standard out.
+
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs."
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data to a device with connection string destinationDevice.
+
+ The connection string.
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ See ConnectionBuilder for the format of
+ destinationDevice.
+ If an I/O error occurs."
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+ An interface used to obtain various properties of a Zebra printer.
+
+
+
+
+
+ Returns the printer control language (e.g. ZPL or CPCL) of the printer.
+
+
+
+
+
+ Returns a new instance of PrinterStatus that can be used to determine the status of a printer.
+
+
+ Each invocation of this method will result in a query of the connected printer. If more than one status value is to be
+ read, it is recommended that a copy of PrinterStatus is stored locally.
+ Note: This method must be invoked again to retrieve the most up-to-date status of the printer. The
+ object will only query the printer upon creation.
+ Note: Some Mobile printers (including the MZ series printers) will not communicate if the printer is not
+ ready to print.On these printers, status information is not available when, for example, the printer is out of
+ paper. This method will throw a if it is called when the printer cannot communicate.
+
+ A new instance of PrinterStatus.
+ If there is an issue communicating with the printer (e.g. the connection is not
+ open.)
+
+
+
+ Returns the printer's connection.
+
+
+
+
+ Changes the printer's connection.
+
+ The new connection to be used for communication with the printer.
+
+
+
+ A factory used to acquire an instance of a ZebraPrinter.
+
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+
+ If the Set-Get-Do value, appl.name, starts with one of the following, the printer is determined to
+ be a CPCL printer. Otherwise it is considered to be a ZPL printer
+
+ - SH
+ - H8
+ - C
+
+
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+ If the printer language cannot be determined
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+
+ If the Set-Get-Do value, appl.name, starts with one of the cpclFwVersionPrefixes, the
+ printer is determined to be a CPCL printer.Otherwise it is considered to be a ZPL printer.
+
+ An array of possible CPCL version number prefixes
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+ If the printer language cannot be determined
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+ The language of the printer instance to be created
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS™ version and its control language.
+
+ An instance of a
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its control language, but will not query the printer for Link-OS information.
+
+ An instance of a
+ Link-OS Information
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS information, but will not query the printer for its control language.
+
+ An instance of a
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will not query the printer for any information but will use the supplied info and language.
+
+ An instance of a
+ Link-OS Information
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS™ version and its control language.
+
+ An open connection to a Link-OS™ printer
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its control language, but will not query the printer for Link-OS information.
+
+ An open connection to a Link-OS™ printer
+ Link-OS Information
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS information, but will not query the printer for
+ its control language.
+
+ An open connection to a Link-OS™ printer
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will not query the printer for any information but will use the supplied info and
+ language.
+
+ An open connection to a Link-OS™ printer
+ Link-OS Information
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Signals that an error has occurred when determining the printer language.
+
+
+
+
+ Constructs a ZebraPrinterLanguageUnknownException with message as the detailed error message
+
+ The error message
+
+
+
+ Constructs a ZebraPrinterLanguageUnknownException with "Unknown printer language" as
+ the detailed error message.
+
+
+
+
+ This interface defines increased capabilities of a Zebra Link-OS™ printer. Link-OS™ printers support many
+ features not supported by non-Link-OS™ Zebra printers.
+
+
+
+
+ Retrieve the TCP port status of the printer and returns a list of TcpPortStatus describing the open ports on the printer.
+
+
+ The open connection from the SDK will be listed in the return value. This method will throw
+ a if it is unable to communicate with the printer.
+ Note: Tabletop printers support more than one established connection on the raw port at a time, so the
+ same port may be listed more than once.
+
+ List of open ports on the ZebraPrinter. Note: The open connection from the SDK will be listed.
+ If there is an issue communicating with the printer (e.g. the connection is not open.)
+
+
+
+ Gets/sets the printer's SNMP get community name.
+
+
+
+
+ Returns specific Link-OS™ information.
+
+
+
+
+ Enumeration of the various print modes supported by Zebra Printers.
+
+
+
+
+ Rewind print mode
+
+
+
+
+ Peel-off print mode
+
+
+
+
+ Tear-off print mode (this also implies Linerless Tear print mode)
+
+
+
+
+ Cutter print mode
+
+
+
+
+ Applicator print mode
+
+
+
+
+ Delayed cut print mode
+
+
+
+
+ Linerless peel print mode
+
+
+
+
+ Linerless rewind print mode
+
+
+
+
+ Partial cutter print mode
+
+
+
+
+ RFID print mode
+
+
+
+
+ Kiosk print mode
+
+
+
+
+ Unknown print mode
+
+
+
+
+ Returns the print mode.
+
+ String representation of the print mode (e.g. "Rewind").
+
+
+
+ Enumeration of the various printer alert conditions which can be set on Zebra Printers.
+
+
+
+
+ Alert condition 'None'
+
+
+
+
+ Alert condition 'Paper Out'
+
+
+
+
+ Alert condition 'Ribbon Out'
+
+
+
+
+ Alert condition 'Head Too Hot'
+
+
+
+
+ Alert condition 'Head Cold'
+
+
+
+
+ Alert condition 'Head Open'
+
+
+
+
+ Alert condition 'Power Supply Too Hot'
+
+
+
+
+ Alert condition 'Ribbon In'
+
+
+
+
+ Alert condition 'Rewind'
+
+
+
+
+ Alert condition 'Cutter Jammed'
+
+
+
+
+ Alert condition 'Printer Paused'
+
+
+
+
+ Alert condition 'PQ Job Completed'
+
+
+
+
+ Alert condition 'Label Ready'
+
+
+
+
+ Alert condition 'Head Element Bad'
+
+
+
+
+ Alert condition 'Basic Runtime'
+
+
+
+
+ Alert condition 'Basic Forced'
+
+
+
+
+ Alert condition 'Power On'
+
+
+
+
+ Alert condition 'Clean Printhead'
+
+
+
+
+ Alert condition 'Media Low'
+
+
+
+
+ Alert condition 'Ribbon Low'
+
+
+
+
+ Alert condition 'Replace Head'
+
+
+
+
+ Alert condition 'Battery Low'
+
+
+
+
+ Alert condition 'RFID Error'
+
+
+
+
+ Alert condition 'All Messages'
+
+
+
+
+ Alert condition 'Cold Start'
+
+
+
+
+ Alert condition 'SGD Set'
+
+
+
+
+ Alert condition 'Motor Overtemp'
+
+
+
+
+ Alert condition 'Printhead Shutdown'
+
+
+
+
+ Alert condition 'Shutting Down'
+
+
+
+
+ Alert condition 'Restarting'
+
+
+
+
+ Alert condition 'No Reader Present'
+
+
+
+
+ Alert condition 'Thermistor Fault'
+
+
+
+
+ Alert condition 'Invalid Head'
+
+
+
+
+ Alert condition 'Country Code Error'
+
+
+
+
+ Alert condition 'MCR Result Ready'
+
+
+
+
+ Alert condition 'PMCU Download'
+
+
+
+
+ Alert condition 'Media Cartridge'
+
+
+
+
+ Alert condition 'Media Cartridge Load Failure'
+
+
+
+
+ Alert condition 'Media Cartridge Eject Failure'
+
+
+
+
+ Alert condition 'Media Cartridge Forced Eject'
+
+
+
+
+ Alert condition 'Cleaning Mode'
+
+
+
+
+ Creates an AlertCondition based on the condition.
+
+ If the condition is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the values of AlertCondition.
+ Based on the string condition
+ If condition is not a valid alert condition.
+
+
+
+ Creates an AlertCondition based on the conditionName.
+
+ If the conditionName is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the conditions in AlertCondition.
+ Based on the string conditionName
+ If conditionName is not a valid alert condition.
+
+
+
+ Returns the alert condition.
+
+ String representation of the alert condition (e.g. "PAPER OUT").
+
+
+
+ Gets/sets the alert condition name
+
+
+
+
+
+
+
+
+
+
+ Enumeration of the various alert destinations which can be set on Zebra Printers.
+
+
+
+
+ Alert Destination 'Serial'
+
+
+
+
+ Alert Destination 'Parallel'
+
+
+
+
+ Alert Destination 'E-Mail'
+
+
+
+
+ Alert Destination 'TCP'
+
+
+
+
+ Alert Destination 'UDP'
+
+
+
+
+ Alert Destination 'SNMP'
+
+
+
+
+ Alert Destination 'USB'
+
+
+
+
+ Alert Destination 'HTTP-POST'
+
+
+
+
+ Alert Destination 'Bluetooth'
+
+
+
+
+ Alert Destination 'SDK'
+
+
+
+
+ Returns the alert destination as a string.
+
+
+
+
+ Creates an AlertDestination based on the destination.
+
+ If the destination is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the values of AlertDestination.
+ Based on the destination
+ If destination is not a valid alert destination.
+
+
+
+ Creates an AlertDestination based on the destinationName.
+
+
+ If the destinationName is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the destinations in AlertDestination.
+ Based on the destinationName
+ If destinationName is not a valid alert destination.
+
+
+
+ Returns the alert destination.
+
+ String representation of the alert destination (e.g. "TCP").
+
+
+
+ Gets/Sets the alert destination name.
+
+
+
+
+
+
+
+
+
+
+ Decide whether to use the status channel or the print channel to get settings from the printer. For a
+ multichannel connection, prefer the status channel.
+
+ A connection to the printer.
+ The appropriate connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true if value is within the setting's range
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A class that represents an internal device setting.
+
+
+
+
+ Gets or sets the setting's value.
+
+
+
+
+ Gets or sets a string describing the data type of the setting.
+
+
+
+
+ Gets or sets a string that describes the acceptable range of values for this setting.
+
+
+
+
+ Gets or sets if this setting can be applied when loading a profile
+
+
+
+
+ Gets or sets if this setting can be applied when loading a backup
+
+
+
+
+ Gets or sets a string that describes the access permissions for the setting. RW is returned for settings that have
+ read and write permissions. R is returned for settings that are read-only W is returned for settings that are write-only
+
+
+
+
+ Returns true if the setting does not have write access.
+
+
+
+
+ Returns true if the setting does not have read access.
+
+
+
+
+ Returns true if value is valid for the given setting.
+
+ Setting value.
+ true if value is within the setting's range
+
+
+
+
+ Retruns a human readable string of the setting.
+
+ Setting [settingData=value=Value type=Type range=Range].
+
+
+
+ Signals that an error occurred retrieving a setting
+
+
+
+
+ Constructs a SettingsException with Setting not found as the detailed error message.
+
+
+
+
+ Constructs a SettingsException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a SettingsException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception
+
+
+
+ Interface that provides access to device related settings.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Retrieve all of the setting identifiers for a device.
+
+
+ These are the IDs that may be used as keys for retrieving and updating settings for a device.
+
+
+ Set of identifiers available for a device.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded
+
+
+
+ Retrieves the device's setting value for a setting id.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the setting could not be retrieved.
+
+
+
+ Retrieves the device's setting values for a list of setting IDs.
+
+ List of setting IDs.
+ The settings' values.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieve all settings and their attributes.
+
+ Map of setting IDs and setting attributes contained in the profile
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved
+
+
+
+ Retrieves all of the device's setting values.
+
+ Values of all the settings provided by the device.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded
+
+
+
+ Sets the setting to the given value.
+
+ The setting id.
+ The setting's value
+ If there is an error communicating with the printer.
+ If the setting is read only, does not exist, or if the setting could not be set
+
+
+
+ Set more than one setting.
+
+ Map a setting ID to the new value for the setting.
+ If there is an error communicating with the printer.
+ If the settings cannot be sent to the device.
+
+
+
+ Retrieves the allowable range for a setting.
+
+ The setting id.
+ The setting's range as a string
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if value is valid for the given setting.
+
+ The setting id.
+ The setting's value
+ True if value is valid for the given setting.
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if the setting is read only.
+
+ The setting id
+ True if the setting is read only
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if the setting is write only.
+
+ The setting id
+ True if the setting is write only
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns the data type of the setting.
+
+ The setting id
+ The data type of the setting (e.g. string, bool, enum, etc.)
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Change or retrieve printer settings.
+
+
+ Due to the setting verification and validation, additional time and data traffic will be needed for each
+ ProcessSettingsViaMap method call. It is recommended to bundle all settings into one map and one method call to
+ reduce this overhead.
+
+ The settings to change or retrieve
+ Results of the setting commands
+ If there is an error communicating with the printer.
+ If a setting is malformed, or one or more settings could not be set.
+
+
+
+ Methods to use the LinkOS 3.2 JSON syntax to get the ranges for a list of SDGs, without the need to use an allconfig.
+
+
+
+
+ Use the LinkOS 3.2 JSON syntax to get the ranges for a list of SDGs, without the need to use an allconfig.
+
+ A list of SGD names.
+ A connection to a LinkOS printer.
+ the current printer control language
+ LinkOS version
+ A map from setting name to a string representing the range.
+ If the printer is not LinkOS 3.2 or higher.
+ If the connection fails.
+ If there is an error parsing the JSON response from the printer.
+
+
+
+ Parse the JSON response from the JSON get range command. Assumes that the only field requested in the JSON get
+ command was the "range" field.
+
+ Response from a LinkOS 3.2 or greater printer.
+ Map from setting names to range strings.
+
+
+
+ Methods to use the LinkOS 3.2 JSON syntax to get the values for a list of SDGs, without the need to use an allconfig.
+
+
+
+
+ Get the values for a list of settings from a printer.
+
+
+ Use either JSON or SGD get commands to request the values from the printer,
+ depending on the connection type and the printer language. The default
+ timeout values from the connection will be used when communicating with the
+ printer. If printerConnection is a MultichannelConnection, prefer the status channel.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Set each of the settings in settingValues on a printer.
+
+
+ Use either JSON or SGD set commands to set the values on the printer, depending on the connection type and
+ the printer language.The default timeout values from the connection will be used when communicating with the
+ printer.If printerConnection is a MultichannelConnection, prefer the status channel.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+
+ Get the values for a list of settings from a LinkOS printer.
+
+
+ Use JSON to request the values from the printer. The default timeout values from the connection will
+ be used when communicating with the printer.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Get the values for a list of settings from a printer.
+
+
+ Use SGD get commands to request the values from the printer.The default timeout values from the connection
+ will be used when communicating with the printer.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+ Decide whether JSON can be used to get settings from the printer, or whether SGD setvar/getvar must be used.
+
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ true if JSON can be used, false if SGD setvar/getvar must be used.
+
+
+
+ Set each of the settings in settingValues on a LinkOS printer.
+
+
+ Use JSON to set the values on the printer. The default timeout values from the connection will be
+ used when communicating with the printer.Return a map of the values from the printer after the set
+ operation was performed.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Set each of the settings in settingValues on a printer.
+
+
+ Use SGD set commands to set the values on the printer. The default timeout values from the connection will
+ be used when communicating with the printer.Return a map of the values from the printer after the set operation was performed.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "SH", "H8", "C"
+
+
+
+
+ ESC + h (0x1b 0x68)
+
+
+
+
+ ESC + V (0x1b 0x56)
+
+
+
+
+ ESC + FormFeed (0x1b 0x0C)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Determines if the device is a zebra card printer
+
+ true if device is a card printer
+
+
+
+ 0, marks free or usable space
+
+
+
+
+ 1, bitmap or smooth font
+
+
+
+
+ 2, barcode data
+
+
+
+
+ 3, stored ZPL format
+
+
+
+
+ 4, GRF graphic image object
+
+
+
+
+ 5, print map - unused
+
+
+
+
+ 6, general purpose storage - used by DBCOs for parsing and bitmaps
+
+
+
+
+ 7, Intellifont cache
+
+
+
+
+ 8, wildcard
+
+
+
+
+ 9, Mag tables
+
+
+
+
+ 10, Multiplication tables
+
+
+
+
+ 11, Mirror tables
+
+
+
+
+ 12, use context-specific default
+
+
+
+
+ 13, magic mode buffers
+
+
+
+
+ 14, access locks for certain ZPL commands
+
+
+
+
+ 15, JisToUnicode tables
+
+
+
+
+ 16, Saved BASIC program
+
+
+
+
+ 17, Data storage object
+
+
+
+
+ 18, PNG graphic image object
+
+
+
+
+ 19, Downloadable Bar Code object
+
+
+
+
+ 20, BAZ encrypted BASIC object
+
+
+
+
+ 21, Stored label format
+
+
+
+
+ 22, TrueType Font
+
+
+
+
+ 23, PCX bitmap
+
+
+
+
+ 24, Bitmap
+
+
+
+
+ 25, GEM bitmap graphic
+
+
+
+
+ 26, DPL Datamax 7-bit format
+
+
+
+
+ 27, TrueType Extension Font
+
+
+
+
+ 28, TT? we will list TTE and TTF objects on the same label
+
+
+
+
+ 29, WLAN security certificate for TLS and TTLS
+
+
+
+
+ 30, WLAN security certificate for FAST
+
+
+
+
+ 31, stored EPL format
+
+
+
+
+ 32, Mirror feedback template file
+
+
+
+
+ 33, WML menu file
+
+
+
+
+ 34, MIB file for auto-generated SNMP MIB
+
+
+
+
+ 35, Comma Seperated Values file
+
+
+
+
+ 36, User-custom webpages
+
+
+
+
+ 37, BAE DES encrypted BASIC object
+
+
+
+
+ 38, Text file
+
+
+
+
+ 39, Executable code - MUST BE LAST IN LIST!
+
+
+
+
+ The contentStream will be exhausted. It is all read in to determine the metadata, you need a new stream to read
+ from for other stream operations.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ appl.name
+
+
+
+
+ device.host_status
+
+
+
+
+ ip.discovery_packet
+
+
+
+
+ device.languages
+
+
+
+
+ device.reset
+
+
+
+
+ Printer Reset JSON Command {}{"device.reset":""}
+
+
+
+
+ device.prompted_network_reset
+
+
+
+
+ Printer Reset JSON Command {}{"device.prompted_network_reset":"y"}
+
+
+
+
+ ezpl.restore_defaults
+
+
+
+
+ Printer Reset JSON Command {}{"ezpl.restore_defaults":"reload printer"}
+
+
+
+
+ device.prompted_default_network
+
+
+
+
+ Printer Reset JSON Command {}{"device.prompted_default_network":"y"}
+
+
+
+
+ zpl.calibrate
+
+
+
+
+ Calibrate Command {}{"zpl.calibrate":""}
+
+
+
+
+
+
+
+ ! U1 getvar "command"\r\n
+
+
+
+ Wrapper class for System.Threading.Tasks Task functions. For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only. Wrapper for to not throw an
+ exception. Causes the currently executing thread to sleep (temporarily cease execution) for the specified number
+ of milliseconds. The thread does not lose ownership of any monitors.
+
+
+
+
+ @param targetStream
+
+
+ @param data
+ @param offset
+ @param length
+ @throws IOException
+
+
+
+ Windows line terminator - carriage return + line feed
+
+
+
+
+ Line feed
+
+
+
+
+
+
+ The string that should be searched.
+ The list of patterns to search for.
+ start index in inputString
+ The index in inputString of the first pattern that is found. If none of the patterns are
+ found, -1 is returned.
+
+
+
+ Split input into lines.
+
+
+ Lines are terminated by <CR><LF>. The last line does not have to
+ end in <CR><LF>, although it may.The <CR><LF> terminators are removed.
+
+ Text to be split into lines.
+ the delimiter to split on
+ An array of lines - with trailing CRLF removed.
+
+
+
+ Join an array of strings into a single string separated by a delimiter.
+
+
+
+ a delimited list of the elements in strings
+
+
+
+ Count the number of distinct occurrences of substring in stringToSearch.
+
+
+ If there are overlapping occurrences of substring in stringToSearch, counting starts again after the
+ end of each match.
+
+ CountSubstringOccurences(" aaa", "aa")
+ returns 1, not 2.
+
+
+ String to be searched
+ String to search for
+ number of occurrences
+
+
+
+ Remove all double quotes from str
+
+ the string to strip the quotes from
+ str minus the quotes
+
+
+
+
+
+ String to be padded
+ character used for padding
+ total length the return string should be
+ whether or not to append padding in front of initialString
+
+
+
+
+
+
+ the prefixes to search for
+ string to search
+ true if prefixes exists in value
+
+
+
+
+
+ The hex representation of the byte array
+
+
+
+
+
+
+ A byte array
+
+
+
+
+
+
+ (e.g. 1234 Bytes, 9876 Main St)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Executes a group of tasks with a cap on the number of concurrent threads running.
+
+
+
+
+
+ Group of tasks to execute
+ Number of threads to execute concurrently
+
+
+
+ Internal printer representation of the ZPL format prefix
+
+
+
+
+ Internal printer representation of the ZPL command prefix
+
+
+
+
+ Internal printer representation of the ZPL delimiter
+
+
+
+
+ Internal printer representation of the ZPL format prefix, as a String
+
+
+
+
+ Internal printer representation of the ZPL command prefix, as a String
+
+
+
+
+ Internal printer representation of the ZPL delimiter, as a String
+
+
+
+
+ Printer Status Command ~HI
+
+
+
+
+ Printer Expanded Status Command ~HS
+
+
+
+
+ Config Label ~WC
+
+
+
+
+ Directory label ^XA^WD*:*.*^XZ
+
+
+
+
+ Config Label ~WL
+
+
+
+
+ Printer Calibrate Command ~JC
+
+
+
+
+ Printer Reset Command ~JR
+
+
+
+
+ Printer Network Reset Command ~WR
+
+
+
+
+ Printer restore defaults command ^XA^JUF^XZ
+
+
+
+
+ Printer get super host status command ^XA^HZA^XZ
+
+
+
+
+ Printer get storage info ^XA^HW*:XXXX.QQQ^XZ Use XXXX.QQQ to get drive info without matching a file name
+
+
+
+
+ Printer get file drive info for Linkos 2.5 and higher
+
+
+
+
+ Printer get drive listing for Linkos 2.5 and higher
+
+
+
+
+
+
+ the command to decorate with the internal command prefix
+ the command decorated with the internal ZPL command prefix. If command contains a '~' it
+ will be replace with the internal command prefix, otherwise the internal command prefix will simply be prefixed
+ to the front of command
+
+
+
+
+
+ the format to decorate with the internal format prefix
+ the format decorated with the internal ZPL format prefix. If format contains a '^' it will
+ be replace with the internal format prefix, otherwise the internal format prefix will simply be prefixed to the
+ front of format
+
+
+
+
+
+ the format to decorate with the internal format prefix
+ the format decorated with the internal ZPL format prefix. If format contains a '^' it will
+ be replace with the internal format prefix, otherwise the internal format prefix will simply be prefixed to the
+ front of format
+
+
+
+ Enumeration of a task's status.
+
+
+
+
+ Configuration state indicating the task has not been started.
+
+
+
+
+ Configuration state indicating the task is in process.
+
+
+
+
+ Configuration state indicating the task completed successfully.
+
+
+
+
+ Configuration state indicating the task failed.
+
+
+
+
+ ENumeration to determine how the Weblink address is set.
+
+
+
+
+ Looks at current weblink settings and determine which location to set based on if the URL is set and valid and if
+ the printer is connected to the address.
+
+
+
+
+ Overrides any setting in Weblink location 1.
+
+
+
+
+ Overrides any setting in Weblink location 2.
+
+
+
+
+ Enumeration of the weblink configuration task's state.
+
+
+
+
+ Configuration state indicating the task is creating a connection to the printer.
+
+
+
+
+ Configuration state indicating the task is retrieving the printer's settings.
+
+
+
+
+ Configuration state indicating the task is configuring the weblink setting.
+
+
+
+
+ Configuration state indicating the task is restarting the printer.
+
+
+
+
+ Configuration state indicating the task is waiting for the printer to restart and then reconnect.
+
+
+
+
+ Configuration state indicating the task is validating the printer's profile manager connection.
+
+
+
+
+ Callback for updating the status of a Weblink configuration task.
+
+
+
+
+ Sets the new state of the Weblink Configurator defined by WeblinkConfigurationState.
+
+ The updated WeblinkConfiguration state.
+
+
+
+ Provides a custom message for the current weblink configuration state.
+
+ Custom message.
+
+
+
+ Task to configure a printers Weblink setting.
+
+
+
+
+ Initializes a new instance of the WeblinkConfiguratior class.
+
+ The to configure.
+
+
+
+ Initializes a new instance of the WeblinkConfiguratior class.
+
+ A to a printer
+
+
+
+ Configures a printer to connect to a Zebra Weblink server and attempts to validate a successful connection.
+
+
+ Please note that this function will block while waiting for the printer to reset and while validating the
+ connection. This could take an excess of 60 seconds.
+
+ Weblink address to set.
+ Determines which weblink setting will be configured.
+ Callback object to report task status.
+ Thrown when a configuration error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the current .
+
+
+
+
+ Returns the of the weblink configuration task.
+
+
+
+
+ Returns true if the supplied weblink url is valid for the Zebra weblink server.
+
+ Potential URL to a Zebra Weblink server.
+ true if the URL is a properly formed URL for the Zebra Weblink server.
+
+
+
+ Signals that an error occured while configuring weblink.
+
+
+
+
+ Constructs a ZebraWeblinkException with a base Exception.
+
+ The base exception.
+
+
+
+ Constructs a ZebraWeblinkException with a custom detailed error message.
+
+ The custom error message.
+
+
+
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/netstandard2.0/ZebraPrinterSdk.dll b/packages/Zebra.Printer.SDK.2.15.2634/lib/netstandard2.0/ZebraPrinterSdk.dll
new file mode 100644
index 0000000..dbb8278
Binary files /dev/null and b/packages/Zebra.Printer.SDK.2.15.2634/lib/netstandard2.0/ZebraPrinterSdk.dll differ
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/netstandard2.0/ZebraPrinterSdk.xml b/packages/Zebra.Printer.SDK.2.15.2634/lib/netstandard2.0/ZebraPrinterSdk.xml
new file mode 100644
index 0000000..f5592dc
--- /dev/null
+++ b/packages/Zebra.Printer.SDK.2.15.2634/lib/netstandard2.0/ZebraPrinterSdk.xml
@@ -0,0 +1,57 @@
+
+
+
+ ZebraPrinterSdk
+
+
+
+
+ A factory interface used to acquire a cross platform instance of ZebraImageI.
+
+
+
+
+ Creates an instance of from the image specified in fullPath.
+
+ The full path of the image.
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If fullPath is null.
+
+
+
+ Creates an instance of from the image data specified in imageData.
+
+ A byte[] containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null.
+
+
+
+ Creates an instance of from the image data specified in imageData.
+
+ A stream containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null.
+
+
+
+ A factory used to acquire an instance of ZebraImageI.
+
+
+
+
+ Current IZebraPrinterFactory to use
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/xamarinios10/SdkApi.Core.dll b/packages/Zebra.Printer.SDK.2.15.2634/lib/xamarinios10/SdkApi.Core.dll
new file mode 100644
index 0000000..05b0e1e
Binary files /dev/null and b/packages/Zebra.Printer.SDK.2.15.2634/lib/xamarinios10/SdkApi.Core.dll differ
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/xamarinios10/SdkApi.Core.xml b/packages/Zebra.Printer.SDK.2.15.2634/lib/xamarinios10/SdkApi.Core.xml
new file mode 100644
index 0000000..7a6f633
--- /dev/null
+++ b/packages/Zebra.Printer.SDK.2.15.2634/lib/xamarinios10/SdkApi.Core.xml
@@ -0,0 +1,8999 @@
+
+
+
+ SdkApi.Core
+
+
+
+
+ Takes in a certificate file (P12, DER, PEM, etc) and processes it into a ZebraCertificateInfo object which contains
+ the selected certificate, Certificate Authority certificate chain, and private key (if applicable).
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Takes in a certificate file (P12, DER, PEM, etc) and processes it into a ZebraCertificateInfo object which contains
+ the selected certificate, Certificate Authority certificate chain, and private key (if applicable).
+
+ Data stream for the certificate file to be processed.
+ The certificate to use within a multi-certificate (like PKCS12) file.
+ Used to unlock a protected certificate file.
+ Instance containing all certificate and key information for the processed file.
+ If there is an issue reading the certificate file.
+ If there is an issue processing the certificate file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Signals that an error occurred while converting a certificate.
+
+
+
+
+ Constructs a ZebraCertificateConversionException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a ZebraCertificateConversionException with message as the detailed error
+ message and cause as the underlying exception.
+
+ User defined message for the exception.
+ What created the exception.
+
+
+
+ Handler class for managing certificate and private key information.
+
+
+
+
+ The file name on a printer to which a private key must be saved for wireless security.
+
+
+
+
+ The file name on a printer to which a wireless ca must be saved for wireless security.
+
+
+
+
+ The file name on a printer to which a client cert must be saved for wireless security.
+
+
+
+
+ Initializes a new instance of the ZebraCertificateInfo class.
+
+
+
+
+ Returns the CA Certificate chain.
+
+ CA Certificate chain in PEM format.
+
+
+
+ Contains the client certificate, if set.
+
+
+
+
+ Contains the Certificate Authority certificate chain, if set.
+
+
+
+
+ Contains the private key, if set.
+
+
+
+
+ A utility class used to extract info from certificate files and convert the contents into Zebra friendly formats.
+
+
+
+
+
+ Creates a wrapper that opens up the provided certificate keystore stream.
+
+ The stream containing certificate keystore file contents.
+ The password used to access the certificate file.
+ Thrown if the certificate stream contents cannot be accessed or if the
+ certificate password was incorrect.
+
+
+
+ Get a list of aliases present in the certificate keystore.
+
+ A list of the aliases present in the certificate keystore.
+ If the keystore has not been initialized (loaded).
+
+
+
+ Get the content of the first entry in the certificate's certificate chain.
+
+ The returned content is converted to PEM format. The resulting content can be stored to a printer for use
+ with wireless security. Since no alias is provided, the first entry in the certificate file will be used.
+ The Zebra-friendly certificate content
+ If the provided alias does not exist or the certificate content is corrupt
+
+
+
+ Get the content of the first entry in the certificate's certificate chain.
+
+ The returned content is converted to PEM format. The resulting content can be stored to a printer for use
+ with wireless security.
+ The alias name of the specific entry to extract from the certificate file.
+ The Zebra-friendly certificate content.
+ If the provided alias does not exist or the certificate content is corrupt
+
+
+
+ Get the content of the ca, which is determined to be all entries in the certificate chain after the first entry.
+
+ The returned ca is converted to PEM format. The resulting content can be stored to a printer for use with
+ wireless security. Since no alias is provided, the first entry in the certificate file will be used.
+ The Zebra-friendly ca content.
+ If the provided alias does not exist or the ca content is corrupt.
+
+
+
+ Get the content of the ca, which is determined to be all entries in the certificate chain after the first entry.
+
+ The returned ca is converted to PEM format. The resulting content can be stored to a printer for use with
+ wireless security.
+ The alias name of the specific entry to extract from the certificate file.
+ The Zebra-friendly ca content.
+ If the provided alias does not exist or the ca content is corrupt.
+
+
+
+ Get the encrypted private key content.
+
+ The returned key is encrypted and converted to PEM format. The resulting content can be stored
+ to a printer for use with wireless security.Since no alias is provided, the first entry in the certificate
+ file will be used. Note: Any printer using the generated private key must also be configured to use the
+ password provided here to encrypt the private key.Send the following command to the printer to configure
+ it to use a private key encryption password: ! U1 setvar "wlan.private_key_password" "value".
+ The password used to encrypt the resulting private key.
+ The encrypted private key in PEM format.
+ If the provided alias does not exist, certificate password is
+ incorrect, or private key content is corrupt.
+
+
+
+ Get the encrypted private key content.
+
+ The resulting content can be stored to a printer for use with wireless security.
+ Note: Any printer using the generated private key must also be configured to use the provided password to
+ encrypt the private key. Send the following command to the printer to configure it to use a private key
+ encryption password: ! U1 setvar "wlan.private_key_password" "value".
+ The alias name of the specific entry to extract from the certificate file.
+ The password used to encrypt the resulting private key.
+ The encrypted private key in PEM format.
+ If the provided alias does not exist, certificate password is
+ incorrect, or private key content is corrupt.
+
+
+
+ Get the common name of the client certificate associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The certificate common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the client certificate associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The certificate common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the CA associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The CA common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the common name of the CA associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file
+ The CA common name.
+ If the provided alias does not exist or the underlying
+ certificate could not be parsed.
+
+
+
+ Get the expiration data of the client certificate associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The client certificate expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the client certificate associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The client certificate expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the CA associated with the certificate file.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The CA expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the expiration data of the CA associated with the certificate file.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The CA expiration date.
+ If the certificate keystore is invalid or the provided alias
+ does not exist in the certificate keystore.
+
+
+
+ Get the algorithm used by the private key.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The private key algorithm.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the algorithm used by the private key.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The private key algorithm.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the issuer of the client certificate.
+
+ Since no alias is provided, the first entry in the certificate file will be used.
+ The client certificate issuer.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Get the issuer of the client certificate.
+
+ The alias name of the specific entry to extract from the certificate file.
+ The client certificate issuer.
+ If the provided certificate file is invalid, alias does not exist,
+ or contained private key is corrupt or unsupported.
+
+
+
+ Gets the keystore of the processed client certificate.
+
+ The Pkcs12Store containing information about the processed certificate file.
+
+
+
+ A connection to a device.
+
+
+
+
+ Opens the connection to a device.
+
+
+ If the open method is called when this connection has already been
+ opened, this call is ignored. When a handle to the connection is no longer needed, you must call
+ to free up system resources.
+
+ If the connection cannot be established.
+
+
+
+ Closes this connection and releases any system resources associated with the connection.
+
+ If the connection is already closed then invoking this method has no effect.
+ If an I/O error occurs.
+
+
+
+ Writes data.Length bytes from the specified byte array to this output stream.
+
+
+ The connection must be open before this method is called. If write is called when a connection is closed, a
+ ConnectionException is thrown.
+
+ Data to write
+ If an I/O error occurs.
+
+
+
+ Writes length bytes from data starting at offset.
+
+
+ The connection must be open before this method is called. If Write is called when a
+ connection is closed, a ConnectionException is thrown.
+
+ The data.
+ The start offset in the data.
+ The number of bytes to write.
+ if an I/O error occurs.
+
+
+
+ Writes all available bytes from the data source to this output stream.
+
+
+ The connection must be open before this method is called. If write is called when a connection is closed,
+ a ConnectionException is thrown.
+
+ The data.
+ If an I/O error occurs.
+
+
+
+ Reads all the available data from the connection. This call is non-blocking.
+
+ Data read from the connection.
+ If an I/O error occurs.
+
+
+
+ Reads the next byte of data from the connection.
+
+
+ The value byte is returned as an int in the range of 0 to 255. If no byte is available on the
+ connection the value -1 is returned.
+
+ The next byte from the connection.
+ If an I/O error occurs.
+
+
+
+ Reads all the available data from the connection.
+
+ This call is non-blocking.
+ For read data.
+ If an I/O error occurs.
+
+
+
+ Returns true if the connection is open.
+
+
+
+
+ Returns an estimate of the number of bytes that can be read from this connection without blocking.
+
+ The estimated number of bytes available.
+ If an I/O error occurs.
+
+
+
+ See the classes which implement this method for the format of the description string.
+
+ The connection description string.
+
+
+
+ Gets a human-readable description of the connection.
+
+
+
+
+ Causes the currently executing thread to sleep until > 0, or for a maximum of
+ maxTimeout milliseconds.
+
+ The maximum time in milliseconds to wait for an initial response from the printer.
+ If an I/O error occurs.
+
+
+
+ Gets or sets the maximum time, in milliseconds, to wait for any data to be received.
+
+
+
+
+ Gets or sets the maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+
+ Sends dataToSend and returns the response data.
+
+
+ The software returns immediately if the data received contains terminator. The connection must be open before this method
+ is called. If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Byte array of data to send
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function returns a zero length array.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response contains this string, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response is always terminated with a known string. Use null
+ if no terminator is desired.
+ The received data.
+ If an I/O error occurs.
+
+
+
+ Sends data from sourceStream and writes the response data to destinationStream.
+
+
+ The software returns immediately if the data received contains terminator. The connection must be open before this method
+ is called. If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Destination for response.
+ Source of data to be sent.
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function does not write any data to the destination stream.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response contains this string, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response is always terminated with a known string. Use null
+ if no terminator is desired.
+ If an I/O error occurs.
+
+
+
+ Sends dataToSend and returns the response data.
+
+
+ The software returns immediately if the data received satisfies validator. The connection must be open before this method is called.
+ If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Byte array of data to send
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function returns a zero length array.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response satisfies this validator, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response follows a known format.
+ received data
+ If an I/O error occurs.
+
+
+
+ Sends data from sourceStream and writes the response data to destinationStream.
+
+
+ The software returns immediately if the data received satisfies validator. The connection must be open before this method is called.
+ If sendAndWaitForResponse is called when a connection is closed, a ConnectionException is thrown.
+
+ Destination for response.
+ Source of data to be sent.
+ The maximum time, in milliseconds, to wait for the initial response to be received.
+ If no data is received during this time, the function does not write any data to the destination stream.
+ After the initial response, if no data is received for this period of time, the
+ input is considered complete and the method returns.
+ If the response satisfies this validator, the input is considered complete and the method returns.
+ May be used to avoid waiting for more data when the response follows a known format.If validator is null, no validation is performed.
+ When performing validation, this method will use enough memory to hold the entire response.
+ If an I/O error occurs.
+
+
+
+ Returns a ConnectionReestablisher which allows for easy recreation of a connection which may have been closed.
+
+ This call should be made while there is still an active connection to the printer (prior to issuing a command which will make the printer non-responsive).
+ How long the Connection reestablisher will wait before attempting to reconnection to the printer.
+ Instance of
+ If the ConnectionReestablisher could not be created.
+
+
+
+ Abstract class which implements the default functionality of Connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ This call is non-blocking.
+ number of bytes to read
+ the bytes read from the connection
+ if an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sets the stream to log the write data to.
+
+ The stream to log the data to.
+
+
+
+ Log data sent to printer by sending to the WriteLogStream, if present
+
+ The data written to connection, send to log stream
+ The start offset in the buffer.
+ The number of bytes to write
+
+
+
+
+ Gets or sets the maximum number of bytes to write at one time
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ number of bytes to read
+ true to exit on first data read
+ the bytes read from the connection.
+ if an I/O error occurs.
+
+
+
+ See the classes which implement this property for the format of the printer manufacturer string.
+
+
+
+
+
+
+
+
+
+
+ Sets the underlying read timeout value.
+
+ The read timeout in milliseconds.
+ If an error occurs while attempting to set the read timeout.
+
+
+
+ For printers that support both Status and Printing channel (Link OS printers).
+
+
+
+
+ The status channel of a connection.
+
+
+
+
+ The printing channel of a connection.
+
+
+
+
+ Signals that an error has occurred on the connection.
+
+
+
+
+ onstructs a ConnectionException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a ConnectionException with cause as the source of the exception.
+
+ The cause of the exception.
+
+
+
+ Constructs a ConnectionException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception.
+
+
+
+ Defines methods used to reestablish a connection to a printer which may have been closed.
+
+
+
+
+ Reestablishes a connection to a printer which may have been closed due to an event, like a reboot.
+
+ Handles recreating and opening a connection to a printe.r
+ If the printer cannot be found.
+ If the connection can not be created or open.
+ If a connection can not be reestablished after a defined timeout
+ If the connection can not talk to the printer.
+
+
+
+ Abstract class which implements the default functionality of StatusConnection.
+
+
+
+
+
+
+
+
+ A connection to a device that copies data sent to the connection to the provided stream.
+
+
+
+
+ Sets the stream to log the write data to.
+
+ Log all write data to this stream.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ Number of bytes to read.
+ True to return on first read.
+ The bytes read from the printer.
+ If an I/O error occurs.
+
+
+
+ Reads maxBytesToRead of the available data from the connection.
+
+ Number of bytes to read.
+ The bytes read from the printer.
+ If an I/O error occurs
+
+
+
+ Gets or sets the maximum number of bytes to write at one time.
+
+
+
+
+ Returns the printer manufacturer name.
+
+
+
+
+ Sets the underlying read timeout value.
+
+ The timeout in milliseconds.
+ If an I/O error occurs
+
+
+
+ A wrapper class containing information about a connection.
+
+
+
+
+
+
+ The connection string
+
+
+
+
+
+ The data of the connection info
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Writes a byte stream representation of the file to destination.
+
+
+ Currently all files are retrieved in binary mode.
+
+ Stream to receive the contents of the file.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+ the error message
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UnknownHostException
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sets the sockets read/block timeout.
+
+ Timeout in ms
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An interface defining methods associated with a device that may be addressed via an IP connection.
+
+
+
+
+ Returns the address which was passed into the constructor.
+
+ the address used to establish this connection. This can be either a DNS Hostname or an IP address.
+
+
+
+ Returns the port number which was passed into the constructor.
+
+ the port number associated with the connection.
+
+
+
+ Signals that an error has occurred while writing to the connections log stream.
+
+
+
+
+ Constructs a LogStreamException with message as the detailed error message.
+
+ the error message.
+
+
+
+ Base class for Link-OS printers which support separate printing and status channels.
+
+
+ This class conforms to a standard and if only the Connection methods are used, the SDK will attempt to open
+ both the printing and status channels. A will use the raw Connection when a method is called directly.
+ Furthermore, when using a in conjunction with a , the will
+ attempt to use whichever connection is the most efficient. If you wish to only open up a specific channel, use either the
+ or
+ method and their corresponding
+ and
+ method.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Opens both the printing and status channel of this Multichannel connection.
+
+
+ If neither channel can be opened, then a is thrown. When this Multichannel connection is no longer needed, you must
+ call to free up system resources.
+
+
+
+
+
+ Opens the printing channel of this Multichannel connection.
+
+
+ If this method is called when this channel has already been opened, the call is ignored. When this channel is no longer needed, you must call either
+ or to free up system resources.
+
+ if the connection cannot be established.
+
+
+
+ Opens the status channel of this Multichannel connection.
+
+
+ If this method is called when this channel has already been opened, the call is ignored. When this channel is no longer needed, you must call either
+ or to free up system resources.
+
+ if the connection cannot be established.
+
+
+
+ Closes both the printing and status channels of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+
+
+
+
+ Closes the printing channel of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+ if an I/O error occurs.
+
+
+
+ Closes the status channel of this MultichannelConnection.
+
+
+ Releases any system resources associated with the connection. If the connection is already closed then invoking this method has no effect.
+
+ if an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the underlying printing of this MultichannelConnection.
+
+
+
+
+ Gets the underlying status of this MultichannelConnection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes a Multichannel TCP connection to a device.
+
+
+
+
+
+ The default Multichannel printing port for Link-OS devices.
+
+
+
+
+ The default Multichannel status port for Link-OS devices.
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data to be
+ received. If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ or
+
+
+ The discovered printer.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels. The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete. If you wish to specify different timeouts for each channel, use
+
+
+ The discovered printer.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels. The timeout is a maximum of
+ printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds for any data to be received on the printing/status
+ channels respectively.If no more data is available after printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData
+ milliseconds on the printing/status channels respectively the read operation is assumed to be complete.
+
+ The discovered printer.
+ The maximum time, in milliseconds, to wait for any data to be received on the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the status channel.
+ If discoveredPrinter is not a valid Link-OS printer.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any
+ data to be received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ or
+
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for both channels. The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received.If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete. If you wish to specify different timeouts for each channel, use
+
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Initializes a new instance of the MultichannelTcpConnection class.
+
+
+ This constructor will use the specified timeouts for for the channels. The timeout is a maximum of
+ printingChannelMaxTimeoutForRead/statusChannelMaxTimeoutForRead milliseconds for any data to be received on the printing/status
+ channels respectively.If no more data is available after printingChannelTimeToWaitForMoreData/statusChannelTimeToWaitForMoreData
+ milliseconds on the printing/status channels respectively the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The printing port number.
+ The status port number.
+ The maximum time, in milliseconds, to wait for any data to be received on the printing channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the printing channel.
+ The maximum time, in milliseconds, to wait for any data to be received on the status channel.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read on the status channel.
+
+
+
+
+
+
+
+
+
+
+ The Address, PrintingPort, and StatusPort are the parameters which were passed into the constructor.
+
+ TCP_MULTI:[Address]:[PrintingPort]:[StatusPort]
+
+
+
+ Return the IP address as the description.
+
+
+
+
+
+ An interface defining a method to validate whether a response from the printer is complete.
+
+
+
+
+ Provide a method to determine whether a response from the printer is a complete response.
+
+ string to be validated
+ true if the string is a complete response
+
+
+
+ A status connection to a Link-OS printer. The status connection requires Link-OS firmware 2.5 or higher. This
+ connection will not block the printing channel, nor can it print.
+
+
+
+
+ A status connection to a Link-OS printer. The status connection requires Link-OS firmware 2.5 or higher. This
+ connection will not block the printing channel, nor can it print.It copies data sent to the connection to the
+ provided stream.
+
+
+
+
+ Sets the stream to log the write data to.
+
+ Log all write data to this stream.
+
+
+
+ Establishes a TCP connection to a device.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ The default TCP port for ZPL devices.
+
+
+
+
+ The default TCP port for CPCL devices.
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the TcpConnection class.
+
+
+ This constructor will use the default
+ timeouts for . The default timeout is a maximum of 5 seconds for any data to be
+ received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+ .
+
+ the IP Address or DNS Hostname.
+ the port number.
+
+
+
+ Initializes a new instance of the TcpConnection class.
+
+
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after
+ timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Exposed this protected constructor for testing. We can pass in a mock Connector rather than the specific one
+
+
+
+
+ Returns TCP:[Address]:[PortNumber].
+
+ The address and port number are the parameters which were passed into the constructor.
+
+
+
+
+ Gets the IP address as the description.
+
+
+
+
+
+
+
+
+
+
+
+ Sets the read timeout on the underlying socket.
+
+ The read timeout in milliseconds
+
+
+
+
+
+
+
+
+
+ Establishes a status only TCP connection to a device
+
+
+
+
+
+ The default Status TCP port for ZPL devices.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class using the default status port of 9200.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data to be received.
+ If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The IP Address or DNS Hostname.
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class.
+
+
+ This constructor will use the default timeouts for . The default timeout is a maximum of 5 seconds for any data
+ to be received.If no more data is available after 500 milliseconds the read operation is assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ The IP Address or DNS Hostname.
+ The port number.
+
+
+
+ Initializes a new status only instance of the TcpStatusConnection class.
+
+
+ This constructor will use the specified timeouts for . The timeout is a maximum of
+ maxTimeoutForRead milliseconds for any data to be received. If no more data is available after timeToWaitForMoreData
+ milliseconds the read operation is assumed to be complete.
+
+ The IP Address or DNS Hostname.
+ The port number.
+ The maximum time, in milliseconds, to wait for any data to be received.
+ The maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ The address and port number are the parameters which were passed into the constructor.
+
+ TCP_STATUS:[address]:[port number]
+
+
+
+ Returns the IP address and the status port as the description.
+
+
+
+
+
+ An interface used to control and obtain various properties of a device.
+
+
+
+
+ This is an utility class for performing file operations on a device.
+
+
+
+
+
+ Sends the contents of a file to the device.
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.lbl").
+ Note: If the file contains data which will trigger a response from the printer (e.g. JSON formatted settings), this method
+ will not clear the response from the buffer. This may cause subsequent method calls to fail unpredictably. Clear the read buffer
+ of the connection manually by calling Read() if this is applicable.
+ If there is an issue communicating with the device (e.g. the connection is not
+ open).
+
+
+
+ Sends the contents of a file to the device.
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.lbl").
+ Callback to update on progress
+ Note: If the file contains data which will trigger a response from the printer (e.g. JSON formatted settings), this method
+ will not clear the response from the buffer. This may cause subsequent method calls to fail unpredictably. Clear the read buffer
+ of the connection manually by calling Read() if this is applicable.
+ If there is an issue communicating with the device (e.g. the connection is not
+ open).
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+ List of file names.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+ This method only returns files which have one of the extensions in extensions.
+ The extensions to filter on.
+ List of file names.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Retrieves the properties of the objects which are stored on the device.
+
+ The list of objects with their properties.
+ If there is an error connecting to the device.
+ If there is an error parsing the directory data returned by the device.
+
+
+
+ Utility class for performing file operations on a Zebra Link-OS™ printer.
+
+
+
+
+ Retrieves storage information for all of the printer's available drives.
+
+ A list of objects detailing information about the printer's available drives.
+
+
+
+
+ Stores the file on the printer using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead. These commands include download commands and any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ If there is an error connecting to the device.
+ If there is an issue reading the file
+ If filePath cannot be used to create a printer file name.
+
+
+
+ Stores the file on the printer at the specified location and name using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead. These commands include download commands and any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+ If there is an issue reading the file
+ If fileNameOnPrinter is not a legal printer file name.
+
+
+
+ Stores a file on the printer named fileNameOnPrinter with the file contents from
+ fileContents using any required file wrappers.
+
+
+ If the fileContents contains any commands which need to be processed by the printer,
+ use instead. These commands include download commands and any immediate
+ commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF, ~JG, ~JI,
+ ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The contents of the file to store.
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+ If fileNameOnPrinter is not a legal printer file name.
+
+
+
+ Deletes the file from the printer. The filePath may also contain wildcards.
+
+ The location of the file on the printer. Wildcards are also accepted (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error connecting to the device.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ The file contents
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system and writes the contents of that file to destinationStream.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ Output stream to receive the file contents
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system via FTP and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+ NOTE: This method retrieves files over a network protocol and hence will only work over a TCP connected
+ printer with FTP enabled. If ftpPassword is not provided, a default will be tried.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ The password used to login to FTP, if null, a default password ("1234") will be used.
+ The file contents.
+ If there is an error communicating with the printer, or the ftpPassword is invalid
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system via FTP and writes the contents of that file to destinationStream.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT.
+ Files transferred between different printer models may not be compatible.
+ NOTE: This method retrieves files over a network protocol and hence will only work over a TCP connected
+ printer with FTP enabled. If ftpPassword is not provided, a default will be tried.
+
+ The output stream to receive the file contents
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ The password used to login to FTP, if null, a default password ("1234") will be used.
+ If there is an error communicating with the printer, or the ftpPassword is invalid
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte array including
+ all necessary file wrappers for redownloading to a Zebra printer.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, TXT
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT")
+ A Zebra printer downloadable file content.
+ If there is an issue communicating with the device
+ (e.g. the connection is not open).
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+ A class used to assemble a profile efficiently.
+
+
+
+
+ Prepares the destination stream to receive the profile data.
+
+
+ This method must be called prior to calling any other method in this class.
+
+ The stream in which to put the profile.
+ must be called to get a valid profile in the destinationStream.
+
+
+
+
+ Method to add settings data to a profile.
+
+
+ The profile expects settings data to be valid JSON and of the form of the allconfig response.
+
+ The stream containing the settings data.
+ If there is an error adding settings to the profile.
+
+
+
+ Method to add alerts to a profile.
+
+ The stream containing the alerts data.
+ If there is an error adding alerts to the profile.
+
+
+
+ Adds data to supplement an existing printer profile.
+
+
+ Any supplemental data added to a profile, upon loading the profile, will be sent to the
+ printer after all other profile components have been applied.
+
+ The stream containing the supplement data.
+ If there is an error adding the supplement to the profile.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ The desired display name of the firmware file.
+ The stream containing the firmware.
+ If there is an error adding firmware to the profile.
+
+
+
+ Adds user files to the profile.
+
+ Files to add to the profile. Each file entry should contain the desired file name
+ and the a stream of the file's content.
+ If there is an error adding files to the profile.
+
+
+
+
+
+
+
+
+
+
+ Flushes remaining profile data to prepare the destination stream for closing.
+
+
+ This method must be called when you are done assembling all the parts of your profile,
+ and should only be invoked once.
+
+
+
+
+ Handler to retrieve the parts of the profile.
+
+
+
+
+
+ Callback fired when settings are retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the settings
+
+
+
+ Callback fired when alerts are retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the alerts
+
+
+
+ Callback fired when firmware is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the firmware
+
+
+
+ Callback fired when the firmware display name is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the firmware display name
+
+
+
+ Callback fired when the supplement is retrieved from a profile.
+
+ The profile stream.
+ If there is an error retrieving the supplement
+
+
+
+ Callback fired when a file is retrieved from a profile.
+
+ This will be called once for each user file in the profile.
+ The file name
+ The profile stream.
+ If there is an error retrieving the file
+
+
+
+ A class used to disassemble a profile efficiently.
+
+
+
+
+ Disassembles the profile and notifies the handler for all the profile parts.
+
+ The profile source stream.
+ Callback to retrieve the parts of the profile.
+ If there is an error disassembling the profile.
+
+
+
+ Provides access to the magnetic card reader, for devices equipped with one.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Activates the device's magnetic card reader, if present, and waits for a card to be swiped.
+
+
+ If the device does not have a reader the call will timeout.
+
+ The amount of time in milliseconds to enable the reader and wait for a card to be swiped.
+ An array of three strings corresponding to the tracks of the card. If a track could not be read that
+ string will be empty.
+
+
+
+ A class used to determine if a base has MagCard reader capabilities.
+ Not all Zebra printers are available with built-in readers.
+
+
+
+
+ Creates an instance of a Magcard reader, if available.
+
+ Base Zebra Printer that may or may not have MagCard reader capabilities.
+ An instance of a MagCardReader object or null if the base printer does not have MagCard reader hardware installed.
+
+
+
+ Interface to access the contents of a .zprofile file.
+
+
+
+
+
+ Create a Profile object backed by an existing .zprofile file.
+
+ Path to the profile file.
+ If the file pathToProfile does not exist.
+
+
+
+ Adds data to supplement an existing printer profile.
+
+
+ Any supplemental data added to a profile, upon loading the profile, will be sent to the printer
+ after all other profile components have been applied.
+
+ Byte array containing the data to be used to supplement the printer profile.
+ If there is an error writing to the .zprofile file.
+
+
+
+ Returns the supplement data within the profile.
+
+ The supplement data within the profile.
+ If there is an error writing to the .zprofile file.
+ If the .zprofile file cannot be found.
+
+
+
+ This method is not valid for a profile.
+
+
+ If this method is called.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ Full path to the firmware file to be added to the profile.
+ If there is an error reading pathToFirmwareFile or if there
+ is an error writing to the.zprofile file.
+
+
+
+ Adds a firmware file to an existing printer profile.
+
+
+ Upon loading the profile, if it contains a firmware file, the firmware will be sent to the printer
+ before all other profile components.
+
+ The name of the firmware file
+ The firmware file contents
+ If there is an error reading pathToFirmwareFile or if there
+ is an error writing to the.zprofile file.
+
+
+
+ Removes the firmware file from the profile.
+
+ If there is an error removing the firmware file from the .zprofile file.
+
+
+
+ Returns the file name of the firmware file within the profile.
+
+ The file name of the firmware file within the profile.
+ If there is an error removing the firmware file from the .zprofile file.
+ If the firmware file cannot be found in the .zprofile file.
+
+
+
+
+
+
+ Retrieve all of the setting identifiers for a profile.
+
+
+ These are the IDs that may be used as keys for retrieving and updating settings for a profile.
+
+ Set of identifiers available for a profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+
+ Retrieves the profile's setting value for a setting id.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieves the profile's setting values for a list of setting ids.
+
+ List of setting ids.
+ The settings' values.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieves all of the profile's setting values.
+
+ Values of all the settings provided by the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Change the value of the setting in the profile to the given value.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the setting is read only, does not exist, or if the setting could not be set.
+
+
+
+ Set more than one setting.
+
+ Map a setting ID to the new value for the setting.
+ If there is an error communicating with the printer.
+ If the settings cannot be saved in the profile.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Retrieve the values of all the settings that are archivable.
+
+ Values of all the settings with the archivable attribute that are in the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Retrieve the values of all the settings that are clonable.
+
+ Values of all the settings with the clonable attribute that are in the profile.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded.
+
+
+
+ Retrieves the profile's for a setting id.
+
+ The setting id.
+ The
+ If there is an error communicating with the printer.
+ If the setting could not be retrieved.
+
+
+
+ Change the setting in the profile.
+
+ The setting id.
+ The setting.
+ If there is an error communicating with the printer.
+ If the setting is malformed, or if the setting could not be set.
+
+
+
+ Change settings in the profile.
+
+ The settings to change
+ If there is an error communicating with the printer.
+ If a setting is malformed, or one or more settings could not be set.
+
+
+
+ Change or retrieve settings in the profile.
+
+ The settings to change.
+ results of the setting commands
+ If there is an error communicating with the printer.
+ If the setting is malformed, or if the setting could not be set.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A list of objects detailing the alert configurations in a profile.
+
+ A list of alert objects currently in a profile.
+ If the alerts could not be extracted from the profile.
+
+
+
+
+
+
+
+
+
+ Removes a configured alert from a profile.
+
+ They may be reconfigured via the setAlert methods.
+ The alert to be removed from the configuration.
+ If an I/O error occurs.
+
+
+
+ Removes all alerts currently in a profile.
+
+ They may be reconfigured via the setAlert(s) methods.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ This method is not valid for a profile.
+
+ Path to the file containing the data to send.
+ If this method is called.
+
+
+
+ This method is not valid for a profile.
+
+ Path to the file containing the data to send.
+ Progress monitor callback handler.
+ If this method is called.
+
+
+
+ Adds a file to the profile named fileNameOnPrinter with the file contents from
+ fileContents.
+
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ The contents of the file to send.
+ If an I/O error occurs.
+
+
+
+ Retrieves the names of the files which are in the profile.
+
+ List of file names.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+
+ This method only returns files which have one of the extensions in extensions.
+
+ The extensions to filter on.
+ List of file names.
+
+
+
+ Stores the file in the profile using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ If there is an error connecting to the device.
+ If filePath cannot be used to create a printer file name.
+
+
+
+ Stores the file in the profile at the specified location and name using any required file wrappers.
+
+
+ If the contents of filePath contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The full file path (e.g. "C:\\Users\\%USERNAME%\\Documents\\sample.zpl").
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+
+
+
+ Stores a file in the profile named fileNameOnPrinter with the file contents from
+ fileContents using any required file wrappers.
+
+
+ If the fileContents contains any commands which need to be processed by the
+ printer, use instead! These commands include download commands any
+ immediate commands(~CC, ~CD, ~DB, ~DE, ~DG, ~DY, ~EG, ~HI, ~HU, ~HM, ~HQ, ~HS, ~JA, ~JB, ~JC, ~JD, ~JE, ~JF,
+ ~JG, ~JI, ~JL, ~JN, ~JO, ~JP, ~JQ, ~JR, ~JS, ~JX, ~NC, ~NT, ~PL, ~PP, ~PR, ~PS, ~RO, ~SD, ~TA, ~WC, ~WQ, ^DF)
+
+ The contents of the file to store.
+ The full name of the file on the printer (e.g "R:SAMPLE.ZPL").
+ If there is an error connecting to the device.
+
+
+
+ Deletes the file from the profile. The filePath may also contain wildcards.
+
+ The location of the file on the printer. Wildcards are also
+ accepted (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error accessing the profile.
+
+
+
+ Retrieves a file from the profile and returns the contents of that file as a byte array.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, BAE, TXT.
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ The file contents
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+
+
+
+ This method is not valid for a profile.
+
+ NA
+ NA
+ NA
+ If this method is called.
+
+
+
+ This method is not valid for a profile.
+
+ NA
+ NA
+ NA
+ If this method is called.
+
+
+
+ Retrieves a file from the profile and returns the contents of that file as a byte array including all necessary
+ file wrappers for re-downloading to a Zebra printer.
+
+
+ Will retrieve the following file extensions: ZPL, GRF, DAT, BAS, FMT, PNG, LBL, PCX, BMP, WML, CSV, HTM, BAE, TXT
+ Files transferred between different printer models may not be compatible.
+
+ The absolute file path on the printer ("E:SAMPLE.TXT").
+ A Zebra printer downloadable file content.
+ If the filePath is invalid, or if the file does not exist on the printer.
+
+
+
+
+
+
+ Class which allows you to store a zprofile to a mirror server.
+
+
+
+
+ Creates an instance of a class which can be used to store a profile onto a mirror server.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile).
+ If an I/O error occurs.
+
+
+
+ Stores the profile to the mirror server.
+
+
+ This method also deletes all files in appl/, commands/, and files/ directory before storing
+ the contents of the profile in the proper directories.
+
+ The FTP server path.
+ The FTP user name. (The user should have read/write/create/delete access.)
+ The FTP password.
+ A list of the errors that happened while uploading settings and files.
+ If an I/O error occurs.
+ If the profile is not found.
+ If an I/O error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handler to monitor long-running file operations.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Callback to notify the user as to the progress of the how many bytes have been sent.
+
+
+ Bytes currently written
+ Total bytes to send
+
+
+
+ Provides access to the smartcard reader, for printers equipped with one.
+
+ Not all Zebra printers are available with built-in readers.
+
+
+
+ Sends a CT_ATR command to the printer's smartcard reader, if present.
+
+ A byte array containing the response from the smartcard reader.
+ If an I/O error occurs.
+
+
+
+ Sends a CT_DATA command to the printer's smartcard reader, if present.
+
+ Data to be sent to the smartcard using the CT_DATA card command.
+ A byte array containing the response from the smartcard reader.
+ If an I/O error occurs.
+
+
+
+ Turns the printer's smartcard reader off, if present.
+
+ This call should be made after communicating with the smartcard via the method.
+
+
+
+ A class used to determine if a base ZebraPrinter has Smartcard reader capabilities.
+
+ Not all Zebra printers are available with built-in readers.
+
+
+
+ Creates an instance of a Smartcard reader, if available.
+
+ Base ZebraPrinter that may or may not have Smartcard reader capabilities.
+ An instance of a SmartcardReader object or null if the base printer does not have Smartcard reader
+ hardware installed.
+
+
+
+ Signals that an illegal argument was used.
+
+
+
+
+ Constructs a ZebraIllegalArgumentException with message as the detailed error message
+
+ the error message
+
+
+
+ Constructs a ZebraIllegalArgumentException with message as the detailed error message
+
+ the error message
+ The name of the parameter that caused the exception.
+
+
+
+ Constructs a ZebraIllegalArgumentException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception.
+
+
+
+ Constructs a ZebraIllegalArgumentException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The name of the parameter that caused the exception.
+ The cause of the exception.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Contains methods used to query attributes of an image formatted for a Zebra printer.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ A row of image data.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+ True if the image was scaled.
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ Contains methods used to query attributes of an image formatted for a Zebra printer.
+
+ see ZebraImageFactory" for how to create an image.
+
+
+
+ Gets the image's height in pixels.
+
+
+
+
+ Gets the image's width in pixels.
+
+
+
+
+ This is an utility class for getting/setting alerts on a printer.
+
+
+
+
+
+ A list of objects detailing the alert configuration of a printer.
+
+ A list of alert objects currently configured on the printer.
+
+
+
+
+
+ Configures an alert to be triggered when the alert's condition occurs or becomes resolved.
+
+ The alert to trigger when it's condition occurs or becomes resolved.
+
+
+
+
+ Configures a list of alerts to be triggered when their conditions occur or become resolved.
+
+ The list of alerts to trigger when their conditions occur or become resolved.
+
+
+
+
+ Removes a configured alert from a printer. They may be reconfigured via the configureAlert(s) methods.
+
+ Alert to be removed from the configuration
+
+
+
+
+ Removes all alerts currently configured on a printer. They may be reconfigured via the configureAlert(s) methods.
+
+
+
+
+
+ A class used to print template formats using comma separated values as input data.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The connection string.
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+
+
+
+ Print template formats using comma separated values as input data.
+
+ The connection string.
+ The source stream containing the CSV data.
+ The template to merge the CSV data to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs.
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Container holding information about a discovered printer.
+
+
+
+
+ Creates a connection based on the information in the DiscoveredPrinter response.
+
+ a Connection to the discovered printer
+
+
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+
+
+
+
+
+ Creates an object holding information about a discovered printer.
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+ MAC address, IP Address, or local name of printer.
+
+
+
+
+ For TCP, this returns the IP Address. For driver, this returns the local printer name.
+
+
+
+
+ Returna a Dictionary of all settings obtained via the chosen discovery method.
+
+
+ The names of the settings will vary depending upon the type of connection to the printer. The following example
+ shows how to list all the properties of the discovered printer with the respective value.
+
+
+ foreach (string settingsKey in printer.DiscoveryDataMap.Keys) {
+ System.Diagnostics.Debug.WriteLine("Key: " + settingsKey + " Value: " + printer.DiscoveryDataMap[settingsKey]);
+ }
+
+ containing available attributes of the discovered printer.
+
+
+
+ Returns true if two discovered printer objects have the same address, otherwise it returns false.
+
+ DiscoveredPrinter object to compare against.
+ true if equal
+
+
+
+
+ Returns a hash code for this DiscoveredPrinter.
+
+ The hash code
+
+
+
+
+ DiscoveredPrinterFilter is an interface to allow the user to write custom code to determine
+ whether or not a DiscoveredPrinter should be included in the discovery result.
+
+
+
+
+ Method called by a discovery operation to determine whether or not the should be added to
+ the list of discovered devices.
+
+ DiscoveredPrinter to potentially be added to the list of of discovered devices.
+ A bool indicating whether or not the device should be added.
+
+
+
+ Instance of that is returned when performing a network discovery.
+
+
+
+
+ Returns an instance of a DiscoveredPrinterNetwork with address and port.
+
+ The address of the discovered network printer
+ The active raw port of the discovered network printer
+
+
+
+ Returns an instance of a DiscoveredPrinterNetwork built using the provided attributes.
+
+ A map of attributes associated with the discovered network printer
+
+
+
+
+
+
+
+
+
+ Returns a hash code for this DiscoveredPrinter.
+
+
+
+
+
+ Signals that there was an error during discovery.
+
+
+
+
+ Constructs a DiscoveryException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Interface definition for a callback to be invoked for printer discovery events
+
+
+
+
+
+ This method is invoked when a printer has been discovered. This method will be invoked for each printer that is found.
+
+ a discovered printer.
+
+
+
+ This method is invoked when discovery is finished.
+
+
+
+
+ This method is invoked when there is an error during discovery. The discovery will be cancelled when this method
+ is invoked. will not be called if this method is invoked.
+
+ the error message.
+
+
+
+ Class definition for a callback to be invoked for Link-OS™ printer discovery events.
+
+
+
+
+
+
+ Creates a DiscoveryHandler which will only report back Link-OS™ printers.
+
+ Base discovery handler for callbacks.
+
+
+
+ This method is invoked when there is an error during discovery. The discovery will be cancelled when this method
+ is invoked. will not be called if this method is invoked.
+
+ The error message.
+
+
+
+ This method is invoked when discovery is finished.
+
+
+
+
+ This method is invoked when a Link-OS™ printer has been discovered. This method will be invoked for each printer
+ that is found.
+
+ A discovered Link-OS™ printer.
+
+
+
+ Signals that there was an error during discovery packet decoding
+
+
+
+
+ Constructs a DiscoveryPacketDecodeException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Defines functions used when discovering information about a printer.
+
+
+
+
+
+ Decodes the provided MIME encoded discovery packet and returns a discovery data map
+
+ A Base64 encoded discovery packet
+ A discovery data map representative of the provided packet
+ If provided a malformed discovery packet
+
+
+
+ Reads the discovery packet from the provided connection and returns a discovery data map
+
+ A to a printer
+ A discovery data map representative of the provided packet
+ If an I/O error occurs.
+ If provided a malformed discovery packet
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class used to decode a Zebra discovery packet
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ Class used to decode a Zebra discovery packet
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+ A class used to discover printers on an IP Network.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Sends a discovery packet to the IPs specified in the subnetRange.
+
+
+ Subnet searches are defined by the first three subnet octets, followed by a range, such as 192.168.2. This method accepts IP addresses of the form,
+ assuming a subnet of 192.168.2:
+
+ - 192.168.2.254 (will send a discovery packet to 192.168.2.254)
+ - 192.168.2.* (will send a discovery packet for the range 192.168.2.1 - 192.168.2.254)
+ - 192.168.2.8-* (will send a discovery packet for the range 192.168.2.8 - 192.168.2.254)
+ - 192.168.2.37-42 (will send a discovery packet for the range 192.168.2.37 - 192.168.2.42)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The subnet search range.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery packet to the IPs specified in the subnetRange.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ Subnet searches are defined by the first three subnet octets, followed by a range, such as 192.168.2. This method accepts IP
+ addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.254 (will send a discovery packet to 192.168.2.254)
+ - 192.168.2.* (will send a discovery packet for the range 192.168.2.1 - 192.168.2.254)
+ - 192.168.2.8-* (will send a discovery packet for the range 192.168.2.8 - 192.168.2.254)
+ - 192.168.2.37-42 (will send a discovery packet for the range 192.168.2.37 - 192.168.2.42)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The subnet search range.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a directed broadcast discovery packet to the subnet specified by ipAddress.
+
+
+ Directed broadcasts are defined by the first three subnet octets, followed by 255, such as 192.168.2.255. This method
+ accepts IP addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.255
+ - 192.168.2.1 (last octet will be replaced with 255)
+ - 192.168.2 (will append 255 for the last octet)
+ - 192.168.2. (will append 255 for the last octet)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The IP address of the subnet.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a directed broadcast discovery packet to the subnet specified by ipAddress.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ Directed broadcasts are defined by the first three subnet octets, followed by 255, such as 192.168.2.255. This method accepts
+ IP addresses of the form, assuming a subnet of 192.168.2:
+
+ - 192.168.2.255
+ - 192.168.2.1 (last octet will be replaced with 255)
+ - 192.168.2 (will append 255 for the last octet)
+ - 192.168.2. (will append 255 for the last octet)
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The IP address of the subnet.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a local broadcast packet.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a local broadcast packet.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a multicast discovery packet.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+ For Android users : some extra code is required to obtain a multicast lock. See the example in
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The number of hops.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a multicast discovery packet.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+ For Android users : some extra code is required to obtain a multicast lock. See the example in
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ The number of hops.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ This method will search the network using a combination of discovery methods to find printers on the network.
+
+
+ This is a convenience method that can be used as an alternative to the other discovery methods (e.g. multicast).
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery request to the list of printer DNS names or IPs in printersToFind.
+
+
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A list of IP addresses or DNS names for the printers to be discovered.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Sends a discovery request to the list of printer DNS names or IPs in printersToFind.
+
+
+ This method will wait up to waitForResponsesTimeout milliseconds determining that there are no more discovery responses.
+ This method will invoke the method for each printer that is found during discovery.
+ will be invoked when the discovery is finished and
+ will be invoked when any errors are encountered during discovery. When is invoked, the discovery
+ will be canceled and will not be invoked.
+ If a printer responds to the discovery request more than once, the method will only be invoked
+ on the first occurrence.
+
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+ A list of IP addresses or DNS names for the printers to be discovered.
+ Time to wait, in milliseconds, before determining that there are no more discovery responses.
+ If an error occurs while starting the discovery (errors during discovery will be sent via .
+
+
+
+ Drive types.
+
+
+
+
+ Onboard flash drive.
+
+
+
+
+ RAM Drive.
+
+
+
+
+ Removable mass storage drive.
+
+
+
+
+ Unknown drive.
+
+
+
+
+ Read only drive.
+
+
+
+
+ This class is used to describe format variable fields.
+
+
+ For example, in CPCL, the following format will contain 2 .
+
+ ! DF SHELF.FMT
+ ! 0 200 200 210 1
+ CENTER
+ TEXT 4 3 0 15 \\
+ TEXT 4 0 0 95 \\
+ FORM
+ PRINT
+
+
+ The first will contain a fieldNumber of 1, and a fieldName of
+ null. The second will contain a fieldNumber of 2, and a fieldName of null.
+
+ In ZPL, the following ^FN command will contain 2 .
+
+
+ ^XA
+ ^DFR:SHELF.ZPL^FS
+ ^FO25,25^A0N,50,50^FN15"Name"^FS
+ ^FO25,75^A0N,50,50^FN15"Address"^FS
+ ^FO25,125^A0N,50,50^FN18^FS
+ ^FO25,175^A0N,50,50^FN15
+ ^XZ
+
+
+ The first will contain a fieldNumber of 15, and a fieldName of
+ "Address". The second will contain a fieldNumber of 18, and a fieldName of null.
+ Note: If a label format contains multiple Field Numbers, only 1 will be returned since the data will be shared
+ by all variables with the number. The portion of the variable will be the
+ last one in the format, unless it is not present.For example, in the format above, there are 3 ^FN15's. The
+ first 2 have a "prompt" parameter, the third does not. The second one, "Address", overwrites the first one, "Name".
+ The third one is not present, so the previous one, "Address", is preserved.
+
+
+
+
+ Create a descriptor for a field
+
+ The number of the field.
+ The name of the field, or null if not present.
+
+
+
+ In CPCL, this number will be the number of the variable field in the format. The fields are numbered starting at 1.
+ In ZPL, this number will correspond to the ^FN number.
+
+
+
+
+ In CPCL, this field is always null.
+ In ZPL, this field will correspond to the optional name parameter of the ^FN command, or null if the parameter is not present
+
+
+
+
+
+
+
+ Options for deleting files when loading profiles to a Zebra printer.
+
+
+
+
+ Attempts to delete all files from the printer. (Persistent files, hidden files, and System files will not be deleted.)
+
+
+
+
+ Will attempt to delete only the file types which are copied at profile/backup creation time.
+
+
+
+
+ Will not attempt to delete any files.
+
+
+
+
+ Handler class is used to update status while performing a firmware download and to notify the caller when the printer
+ has reconnected after restarting.
+
+
+
+
+ Default constructor.
+
+
+
+
+ Called when the firmware download completes.
+
+
+
+
+ Called when the printer is back online and has been rediscovered.
+
+ The printer object which came back online.
+ The new firmware version on the printer.
+
+
+
+ Callback to notify the user of the firmware updating progress.
+
+ The total number of bytes written to the printer.
+ The total number of bytes to be written to the printer.
+
+
+
+ Handler class is used to update status while performing a firmware download.
+
+
+
+
+ Callback to notify the user of the firmware updating progress.
+
+ This is called for every 4K bytes written out.
+ Total number of bytes written to the printer.
+ Total number of bytes to be written to the printer.
+
+
+
+ Called when the firmware download completes. The printer will then begin flashing the firmware to memory followed
+ by a reboot.
+
+
+
+
+ This is the interface for updating firmware on a Link-OS™ printer.
+
+
+
+
+ Update firmware on the printer using the default timeout of 10 minutes.
+
+
+ If the firmware currently on the printer has the same version number as the
+ firmware file, the firmware will not be sent to the printer.
+
+
+ File path of firmware file.
+ Callback for firmware updating status
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer using the specified timeout.
+
+
+ If the firmware currently on the printer has the same version number as the firmware file, the firmware will not be sent to the printer.
+
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum will be
+ used instead.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer, using the default timeout of 10 minutes, regardless of the firmware version
+ currently on the printer.
+
+ File path of firmware file.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ Update firmware on the printer, using the specified timeout, regardless of the firmware version
+ currently on the printer.
+
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum will be
+ used instead.
+ Callback for firmware updating status.
+ If the connection can not be opened, is closed prematurely, or connection cannot be
+ established after firmware download is complete.
+ If the printer language can not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ Firmware file not found.
+
+
+
+ A class used to convert TrueType® fonts for use on ZPL printers.
+
+
+
+
+ Returns a Stream which provides the TTF header information as determined from the source stream.
+
+ Stream containing TrueType® font data
+ Location of the font file on the printer.
+ Header information for the provided stream
+
+
+
+ Returns a Stream which provides the TTE header information as determined from the source stream.
+
+ Stream containing TrueType® font data
+ Location of the font file on the printer.
+ Header information for the provided stream
+
+
+
+ Converts a native TrueType® font to a ZPL TTF format.
+
+ Path to a TrueType® font.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+ If the source file is not found
+
+
+
+ Converts a native TrueType® font to a ZPL TTF format.
+
+ Stream containing the TrueType® font data.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+
+
+
+ Converts a native TrueType® font to a ZPL TTE format.
+
+ Path to a TrueType® font.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+ If the source file is not found
+
+
+
+ Converts a native TrueType® font to a ZPL TTE format.
+
+ Stream containing the TrueType® font data.
+ Destination stream for converted ZPL.
+ Location to save the font file on the printer.
+
+
+
+ Defines functions used for downloading fonts to Zebra printers.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Path to a TrueType® font to be added to the profile.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font file to a profile and stores it at the specified path as a TTF.
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Adds a TrueType® font to a profile and stores it at the specified path as a TrueType® extension (TTE).
+
+ Input Stream containing the font data.
+ Location to save the font file in the profile.
+ If an I/O error occurs.
+
+
+
+ Defines functions used for interacting with printer formats.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Retrieves a format from the printer.
+
+
+ On a LinkOS/ZPL printer, only .ZPL files are supported. On a CPCL printer, only .FMT and .LBL files are supported.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ The contents of the format file.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+
+
+
+ Retrieves a format from the printer.
+
+
+ On a LinkOS/ZPL printer, only .ZPL files are supported. On a CPCL printer, only .FMT and .LBL files are supported.
+
+ The format.
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the array.
+
+
+ The values of any format variables will be encoded using the default encoding type. On a LinkOS/ZPL printer, only ZPL formats
+ are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The name of the format on the printer, including the extension (e.g. "E:FORMAT.ZPL").
+ An array of strings representing the data to fill into the format. For LinkOS/ZPL printer formats,
+ index 0 of the array corresponds to field number 2 (^FN2). For CPCL printer formats, the variables are passed in
+ the order that they are found in the format.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the array.
+
+
+ The values of any format variables will be encoded using the provided encoding type.eg.UTF-8. On a LinkOS/ZPL printer, only
+ ZPL formats are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ An array of strings representing the data to fill into the format. For LinkOS/ZPL printer formats,
+ index 0 of the array corresponds to field number 2 (^FN2). For CPCL printer formats, the variables are passed in
+ the order that they are found in the format.
+ A character-encoding name (eg. UTF-8).
+ If an I/O error occurs.
+ If the encoding is not supported.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the default encoding type. On a LinkOS/ZPL printer, only ZPL formats
+ are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For LinkOS/ZPL printer formats, the
+ key number should correspond directly to the number of the field in the format.For CPCL printer formats, the
+ values will be passed in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the provided encoding type.eg.UTF-8. On a LinkOS/ZPL printer, only
+ ZPL formats are supported.On a CPCL printer, only CPCL formats are supported.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For LinkOS/ZPL printer formats, the
+ key number should correspond directly to the number of the field in the format.For CPCL printer formats, the
+ values will be passed in ascending numerical order.
+ A character-encoding name (e.g. UTF-8).
+ If an I/O error occurs.
+ If the encoding is not supported.
+
+
+
+ Returns a list of descriptors of the variable fields in this format.
+
+
+ On a LinkOS/ZPL printer, only ZPL formats are supported. On a CPCL printer, only CPCL formats are supported.
+
+ The contents of the recalled format.
+ A list of field data descriptors. For a CPCL printer, the nth element of the list will contain the
+ integer n and no name. For a LinkOS/ZPL printer, each element will contain an ^FN number and a variable name if
+ present. If the format contains multiple ^FNs with the same number, only the last one will be in the result.
+ See for an example of how variable fields look.
+
+
+
+
+ Defines functions used for interacting with Link-OS™ printer formats.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the default encoding type.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionary.
+
+
+ The values of any format variables will be encoded using the provided encoding type. eg.UTF-8.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ A character-encoding name (e.g. UTF-8)
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionaries.
+
+
+ The images stored in imgVars will first be dithered and then sent down the the printer as SDK01.GRF-SDK99.GRF. These GRF
+ files will then be used when printing the format and overwritten each time the method is called with new images. The values of any
+ format variables will be encoded using the default encoding type.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the images to be used in the stored format. For ZPL
+ formats, the key number should correspond directly to the number of the field in the format. For CPCL formats,
+ the values will be passed in ascending numerical order.
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ If an I/O error occurs.
+
+
+
+ Prints a stored format on the printer, filling in the fields specified by the Dictionaries.
+
+
+ The images stored in imgVars will first be dithered and then sent down the the printer as SDK01.GRF-SDK99.GRF.
+ These GRF files will then be used when printing the format and overwritten each time the method is called with new
+ images. The values of any format variables will be encoded using the provided encoding type. eg. UTF-8.
+ See for more information about encoding types.
+
+ The location of the file on the printer (e.g. "E:FORMAT.ZPL").
+ A Dictionary which contains the key/value pairs for the images to be used in the stored format. For ZPL
+ formats, the key number should correspond directly to the number of the field in the format. For CPCL formats,
+ the values will be passed in ascending numerical order.
+ A Dictionary which contains the key/value pairs for the stored format. For ZPL formats, the key number
+ should correspond directly to the number of the field in the format. For CPCL formats, the values will be passed
+ in ascending numerical order.
+ A character-encoding name (e.g. UTF-8)
+ If an I/O error occurs.
+
+
+
+ This is an utility class for printing images on a device.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Prints an image from the connecting device file system to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ Image file to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ If an I/O error occurs.
+ When the file could not be found, opened, or is an unsupported graphic.
+
+
+
+ Prints an image from the connecting device file system to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ Image file to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ Desired width of the printed image. Passing a value less than 1 will preserve original width.
+ Desired height of the printed image. Passing a value less than 1 will preserve original height.
+ Boolean value indicating whether this image should be printed by itself (false), or is part
+ of a format being written to the connection (true).
+ If an I/O error occurs.
+ When the file could not be found, opened, or is an unsupported graphic.
+
+
+
+ Prints an image to the connected device as a monochrome image.
+
+
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or
+ throw an .
+
+ The image to be printed.
+ Horizontal starting position in dots.
+ Vertical starting position in dots.
+ Desired width of the printed image. Passing a value less than 1 will preserve original width.
+ Desired height of the printed image. Passing a value less than 1 will preserve original height.
+ Boolean value indicating whether this image should be printed by itself (false), or is part
+ of a format being written to the connection (true).
+ If an I/O error occurs.
+
+
+
+ Stores the specified image to the connected printer as a monochrome image.
+
+
+ The image will be stored on the printer at printerDriveAndFileName with the extension GRF.
+ If a drive letter is not supplied, E will be used as the default (e.g. FILE becomes E:FILE.GRF). If an extension is supplied,
+ it is ignored if it is not either BMP or PNG. If the extension is ignored, GRF will be used.
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or throw an .
+
+ Path on the printer where the image will be stored.
+ The image to be stored on the printer.
+ Desired width of the printed image, in dots. Passing -1 will preserve original width.
+ Desired height of the printed image, in dots. Passing -1 will preserve original height.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+ If printerDriveAndFileName has an incorrect format.
+
+
+
+ Stores the specified image to the connected printer as a monochrome image.
+
+
+ The image will be stored on the printer at printerDriveAndFileName with the extension GRF.
+ If a drive letter is not supplied, E will be used as the default (e.g. FILE becomes E:FILE.GRF). If an extension is supplied,
+ it is ignored if it is not either BMP or PNG. If the extension is ignored, GRF will be used.
+ If the image resolution is large (e.g. 1024x768) this method may take a long time to execute or throw an .
+
+ Path on the printer where the image will be stored.
+ The image file to be stored on the printer.
+ Desired width of the printed image, in dots. Passing -1 will preserve original width.
+ Desired height of the printed image, in dots. Passing -1 will preserve original height.
+ If there is an issue communicating with the printer (e.g. the connection is not open).
+ If printerDriveAndFileName has an incorrect format.
+ If the file could not be found, opened, or is an unsupported graphic.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Look through the result of a directory listing and extract the file name, drive letter, and extension for each
+ file in the listing.
+
+ The result of ^HZL, JSON file.drive_listing, or file.dir SGD.
+ A list (element type PrinterFileProperties) of file information.
+ If there is an error parsing the directory data returned by the printer.
+
+
+
+ Look through the result of a ^HZL and extract the file name, drive letter, and extension for each file in the listing.
+
+ The result of ^HZL.
+ A list (element type PrinterFileProperties) of file information.
+ If there is an error parsing the directory data returned by the printer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Utility methods for firmware files.
+
+
+
+
+ Given the contents of a firmware file, extract the firmware version string.
+
+
+ If the contents are not valid or if the version cannot be extracted, an empty string is returned.
+
+ Input stream containing the contents of a firmware file.
+ The version string, or an empty string.
+
+
+
+
+ Extract the firmware version from a firmware file input stream and return false if that version matches the
+ firmware on the connected printer.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Input stream containing the contents of a firmware file.
+ A connection to a printer
+ True if the firmware versions don't match
+ If there was an issue communicating with the printer.
+
+
+
+ Extract the firmware version from a firmware file input stream, and return false if that version matches the versionFromPrinter.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Input stream containing the contents of a firmware file.
+ Version of firmware that is already on the printer.
+ True if the firmware versions don't match
+
+
+
+ Extract the firmware version from a firmware file input stream, and return false if that version matches the versionFromPrinter.
+
+
+ Match is done ignoring whether there is a Z (indication that ZBI is disabled) in either version string. Match is case insensitive.
+
+ Version of firmware that has already been extracted from the file.
+ A connection to a printer
+ True if the firmware versions don't match
+
+
+
+ Get the firmware version from the connected printer.
+
+ A connection to a printer.
+ The firmware version of the printer.
+ If there was an issue communicating with the printer."
+
+
+
+ Compare two firmware version strings.
+
+
+ If the only difference is that ZBI is enabled for one version but not the other, they are still considered to match.Matching is case insensitive.
+
+ One version string.
+ The other version string.
+ True if the versions match.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Search formatString, starting at index searchIx, for a ^FN, ^CC or ~CC command. Search is case insensitive. caret is the command prefix.
+
+
+
+
+
+ {-1,unknownCommand} if none of the commands is found, otherwise the index where a command
+ was found, and the type of command that was found.
+
+
+
+ Search formatString, starting at index searchIx, for one of the commands in commandStrings. Search is case
+ insensitive. caret is the command prefix.
+
+
+
+
+ {-1,unknownCommand} if none of the commands is found, otherwise the index where a command
+ was found, and the type of command that was found.
+
+
+
+ Represent a ZPL command type.
+
+
+
+
+ ^FN command
+
+
+
+
+ ^CC and ~CC commands
+
+
+
+
+ ^XG command
+
+
+
+
+ ^DF command
+
+
+
+
+ ^XA command
+
+
+
+
+ ^XZ command
+
+
+
+
+ everything else
+
+
+
+
+ the id, as a lower case string
+
+
+
+
+
+
+
+
+
+
+ Represent the index in a string where a ZPL command was found, and the type of the command at that spot.
+
+
+
+
+
+
+
+
+
+
+ Gets the index
+
+
+
+
+ Gets the command
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A container class used to hold Link-OS specific information
+
+
+
+
+ Creates a container class to hold Link-OS information.
+
+ the Link-OS major version number
+ the Link-OS minor version number
+
+
+
+ Creates a container class to hold Link-OS information.
+
+ e.g. ("2.1", "3.0")
+
+
+
+ Creates a container class to hold Link-OS information based on the supplied discoveredPrinter.
+
+ A discovered printer.
+
+
+
+ Gets the Link-OS major version number
+
+
+
+
+ Gets the Link-OS minor version number
+
+
+
+
+ Signals that a Link-OS™ operation has been attempted on a non-Link-OS™ printer.
+
+
+
+
+ Constructs a NotALinkOsPrinterException with "This is not a Link-OS™ printer" as
+ the detailed error message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defines a printer alert.
+
+ Applicable only to ZPL printers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates an instance of a PrinterAlert object.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+
+
+
+ Creates an instance of a PrinterAlert object, including a Set-Get-Do name.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If condition is SGD_SET, the name of the Set-Get-Do to be monitored.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+
+
+
+ Creates an instance of a PrinterAlert object, including the printer alert text.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+ The text received from the printer.
+
+
+
+ Creates an instance of a PrinterAlert object, including a Set-Get-Do name and the printer alert text.
+
+ The printer condition that will trigger the alert.
+ The destination that the alert will be sent to.
+ If condition is SGD_SET, the name of the Set-Get-Do to be monitored.
+ If true, the alert will be triggered when the condition occurs.
+ If true, the alert will be triggered when the condition is cleared.
+ The destination address, if the destination requires one.
+ The destination port, if the destination requires one.
+ If true, the alert is quelled.
+ The text received from the printer.
+
+
+
+ Return the string representation of the alert destination for Set-Get-Do.
+
+
+
+
+ Return the AlertCondition of the alert.
+
+
+
+
+ Gets the current alert condition.
+
+
+
+
+ Return true if the alert is fired when 'set'.
+
+
+
+
+ Return alert will be triggered on 'clear'.
+
+
+
+
+ Return the string representation of the Set-Get-Do Name.
+
+
+
+
+ Return the AlertDestination used by the alert.
+
+
+
+
+ Return the destination where the alert should be sent, for example, an IP Address or an email address, depending
+ on the value of getDestinationAsSGDString.
+
+
+
+
+ Return the destination port number where the alert should be sent.
+
+
+
+
+ Return the quelling state of the alert.
+
+
+
+
+ Return the text received from the printer.
+
+
+
+
+ Enumeration of the various printer control languages supported by Zebra Printers.
+
+
+
+
+ Printer control language ZPL
+
+
+
+
+ Printer control language CPCL
+
+
+
+
+ Printer control language line_print mode.
+
+
+
+
+ Converts the string name to the appropriate enum value.
+
+
+ The name parameter accepts the value returned from the printer's 'device.langauges' SGD.
+
+ The printer control language name (e.g. "zpl", "cpcl", or "line_print")
+ The printer language
+ If the printer language cannot be determined.
+
+
+
+ The name of the printer language - (e.g. "ZPL" or "CPCL").
+
+ ZPL, CPCL, or LINE_PRINT
+
+
+
+ Container for properties of a printer object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets/sets the drive prefix with the trailing colon.
+
+
+
+
+ Gets/sets the file name.
+
+
+
+
+ Gets/sets the file extension.
+
+
+
+
+ Gets the full name of the file on the printer.
+
+
+
+
+ Gets/sets the size of the file in bytes
+
+
+
+
+ Gets/sets the 32-bit CRC value of the file.
+
+
+
+
+ Interface definition for a callback to be invoked when a printer comes back online and has been rediscovered.
+
+
+
+
+
+ Called when the printer is back online and has been rediscovered.
+
+ The printer object which came back online.
+ The new firmware version on the printer.
+
+
+
+ A class used to obtain the status of a Zebra printer.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ The print mode. For CPCL printers this is always
+
+
+
+
+ The length of the label in dots. For CPCL printers this is always 0.
+
+
+
+
+ The number of formats currently in the receive buffer of the printer. For CPCL printers this is always 0.
+
+
+
+
+ The number of labels remaining in the batch. For CPCL printers this is always 0.
+
+
+
+
+ true if there is a partial format in progress. For CPCL printers this is always false.
+
+
+
+
+ true if the head is cold. For CPCL printers this is always false
+
+
+
+
+ true if the head is open.
+
+
+
+
+ true if the head is too hot. For CPCL printers this is always false
+
+
+
+
+ true if the paper is out.
+
+
+
+
+ true if the ribbon is out.
+
+
+
+
+ true if the receive buffer is full. For CPCL printers this is always false
+
+
+
+
+ true if the printer is paused. For CPCL printers this is always false
+
+
+
+
+ true if the printer reports back that it is ready to print
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructs a PrinterStatus instance that can be used to determine the status of a printer.
+
+
+ This will only query the printer's status upon creation. If the status needs to be updated see
+
+ Connection to the target printer
+ If an I/O error occurs
+
+
+
+
+
+
+
+
+ This class is used to acquire a human readable string of the current errors/warnings stored in a
+ instance.
+
+
+
+
+
+ Message to indicate the head is open.
+
+
+
+
+ Message to indicate the head is too hot.
+
+
+
+
+ Message to indicate the paper is out.
+
+
+
+
+ Message to indicate the ribbon is out.
+
+
+
+
+ Message to indicate the receive buffer is full.
+
+
+
+
+ Message to indicate printer is paused.
+
+
+
+
+ Message to indicate printerStatus is null.
+
+
+
+
+ Used to acquire a human readable string of the current errors/warnings stored in printerStatus
+
+ an instance of that will be used to acquire the human readable string
+ of warnings/errors stored in printerStatus
+
+
+
+ Used to acquire a human readable string of the current errors/warnings passed to this instance.
+
+ A human readable string array of the current errors/warnings passed to this instance.
+
+
+
+ Numerous utilities to simplify printer operations.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Send contents of data directly to the device specified via connectionString using UTF-8 encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using UTF-8 encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Send contents of data directly to the device specified via connectionString using encoding.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Data to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If there is an error encoding data.
+ If there is an error communicating with the printer.
+
+
+
+ Retrieves a list of currently open tcp ports on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The port status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves status of the printer odometer which includes the total print length, head clean counter, label dot
+ length, head new, latch open counter, and both user resettable counters.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The odometer status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves status of the printer which includes any error messages currently set along with the number of labels
+ remaining in queue, number of labels remaining in batch, and whether or not a label is currently being processed.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The printer status.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves the quick status of the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Highest level error or "Ready to Print".
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Set the RTC time and date on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Format MM-dd-yyyy HH:mm:ss.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If the format of dateTime is invalid.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Deletes file(s) from the printer and reports what files were actually removed.
+
+
+ The filePath may also contain wildcards.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ The location of the file on the printer. Wildcards are also accepted. (e.g. "E:FORMAT.ZPL", "E:*.*")
+ An array of the files which were deleted.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If the format of dateTime is invalid.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Deletes file(s) from the printer and reports what files were actually removed.
+
+
+ The filePath may also contain wildcards.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ The location of the file on the printer. Wildcards are also accepted. (e.g. "E:FORMAT.ZPL", "E:*.*")
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves the names of the files which are stored on the device.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string. (May be null)
+ Filter for returned files. (e.g. "E:*.ZPL", "*:*.*", "R:MYFILE.*")
+ List of file names on the printer.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an error parsing the directory data returned by the device.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ File contents.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ Stream to receive file contents.
+ The connection string.
+ The file to retrieve. (e.g. "R:MYFILE.PNG")
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ Password to use for ftp, if null a default password will be used.
+ File contents.
+ If there is an error connecting to the device, or the ftp password is not correct.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Retrieves a file from the printer's file system and returns the contents of that file as a byte[].
+
+
+ Will retrieve the following file extensions: .FNT, .ZPL, .GRF, .DAT, .BAS, .STO, .PNG, .LBL, .TTF, .PCX, .BMP, .IMG, .TTE,
+ .WML, .CSV, .HTM, .BAE, .TXT.
+ See ConnectionBuilder for the format of connectionString.
+
+ Stream to receive the file contents.
+ The connection string.
+ File to retrieve. (e.g. "R:MYFILE.PNG")
+ Password to use for ftp, if null a default password will be used.
+ If there is an error connecting to the device, or the ftp password is not correct.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the filename is invalid or does not exist.
+
+
+
+ Update the printer firmware.
+
+
+ Download Firmware Here
+ See ConnectionBuilder for the format of connection
+
+ The connection string.
+ File path of firmware file.
+ Timeout in milliseconds. The minimum allowed timeout is 10 minutes (600000ms) due to the need to
+ reset the printer after flashing the firmware. If a timeout value less than the minimum is provided, the minimum
+ will be used instead.
+ If the connection can not be opened or is closed prematurely.
+ If the printer language could not be determined.
+ If an invalid firmware file is specified for the printer.
+ If an error occurs while waiting for the printer to come back online.
+ If the maximum timeout is reached prior to the printer coming back online with the new
+ firmware.
+ If the firmware file cannot be found or cannot be opened.
+
+
+
+ Encodes supplied image in either ZPL or CPCL after dithering and resizing.
+
+ The printer file path you wish to store the image to.
+ ZebraImage to be dithered and resized.
+ Stream to store encoded image data.
+ If the file type is not supported or an invalid image is supplied.
+ Could not read/write to file.
+
+
+
+ Encodes supplied image in either ZPL or CPCL after dithering and resizing.
+
+ The printer file path you wish to store the image to.
+ ZebraImage to be dithered and resized.
+ Width of the resulting image. If 0 the image is not resized.
+ Height of the resulting image. If 0 the image is not resized.
+ Stream to store converted image data encoded with the printers native
+ language.
+ If the file type is not supported or an invalid image is supplied.
+ Could not read/write to file.
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original configuration.
+ Some settings (such as I.P.address) which could conflict with the original printer will not be contained in the profile
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The location of where to store the profile.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ Could not interpret the response from the printer.
+ This feature is only available on Link-OS™ printers.
+
+
+
+
+ Create a backup of your printer's settings, alerts, and files.
+
+
+ A backup contains a snapshot of all pertinent settings to fully restore your printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The location of where to store the profile. The extension must be .zprofile; if it is not, the
+ method will change it to.zprofile for you.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ Could not interpret the response from the printer.
+ This feature is only available on Link-OS™ printers.
+
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ Increases the amount of detail presented to the user.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ Increases the amount of detail presented to the user.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue creating the profile.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Stores the file on the printer at the specified location and name using any required file wrappers.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ The path of the file to store.
+ The path on the printer.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ If there is an issue storing the file.
+ This feature is only available on Link-OS™ printers.
+ If there is an issue storing the file.
+
+
+
+ Resets the specified printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Resets the network of the specified printer.
+
+
+ Usually performed to enable changed network settings to take effect.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Restores the printer's settings to their factory default configuration.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Restores the printer's network settings to their factory default configuration.
+
+
+ Use caution when issuing this command because you may lose connectivity with your printer if your network requires non-default settings.
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a configuration label.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a network configuration label.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Causes the specified printer to print a directory listing of all the files saved on the printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+
+
+
+ Retrieve all settings and their attributes from the specified printer.
+
+
+ See ConnectionBuilder for the format of connectionString.
+
+ The connection string.
+ A map of setting names versus Setting objects from the printer specified in the connection string.
+ If there is an error connecting to the device.
+ If the printer language could not be determined.
+ This feature is only available on Link-OS™ printers.
+ If the settings could not be retrieved.
+
+
+
+ Returns a new instance of PrinterStatus that can be used to determine the status of a printer.
+
+
+ Each invocation of this method will result in a query of the connected printer. If more than one status value is to be
+ read, it is recommended that a copy of PrinterStatus is stored locally.
+ This method must be invoked again to retrieve the most up-to-date status of the printer. The
+ object will only query the printer upon creation.
+ Some Mobile printers (including the MZ series printers) will not communicate if the printer is not ready to print.
+ On these printers, status information is not available when, for example, the printer is out of paper. This method
+ will throw a if it is called when the printer cannot communicate.
+
+ Connection to the printer.
+ Printer control language to be used.
+ A new instance of PrinterStatus.
+ If there is an issue communicating with the printer (e.g.\u00a0the connection is not
+ open.)
+
+
+
+ Defines functions used for creating and applying profiles to a Zebra printer.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original
+ configuration. Some settings (such as I.P.address) which could conflict with the original printer will
+ not be contained in the profile.
+
+ Path on your local machine where you want to save the profile.
+ (e.g. /home/user/profile.zprofile). The extension must be.zprofile; if it is not, the method will
+ change it to .zprofile for you.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+ for loading a profile to another printer
+
+
+
+ Create a profile of your printer's settings, alerts, and files for cloning to other printers.
+
+
+ A profile contains setting values which can be used to clone another printer to match the original
+ configuration. Some settings (such as I.P.address) which could conflict with the original printer will
+ not be contained in the profile.
+
+ The destination stream where you want to write the profile.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+
+
+
+ Save a backup of your printer's settings, alerts, and files for later restoration.
+
+
+ A backup contains a snapshot of all pertinent settings to fully restore your printer.
+
+ Path on your local machine where you want to save the backup.
+ (e.g. /home/user/profile.zprofile). The extension must be.zprofile; if it is not, the method will
+ change it to .zprofile for you.
+ If the output file could not be created.
+ Could not interpret the response from the printer.
+ If there is an error communicating with the printer.
+ for loading the backup file to another printer
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a profile, and applies them to a printer.
+
+
+ Before doing so, it deletes the files described by filesToDelete from the printer.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ An enum describing which files to delete.
+ Increases the amount of detail presented to the user when loading firmware from the profile
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ This method will also delete all files on your printer before applying the backup.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ Takes settings, alerts, and files from a backup, and applies them to a printer.
+
+
+ his method will also delete all files on your printer before applying the backup.
+
+ Path to the profile to load. (e.g. /home/user/profile.zprofile)
+ Increases the amount of detail presented to the user when loading firmware from the profile
+ If the profile does not exist or could not be read.
+ If there is an error communicating with the printer.
+
+
+
+ A utility class used to wrap with a map and send settings commands to a connection.
+
+
+ Settings commands are accepted by Link-OS printers, version 1.0 and higher.
+
+
+
+
+
+ Sends the settingsToSet to the destinationDevice and then returns the updated setting values.
+
+ Due to the setting verification and validation, additional time and data traffic will be needed for each
+ SettingsSetter Process call. It is recommended to bundle all changing settings into one map and one
+ method call to reduce this overhead.
+
+ The connection string.
+ The settings map to send to the printer.
+ The settings' values after the map has been sent to the printer.
+ If there is an error communicating with the printer.
+ If the setting could not be set or retrieved.
+
+
+
+ A utility class used to wrap and send SGD commands to a connection.
+
+
+
+
+
+ Constructs an SGD SET command and sends it to the printer.
+
+
+ This method will not wait for a response from the printer.If the SGD SET command returns a response, the caller
+ is responsible for reading the data off of the connection.If a response is expected, consider using the analogous
+ command.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ if an I/O error occurs
+
+
+
+
+ Constructs an SGD SET command and sends it to the printer.
+
+
+ This method will not wait for a response from the printer. If the SGD SET command returns a response, the caller is
+ responsible for reading the data off of the connection. If a response is expected, consider using the analogous
+ command.
+
+
+
+
+ if an I/O error occurs
+
+
+
+
+ Constructs an SGD GET command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the connection to send the command to
+ the setting's value
+ if an I/O error occurs
+
+
+
+ Constructs an SGD GET command and sends it to the printer.
+
+
+ This method waits for a maximum of maxTimeoutForRead milliseconds for any data to be received.Once some data has been received it
+ waits until no more data is available within timeToWaitForMoreData milliseconds. This method returns the SGD value associated
+ with setting without the surrounding quotes.
+
+ the SGD setting
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ the setting's value
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ The response from the SGD DO command
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method write the SGD
+ value associated with setting, without the surrounding quotes, to responseData.
+
+ output stream to receive the response.
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within milliseconds. This method returns the
+ SGD value associated with setting without the surrounding quotes.
+
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ The response from the SGD DO command
+ if an I/O error occurs
+
+
+
+ Constructs an SGD DO command and sends it to the printer.
+
+
+ This method waits for a maximum of maxTimeoutForRead milliseconds for any data to be received. Once some data has been
+ received it waits until no more data is available within timeToWaitForMoreData milliseconds. This method write the SGD
+ value associated with setting without the surrounding quotes.
+
+ output stream to receive the response.
+ the SGD setting
+ the setting's value
+ the connection to send the command to
+ the maximum time, in milliseconds, to wait for a response from the printer
+ the maximum time, in milliseconds, to wait in-between reads after the initial data is received
+ if an I/O error occurs
+
+
+
+ A utility class used to remove quotes from an output stream
+
+
+
+
+ Constructs a QuoteRemovingOutputStream
+
+
+
+
+
+ Signals that an error has occurred when attempting to communicate with SNMP.
+
+
+
+
+ Constructs an SnmpException with message as the detailed error message.
+
+ The error message.
+
+
+
+ An instance of an SNMP only Zebra printer.
+
+ The printer does not make a raw port connection.
+
+
+
+
+ Creates an instance of a Zebra printer which is limited to only SNMP operations.
+
+
+ The SNMP get and set community names default to "public". If you wish to use other community names, use
+ .
+
+ The IP Address or DNS Hostname.
+ If there was an exception communicating over SNMP.
+
+
+
+ Creates an instance of a Zebra printer, with the given community names, which is limited to only SNMP operations.
+
+ The IP Address or DNS Hostname.
+ SNMP get community name.
+ SNMP set community name.
+ If there was an exception communicating over SNMP.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the value of the specified oid.
+
+ Object identifier.
+ The value of the OID.
+ If there was an exception communicating over SNMP.
+
+
+
+ Sets the value of the specified oid to valueToSet.
+
+ Object identifier.
+ The value to set the OID to.
+ If there was an exception communicating over SNMP
+
+
+
+ Sets the value of the specified oid to valueToSet.
+
+ Object identifier.
+ The value to set the OID to.
+ If there was an exception communicating over SNMP
+
+
+
+ Gets the SNMP get community name.
+
+
+
+
+ Gets the SNMP set community name.
+
+
+
+
+ A container class which holds information about various printer drives.
+
+
+
+
+ Creates an empty StorageInfo container
+
+
+
+
+ The drive's alphabetical identifier.
+
+
+
+
+ The type of drive. (e.g. flash, RAM)
+
+
+
+
+
+ The number of bytes remaining on the drive.
+
+
+
+
+ Bool defining whether or not files persist across printer reboots.
+
+
+
+
+ Class for describing the status of ports open on a Zebra printer.
+
+
+
+
+ Creates a container which describes the status of a specific port on a Zebra printer.
+
+ The printer's port.
+ The name of the protocol used by the port.
+ Remote IP connected to the port.
+ Remote port number.
+ Port status.
+
+
+
+ The port number open on the printer.
+
+
+
+
+ The name of the protocol associated with that port, for example, HTTP for 80, FTP for 21.
+
+
+
+
+ The remote IP connected to the printer's port, will be 0.0.0.0 if not connected.
+
+
+
+
+ The port number of the remote connected to the printer, will be 0 if no connection.
+
+
+
+
+ The status of the printer's port, such as {@code LISTEN}, {@code ESTABLISHED}.
+
+
+
+
+ String description of the port status, prints as "PORT(NAME) REMOTE-IP:REMOTE-PORT STATUS"
+
+ Description of the port status.
+
+
+
+ This is a utility class for performing printer actions. (Restore defaults, calibrate, etc.)
+
+
+
+
+ Sends the appropriate calibrate command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate restore defaults command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate print configuration command to the printer.
+
+ If an I/O error occurs.
+
+
+
+ Converts the specified command to bytes using the default charset and sends the bytes to the printer.
+
+ The command to send to the printer.
+ If an I/O error occurs.
+
+
+
+ Converts the specified command to bytes using the specified charset "encoding" and sends the bytes to the
+ printer.
+
+ The command to send to the printer.
+ A character-encoding name (eg. UTF-8).
+ If an I/O error occurs.
+
+
+
+ Sends the appropriate reset command to the printer.
+
+
+ You should call after this method, as resetting the printer will terminate the connection.
+
+ If an I/O error occurs.
+
+
+
+
+ Utility class for performing Link-OS™ printer actions.
+
+
+
+
+ Send the restore network defaults command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Send the print network configuration command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Send the print directory label command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Sends the network reset command to the printer.
+
+ If there is an error communicating with the printer.
+
+
+
+ Set the RTC time and date on the printer.
+
+
+ Accepted dateTime values include date (e.g. "MM-dd-yyyy"), time(e.g. " HH:mm:ss"),
+ or both(e.g. " MM-dd-yyyy HH:mm:ss").
+
+ Date and or time in the proper format (MM-dd-yyyy, HH:mm:ss, or MM-dd-yyyy HH:mm:ss).
+ If there is an error communicating with the printer.
+ If the format of dateTime is invalid.
+
+
+
+ A class used to print template formats using XML as input.
+
+ Android™ USB connection not supported.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Print template formats using XML as input data.
+
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If an I/O error occurs."
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data to destinationDevice.
+
+ The connection string.
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ See ConnectionBuilder for the format of
+ destinationDevice.
+ If an I/O error occurs."
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data with optional running commentary to standard out.
+
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ If an I/O error occurs."
+ If there is an issue with the arguments.
+
+
+
+ Print template formats using XML as input data to a device with connection string destinationDevice.
+
+ The connection string.
+ The source stream containing the XML.
+ The template to merge the XML to.
+ The quantity, if not specified in the data.
+ Optional stream to send data to.
+ If true, print a running commentary to standard out.
+ See ConnectionBuilder for the format of
+ destinationDevice.
+ If an I/O error occurs."
+ If it was not possible to connect to the device.
+ If there is an issue with the arguments.
+
+
+
+ An interface used to obtain various properties of a Zebra printer.
+
+
+
+
+
+ Returns the printer control language (e.g. ZPL or CPCL) of the printer.
+
+
+
+
+
+ Returns a new instance of PrinterStatus that can be used to determine the status of a printer.
+
+
+ Each invocation of this method will result in a query of the connected printer. If more than one status value is to be
+ read, it is recommended that a copy of PrinterStatus is stored locally.
+ Note: This method must be invoked again to retrieve the most up-to-date status of the printer. The
+ object will only query the printer upon creation.
+ Note: Some Mobile printers (including the MZ series printers) will not communicate if the printer is not
+ ready to print.On these printers, status information is not available when, for example, the printer is out of
+ paper. This method will throw a if it is called when the printer cannot communicate.
+
+ A new instance of PrinterStatus.
+ If there is an issue communicating with the printer (e.g. the connection is not
+ open.)
+
+
+
+ Returns the printer's connection.
+
+
+
+
+ Changes the printer's connection.
+
+ The new connection to be used for communication with the printer.
+
+
+
+ A factory used to acquire an instance of a ZebraPrinter.
+
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+
+ If the Set-Get-Do value, appl.name, starts with one of the following, the printer is determined to
+ be a CPCL printer. Otherwise it is considered to be a ZPL printer
+
+ - SH
+ - H8
+ - C
+
+
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+ If the printer language cannot be determined
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+
+ If the Set-Get-Do value, appl.name, starts with one of the cpclFwVersionPrefixes, the
+ printer is determined to be a CPCL printer.Otherwise it is considered to be a ZPL printer.
+
+ An array of possible CPCL version number prefixes
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+ If the printer language cannot be determined
+
+
+
+ Factory method to create the correct concrete class based on the printer's control language.
+
+ The language of the printer instance to be created
+ An open connection to a printer
+ An instance of a
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS™ version and its control language.
+
+ An instance of a
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its control language, but will not query the printer for Link-OS information.
+
+ An instance of a
+ Link-OS Information
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS information, but will not query the printer for its control language.
+
+ An instance of a
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create a wrapper around a Zebra printer that provides access to Link-OS™ features.
+
+
+ This method will not query the printer for any information but will use the supplied info and language.
+
+ An instance of a
+ Link-OS Information
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS™ version and its control language.
+
+ An open connection to a Link-OS™ printer
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its control language, but will not query the printer for Link-OS information.
+
+ An open connection to a Link-OS™ printer
+ Link-OS Information
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will query the printer for its Link-OS information, but will not query the printer for
+ its control language.
+
+ An open connection to a Link-OS™ printer
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Create Link-OS™ Zebra printer from a connection that provides access to Link-OS™ features.
+
+
+ This method will not query the printer for any information but will use the supplied info and
+ language.
+
+ An open connection to a Link-OS™ printer
+ Link-OS Information
+ The printer control language
+ A Link-OS™ printer
+ If an I/O error occurs
+
+
+
+ Signals that an error has occurred when determining the printer language.
+
+
+
+
+ Constructs a ZebraPrinterLanguageUnknownException with message as the detailed error message
+
+ The error message
+
+
+
+ Constructs a ZebraPrinterLanguageUnknownException with "Unknown printer language" as
+ the detailed error message.
+
+
+
+
+ This interface defines increased capabilities of a Zebra Link-OS™ printer. Link-OS™ printers support many
+ features not supported by non-Link-OS™ Zebra printers.
+
+
+
+
+ Retrieve the TCP port status of the printer and returns a list of TcpPortStatus describing the open ports on the printer.
+
+
+ The open connection from the SDK will be listed in the return value. This method will throw
+ a if it is unable to communicate with the printer.
+ Note: Tabletop printers support more than one established connection on the raw port at a time, so the
+ same port may be listed more than once.
+
+ List of open ports on the ZebraPrinter. Note: The open connection from the SDK will be listed.
+ If there is an issue communicating with the printer (e.g. the connection is not open.)
+
+
+
+ Gets/sets the printer's SNMP get community name.
+
+
+
+
+ Returns specific Link-OS™ information.
+
+
+
+
+ Enumeration of the various print modes supported by Zebra Printers.
+
+
+
+
+ Rewind print mode
+
+
+
+
+ Peel-off print mode
+
+
+
+
+ Tear-off print mode (this also implies Linerless Tear print mode)
+
+
+
+
+ Cutter print mode
+
+
+
+
+ Applicator print mode
+
+
+
+
+ Delayed cut print mode
+
+
+
+
+ Linerless peel print mode
+
+
+
+
+ Linerless rewind print mode
+
+
+
+
+ Partial cutter print mode
+
+
+
+
+ RFID print mode
+
+
+
+
+ Kiosk print mode
+
+
+
+
+ Unknown print mode
+
+
+
+
+ Returns the print mode.
+
+ String representation of the print mode (e.g. "Rewind").
+
+
+
+ Enumeration of the various printer alert conditions which can be set on Zebra Printers.
+
+
+
+
+ Alert condition 'None'
+
+
+
+
+ Alert condition 'Paper Out'
+
+
+
+
+ Alert condition 'Ribbon Out'
+
+
+
+
+ Alert condition 'Head Too Hot'
+
+
+
+
+ Alert condition 'Head Cold'
+
+
+
+
+ Alert condition 'Head Open'
+
+
+
+
+ Alert condition 'Power Supply Too Hot'
+
+
+
+
+ Alert condition 'Ribbon In'
+
+
+
+
+ Alert condition 'Rewind'
+
+
+
+
+ Alert condition 'Cutter Jammed'
+
+
+
+
+ Alert condition 'Printer Paused'
+
+
+
+
+ Alert condition 'PQ Job Completed'
+
+
+
+
+ Alert condition 'Label Ready'
+
+
+
+
+ Alert condition 'Head Element Bad'
+
+
+
+
+ Alert condition 'Basic Runtime'
+
+
+
+
+ Alert condition 'Basic Forced'
+
+
+
+
+ Alert condition 'Power On'
+
+
+
+
+ Alert condition 'Clean Printhead'
+
+
+
+
+ Alert condition 'Media Low'
+
+
+
+
+ Alert condition 'Ribbon Low'
+
+
+
+
+ Alert condition 'Replace Head'
+
+
+
+
+ Alert condition 'Battery Low'
+
+
+
+
+ Alert condition 'RFID Error'
+
+
+
+
+ Alert condition 'All Messages'
+
+
+
+
+ Alert condition 'Cold Start'
+
+
+
+
+ Alert condition 'SGD Set'
+
+
+
+
+ Alert condition 'Motor Overtemp'
+
+
+
+
+ Alert condition 'Printhead Shutdown'
+
+
+
+
+ Alert condition 'Shutting Down'
+
+
+
+
+ Alert condition 'Restarting'
+
+
+
+
+ Alert condition 'No Reader Present'
+
+
+
+
+ Alert condition 'Thermistor Fault'
+
+
+
+
+ Alert condition 'Invalid Head'
+
+
+
+
+ Alert condition 'Country Code Error'
+
+
+
+
+ Alert condition 'MCR Result Ready'
+
+
+
+
+ Alert condition 'PMCU Download'
+
+
+
+
+ Alert condition 'Media Cartridge'
+
+
+
+
+ Alert condition 'Media Cartridge Load Failure'
+
+
+
+
+ Alert condition 'Media Cartridge Eject Failure'
+
+
+
+
+ Alert condition 'Media Cartridge Forced Eject'
+
+
+
+
+ Alert condition 'Cleaning Mode'
+
+
+
+
+ Creates an AlertCondition based on the condition.
+
+ If the condition is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the values of AlertCondition.
+ Based on the string condition
+ If condition is not a valid alert condition.
+
+
+
+ Creates an AlertCondition based on the conditionName.
+
+ If the conditionName is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the conditions in AlertCondition.
+ Based on the string conditionName
+ If conditionName is not a valid alert condition.
+
+
+
+ Returns the alert condition.
+
+ String representation of the alert condition (e.g. "PAPER OUT").
+
+
+
+ Gets/sets the alert condition name
+
+
+
+
+
+
+
+
+
+
+ Enumeration of the various alert destinations which can be set on Zebra Printers.
+
+
+
+
+ Alert Destination 'Serial'
+
+
+
+
+ Alert Destination 'Parallel'
+
+
+
+
+ Alert Destination 'E-Mail'
+
+
+
+
+ Alert Destination 'TCP'
+
+
+
+
+ Alert Destination 'UDP'
+
+
+
+
+ Alert Destination 'SNMP'
+
+
+
+
+ Alert Destination 'USB'
+
+
+
+
+ Alert Destination 'HTTP-POST'
+
+
+
+
+ Alert Destination 'Bluetooth'
+
+
+
+
+ Alert Destination 'SDK'
+
+
+
+
+ Returns the alert destination as a string.
+
+
+
+
+ Creates an AlertDestination based on the destination.
+
+ If the destination is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the values of AlertDestination.
+ Based on the destination
+ If destination is not a valid alert destination.
+
+
+
+ Creates an AlertDestination based on the destinationName.
+
+
+ If the destinationName is invalid a ZebraIllegalArgumentException will be thrown.
+ Name of one of the destinations in AlertDestination.
+ Based on the destinationName
+ If destinationName is not a valid alert destination.
+
+
+
+ Returns the alert destination.
+
+ String representation of the alert destination (e.g. "TCP").
+
+
+
+ Gets/Sets the alert destination name.
+
+
+
+
+
+
+
+
+
+
+ Decide whether to use the status channel or the print channel to get settings from the printer. For a
+ multichannel connection, prefer the status channel.
+
+ A connection to the printer.
+ The appropriate connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true if value is within the setting's range
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ///
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A class that represents an internal device setting.
+
+
+
+
+ Gets or sets the setting's value.
+
+
+
+
+ Gets or sets a string describing the data type of the setting.
+
+
+
+
+ Gets or sets a string that describes the acceptable range of values for this setting.
+
+
+
+
+ Gets or sets if this setting can be applied when loading a profile
+
+
+
+
+ Gets or sets if this setting can be applied when loading a backup
+
+
+
+
+ Gets or sets a string that describes the access permissions for the setting. RW is returned for settings that have
+ read and write permissions. R is returned for settings that are read-only W is returned for settings that are write-only
+
+
+
+
+ Returns true if the setting does not have write access.
+
+
+
+
+ Returns true if the setting does not have read access.
+
+
+
+
+ Returns true if value is valid for the given setting.
+
+ Setting value.
+ true if value is within the setting's range
+
+
+
+
+ Retruns a human readable string of the setting.
+
+ Setting [settingData=value=Value type=Type range=Range].
+
+
+
+ Signals that an error occurred retrieving a setting
+
+
+
+
+ Constructs a SettingsException with Setting not found as the detailed error message.
+
+
+
+
+ Constructs a SettingsException with message as the detailed error message.
+
+ The error message.
+
+
+
+ Constructs a SettingsException with the message as the detailed error message and
+ cause as the source of the exception.
+
+ The error message.
+ The cause of the exception
+
+
+
+ Interface that provides access to device related settings.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ Retrieve all of the setting identifiers for a device.
+
+
+ These are the IDs that may be used as keys for retrieving and updating settings for a device.
+
+
+ Set of identifiers available for a device.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded
+
+
+
+ Retrieves the device's setting value for a setting id.
+
+ The setting id.
+ The setting's value.
+ If there is an error communicating with the printer.
+ If the setting could not be retrieved.
+
+
+
+ Retrieves the device's setting values for a list of setting IDs.
+
+ List of setting IDs.
+ The settings' values.
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved.
+
+
+
+ Retrieve all settings and their attributes.
+
+ Map of setting IDs and setting attributes contained in the profile
+ If there is an error communicating with the printer.
+ If the settings could not be retrieved
+
+
+
+ Retrieves all of the device's setting values.
+
+ Values of all the settings provided by the device.
+ If there is an error communicating with the printer.
+ If the settings could not be loaded
+
+
+
+ Sets the setting to the given value.
+
+ The setting id.
+ The setting's value
+ If there is an error communicating with the printer.
+ If the setting is read only, does not exist, or if the setting could not be set
+
+
+
+ Set more than one setting.
+
+ Map a setting ID to the new value for the setting.
+ If there is an error communicating with the printer.
+ If the settings cannot be sent to the device.
+
+
+
+ Retrieves the allowable range for a setting.
+
+ The setting id.
+ The setting's range as a string
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if value is valid for the given setting.
+
+ The setting id.
+ The setting's value
+ True if value is valid for the given setting.
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if the setting is read only.
+
+ The setting id
+ True if the setting is read only
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns true if the setting is write only.
+
+ The setting id
+ True if the setting is write only
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Returns the data type of the setting.
+
+ The setting id
+ The data type of the setting (e.g. string, bool, enum, etc.)
+ If there is an error communicating with the printer.
+ If the setting does not exist
+
+
+
+ Change or retrieve printer settings.
+
+
+ Due to the setting verification and validation, additional time and data traffic will be needed for each
+ ProcessSettingsViaMap method call. It is recommended to bundle all settings into one map and one method call to
+ reduce this overhead.
+
+ The settings to change or retrieve
+ Results of the setting commands
+ If there is an error communicating with the printer.
+ If a setting is malformed, or one or more settings could not be set.
+
+
+
+ Methods to use the LinkOS 3.2 JSON syntax to get the ranges for a list of SDGs, without the need to use an allconfig.
+
+
+
+
+ Use the LinkOS 3.2 JSON syntax to get the ranges for a list of SDGs, without the need to use an allconfig.
+
+ A list of SGD names.
+ A connection to a LinkOS printer.
+ the current printer control language
+ LinkOS version
+ A map from setting name to a string representing the range.
+ If the printer is not LinkOS 3.2 or higher.
+ If the connection fails.
+ If there is an error parsing the JSON response from the printer.
+
+
+
+ Parse the JSON response from the JSON get range command. Assumes that the only field requested in the JSON get
+ command was the "range" field.
+
+ Response from a LinkOS 3.2 or greater printer.
+ Map from setting names to range strings.
+
+
+
+ Methods to use the LinkOS 3.2 JSON syntax to get the values for a list of SDGs, without the need to use an allconfig.
+
+
+
+
+ Get the values for a list of settings from a printer.
+
+
+ Use either JSON or SGD get commands to request the values from the printer,
+ depending on the connection type and the printer language. The default
+ timeout values from the connection will be used when communicating with the
+ printer. If printerConnection is a MultichannelConnection, prefer the status channel.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Set each of the settings in settingValues on a printer.
+
+
+ Use either JSON or SGD set commands to set the values on the printer, depending on the connection type and
+ the printer language.The default timeout values from the connection will be used when communicating with the
+ printer.If printerConnection is a MultichannelConnection, prefer the status channel.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+
+ Get the values for a list of settings from a LinkOS printer.
+
+
+ Use JSON to request the values from the printer. The default timeout values from the connection will
+ be used when communicating with the printer.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Get the values for a list of settings from a printer.
+
+
+ Use SGD get commands to request the values from the printer.The default timeout values from the connection
+ will be used when communicating with the printer.
+
+ The settings to be retrieved.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+ Decide whether JSON can be used to get settings from the printer, or whether SGD setvar/getvar must be used.
+
+ A connection to the printer.
+ The printer control language for the connection.
+ The LinkOS version information.
+ true if JSON can be used, false if SGD setvar/getvar must be used.
+
+
+
+ Set each of the settings in settingValues on a LinkOS printer.
+
+
+ Use JSON to set the values on the printer. The default timeout values from the connection will be
+ used when communicating with the printer.Return a map of the values from the printer after the set
+ operation was performed.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+ If it was not possible to parse the response from the printer.
+
+
+
+ Set each of the settings in settingValues on a printer.
+
+
+ Use SGD set commands to set the values on the printer. The default timeout values from the connection will
+ be used when communicating with the printer.Return a map of the values from the printer after the set operation was performed.
+
+ Map from setting names to desired values.
+ A connection to the printer.
+ A map from setting name to value.
+ If it was not possible to communicate with the printer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ "SH", "H8", "C"
+
+
+
+
+ ESC + h (0x1b 0x68)
+
+
+
+
+ ESC + V (0x1b 0x56)
+
+
+
+
+ ESC + FormFeed (0x1b 0x0C)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Determines if the device is a zebra card printer
+
+ true if device is a card printer
+
+
+
+ 0, marks free or usable space
+
+
+
+
+ 1, bitmap or smooth font
+
+
+
+
+ 2, barcode data
+
+
+
+
+ 3, stored ZPL format
+
+
+
+
+ 4, GRF graphic image object
+
+
+
+
+ 5, print map - unused
+
+
+
+
+ 6, general purpose storage - used by DBCOs for parsing and bitmaps
+
+
+
+
+ 7, Intellifont cache
+
+
+
+
+ 8, wildcard
+
+
+
+
+ 9, Mag tables
+
+
+
+
+ 10, Multiplication tables
+
+
+
+
+ 11, Mirror tables
+
+
+
+
+ 12, use context-specific default
+
+
+
+
+ 13, magic mode buffers
+
+
+
+
+ 14, access locks for certain ZPL commands
+
+
+
+
+ 15, JisToUnicode tables
+
+
+
+
+ 16, Saved BASIC program
+
+
+
+
+ 17, Data storage object
+
+
+
+
+ 18, PNG graphic image object
+
+
+
+
+ 19, Downloadable Bar Code object
+
+
+
+
+ 20, BAZ encrypted BASIC object
+
+
+
+
+ 21, Stored label format
+
+
+
+
+ 22, TrueType Font
+
+
+
+
+ 23, PCX bitmap
+
+
+
+
+ 24, Bitmap
+
+
+
+
+ 25, GEM bitmap graphic
+
+
+
+
+ 26, DPL Datamax 7-bit format
+
+
+
+
+ 27, TrueType Extension Font
+
+
+
+
+ 28, TT? we will list TTE and TTF objects on the same label
+
+
+
+
+ 29, WLAN security certificate for TLS and TTLS
+
+
+
+
+ 30, WLAN security certificate for FAST
+
+
+
+
+ 31, stored EPL format
+
+
+
+
+ 32, Mirror feedback template file
+
+
+
+
+ 33, WML menu file
+
+
+
+
+ 34, MIB file for auto-generated SNMP MIB
+
+
+
+
+ 35, Comma Seperated Values file
+
+
+
+
+ 36, User-custom webpages
+
+
+
+
+ 37, BAE DES encrypted BASIC object
+
+
+
+
+ 38, Text file
+
+
+
+
+ 39, Executable code - MUST BE LAST IN LIST!
+
+
+
+
+ The contentStream will be exhausted. It is all read in to determine the metadata, you need a new stream to read
+ from for other stream operations.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ appl.name
+
+
+
+
+ device.host_status
+
+
+
+
+ ip.discovery_packet
+
+
+
+
+ device.languages
+
+
+
+
+ device.reset
+
+
+
+
+ Printer Reset JSON Command {}{"device.reset":""}
+
+
+
+
+ device.prompted_network_reset
+
+
+
+
+ Printer Reset JSON Command {}{"device.prompted_network_reset":"y"}
+
+
+
+
+ ezpl.restore_defaults
+
+
+
+
+ Printer Reset JSON Command {}{"ezpl.restore_defaults":"reload printer"}
+
+
+
+
+ device.prompted_default_network
+
+
+
+
+ Printer Reset JSON Command {}{"device.prompted_default_network":"y"}
+
+
+
+
+ zpl.calibrate
+
+
+
+
+ Calibrate Command {}{"zpl.calibrate":""}
+
+
+
+
+
+
+
+ ! U1 getvar "command"\r\n
+
+
+
+ Wrapper class for System.Threading.Tasks Task functions. For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only. Wrapper for to not throw an
+ exception. Causes the currently executing thread to sleep (temporarily cease execution) for the specified number
+ of milliseconds. The thread does not lose ownership of any monitors.
+
+
+
+
+ @param targetStream
+
+
+ @param data
+ @param offset
+ @param length
+ @throws IOException
+
+
+
+ Windows line terminator - carriage return + line feed
+
+
+
+
+ Line feed
+
+
+
+
+
+
+ The string that should be searched.
+ The list of patterns to search for.
+ start index in inputString
+ The index in inputString of the first pattern that is found. If none of the patterns are
+ found, -1 is returned.
+
+
+
+ Split input into lines.
+
+
+ Lines are terminated by <CR><LF>. The last line does not have to
+ end in <CR><LF>, although it may.The <CR><LF> terminators are removed.
+
+ Text to be split into lines.
+ the delimiter to split on
+ An array of lines - with trailing CRLF removed.
+
+
+
+ Join an array of strings into a single string separated by a delimiter.
+
+
+
+ a delimited list of the elements in strings
+
+
+
+ Count the number of distinct occurrences of substring in stringToSearch.
+
+
+ If there are overlapping occurrences of substring in stringToSearch, counting starts again after the
+ end of each match.
+
+ CountSubstringOccurences(" aaa", "aa")
+ returns 1, not 2.
+
+
+ String to be searched
+ String to search for
+ number of occurrences
+
+
+
+ Remove all double quotes from str
+
+ the string to strip the quotes from
+ str minus the quotes
+
+
+
+
+
+ String to be padded
+ character used for padding
+ total length the return string should be
+ whether or not to append padding in front of initialString
+
+
+
+
+
+
+ the prefixes to search for
+ string to search
+ true if prefixes exists in value
+
+
+
+
+
+ The hex representation of the byte array
+
+
+
+
+
+
+ A byte array
+
+
+
+
+
+
+ (e.g. 1234 Bytes, 9876 Main St)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Executes a group of tasks with a cap on the number of concurrent threads running.
+
+
+
+
+
+ Group of tasks to execute
+ Number of threads to execute concurrently
+
+
+
+ Internal printer representation of the ZPL format prefix
+
+
+
+
+ Internal printer representation of the ZPL command prefix
+
+
+
+
+ Internal printer representation of the ZPL delimiter
+
+
+
+
+ Internal printer representation of the ZPL format prefix, as a String
+
+
+
+
+ Internal printer representation of the ZPL command prefix, as a String
+
+
+
+
+ Internal printer representation of the ZPL delimiter, as a String
+
+
+
+
+ Printer Status Command ~HI
+
+
+
+
+ Printer Expanded Status Command ~HS
+
+
+
+
+ Config Label ~WC
+
+
+
+
+ Directory label ^XA^WD*:*.*^XZ
+
+
+
+
+ Config Label ~WL
+
+
+
+
+ Printer Calibrate Command ~JC
+
+
+
+
+ Printer Reset Command ~JR
+
+
+
+
+ Printer Network Reset Command ~WR
+
+
+
+
+ Printer restore defaults command ^XA^JUF^XZ
+
+
+
+
+ Printer get super host status command ^XA^HZA^XZ
+
+
+
+
+ Printer get storage info ^XA^HW*:XXXX.QQQ^XZ Use XXXX.QQQ to get drive info without matching a file name
+
+
+
+
+ Printer get file drive info for Linkos 2.5 and higher
+
+
+
+
+ Printer get drive listing for Linkos 2.5 and higher
+
+
+
+
+
+
+ the command to decorate with the internal command prefix
+ the command decorated with the internal ZPL command prefix. If command contains a '~' it
+ will be replace with the internal command prefix, otherwise the internal command prefix will simply be prefixed
+ to the front of command
+
+
+
+
+
+ the format to decorate with the internal format prefix
+ the format decorated with the internal ZPL format prefix. If format contains a '^' it will
+ be replace with the internal format prefix, otherwise the internal format prefix will simply be prefixed to the
+ front of format
+
+
+
+
+
+ the format to decorate with the internal format prefix
+ the format decorated with the internal ZPL format prefix. If format contains a '^' it will
+ be replace with the internal format prefix, otherwise the internal format prefix will simply be prefixed to the
+ front of format
+
+
+
+ Enumeration of a task's status.
+
+
+
+
+ Configuration state indicating the task has not been started.
+
+
+
+
+ Configuration state indicating the task is in process.
+
+
+
+
+ Configuration state indicating the task completed successfully.
+
+
+
+
+ Configuration state indicating the task failed.
+
+
+
+
+ ENumeration to determine how the Weblink address is set.
+
+
+
+
+ Looks at current weblink settings and determine which location to set based on if the URL is set and valid and if
+ the printer is connected to the address.
+
+
+
+
+ Overrides any setting in Weblink location 1.
+
+
+
+
+ Overrides any setting in Weblink location 2.
+
+
+
+
+ Enumeration of the weblink configuration task's state.
+
+
+
+
+ Configuration state indicating the task is creating a connection to the printer.
+
+
+
+
+ Configuration state indicating the task is retrieving the printer's settings.
+
+
+
+
+ Configuration state indicating the task is configuring the weblink setting.
+
+
+
+
+ Configuration state indicating the task is restarting the printer.
+
+
+
+
+ Configuration state indicating the task is waiting for the printer to restart and then reconnect.
+
+
+
+
+ Configuration state indicating the task is validating the printer's profile manager connection.
+
+
+
+
+ Callback for updating the status of a Weblink configuration task.
+
+
+
+
+ Sets the new state of the Weblink Configurator defined by WeblinkConfigurationState.
+
+ The updated WeblinkConfiguration state.
+
+
+
+ Provides a custom message for the current weblink configuration state.
+
+ Custom message.
+
+
+
+ Task to configure a printers Weblink setting.
+
+
+
+
+ Initializes a new instance of the WeblinkConfiguratior class.
+
+ The to configure.
+
+
+
+ Initializes a new instance of the WeblinkConfiguratior class.
+
+ A to a printer
+
+
+
+ Configures a printer to connect to a Zebra Weblink server and attempts to validate a successful connection.
+
+
+ Please note that this function will block while waiting for the printer to reset and while validating the
+ connection. This could take an excess of 60 seconds.
+
+ Weblink address to set.
+ Determines which weblink setting will be configured.
+ Callback object to report task status.
+ Thrown when a configuration error occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the current .
+
+
+
+
+ Returns the of the weblink configuration task.
+
+
+
+
+ Returns true if the supplied weblink url is valid for the Zebra weblink server.
+
+ Potential URL to a Zebra Weblink server.
+ true if the URL is a properly formed URL for the Zebra Weblink server.
+
+
+
+ Signals that an error occured while configuring weblink.
+
+
+
+
+ Constructs a ZebraWeblinkException with a base Exception.
+
+ The base exception.
+
+
+
+ Constructs a ZebraWeblinkException with a custom detailed error message.
+
+ The custom error message.
+
+
+
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/xamarinios10/System.Drawing.dll b/packages/Zebra.Printer.SDK.2.15.2634/lib/xamarinios10/System.Drawing.dll
new file mode 100644
index 0000000..1f8835c
Binary files /dev/null and b/packages/Zebra.Printer.SDK.2.15.2634/lib/xamarinios10/System.Drawing.dll differ
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/xamarinios10/ZebraPrinterSdk.dll b/packages/Zebra.Printer.SDK.2.15.2634/lib/xamarinios10/ZebraPrinterSdk.dll
new file mode 100644
index 0000000..d220219
Binary files /dev/null and b/packages/Zebra.Printer.SDK.2.15.2634/lib/xamarinios10/ZebraPrinterSdk.dll differ
diff --git a/packages/Zebra.Printer.SDK.2.15.2634/lib/xamarinios10/ZebraPrinterSdk.xml b/packages/Zebra.Printer.SDK.2.15.2634/lib/xamarinios10/ZebraPrinterSdk.xml
new file mode 100644
index 0000000..7a31417
--- /dev/null
+++ b/packages/Zebra.Printer.SDK.2.15.2634/lib/xamarinios10/ZebraPrinterSdk.xml
@@ -0,0 +1,385 @@
+
+
+
+ ZebraPrinterSdk
+
+
+
+
+ A factory interface used to acquire a cross platform instance of ZebraImageI.
+
+
+
+
+ Creates an instance of from the image specified in fullPath.
+
+ The full path of the image.
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If fullPath is null.
+
+
+
+ Creates an instance of from the image data specified in imageData.
+
+ A byte[] containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null.
+
+
+
+ Creates an instance of from the image data specified in imageData.
+
+ A stream containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null.
+
+
+
+ A factory used to acquire an instance of ZebraImageI.
+
+
+
+
+ Current IZebraPrinterFactory to use
+
+
+
+
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+
+
+
+ A factory used to acquire an instance of a ZebraImageI.
+
+
+
+
+ Creates an instance of from the image specified in image.
+
+ The image
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If image is null
+
+
+
+ Creates an instance of from the image specified in fullPath.
+
+ The full path of the image.
+ An image formatted for Zebra Printers
+ If the file could not be found, open, or is an unsupported graphic.
+ If fullPath is null
+
+
+
+ Creates an instance of from the image data specified in imageData
+
+ A stream containing the image data.
+ An image formatted for Zebra Printers.
+ If the file could not be found, open, or is an unsupported graphic.
+ If imageData is null
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Establishes a Bluetooth® connection to a printer
+
+
+ In order to connect to a device with Bluetooth®, the device must be discoverable, authentication must be enabled,
+ and the authentication pin must be set (1-16 alphanumeric characters).
+ The encryption type and whether or not it is used is determined by the device initiating the connection and not
+ device being connected to.
+
+ Desktop
+ Android™
+ iOS
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Gets/sets the time to wait before closing the connection (milliseconds).
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+ Constructs a new Bluetooth® connection with the given macAddress.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets. (e.g. 00:11:BB:DD:55:FF or 0011BBDD55FF).
+ This constructor will use the default timeouts for . The default timeout is a maximum of 10
+ seconds for any data to be received. If no more data is available after 500 milliseconds the read operation is
+ assumed to be complete.
+ To specify timeouts other than the defaults, use:
+
+
+ the device's MAC address.
+
+
+
+ Constructs a new Bluetooth® connection with the givenmacAddress and timeout values.
+
+
+ The MAC address is a hexadecimal string with or without separators between the octets. (e.g. 00:11:BB:DD:55:FF or
+ 0011BBDD55FF). This constructor will use the specified timeouts for .The timeout is a
+ maximum of maxTimeoutForRead milliseconds for any data to be received.If no more data is available
+ after timeToWaitForMoreData milliseconds the read operation is assumed to be complete.
+
+ the device's MAC address.
+ the maximum time, in milliseconds, to wait for any data to be received.
+ the maximum time, in milliseconds, to wait in-between reads after the initial read.
+
+
+
+ Exposed this protected constructor for testing. We can pass in a mock Connector rather than the BT specific one.
+ The MAC address is a hexadecimal string with no separators between the octets. (e.g. 0011BBDD55FF).
+
+
+
+
+
+
+
+
+ Closes the Bluetooth® connection.
+
+
+
+
+
+ The friendly name is obtained from the device when this connection is opened. If the friendly name changes on the
+ device, it will not be refreshed until the connection is closed and reopened.
+
+ Bluetooth:[MAC Address]:[Friendly Name].
+
+
+
+
+ Gets the MAC address and the friendly name as the description.
+
+ [MAC Address]:[Friendly Name]
+
+
+
+
+ Gets the MAC address which was passed into the constructor. The MAC address is a hexadecimal string with
+ separators between the octets. (e.g. 00:11:BB:DD:55:FF).
+
+
+
+
+ Gets the friendly name of the Bluetooth® connection. The friendly name is obtained from the device when
+ this connection is opened.If the friendly name changes on the device, it will not be refreshed until the
+ connection is closed and reopened.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Builds a Connection from a description string. The description string is used to specify a connection to a specific
+ device over TCP or Bluetooth®.
+
+
+ The description string may be of the explicit forms:
+ "TCP:192.168.1.4:6101" -- creates a TCP connection to the device with IP address 192.168.1.4 on port 6101.
+ "TCP:192.168.1.4" -- creates a TCP connection to the device with IP address 192.168.1.4 on default port 9100.
+ "TCP:dnsName:6101" -- creates a TCP connection to the device with 'dnsName' on port 6101.
+ "TCP:dnsName" -- creates a TCP connection to the device with 'dnsName' on default port 9100.
+ "TCP_MULTI:192.168.1.4" -- creates a Multichannel TCP connection to the device with '192.168.1.4' using the default ports for both the printing channel(9100) and the status channel(9200).
+ "TCP_MULTI:192.168.1.4:1234" -- creates a Multichannel TCP connection to the device with '192.168.1.4' using the given port for the printing channel(1234) and the default port for the status channel(9200).
+ "TCP_MULTI:192.168.1.4:1234:5678" -- creates a Multichannel TCP connection to the device with '192.168.1.4' using the given ports for the printing channel(1234) and the status channel(5678).
+ "TCP_MULTI:dnsName:1234:5678" -- creates a Multichannel TCP connection to the device with 'dnsName' using the given ports for the printing channel(1234) and the status channel(5678).
+ "TCP_STATUS:192.168.1.4:1234" -- creates a TCP status only connection to the device with IP address 192.168.1.4 on port 1234.
+ "TCP_STATUS:192.168.1.4" -- creates a TCP status only connection to the device with IP address 192.168.1.4 on the default status port 9200.
+ "BT:11:22:33:44:55:66" -- creates a Bluetooth® connection to the device using '11:22:33:44:55:66' as the MAC address.
+
+ Generic text may also be used to attempt to specify a device. For example a description string of "genericText" will
+ attempt to connect to a device using the following priority:
+
+ -
+ TCP_MULTI
+
+ -
+ TCP
+
+ -
+ TCP_STATUS
+
+ -
+ BT
+
+
+
+ If you supply the string '1FE533AA7B90'. This could be interpreted to be either a DNS name or a Bluetooth® MAC
+ address. ConnectionBuilder will attempt to connect to this string given the above priority order. If you supply a
+ more specific string, such as '192.168.2.3', ConnectionBuilder will more efficiently interpret this string as being
+ an IP address and, therefore, only attempt the TCP connections.
+ The Bluetooth® Connection Building process will first attempt an insecure connection (no pairing required). This
+ requires the printer's 'bluetooth.minimum_security_mode' must be set to 1. If an insecure connection could not be
+ esablished, it will attempt to pair and connect securely. This will trigger the Android pairing request prompt.
+ Note: Colon (':') characters are not supported in dnsName, friendlyName, uniqueId, deviceName, or genericText fields.
+ The following is an example of building a connection from a string.
+
+ Desktop
+
+
+ Android™
+
+
+ iOS
+
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ For internal use of the Zebra Printer API only.
+
+
+
+
+ Add a connection type to the ConnectionBuilder.
+
+ Connection class.
+
+
+
+ Creates a Connection type based on the contents of descriptionString.
+ "TCP:192.168.1.2:9100"
+ The format of the input string is: [prefix:] address [: port_number(s)].
+
+ -
+ Prefix is either TCP_MULTI, TCP, TCP_STATUS, BT_MULTI, BT, or BT_STATUS.
+
+ -
+ The format of address depends on the prefix
+
+ - TCP : address is either a DNS name or an IPv4 address.
+ - BT : address is the MAC address.
+
+
+ - port_number(s) is optional, and only applicable for TCP connections.
+ -
+ Examples:
+
+ - TCP:ZBR3054027:9100
+ - TCP_MULTI:ZBR3054027:9100:9200
+ - BT:11:22:33:44:55:66
+ - 10.1.2.3
+
+
+
+ Connection derived from the contents of descriptionString.If a connection could not be established for the given descriptionString.
+
+
+
+ A class that discovers Bluetooth® devices.
+
+ Desktop
+ Android
+ iOS
+
+
+
+ Find Bluetooth® devices that are discoverable.
+
+ This method will return all devices found, not just Zebra printers.
+ This method should not be called from the application main thread.
+ Android 6 and higher (API 23+) requires user permission ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION in your application manifest.
+ A instance that is used to handle discovery events (e.g. found a printer, errors, discovery finished).
+
+
+
+ Instance of DiscoveredPrinter that is returned when performing a Bluetooth® discovery.
+
+
+
+
+ Returns an instance of a DiscoveredPrinterBluetooth with macAddress.
+
+ MAC address of the printer.
+ Friendly name of the printer.
+
+
+
+ The friendly name of the Bluetooth® device.
+
+
+
+
+
+
+